[英]Message-based machine control pattern similar to ROS
如果我在单台计算机上运行单个应用程序,但希望运行多个异步线程并相互通信以控制机器或机器人的复杂行为,那将是什么软件设计模式?
我特别在寻找类似于机器人操作系统(ROS)的东西,但更多的是在 c# 的单个库的上下文中,它处理消息或“消息总线”。 这些东西似乎有很多重叠的术语。
我本质上是在寻找一种本地分布式节点架构的软件实现,该架构相互通信的方式与汽车 CAN 总线上的节点以分布式方式执行复杂行为的方式相同。
谢谢
你的问题有很多歧义。 如果您有一个应用程序(读取单个进程),那么这与分布式节点架构不同。
对于具有多个异步线程的单个应用程序
ROS 并不是实现这一目标的最佳工具。 ROS 使用 TCP 或共享 memory 促进节点之间的通信,进程内的通信都不需要这两者。
对于分布式节点
ROS 可以是一个很好的工具,但你需要了解它的局限性。 首先,ROS 不保证任何实时能力。 当然可以通过使用 nodelets(共享内存)来提高性能,但同样不能保证时间。 其次,ROS 并不是真正分布式的。 它仍然需要一个 ROS Master 作为主注册表。
我建议你可能想看看下面使用 DDS 的 ROS2。 ROS2 具有分布式架构,您可以自由定义您的 QoS 参数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.