ROS基础 4 | ROS多机通讯的配置

当ROS运行后想在自己的虚拟机或另外一台电脑控制机器人的时候需要使用多机通讯,特别是机器人在移动的时候。
在机器人上的ROS主控设备节点是MASTA主节点,通过远程ROS节点可看到主控节点设备信息,例如扫描地图等。

注意:主控的IP与虚拟机一定要在同一网段

查找当前设备ip地址

输入 ‘ifconfig’ 可以查找本地IP地址

假设两个设备地址
PC 节点 – IP:192.168.1.100 假定为 PC_IP
主控节点 – IP:192.168.1.200 假定为 MASTER_IP

这个时候检测两个网络是否可以互通可以使用’ping’命令,”ping <对方IP地址>”

在PC节点操作:

ping MASTER_IP

在主控节点操作:

ping PC_IP

一般返回 64 bytes from 192.168.1.100: icmp_seq=1 ttl=64 time=5.84 ms
如果出现time= xx ms即可

配置bashrc

通过我们的一键安装一般都不需要配置主控节点

使用VIM编辑.bashrc文件

sudo vim ~/.bashrc

主控节点配置如下:

export ROS_MASTER_URI=http://MASTER_IP:11311
export ROS_HOSTNAME=MASTER_IP

PC节点配置如下:

export ROS_MASTER_URI=http://MASTER_IP:11311
export ROS_HOSTNAME=PC_IP

配置完成后需要souce才能成功

source ~/.bashrc

LINGAO实际配置

实际上bashrc配置如下

ROS主控(树莓派等)

source /opt/ros/melodic/setup.bash
source /home/lingao/lingao_ws/devel/setup.bash

export ROS_IP=`hostname -I | awk '{print 1}'`
export ROS_HOSTNAME=`hostname -I | awk '{print1}'`
export ROS_MASTER_URI=http://`hostname -I | awk '{print $1}'`:11311
export LINGAOLIDAR=rplidar
export LINGAOBASE=LA_4WD_LingFeng

PC(控制主控)

source /opt/ros/melodic/setup.bash
source /home/lingao/lingao_ws/devel/setup.bash

export ROS_IP=`hostname -I | awk '{print 1}'`
export ROS_HOSTNAME=`hostname -I | awk '{print1}'`
export ROS_MASTER_URI=http://xxx.xxx.xx.xx:11311
export LINGAOLIDAR=rplidar
export LINGAOBASE=LA_4WD_LingFeng

注: xxx.xxx.xx.xx为ROS主控MASTER_IP地址,例如192.168.1.200
注: 配置完成后需要souce才能成功

source ~/.bashrc

测试配置是否正确

使用小海龟例程测试配置是否正确
1. 主控MASTA启动roscore命令:

roscore

  1. 在PC(虚拟机)测试topic列表是否正常显示
rostopic list


这时候显示topic列表,说明PC与主控ROS_MASTA建立起通讯了

  1. 在PC(虚拟机)启动小海龟的窗口
rosrun turtlesim turtlesim_node

现在界面显示出小乌龟

  1. 在PC(虚拟机)开启键盘对海龟的控制
rosrun turtlesim turtle_teleop_key


现在可以使用键盘上下左右控制小乌龟运行,ROS的多机配置完毕!

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。
ROS技术空间 » ROS基础 4 | ROS多机通讯的配置

发表评论

提供最优质的资源集合

立即查看 了解详情