ROS1环境
匹配机器人和笔记本电脑的网络
让笔记本电脑和机器人内部的机载电脑连上相同的局域网络。
下面分别配置电脑和机载电脑的/etc/hosts 文件
使用hostname 分别查看笔记本电脑和机载电脑板的系统主机名。
使用ifconfig 分别查看笔记本电脑和机载电脑的IP地址。
使用sudo vim /etc/hosts打开电脑的/etc/hosts文件,添加机载电脑的主机名和IP地址。
完成的效果如下:
1 | 127.0.0.1 localhost |
my_robot 为机载电脑的主机名(由hostname命令获取)
同样的,在机载电脑上也修改/etc/hosts 文件,添加笔记本电脑的主机名和IP地址。效果如下:
1 | 127.0.0.1 localhost |
my_laptop 为笔记本电脑的主机名(由hostname命令获取)
告诉笔记本电脑ROS_MASTER的位置
在笔记本电脑上打开一个命令窗口,输入下面的命令配置ROS_MASTER_URI。
1 | export ROS_MASTER_URI="http://192.168.10.87:11311" #其中192.168.10.87为机器人电脑的ip地址 |
这样运行完后,在该命令窗口打开Rviz就可以接收到机器人端的状态数据并在Rviz上显示了。
PS:如果想直观地远程打开机器人电脑中的文件,可以使用Ubuntu文件窗口(Connect to Server)访问机载电脑上的文件。

Server address 的地址按下面的形式来写:
1 | sftp://root@192.168.1.15/usr |
ROS2环境
ROS2中通信的中间件与ROS1不一样了。ROS2的通信网络有自探索功能,不需要ROS1环境下的那些配置了。
但是需要确保笔记本电脑上的ROS_DOMAIN_ID和机器人电脑上的ROS_DOMAIN_ID要一致。
ROS_DOMAIN_ID可以用来区别同一个局域网络中的不同机器人。只用ROS_DOMAIN_ID相同的机器人才能互相通信。
默认情况下,ROS_DOMAIN_ID是0。
因为一些原因,ROS_DOMAIN_ID通常在1~101选择是比较保险的。
更多关于ROS_DOMAIN_ID的解释,请参考下面的文章:
https://docs.ros.org/en/galactic/Concepts/About-Domain-ID.html
觉得有用就点赞吧!
我是首飞,一个帮大家填坑的机器人开发攻城狮。
另外在公众号《首飞》内回复“机器人”获取精心推荐的C/C++,Python,Docker,Qt,ROS1/2等机器人行业常用技术资料。
