我们目前正在设计一种移动机器人+安装有多个受控自由度和传感器的手臂。
我正在考虑将架构分为两个部分:
一组实时控制器(运行Xenomai之类的RTOS的Raspeberry Pis或裸机微控制器)来控制机械臂电机和编码器。让我们称这些机器为RTx,x = 1,2,3…取决于微控制器的数量。该控制环路将以200Hz运行。
功能强大的香草linux机器,运行ROS来计算SLAM,mocap和执行高级逻辑(确定机器人的任务并计算电动机的所需位置和速度)。该控制环路将以30Hz运行。
我知道我的框架需要可扩展,以容纳更多的电机,更多的传感器,更多的PC(例如,用于外部Mocap)。
我的主要问题是决定如何使不同的RTx与PC1通信。我看过与机器人体系结构(例如HRP2)有关的论文,大多数情况下它们描述了高层控制体系结构,但是我还没有找到有关如何使高层与高层进行可扩展通信的信息。我错过了什么?
为了连接快速RT机器以确保通过PC1进行电机控制,我考虑了TCP / IP,CAN和UART:
- TCP / IP:不确定,但易于部署。非确定性是一个现实问题吗(因为无论如何它只会在30Hz的低速下使用)?
- CAN:速度慢,非常可靠,以汽车为目标(已经看到有一些示例将CAN与机器人配合使用,但看起来很奇怪)
- UART:如果我只有一台用于电机控制的RT机器,我会考虑使用UART,但是我猜想该端口不能很好地与许多RTx配合使用。由于TCP / IP的不确定性,TCP / IP真的不可行吗?它是如此易于使用...
目前,没有任何解决方案对我来说真的很明显。而且由于找不到使用可靠且可扩展的特定解决方案的严肃的机器人示例,因此我没有做出选择的信心。
有没有人对此观点或文献有明确的看法?机器人上是否使用典型或主流的通信解决方案?