[硬件]Robot运动控制
思考问题:机器人运动控制如何与图形界面交互?
不得不说,先锋机器人的软件做的真不怎么样。图形界面交互用户体验很差。
现在我遇到一个很现实的问题:SLAM需要采集激光数据和机器人的位姿,同时我还要再这个界面中控制机器人的运动。这个想来真是一个复杂的问题。
测试使用ArRobot分别直接在MFC的WinApp和Dialog中进行初始化,执行runSync则报错,不执行则连接直接退出。ArRobot内置了线程,不知到是不是导致了失败。
然后测试服务和客户端模式,socket编程,用了自带的serverDemo,但是客户端请求的命令去确无法执行。自带的客户端demo也是内置了线程和键盘处理,没有成功。
不过我坚信这个问题肯定是可以解决的,因为MobileEye里面就实现了。
通过与利曼售后工程师的沟通,目前初步实现了通过图形界面进行先锋机器人的运动控制。 现在采用的是C/S模式,socket编程。当然主要还是使用的SDK里面的函数实现的。
主要的技巧是多开了一个线程。
通过UI界面开一个线程pThread,在该线程中初始化客户端对象(客户端内置了线程Thread3,执行runSync方法会开启新的线程)。
将UI的键盘消息通过flag在pThread中进行分发,让Thread3中对应执行相应的回调函数。此时不在Thread3中执行键盘检测函数,因为已经在UI线程中侦测了。

问题算是有了解决方案,思考如果直接应用程序连接机器人呢,这种技巧是不是也可以用呢?
kbhit函数:检查当前是否有键盘输入。
激光数据接收肯定要占用一个线程。
通过界面控制机器人在主线程或者再开一个线程。
[硬件]Robot运动控制的更多相关文章
- 硬件模块化机器人操作系统 Hardware Robot Operating System (H-ROS)
原文网址:http://www.ros.org/news/2016/10/hardware-robot-operating-system-h-ros.html 推荐网址:https://h-ros.c ...
- SLAM+语音机器人DIY系列:(三)感知与大脑——3.轮式里程计与运动控制
摘要 在我的想象中机器人首先应该能自由的走来走去,然后应该能流利的与主人对话.朝着这个理想,我准备设计一个能自由行走,并且可以与人语音对话的机器人.实现的关键是让机器人能通过传感器感知周围环境,并通过 ...
- SLAM+语音机器人DIY系列:(四)差分底盘设计——1.stm32主控硬件设计
摘要 运动底盘是移动机器人的重要组成部分,不像激光雷达.IMU.麦克风.音响.摄像头这些通用部件可以直接买到,很难买到通用的底盘.一方面是因为底盘的尺寸结构和参数是要与具体机器人匹配的:另一方面是因为 ...
- nodejs操作arduino入门(javascript操作底层硬件)
用Javascript来操作硬件早就不是一件稀奇的事情了. 所以作为一名电子专业出身的FE,我也打算尝试一下用js来驱动arduino: 要想操作这些底层硬件,肯定是需要一些工具的,我这里介绍的工具主 ...
- ROS是Robot Operating System
ROS是Robot Operating System 机器人操作系统ROS | 简介篇 同样,从个人微信公众号Nao(ID:qRobotics)搬运. 前言 先放一个ROS Industrial一 ...
- 快速了解 Robot Operating System(ROS) 机器人操作系统
http://www.ros.org/ 关于ROS About ROS http://www.ros.org/about-ros/ 机器人操作系统(ROS)是用于编写机器人软件的灵活框架.目的在简化 ...
- Robot Operating System (ROS)学习笔记---创建简单的机器人模型smartcar
搭建环境:XMWare Ubuntu14.04 ROS(indigo) 转载自古月居 转载连接:http://www.guyuehome.com/243 一.创建硬件描述包 已创建catkin_ ...
- S7-1200 的运动控制
S7-1200 CPU本体集成点硬件输出点最高频率为100kHz,信号板上硬件集成点输出的最高频率为20kHz,CPU在使用PTO功能时将把集成点Qa.o,Qa.2或信号板的Q4.0作为脉冲输出点,Q ...
- Universial robot 运动学
1 正运动学: 1.1 DH方法理解 第i个坐标系固连在第i个连杆的左端.轴i固连于i-1杆,在i-1杆的右端. i坐标系固定在i杆上,随这i杆转动. 每个连杆有四个参数,第i个连杆: ai = ( ...
随机推荐
- css3整理--background-size
background-size语法: /*Mozilla*/ -moz-background-size: auto || <length> || <percentage> || ...
- MySql 5.7 新特性概览
安全的提升 1.1 在Mysql 8版本中,caching_sha2_password 是一个缺省的认证插见.5.7 版本的客户端支持 caching_sha2_password 的客户端认证. 1. ...
- mysql中的schema 等价于database,相当于一个数据库
MySQL 中 Schema 等价于 数据库. mysql> SELECT -> SCHEMA_NAME, -> DEFAULT_CHARACTER_SET_NAME, -> ...
- 通过Java语言连接mysql数据库
1加载驱动 2创建链接对象 3创建语句传输对象 4接受结果集 5遍历 6关闭资源
- http://202.194.116.8/webapps/portal/frameset.jsp?tab_id=_2_1&url=%2fwebapps%2fblackboard%2fexecute%2
http://202.194.116.8/webapps/portal/frameset.jsp?tab_id=_2_1&url=%2fwebapps%2fblackboard%2fexecu ...
- 关于ti环境搭建 IAR 为什么IAR不能跳转的真正原因
1.IAR工程莫名其妙的错误,可以通过复制工程文件来解决 2.cc2540环境配置,尽量默认到c盘,以便解决不必要的麻烦,另外,不同的库尽量安装对应的环境文件,比如freertos等环境 3.对于蓝牙 ...
- SQLServer 索引重建
SQL Server 索引重建脚本 在数据的使用过程中,由于索引page碎片过多,带来一些不利的性能问题,我们有时候需要对数据库中的索引进行重组或者重建工作.通常这个阈值为30%,大于30%我们建议进 ...
- ST表模板 Balanced Lineup POJ3264
http://poj.org/problem?id=3264 题意 rmq max min之差 模板: #define _CRT_SECURE_NO_WARNINGS #include<cmat ...
- ios-静态库,动态库,framework浅析(一)
一,所谓的“库” * 所谓的“库” 库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用.什么时候我们会用到库呢? 一种情 ...
- LeetCode 832 Flipping an Image 解题报告
题目要求 Given a binary matrix A, we want to flip the image horizontally, then invert it, and return the ...