蛋皮のhome

从此唯行乐,闲愁奈我何。

ROS系列(四)——给roscore添加多个网段

在我的ROS环境中,在学习与测试ROS程序中,因为我是远程控制ROS主机,有时候会经常性切换网段来调试程序。后考虑到roscore目前只是设置的一个固定网段,但我想弄多个网段可以同时设置的roscore。

比如,正常情况下,假设我的一个网络的地址为192.168.18.64,我需要在主机的.bashrc的文件中写入以下两行配置(注意等号两边不能有空格):

ROS_MASTER_URI=http://192.168.18.64:11311
ROS_HOSTNAME=192.168.18.64

然后,当我还有另一个网络时候,网段地址为192.168.137.13,且两个网络都需要用同一个ROS的时候,这时候更改地址的话,那么原先更改好的192.168.18.64的网段就无法使用了。

这时候可以通过修改/etc/hosts文件内容来解决(需要root权限):

sudo vim /etc/hosts

打开文件后,按 i 键进入编辑模式,增加几个网段并取名为roshost,如下图所示

如上图,我已经将文件修改好,然后按 Esc 退出编辑模式,然后输入 :wq 并回车进行保存退出,然后在 .bashrc 文件中修改成如下:

ROS_MASTER_URI=http://roshost:11311
ROS_HOSTNAME=roshost

然后保存退出,执行 source .bashrc

再次运行roscore,运行成功,然后尝试运行ROS节点连接,也连接成功。这里就不配图了,各位自行尝试。

8月31日补充更新:

配置多网段会可能会出现话题或者结点未激活的情况!我的目前是ROS1 melodic的版本,其他版本暂未测试。问题主要体现在跨网段的话题发布与接收!所以如果在测试代码时请尽量在同一网段内测试!其他暂时未发现问题。如有遇到其他问题欢迎评论一起讨论。

发表评论

Your email address will not be published. Required fields are marked *.

*
*
You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>