问题说明:两个工控机若是需要共享topic,一般操作是设计一个UDP或者TCP传输信息,这个过程增加了大量的时间,不仅如此,还需要考虑网络延时等。
解决方法:通过主从机设置,可以使用副工控机订阅主工控机里所有的消息、数据,不需要再通过通讯协议作为中间的传输链路,硬件配置见图1。
图1 硬件连接
步骤1:查看两台工控机的id
本文主工控机192.168.8.5,副工控机为192.168.8.4.
步骤2:设置主从机,更改gedit ~/.bashrc文件
在.bashrc文件文件里修改两行为:(见图2)
export ROS_MASTER_URI=http://192.168.8.5:11311
export ROS_HOSTNAME=user//主机名
图2 添加两行代码
步骤3:source ~/.bashrc完成这步就ok啦,副工控机就可以订阅主工控机的话题和传感器数据了。
PS:
1.上述的两行代码中千万不能有空格,笔者踩了坑,不管是中文还是英文的空格都不能有,有了之后就会报错。
2.从机要想运行ros程序,必须主机先启动launch或者roscore
3.修改完主从机,记得source一下~/.bashrc,完成后,运行主从机程序(launch文件)依旧报错的话,需要重启主机或从机。