机器人控制的并行编程

时间:2012-02-28 14:20:58

标签: controls parallel-processing robotics

我需要编写一个程序,它可以同时完成2个任务,以提高效率。反响很快。例如,第一项任务是从摄像机和摄像机获取视觉数据。处理它。

第二个任务是,从第一个任务接收处理过的数据&做这个数据(机器人控制策略)。但是,在执行机器人控制任务时,摄像机数据接收仍应正常工作。

在C ++ / C#中是否有针对此类编程的解决方案?我正在学习TBB,这是正确的选择吗?但是,我正在阅读“循环并行化”之类的东西,我是否朝着正确的方向前进?

这与控制编程中非常常见的风格有关,其中计算机用作连接电子设备(传感器)和电子设备的中央单元。执行器和所有这些设备同时处理

2 个答案:

答案 0 :(得分:2)

不,你的循环并行示例是使用并行编程来加速计算一组数据的结果。

您需要的是多任务处理。你没有提到任何目标架构。假设这将是一个嵌入式系统,如微处理器,您有几种选择。有一些嵌入式微操作系统,如VXworks和uC-OS,可以让您完成您的要求。这些允许您设置多个同时运行的“任务”。当然,对于一个CPU来说,真正的并发是不可能的,但是对于像你所描述的准实时系统,这些操作系统中的调度程序被设计得非常具有确定性。

答案 1 :(得分:0)

听起来不错! TBB OK,C#有很多有用的线程池等。只有一件事,如果你之前没有做过这样的事情 - 那就是数据,而不是代码。如果你正确地设计数据流,代码就会自己编写,(好吧,不是真的:)。