首页 > 其他分享 >如何配置机器人ROS操作系统之间的有线和无线的局域网通信(基于ROS的主从通讯)

如何配置机器人ROS操作系统之间的有线和无线的局域网通信(基于ROS的主从通讯)

时间:2024-05-29 20:30:50浏览次数:20  
标签:主机 hostname 局域网 从机 hosts ROS 主从

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 1. 主从配置前的准备工作
    • (1) 查看主从机的hostname
    • (2) 查看各自主机和从机的IP
    • (3) 本教程的hostname和ip如下
  • 2. 在主机中的修改
    • (1) 修改主机的/.bashr文件
    • (2) 修改主机的hosts文件
  • 3. 在从机中的修改
    • (1) 修改从机的/.bashr文件
    • (2) 修改从机的hosts文件
  • 4. 运行ROS小乌龟测试
  • 总结


前言

在ROS中,主从通信是一种基于发布/订阅模式和服务调用的通信方式。通常,一个节点充当主节点,负责发布话题或提供服务,而其他节点则作为从节点,订阅话题或请求服务。主节点可以向特定话题发布消息,从节点可以订阅该话题以接收消息。同时,主节点也可以提供服务,而从节点可以请求该服务。这种通信方式使得不同节点之间可以进行灵活的数据交换和功能调用,从而实现机器人系统中的协同工作和信息传递。

1. 主从配置前的准备工作

(1) 查看主从机的hostname

分别在各自主机和从机中,打开终端输入:

 hostname

如下图所示,hostname为chen:

**差个图**

(2) 查看各自主机和从机的IP

分别在各自主机和从机中,打开终端输入:

ifconfig

(3) 本教程的hostname和ip如下

   主机的hostname和ip:   chen             192.168.1.200 
   从机的hostname和ip:   desktop    192.168.1.106

注意:这连接的ip和网线连接设置里的一样,主机和从机都要设置连接配置,才能主从

2. 在主机中的修改

(1) 修改主机的/.bashr文件

打开 /.bashr文件

 sudo gedit ~/.bashrc

添加如下内容:

 export ROS_HOSTNAME=chen                  ####注意这里是填主机的hostname
 export ROS_MASTER_URI=http://192.168.1.200:11311
 export ROS_IP=192.168.1.200

生效环境
终端输入:

source ~/.bashrc

(2) 修改主机的hosts文件

注意:这步不配置的话,主从机之间只能进行话题共享,不能相互控制
打开主机的hosts文件

sudo gedit /etc/hosts

添加如下内容:

192.168.1.106   desktop     //从机ip   hostname

生效hosts内容
终端输入:

sudo /etc/init.d/networking restart

或者

sudo netplan apply

3. 在从机中的修改

(1) 修改从机的/.bashr文件

打开 /.bashr文件

 sudo gedit ~/.bashrc

添加如下内容:

 export ROS_HOSTNAME=desktop                
 export ROS_MASTER_URI=http://192.168.1.200:11311    //主机的ip

生效环境
终端输入:

source ~/.bashrc

(2) 修改从机的hosts文件

注意:这步不配置的话,主从机之间只能进行话题共享,不能相互控制
打开从机的hosts文件

sudo gedit /etc/hosts

添加如下内容:

192.168.1.200   chen    //主机ip   hostname

生效hosts内容
终端输入:

sudo /etc/init.d/networking restart

或者

sudo netplan apply

4. 运行ROS小乌龟测试

(1) 在主机中启动ROS的master:
终端输入:

roscore

注意:只有主机才能成功运行roscore

(2) 在主机中运行乌龟节点:
终端输入:

rosrun turtlesim turtlesim_node

(3) 在从机中运行键盘控制节点:

rosrun turtlesim turtle_teleop_key

通过从机的操作键盘的上下左右键,即可看到主机的小乌龟移动,画面如下:

在这里插入图片描述

(4) 验证是否相互可以控制

  1. 从机中运行乌龟节点
  2. 主机中运行键盘控制节点
  3. 通过操作主机键盘的上下左右键,观察从机的小乌龟是否移动

总结

以上就是配置ROS主从的全部流程,上述的ros主从配置流程也适用利用局域网进行两台及其的ros主从通讯,有什么问题可以评论区留言讨论。

标签:主机,hostname,局域网,从机,hosts,ROS,主从
From: https://blog.csdn.net/2401_82458959/article/details/138764106

相关文章

  • MySQL--主从复制
    目录一、主从复制原理1.简要原理2.涉及到的文件3.涉及到的线程4.主从复制执行步骤(重点)二、主从复制搭建1.准备两台以上的数据库实例,要求数据库版本一致2.区分不同角色3.主库开启二进制日志4.主库创建专用复制用户,赋予权限5.备份主库数据,恢复从库6.开启从库复制功能......
  • 一键云部署:ROS的Terraform托管服务助你轻松上线2048经典游戏
    在现代云计算环境中,自动化部署已经成为一项重要的任务。Terraform,作为HashiCorp公司的一款开源工具,以其强大的基础设施即代码(IaC)能力,使得我们能够轻松管理和部署各种云资源。阿里云资源编排服务(ResourceOrchestrationService,ROS)是一种简单易用的云计算资源自动化部署服务,提供了......
  • Prism框架与Microsoft.Extensions.DependencyInjection的集成使用笔记
    在现代的WPF应用开发中,Prism框架提供了强大的模块化、依赖注入和MVVM支持,而Microsoft.Extensions.DependencyInjection提供了简洁而功能强大的依赖注入机制。另外很重要的一点是Microsoft.Extensions.*或者第三方的Nuget基本会提供Microsoft.Extensions.DependencyInjection,那么......
  • 使用prometheus监测MySQL主从同步状态方案
    说明:本文介绍如何使用prometheus、alertmanager监测MySQL主从,当从节点中断同步时,发送邮箱报警,并使用grafana将数据视图化。结构图如下:安装(1)安装应用首先,来安装prometheus、alertmanager和grafana,参考以下文章(都是我写的,嘿嘿):CentOS7安装prometheusCentOS7安装aler......
  • 【MySQL数据库】 MySQL主从复制
    MySQL主从复制MySQL主从复制主从复制与读写分离的意义主从数据库实现同步(主从复制)三台mysql服务器搭建主从复制,要求不可以用root帐号同步,要求第三台服务器在测试过1、2的主从复制之后进行主从复制配置MySQL主从复制主从复制与读写分离的意义企业中的业务通常数据......
  • mysql8.4主从配置
    mysql8.4主从配置环境docker+mysql8.4查找mysqldockersearchmysql拉取mysql镜像dockerpullmysql运行2台mysql(mysql1,mysql2)dockerrun-itd--name=mysql1-eMYSQL_ROOT_PASSWORD=123456mysqldockerrun-itd--name=mysql2-eMYSQL_ROOT_PASSWORD=12......
  • 【ROS】-- 自定义回调队列
    在ros中,我们常用的回调处理是ros::spin()或者ros::spinOnce(),但是,这两个是阻塞式单线程处理的,即当不做其他处理的情况下,某一个回调函数堵塞,其他topic或者service的回调函数就无法进入。使用ros多线程的方式可以解决该问题,但引入多线程会导致线程安全的问题。针对某些场景,......
  • 收放卷主从轴速度随动增益计算(CODESYS ST代码)
    收放卷主从轴速度随动控制,我们需要知道随动增益,如果是利用电子齿轮实现速度随动,我们需要通过增益计算电子齿轮比的分子和分母,具体源代码大家可以参考下面文章链接:收放卷伺服控制系统详细算法介绍(电子齿轮+张力PID卷绕轴控制功能块)_收放卷伺服控制属于-CSDN博客文章浏览阅读2......
  • Redis配置文件说明及主从配置
    目录1、redis.conf配置文件说明2、主服务器配置3、从机配置4、查看主从配置信息1、redis.conf配置文件说明daemonizeno--是否把redis-server启动在后台,默认是“否”。若改成yespidfile/var/run/redis.pid--当Redis以守护进程方式运行时,Redis默认会把pid写入/var......
  • 基于.NET Framework 4.8.1的ASP.NET Web用Gitlab Runner调用MSBuild之后没有bin\rosl
    摘要基于.NETFramework4.8.1的传统ASP.NETWeb程序,使用GitlabRunner自动集成,在发布的网站目录下,没有bin\Roslyn文件夹。这里涉及到容易被忽视的Roslyn编译器的知识点。Roslyn是什么?在我们的ASP.NETWeb项目源代码中有什么体现?1、web.config下有配置节点一般在web.config末......