使用 c++ 在机器人中进行实时编程
Real time programming in robotics with c++
我正在用C++和OpenCV做一个机器人项目。在此步骤中,我遇到了一个问题,其中包括:
我有两个方法moveRight()
和moveLeft()
,我在代码中连续调用,但问题是第二个没有运行,因为第一个需要时间(机器人运动的时间),但是当我在它们之间放Sleep(5000)
时(我猜五秒钟就足够运动了), 一切都很好。
什么是避免使用Sleep
的编程解决方案(因为它会产生一些其他问题)?
您可以尝试添加间接层。添加要执行的操作队列,将操作排队到 moveLeft 和 moveRight,并在其他位置(不同的线程)通过等待上一个操作完成,然后再执行下一个操作来正确执行队列中的操作。理想情况下,您需要一种方法来检查操作是否已完成,以便您可以以基于事件的方式对其进行编码。
你永远不应该在机器人技术中"猜测"。你应该知道,测量你的移动需要多长时间,并在你的代码中使用它。例如,经常调用moveRight()
并让它检查它已经运行了多长时间。让它在运行时返回true
,并将其用作调用moveLeft()
您可以使用计时器,并在执行 MoveRight() 时将计时器设置为 5 秒,并在计时器结束后执行 Moveleft()。
相关文章:
- 有一个打印语句的函数是一种糟糕的编程实践吗
- 我是C++编程的新手,这些代码之间有什么区别,我应该使用哪一个
- 从数据库实时显示QT c++中的数据
- 模板元编程:如何将参数包组合成新的参数包
- Qt Q串行端口未编程设备未关闭
- 模板元编程 - 尝试实现维度分析
- 我是编程新手
- 在 Windows 8/10 技术中完全实时的屏幕捕获,没有延迟
- 有没有办法使用 c++ 实时阅读文本?
- 在本地网络中通过OpenCV(C++)实时流式传输图像
- C++编程从外部文本文件定义数组大小
- 了解算法的性能差异(如果以不同的编程语言实现)
- 将相机数据从服务器实时流式传输到客户端
- 使用 Gtkmm 以编程方式选择 Gtk::TextView 中的文本
- 如何将可变参数模板转换为多个单个模板?(C++竞争编程调试模板)
- 使用 c++ 在机器人中进行实时编程
- 分形编程-任何优化此代码以实现实时渲染的方法
- 用于实时编程的低级C/C++网络概念
- 在安卓上进行实时图形编程的最佳语言是什么?
- 实时C编程示例