ROS多机通信/在多台机器上使用ROS系统/多台电脑使用同一个主节点ROS master/ROS多机ssh通信

实现目标:当机器人运行后,在另外一台电脑(除了机器人自身电脑外)控制,监控机器人。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

最近经常有实验室同学问ROS多机通信,让帮忙配置,特别是需要在移动机器上做实验的时候。写在这里方便新手查阅。

因为移动机器人上面电脑往往没有显示屏,或者我们需要远程监控,因此需要在另外一台电脑上面监控机器人运行状态。

其实这里叫多机通信并不是很确切,通信是指另外的概念。这里更多是指多台电脑共用同一个ROS节点。

网上教程很多,但是实现目的不同,对于新手而言有点难搞,这里的实现步骤针对于文首提到的实现目标。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

(0)为两台电脑安装同步通信包及ssh服务

$sudo apt-get install chrony

$sudo apt-get install openssh-server

(1)两台电脑准备好后,在各自终端命令行查找本机IP。

$ ifconfig

记录得到的两个IP地址这里假设为:

机器人:192.168.1.101

监控机:192.168.1.102

(2)在./bashrc文件中添加配置信息。

机器人电脑中$sudo gedit ~/.bashrc

添加

ROS_MASTER_URI=http://192.168.1.101:11311

ROS_IP=http://192.168.1.101

监控电脑中$sudo gedit ~/.bashrc

添加

ROS_MASTER_URI=http://192.168.1.101:11311

ROS_IP=http://192.168.1.102

(3)配置完后source更新文件

$ source ./bashrc(两台电脑都要执行)

(4)获取主机名

$ hostname

这里假设为 机器人为:robot  监控机为:home

记录两台电脑主机名,如果复杂可以修改,修改方法自行百度

(5)使用ssh服务从机登录主机并控制主机

$ ssh [email protected]

确定提示内容,输入密码即可登录,登录后该terminal即为有主机权限的terminal可直接进行命令行操作

$ roscore

打开主机master,即为两台电脑共用的master,在该terminal下可实现对主次节点的开启和关闭

(6)从机订阅主机话题

$ rostopic list

查看主机节点话题

重开terminal,即为从机自身terminal可以订阅监视,同时在rviz可以订阅,也可以直接往话题发消息

你可能感兴趣的:(ROS多机通信/在多台机器上使用ROS系统/多台电脑使用同一个主节点ROS master/ROS多机ssh通信)