ROS学习十三、多机ROS通信
前言
- 前言
- 多机设置
- 问题1:默认使用多机通信
- 问题2:设置多机通信后主机无法roscore
- 问题3:设置后,仍然找不到共同rosnode或rostopic
本篇记录ROS的多机通信方法。
如果想把无人机端接收到的图像数据发送到PC端,就可以通过ROS多机通信进行。
多机设置首先多机都必须在同一个局域网下,比如无人机IP
为192.168.1.133
,PC端IP
为192.168.1.166
确定一个ROS主机,这里以PC作为主机,打开PC机的终端,输入:
# ROS主机地址
export ROS_MASTER_URI=http://192.168.1.166:11311
# 本机IP
export ROS_IP=192.168.1.166
无人机端作为从机,打开一个终端,输入:
# ROS主机地址
export ROS_MASTER_URI=http://192.168.1.166:11311
# 本机IP
export ROS_IP=192.168.133.1
然后,随意在主机或者从机上运行一个ROS节点,在另一台机器上运行rosnode list
,就能看到该节点了。
上面的方案每次打开一个新的终端都要重新export
,比较麻烦,可以把上面的命令分别写到主机和从机的.bashrc
中
如果主机设置了ROS_MASTER_URI
,但没有运行在这个IP
上时,roscore
会无法使用。解决方法:
unset ROS_MASTER_URI
问题3:设置后,仍然找不到共同rosnode或rostopic
主从机之间相互ping
一下对方,一般是由于局域网IP不在同一网段造成的。