思考问题:机器人运动控制如何与图形界面交互?

不得不说,先锋机器人的软件做的真不怎么样。图形界面交互用户体验很差。

现在我遇到一个很现实的问题: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运动控制的更多相关文章

  1. 硬件模块化机器人操作系统 Hardware Robot Operating System (H-ROS)

    原文网址:http://www.ros.org/news/2016/10/hardware-robot-operating-system-h-ros.html 推荐网址:https://h-ros.c ...

  2. SLAM+语音机器人DIY系列:(三)感知与大脑——3.轮式里程计与运动控制

    摘要 在我的想象中机器人首先应该能自由的走来走去,然后应该能流利的与主人对话.朝着这个理想,我准备设计一个能自由行走,并且可以与人语音对话的机器人.实现的关键是让机器人能通过传感器感知周围环境,并通过 ...

  3. SLAM+语音机器人DIY系列:(四)差分底盘设计——1.stm32主控硬件设计

    摘要 运动底盘是移动机器人的重要组成部分,不像激光雷达.IMU.麦克风.音响.摄像头这些通用部件可以直接买到,很难买到通用的底盘.一方面是因为底盘的尺寸结构和参数是要与具体机器人匹配的:另一方面是因为 ...

  4. nodejs操作arduino入门(javascript操作底层硬件)

    用Javascript来操作硬件早就不是一件稀奇的事情了. 所以作为一名电子专业出身的FE,我也打算尝试一下用js来驱动arduino: 要想操作这些底层硬件,肯定是需要一些工具的,我这里介绍的工具主 ...

  5. ROS是Robot Operating System

    ROS是Robot Operating System 机器人操作系统ROS | 简介篇   同样,从个人微信公众号Nao(ID:qRobotics)搬运. 前言 先放一个ROS Industrial一 ...

  6. 快速了解 Robot Operating System(ROS) 机器人操作系统

     http://www.ros.org/ 关于ROS About ROS http://www.ros.org/about-ros/ 机器人操作系统(ROS)是用于编写机器人软件的灵活框架.目的在简化 ...

  7. Robot Operating System (ROS)学习笔记---创建简单的机器人模型smartcar

    搭建环境:XMWare  Ubuntu14.04  ROS(indigo) 转载自古月居  转载连接:http://www.guyuehome.com/243 一.创建硬件描述包 已创建catkin_ ...

  8. S7-1200 的运动控制

    S7-1200 CPU本体集成点硬件输出点最高频率为100kHz,信号板上硬件集成点输出的最高频率为20kHz,CPU在使用PTO功能时将把集成点Qa.o,Qa.2或信号板的Q4.0作为脉冲输出点,Q ...

  9. Universial robot 运动学

    1 正运动学: 1.1 DH方法理解 第i个坐标系固连在第i个连杆的左端.轴i固连于i-1杆,在i-1杆的右端.  i坐标系固定在i杆上,随这i杆转动. 每个连杆有四个参数,第i个连杆: ai = ( ...

随机推荐

  1. iOS开发-- 开发中遇到的问题汇总

    1. CUICatalog: Invalid asset name supplied: 今天写了加载图片,默认图片写的是[UIImage imageNamed:@""],之后就报下 ...

  2. Cordova 微信分享插件,安卓亲测可用

    Cordova 微信分享插件,安卓亲测可用,收藏 https://github.com/vilic/cordova-plugin-wechat

  3. [c#基础]使用抽象工厂实现三层 和反射

    引言 昨天加了一天班,今天闲来无事,就在想如何将之前的三层和最近一直在学的设计模式给联系在一起,然后就动手弄了个下面的小demo. 项目结构 项目各个层实现 Wolfy.Model层中有一个抽象类Ba ...

  4. Centos7下使用mail发送邮件配置

    参考文档:https://blog.csdn.net/lyf844692713/article/details/81479066 安装环境查看 查看服务是否安装 rpm -qa|grep mail 如 ...

  5. [No0000125]WCF安全体系

    WCF的安全体系主要包括三个方面:传输安全(Transfer Security).授权或者访问控制(Authorization OR Access Control)以及审核(Auditing).而传输 ...

  6. [No0000C9]神秘的掐指一算是什么?教教你也会

    很多朋友看到传说中诸葛亮以及那些聪明人掐指一算,惊叹不已.那些人以“察天地之理.通鬼神之志”,每次占卜时,做一大堆的神秘仪式,然后掐指一算,便大有“乾坤尽收在手”的感觉.在普通人眼里,他们的手神秘异常 ...

  7. strlen函数的汇编实现分析

    [原创][老刘谈算法001]这位运算玩的真溜—strlen函数的汇编实现分析-『密码算法』-看雪安全论坛 https://bbs.pediy.com/thread-229243.htm

  8. Page10:Lyapunov稳定概念及判定定理[Linear System Theory]

    内容包含连续和离散系统的Lyapunov稳定概念及其各种判别定理

  9. LeetCode 104 Maximum Depth of Binary Tree 解题报告

    题目要求 Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the ...

  10. LeetCode 876 Middle of the Linked List 解题报告

    题目要求 Given a non-empty, singly linked list with head node head, return a middle node of linked list. ...