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函数:检查当前是否有键盘输入。

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

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

  • 相关阅读:
    (数据科学学习手札09)系统聚类算法Python与R的比较
    写完代码就去吃饺子|The 10th Henan Polytechnic University Programming Contest
    《四月物语》
    PAT(甲级)2017年春季考试
    PAT(甲级)2017年秋季考试
    2019年全国高校计算机能力挑战赛 C语言程序设计决赛
    CF#603 Div2
    redhat7 上安装dummynet
    cassandra 如何写数据以及放置副本
    Eclipse中设置VM参数
  • 原文地址:https://www.cnblogs.com/yhlx125/p/6599072.html
Copyright © 2011-2022 走看看