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等机器人行业常用技术资料。