在搭建机器人为了能够实现多机通信或者主机控制多从机节点运行,一般服务器或电脑控制终端可以作为主机,主机主要运行算法 数据处理等比较复杂任务,而从机节点主要负责采集各种传感器的环境数据,这里的主机就是ROS中要运行Master节点终端。本文所述的从机为树莓派,主机为笔记本电脑。
1.在主机和从机终端输入如下命令获取主从机节点名称
hostname
在主机节点中输入hostname,得到主机的名称为fairy-pc
在从机节点中输入hostname,得到从机的名词为ubuntu
2.在主机和从机终端输入如下命令获取主从机IP地址
得到主机的IP地址为192.168.0.104,从机的IP地址为192.168.0.102
3.打开主从机的hosts文件,在hosts文件中加入彼此的IP地址和对应的计算机名
sudo gedit /etc/hosts
分别向主从机的hosts文件中加入以下内容:
192.168.0.102 ubuntu
192.168.0.104 fairy-pc
4.需要对主从机的环境变量进行配置
sudo gedit ~/.bashrc
主机节点的.bashrc文件末尾加入以下内容:
export ROS_MASTER_URI=http://fairy-pc:11311
export ROS_HOSTNAME=fairy-pc
同样在从机节点的.bashrc文件末尾加入以下内容
export ROS_MASTER_URI=http://fairy-pc:11311
export ROS_HOSTNAME=ubuntu
5.设置完成之后重启网络或重新开机
sudo /etc/init.d/networking restart
6.在主机从机终端上互相ping
主机终端
ping ubuntu
如果出现以下信息说明主机到从机的网络是设置成功
同样在从机终端上ping fairy-pc,也可以看到该信息,至此主从节点设置成功
6.在主机节点上启动ROS
roscore
这时在从机节点和主机节点上都可以看到ROS的消息
在主从机节点的终端中输入:rostopic list 都可看到ROS信息,主机节点可以向从机节点发送ROS消息,从机节点也可以向主机节点发送ROS消息,现实了主从机通信。