ROS学习十三、多机ROS通信

ROS学习十三、多机ROS通信

  • 前言
  • 多机设置
  • 问题1:默认使用多机通信
  • 问题2:设置多机通信后主机无法roscore
  • 问题3:设置后,仍然找不到共同rosnode或rostopic

前言

本篇记录ROS的多机通信方法。

如果想把无人机端接收到的图像数据发送到PC端,就可以通过ROS多机通信进行。

多机设置

首先多机都必须在同一个局域网下,比如无人机IP192.168.1.133,PC端IP192.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,就能看到该节点了。

问题1:默认使用多机通信

上面的方案每次打开一个新的终端都要重新export,比较麻烦,可以把上面的命令分别写到主机和从机的.bashrc

问题2:设置多机通信后主机无法roscore

如果主机设置了ROS_MASTER_URI,但没有运行在这个IP上时,roscore会无法使用。解决方法:

unset ROS_MASTER_URI

问题3:设置后,仍然找不到共同rosnode或rostopic

主从机之间相互ping一下对方,一般是由于局域网IP不在同一网段造成的。

你可能感兴趣的:(机器人操作系统,ROS,学习,自动驾驶,人工智能)