提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
提示:这里可以添加本文要记录的大概内容:
在学习ROS的过程中,如何通过树莓派作为主机,PC作为从机(安装的是windows+ubuntu双系统,有需要的小伙伴可以留言),实现分布式通信。以下关于分布式框架的搭建流程。
提示:以下是本篇文章正文内容,下面案例可供参考
ROS(Robot Operating System)是一种用于机器人应用程序开发的框架,它支持分布式通信和模块化架构。 在ROS中,分布式通信是一种基本的通信方式,它允许不同的ROS节点(ROS Node)在不同的计算机上运行,并通过ROS网络进行通信,以实现机器人系统的各个部分之间的信息交换和协作。
1.硬件准备:使用显示屏或 HDMI采集卡连接树莓派并启动;
2.为树莓派连接无线网络;
3.为树莓派配置静态IP;
具体操作如图:
树莓派已经连接上wifi
点开wifi,选择wifi设置
可以看到wifi的详细信息,复制IPv4的地址
进入IPv4,IPv4选择手动,地址为刚才复制的地址,子网掩码为255.255.255.0,网关为192.168.1.1,DNS为详细信息中的DNS,配置好了后点击应用。
分别修改不同计算机的 /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
在此,主从分布式框架已经搭建好了
1.主机启动 roscore(必须)
注意:当设置从机 ROS_MASTER_URI 为主机(不为从机本机)后,从机上是不能运行 roscore 的。
2.主机启动订阅节点,从机启动发布节点,测试通信是否正常
3.反向测试,主机启动发布节点,从机启动订阅节点,测试通信是否正常
以控制小海龟移动为例:在主机终端启动master和小海龟节点,在从机终端启动键盘节点进行控制。
可以通过从机的键盘节点控制主机的小海龟移动,说明分布式框架已经搭建成功。
当然我们的多机通信不局限于两台计算机设备。
有问题多多留言。