当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
- 在PC(虚拟机)测试topic列表是否正常显示
rostopic list
这时候显示topic列表,说明PC与主控ROS_MASTA建立起通讯了
- 在PC(虚拟机)启动小海龟的窗口
rosrun turtlesim turtlesim_node
现在界面显示出小乌龟
- 在PC(虚拟机)开启键盘对海龟的控制
rosrun turtlesim turtle_teleop_key
现在可以使用键盘上下左右控制小乌龟运行,ROS的多机配置完毕!