ROS中的ROS_MASTER_URI环境变量解析

2023-05-16

ROS_MASTER_URI=http://localhost:11311中的ROS_MASTER_URI是什么呢?

URI是什么呢?查阅百度百科可知:

URI(Uniform Resource Identifier,统一资源标识符)就是在IMS网络中IMS用户的“名字”,也就是IMS用户的身份标识。别的不管,反正就是个标识。

查阅别人的博文如下:

如果需要远程链接,
需要在远程服务器将ROS_MASTER_URI变为启动roscore的地址,即master地址
比如export ROS_MASTER_URI=http://192.168.1.4:11311
设定master地址之后,启动服务的时候,发现在master服务器上执行rosnode list可见这个服务,但是调用其服务,不能链接。
所以在远程机器上的环境变量还需要添加远程服务器自己的IP(否则默认是主机名,但master根据主机名找不到远程服务器)
所以说,当用电脑A用ROS操作系统控制机器人(B,C,D)时,此时的ROS_MASTER_URI是主机地址,也就是电脑A,不是机器人B,机器人C,机器人D。

那么为什么有了IP地址还需要主机名呢?

查阅百度可知:

ip地址等于身份证号,主机名等于姓名,身份证号是独一无二的

就像身份证,主机名就是你的姓名,让别人可以看到并知道你是谁~P地址就像是身份证号,别人喊你不可能喊你的身份证号吧?其他电脑要识别你只能是通过IP地址。其实就是主机名是让其他用电脑的人能知道你是谁?IP地址是让其他的电脑知道你在哪里

实际上不管是IP地址还是主机名都是为了标识一台主机或者服务器。IP地址就是一台主机上网时网络给它的一个地址。主机名就相当于又给这台机器取了个名字。你可以取各种各样的名字,如果你要用这个名字去访问这台主机,系统怎么通过这个名字去识别一台主机呢?那么就需要我们配置他们之间的对应关系。配置对应关系在/etc/hosts中配置。在文件中按照对应格式添加IP地址和主机名:比如:192.168.74.134 hostname。

因为要实现各个机器都能够互相识别,所以就要在各个机器上都配置所有节点的主机名和IP之间的对应关系。主机名可以解析为IP地址,IP地址也可以解析为相应的主机名

下面将详述具体的配置过程:

首先在终端中查看本机的IP:

$ifconfig

在这里插入图片描述

下拉显示的内容,找到Inet addr,如下图所示,我的ip地址为10.16.106.127

然后

vim ~/.bashrc

在最后添加

export ROS_HOSTNAME=你的hostname

export ROS_MASTER_URI=http://(你想要设置为主机的IP):11311

export ROS_IP=192.168.3.10 (本机的IP)

下面将解释上面三行代码:

上面三行代码的export的作用是导入全局变量,因为ROS_HOSTNAME是ROS的全局环境变量,在脚本文件.bashrc中不能直接使用它们,必须得使用export将全局变量导入才能使用它们。

注意,在这里的ROS_MASTER_URI要设置为你想要当作主机的IP,主机从机这里要设置为一致的IP,另外最好加上ROS_IP。
那么对于主机的的.bashrc上面应该设置为:

export    ROS_HOSTNAME=主机的hostname

export    ROS_MASTER_URI=主机的IP:11311(也就是说11311是固定的)

export    ROS_IP=主机的IP地址

那么对于从机的.bashrc上面应该设置为:

export   ROS_HOSTNAME=从机的hostname

export   ROS_MASTER_URI=主机的IP:11311

export   ROS_IP=从机的IP地址

同样的,在主机上修改 /etc/hosts 文件,加入从机的ip及hostname。

第四步:告诉ROS系统,谁才是老大!
分别在主机和从机上使用vim或其他编辑器修改 ~/.bashrc 文件,在末尾加上

export ROS_HOSTNAME=SLAM
exprot ROS_MASTER_URI=http://10.10.40.174:11311

转载自:https://blog.csdn.net/lisfaf/article/details/90444541

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ROS中的ROS_MASTER_URI环境变量解析 的相关文章

  • 嵌入式培训课程怎么学?嵌入式培训课程哪个好?

    嵌入式系统可以说是当前热门 有发展前景的IT应用领域之一 xff0c 包括手机 电子字典 可视电话 数字相机 数字摄像机 机顶盒 智能玩具医疗仪器和航空航天设备等都是典型的嵌入式系统 xff0c 国内的嵌入式人才极度匮乏 xff0c 据权威
  • 嵌入式培训学校哪个好?嵌入式培训如何学

    嵌入式系统是当前热门 具发展前景的IT应用领域之一 嵌入式开发工程师是当下较热门的一个软件开发的职业 xff0c 目前嵌入式人才匮乏 xff0c 一些权威部门统计 xff0c 我国目前嵌入式软件人才缺口每年为50万人左右 xff0c 嵌入式
  • 嵌入式linux学习路线,嵌入式开发视频教程

    Linux 是一个开源 免费的操作系统 xff0c 主要应用于服务器 xff08 网站服务器 云计算集群 DNS 等 xff09 和嵌入式 xff0c 同时也被很多程序员用作个人操作系统 Linux 使用 GPL 许可证 xff0c 允许任
  • rviz联合gazebo控制机械臂的运动【3】

    文章目录 前言 一 修改配置文件 二 依赖包的安装 三 下载gazebo接口功能包 四 仿真效果 总结 前言 在第2篇文章中已经介绍了如何配置moveit文件 本文将使用配置的moveit文件进行rviz联合gazebo的仿真 如果不清楚通
  • 什么是传感器融合?我们从“盲人摸象”讲起……

    来源 xff1a 传感器专家网 今天 xff0c 我们的生活高度依赖传感器 传感器作为人类 五感 的延伸 xff0c 去感知这个世界 xff0c 甚至可以观察到我们人体感知不到的细节 xff0c 这种能力也是未来智能化社会所必须的 不过 x
  • 人工智能在医疗领域的应用

    随着人工智能技术的不断发展 xff0c 越来越多的领域开始应用人工智能技术 xff0c 其中医疗领域是一个非常重要的应用领域 人工智能技术可以帮助医疗行业提高效率 降低成本 提高诊断准确率等方面 xff0c 下面我们来看看人工智能在医疗领域
  • Linux系统编程学习笔记(六) 内存管理

    内存管理 xff1a 对于一个进程来说 xff0c 内存是最基本的也是最重要的资源之一 内存管理包括 xff1a 内存分配 内存操作和内存释放 1 进程地址空间 xff1a Linux将物理内存虚拟化 xff0c 内核为每一个进程维护一个特
  • Ubuntu 网络调试助手mNetAssist安装

    参考 xff1a Ubuntu下网络调试助手 NetAssist Linux TCP UDP调试助手下载安装 xff08 转载备忘 xff09 解决 E Package libqtgui4 has no installation candi
  • 匿名拓空者2四轴飞控程序标志位说明

    匿名四轴飞控程序标志位说明 标志位太多了 xff0c 我想把它们都理一下 xff0c 可能理不全 xff0c 我尽量 span class token keyword typedef span span class token keywor
  • 【CMake】CMake 编译选项设置

    CMake CMake 编译选项设置 在CMakeLists txt中可以通过修改CMake内置的环境变量来改变C或C 43 43 的编译选项 编译选项相关的CMake 变量如下 xff1a CMAKE C FLAGS span class
  • 树莓派4b开启vnc和无法连接解决方法

    树莓派4b开启vnc vnc开启 通过ssh连接到树莓派后运行如下命令 打开命令行 xff0c 输入 sudo raspi config xff0c 打开树莓派软件设置工具 选择 3 Interfacing Options 选择 I3 VN
  • Java中this的四种用法

    最近在学习代理模式的时候 xff0c 遇到了一个这样的this用法 xff0c 一下子把我搞懵了 xff0c 后面看了狂神的视频就理解了 xff0c 因此这里再巩固一下java基础 this的用法 xff01 在我使用jdk的动态代理时 x
  • 云服务器 nginx 部署多个Vue项目

    本篇文章不提供如何在服务器上安装nginx以及Vue打包 xff0c 相关内容请参考我另外一篇文章 xff1a 将Vue项目部署到服务器 注 xff1a 我的Vue cli版本为4 5 43 xff0c 如果不是4 43 的版本 xff0c
  • ubuntu修改apt为国内镜像源

    备份旧的源 span class token function sudo span span class token function cp span etc apt sources list etc apt sources list ba
  • 年度最理性 AI 分析文章:预测 AI 未来,大部分人陷入了 7 大误区

    来源 xff1a 36氪 概要 xff1a 错误的预测会导致大家对不会发生的事情感到恐惧 为什么在人工智能和机器人的预测上总有人不断犯错呢 xff1f 想着预测未来 xff0c 却一不小心就陷入了yy 近年来图像识别突破 Waymo无人车上
  • ESP8266-01S与PC通过网络助手的测试的AT指令

    这阵子在学esp8266 43 stm32的知识 xff0c 从小白学起 xff0c 一步一步记录着 工具 xff1a TTL usb xff0c esp8266 01s xff0c 杜邦线 xff0c xcom串口助手 如图 xff1a
  • 远程登录Linux时 mobaxterm出现连接超时

    远程登录Linux时 mobaxterm出现连接超时 问题描述 xff1a 远程登录Linux时 mobaxterm出现连接超时 解决办法 xff1a 第一步 xff1a 打开虚拟机 编辑 虚拟网络编辑器 VMnet8 NAT设置 记住子网
  • g2o的 cmakelists.txt编写问题

    slam 14讲ch6的g2o代码报错 xff1a CMakeFiles span class token operator span g2oCurveFitting span class token punctuation span di
  • apt-get命令详解

    apt 1 2 32ubuntu0 2 amd64 用法 xff1a apt get 选项 命令 apt get 选项 install remove 软件包1 软件包2 apt get 选项 source 软件包1 软件包2 apt get
  • 如何使用 datax 拉取 hive 中的数据到 oracle 中?

    需求 将 hive 中的数据拉取到 oracle 中 xff0c 使用的工具是 datax 步骤 1 先在 hive 中找一张需要拉取的表 xff0c 然后在 oracle 中创建对应的空表 xff0c 等待拉取数据 2 在 datax 的

随机推荐