网络故障(network failure)是指由于硬件的问题、软件的漏洞、病毒的侵入等引起网络无法提供正常服务或降低服务质量的状态。 因为我们在使用ROS进行机器人开发的时候,比如调试智能汽车的时候,当硬件资源有限或者不能直接进行开发计算时,经常会配置主从机。 节点可以运行在不同的计算平台上,但在 ROS 中只允许一个 Master。在多机系统中,Master只能运行在一台机器上,其他机器需要通过SSH与Master取得联系。 以两台电脑为例介绍分布式多机通信的配置步骤:(主机:ucar_mini,从机:xiaolong-Inspiron-5580) 一、设置IP地址 1. 首先需要确保ROS多机系统中的所有计算机都在同一个网络上。 ifconfig 查看主机地址: ifconfig 查看从机地址: 2.在主机系统/etc目录下的hosts文件中添加从机的IP地址和对应的计算机名: 在从系统/etc目录下的hosts文件中添加主机的IP地址和对应的计算机名: 3.设置好后,在两台电脑上用ping命令测试网络是否连通。 下图显示双向网络畅通无阻,说明底层网络通信没有问题。 (可以ping后加IP或名字) 二、设置 ROS_MASTER_URI 因为系统中只能有一个Master,所以Slave需要知道Master的位置。 在slave隐藏的.bashrc文件(ctrl+h打开)中添加如下内容: ROS_HOSTNAME 添加从机地址; ROS_MASTER_URI 添加主机地址。 三、多机通信测试 1.我们可以通过ssh切换到host端来控制slave上的host。 2.在host端启动master和小龟节点,在slave端启动keyboard节点进行控制。 (这时候你可能会因为电脑性能的影响,发现数据传输慢或者控制效果差) 四、expansion 当我们汽车主板的计算资源不是很好的时候,我们可以用这个ssh在主机上启动master,在slave上进行各种计算,rviz可视化等(当然我们的multi -计算机通信不限于两台计算机设备)。同时,我们还可以通过NFS和VNC进行远程调试。 参考本文内容: 《ROS机器人开发实践》-胡春旭 如有错误或不足,欢迎留言指正!
当今,越来越多的业务应用运行于网络架构之上,保障网络的持续、高效、安全的运行,成为网络管理者面临的巨大挑战。 |
温馨提示:喜欢本站的话,请收藏一下本站!