ROS主从机通讯

时间:2022-11-18 22:56:37


目录

​​1.查看IP地址​​

​​2.分别给两台电脑设置静态IP​​

​​3.修改.bashrc​​

​​4.测试​​

​​5.不同版本ROS通讯​​


今天学习使用一下ros的主从机通讯功能。

本人使用一台pc机上的虚拟机ubuntu16.04的ros kinetic和rk3328开发板上ubuntu16.04 ros kinetic学习并完成主从机通讯实验。

1.查看IP地址

PC机如下图(已经查看了ip):

计算机名:zhitong

IP地址:192.168.191.4

ROS主从机通讯

rk3328开发板如下图(通过vnc软件打开,已经查看ip地址):

计算机名:firefly

IP地址:192.168.191.2

ROS主从机通讯

2.分别给两台电脑设置静态IP

这一节看这里:​​ubuntu 16.04配置固定IP地址​​

3.修改.bashrc

gedit ~/.bashrc

两台ros主机都要修改,需要在末尾添加几行代码。

主机:

export ROS_MASTER_URI=http://主机IP:11311
export ROS_HOSTNAME=主机IP

如下图:

ROS主从机通讯

从机:

export ROS_MASTER_URI=http://主机IP:11311
export ROS_HOSTNAME=从机IP

如下图:

ROS主从机通讯

4.测试

主机:

roscore
rosrun turtlesim turtlesim_node

如下图:

ROS主从机通讯

从机:

rosrun turtlesim turtle_teleop_key

如下图所示,可以看到我用从机的turtle_teleop_key工具控制了主机上小乌龟运动。

ROS主从机通讯

成功!

5.不同版本ROS通讯

修改hosts文件添加本地DNS主机IP解析:

sudo gedit /etc/hosts

添加IP和主机名,主机需要添加自己和所有ROS从机IP和设备信息,从机只需要添加自身和主机IP和设备信息即可。如下图:

ROS主从机通讯

hosts文件配置之后,需要配置.basrrc文件。在不同的ROS版本间通讯时,需要修改rk3328文件夹位置位root文件夹下的.bashrc文件。

打开.bashrc文件:

sudo gedit ~/.bashrc

 添加如下内容:

Master: export ROS_HOSTNAME=主机名称
Slaver: export ROS_HOSTNAME=客机名称
export ROS_MASTER_URI=http://主机名称:11311

 更改之后记得source生效,如下图:

ROS主从机通讯