zoukankan      html  css  js  c++  java
  • [硬件]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函数:检查当前是否有键盘输入。

    激光数据接收肯定要占用一个线程。

    通过界面控制机器人在主线程或者再开一个线程。

  • 相关阅读:
    回调函数
    箭头函数和普通函数的区别?
    实现 (5).add(3).minus(2),使其输出结果为:6
    call 和 apply 的区别?哪个性能更好?
    用 JS 的 RegExp 进行正则判断,字符串内是否有特殊符号
    如何理解和描述“原型和原型链”
    JS 的防抖和节流
    Linux 服务器 关闭防火墙命令
    前端在Linux服务器搭建安装Nginx的步骤记录
    记录一些CSS的实用技巧
  • 原文地址:https://www.cnblogs.com/yhlx125/p/6599072.html
Copyright © 2011-2022 走看看