【树莓派4B】ROS分布式通信

发布时间:2024年01月20日

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


前言

提示:这里可以添加本文要记录的大概内容:

在学习ROS的过程中,如何通过树莓派作为主机,PC作为从机(安装的是windows+ubuntu双系统,有需要的小伙伴可以留言),实现分布式通信。以下关于分布式框架的搭建流程。


提示:以下是本篇文章正文内容,下面案例可供参考

一、ROS分布式通信是什么?

ROS(Robot Operating System)是一种用于机器人应用程序开发的框架,它支持分布式通信和模块化架构。 在ROS中,分布式通信是一种基本的通信方式,它允许不同的ROS节点(ROS Node)在不同的计算机上运行,并通过ROS网络进行通信,以实现机器人系统的各个部分之间的信息交换和协作。

二、搭建步骤

1.前提准备,配置树莓派静态IP

1.硬件准备:使用显示屏或 HDMI采集卡连接树莓派并启动;

2.为树莓派连接无线网络;

3.为树莓派配置静态IP;

具体操作如图:

树莓派已经连接上wifi
树莓派在这里插入图片描述
点开wifi,选择wifi设置
在这里插入图片描述
可以看到wifi的详细信息,复制IPv4的地址
在这里插入图片描述
进入IPv4,IPv4选择手动,地址为刚才复制的地址,子网掩码为255.255.255.0,网关为192.168.1.1,DNS为详细信息中的DNS,配置好了后点击应用。
在这里插入图片描述

2.修改配置文件

分别修改不同计算机的 /etc/hosts 文件,在该文件中加入对方的IP地址和计算机名:
@前面的为用户名,@后面的为计算机名

下图为树莓派,即主机的IP为:192.168.1.122 计算机名:ubuntu
由于树莓派配置了静态IP,所以每次开机IP都不会发生变化。
在这里插入图片描述

在这里插入图片描述

下图为PC端,即从机的IP为:192.168.1.116 计算机名为:yang-lenovo
PC端没有配置静态IP,每次连接wifi可能会发生变化,如果IP发生变化,后面的文件都需要修改。
在这里插入图片描述

在这里插入图片描述
PC端打开终端输入如下

sudo gedit /etc/hosts

将主机的IP和计算机名添加到其中,如第三行所示
在这里插入图片描述同理树莓派,即主机端相同的操作
在这里插入图片描述
设置完毕,可以通过 ping 命令测试网络通信是否正常。如图所示

ping 计算机名orIP地址

在这里插入图片描述
在这里插入图片描述
出现如图所示,说明主机与从机端的通信已经成功建立。

因为系统中只能存在一个Master,所以从机需要知道Master的位置。
在从机的.bashrc隐藏文件(ctrl+h打开)中添加如下内容:
ROS_HOSTNAME添加的是从机地址;
ROS_MASTER_URI添加的是主机地址。
打开终端输入:

gedit ~/.bashrc

在末尾插入
export ROS_MASTER_URI=http://主机IP:11311
export ROS_HOSTNAME=从机IP
在这里插入图片描述

在此,主从分布式框架已经搭建好了

3.测试

1.主机启动 roscore(必须)
注意:当设置从机 ROS_MASTER_URI 为主机(不为从机本机)后,从机上是不能运行 roscore 的。
2.主机启动订阅节点,从机启动发布节点,测试通信是否正常

3.反向测试,主机启动发布节点,从机启动订阅节点,测试通信是否正常

以控制小海龟移动为例:在主机终端启动master和小海龟节点,在从机终端启动键盘节点进行控制。
在这里插入图片描述

在这里插入图片描述
可以通过从机的键盘节点控制主机的小海龟移动,说明分布式框架已经搭建成功。

总结

当然我们的多机通信不局限于两台计算机设备。
有问题多多留言。

文章来源:https://blog.csdn.net/weixin_51963312/article/details/135609949
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。