在ROS的环境变量中,需要在~/.bashrc中设置的并不多(此处是指在wiki的基本教程中出现的,大牛请无视),大概只有三个:
$ROS_MASTER_URI
$ROS_HOSTNAME
$ROS_IP
这三个是出现频率最高的。
$ROS_MASTER_URI比较好理解,就是整个ROS系统的主机的IP网址。注意是网址:

export ROS_MASTER_URI=http://192.168.8.101:11311

看见没,带http的!

而下面两个$ROS_HOSTNAME$ROS_IP 着实让我绕了好久。因为就是不知道改了哪里,roscore就进不去了。。。
所以下面一点点的实验:
实验为单机运行,也就是运行本机上的ROSCORE,先不涉及分布式配置。
本机的hostname为robin,IP为192.168.0.12

1、/etc/hosts中无添加内容,~/.bashrc中只有ROS_MASTER_URI:
/etc/hosts:


~/.bashrc:

export ROS_MASTER_URI=http://`hostname -I`:11311

OK,source后roscore一下,失败~!
看一下环境变量值:

robin@robin:~$ echo $ROS_MASTER_URI
http://192.168.0.12 :11311
robin@robin:~$ echo $ROS_HOSTNAMErobin@robin:~$ echo $ROS_IP

hostname和IP都是没有值的。

2、仅在~/.bashrc中添加$ROS_IP,etc/hosts不变:

export ROS_MASTER_URI=http://`hostname -I`:11311
export ROS_IP=`hostname -I`

source后roscore,成功了。

3、仅在~/.bashrc中添加$ROS_HOSTNAME,etc/hosts不变:

export ROS_MASTER_URI=http://`hostname -I`:11311
export ROS_HOSTNAME=`hostname`

source后roscore,失败!

4、将3的HOSTNAME不用robin名称,换成IP值的话呢?

export ROS_MASTER_URI=http://`hostname -I`:11311
export ROS_HOSTNAME=`hostname -I`

成功!

5、还是换成3的情况,然后修改/etc/hosts呢?
bashrc:

export ROS_MASTER_URI=http://`hostname -I`:11311
export ROS_HOSTNAME=`hostname`

hosts:

192.168.0.12    robin

成功!

6、hosts为空,bashrc全都有呢?

export ROS_MASTER_URI=http://`hostname -I`:11311
export ROS_HOSTNAME=`hostname`
export ROS_IP=`hostname -I`

失败!

7、hosts写上,bashrc也写全呢?

hosts:

192.168.0.12    robin

bashrc:

export ROS_MASTER_URI=http://`hostname -I`:11311
export ROS_HOSTNAME=`hostname`
export ROS_IP=`hostname -I`

成功!

饶了好久才发现这个文章:http://www.mamicode.com/info-detail-915039.html
其中最重要的是:

  1. ROS_IP/ROS_HOSTNAME
    ROS_IP和ROS_HOSTNAME是可选的环境变量,用来设置ROS节点或工具的公开网地址。这两个选项是互斥的,如果两者都设置优先使用ROS_HOSTNAME。如果你指定一个IP地址,使用ROS_IP;如果制定一个主机名(a host name),使用ROS_HOSTNAME。当一个ROS成员报告URI给master或者其他成员,这个值就会被用到。这个设置只用在一台计算机有多个地址,需要强制ROS到特定的一个的情况。
    除了’localhost’(本地主机),ROS成员绑定到所有可用的网络接口,他不影响实际绑定地址。如果这个值设定为本地主机,ROS成员只绑定在环回接口。这将会阻止远程成员与本地成员交流。

说的直白一点就是,hostname的优先级要比IP的优先级高,设定了hostname就以hostname为准,不在管后面是否还有IP的设置。实验6失败,实验7成功,实验5成功。
这里的hostname设置又因为etc配置的原因,如果直接写上IP(hostname - I 实验4成功)就用这个IP了,没hosts什么事。但是若用名称的话(hostname 实验3失败,实验5成功),就需要在hosts中设置name的IP,不然会因为找不到名称的IP而启动不成功。
假若没有设置ROS_HOSTNAME的话,才会去寻找$ROS_IP 实验2成功,这个就比较直接了,直接就是IP地址。
如果两个都没有的话,实验1 的结果就是不成功。所以还是需要有一个的。

主从机的分布式配置后面再写,有了上面的思路,应该好写

ros_hostname与ros_ip相关推荐

  1. ros 中的环境变量 ROS_MASTER_URI 和 ROS_HOSTNAME 两三事

    事件背景.我再同一个物理机上开了两个docker,一个docker负责维护 master 和 一些服务,另一个docker负责调用那些服务.那环境变量应该如何设置? 其实问题就是,多系统的ros应该如 ...

  2. Baxter工作站建立及简单使用

    1.硬件 1个 Baxter Research Robot 1台PC机或笔记本,安装好Ubuntu系统(推荐Ubuntu16.04安装ROS kinetic) 1个无线路由器(千兆网口) 2根网线 2 ...

  3. ROS在MATLAB中的使用笔记

    文章目录 1. ROS环境变量设置 2. ROS初始化及常用指令 3. ROS消息的使用 基本消息的使用 ROS消息的进阶使用 自定义消息的使用 4. 订阅者和发布者的使用 订阅者的使用 发布者的使用 ...

  4. 在Windows环境下Webots与Ros的联合仿真

    系统环境:Win11专业版 21H2   WSL2+Ubuntu18.04+ROS melodic 软件版本:WebotsR2020a rev1 前言 工作原因需要在Windows环境下进行开发,而代 ...

  5. ROS_IP选用WIFI(无线局域网)网段,当wifi连接断开,出现Master崩溃

    ROS环境变量ROS_IP的真正含义 根据此博客解释,当一个作为Master的主机具有多个网口时,我们可以使用ROS_IP来指定指定网卡作为通讯链路. 注意: 当一个作为Master的主机具有多个网口 ...

  6. ROS_MASTER_URI和ROS_IP的作用

    ROS_MASTER_URI和ROS_IP的作用 URI(Uniform Resource Identifier,统一资源标识符)就是在IMS网络中IMS用户的"名字",也就是IM ...

  7. ROS_MASTER_URI和ROS_IP的设置

    首先确保主机与从机连接于同一个wifi 主机ip:192.168.1.9 从机ip:192.168.1.7 主机的~/.bashrc文件加入: export ROS_MASTER_URI=http:/ ...

  8. 笔记本控制机器人方法

    1.问题描述 最近在搞ros小车,我想将笔记本电脑通过ssh连接上车载电脑,从而在笔记本上控制小车,其实这也就是主从机的配置问题,但是当我执行roslaunch art_racecar rviz.la ...

  9. 运行roscore时候报错 Unable to contact my own server at 及 小海龟动不了的问题

    运行roscore时候报错 Unable to contact my own server at 记起曾经无知的时候跟着某个步骤(以下)来了一发这样的操作,把我的ROS_MASTER_URI设置成指定 ...

最新文章

  1. java中文件操作的工具类
  2. Qt 设置窗体或控件渐变消失
  3. 10.搭建vs2010+Qt4.8.5+QtCreator3.4.0开发环境
  4. 不说“安全”俩字,如何证明自己是做安全的?
  5. 2017/9/5的学习内容___Python装饰器的应用
  6. CMU Bomblab 答案
  7. 链栈的基本操作和实现
  8. RadSegNet: 一个稳定的雷达摄像头融合方法(2022最新)
  9. 大型网站技术架构 读书笔记2 核心架构要素
  10. SQL Server2008详细安装步骤(超详细步骤)
  11. java getbytes 不一样_(透彻)java String.getBytes()编码问题
  12. 苹果iphone手机蓝牙自动打开故障怎么解决
  13. 只是浅谈MS SQL Server的Page Splits运作原理
  14. Ubuntu18.04图标显示实时网速
  15. 干货|科技赋能财富硬核直播带货,助力宜信财富逆势增长
  16. 2873-36-1,Gancidin W,CYCLO(L-LEU-L-PRO),cyclo-L-Leu-L-Pro,环(L-脯氨酰-L-亮氨酰)
  17. 耶鲁大学的心态 ,送给正在奋斗的人!
  18. 石英晶体谐振器主要参数
  19. 高薪招聘量化研究员/c++开发/机器学习等
  20. 关于Centos安装后无法联网的解决方案(命令行模式)

热门文章

  1. word脚注:文字与分隔符间的空格删除
  2. 不用熬夜了,买菜 App 抢菜插件开源!
  3. 聊聊互联网平台的四个效应
  4. [洛谷]P1234 小A的口头禅 (#模拟)
  5. 【机器学习】横向联邦学习纵向联邦学习区别
  6. markdown-Emoji
  7. Sophos防火墙v18版本访问内部服务器或者电脑SNAT地址转换的问题解决办法
  8. 营销之外,太二由“酸菜鱼”变身“捞金鱼”还缺什么?
  9. 2022电大国家开放大学网上形考任务-简明创新方法非免费(非答案)
  10. 内网渗透笔记——二层发现