ROS分布式通信

本文详细描述了如何在树莓派与电脑间配置ROS系统,确保它们在同一个局域网下并实现分布式通讯,包括设置ROS_MASTER_URI、安装必要的软件包、修改配置文件及验证节点通信的过程。
摘要由CSDN通过智能技术生成

一个运行中的ROS系统可以包含分布在多台计算机上多个节点。根据系统的配置方式,任何节点可能随时需要与任何其他节点进行通信。但是实现这个分布式通讯,有个必要的条件,就是每个机器都必须在同一个局域网下。本文以树莓派与电脑端(PC)为例,说明如何配置实现分布式通讯。

一、准备工作

1.1、配置

要求:

  • 电脑与树莓派连接在同一个局域网下;
  • 选一个作为主机,主机需要启动roscore,这里选择树莓派作为主机,电脑作为从机,这里的树莓派需要安装好ros-noetic;
  • 在每台设备上安装ssh和chrony包,用于实现同步,可以输入以下指令安装,
sudo apt-get install chrony openssh-server -y

1.2、查询ip地址

两者都连接在同一个局域网下,通过以下命令查询网络ip地址:ifconfig

电脑端

 查询到地址是172.20.10.12

树莓派端

 查询到地址是172.20.10.2

二、修改配置文件

2.1、电脑端

以电脑端作为从机为例,需要修改电脑的ROS_MASTER_URI为树莓派ip,这里是刚才查询到的
172.20.10.2,终端输入,

sudo gedit ~/.bashrc

输入密码后,在文件最下边添加,

export ROS_MASTER_URI=http://172.20.10.2:11311

保存后退出,重新打开终端刷新环境变量生效。
然后,修改/etc/hosts文件,

sudo gedit /etc/hosts

 如上图所示,加上树莓派的ip和机器名字,保存后退出。

2.2、树莓派端

修改的文件和步骤与上边差不多一致,唯一不同的是,树莓派的ROS_MASTER_URI需要换成本机的ip,也就是172.20.10.2。/etc/hosts文件就在后边加上电脑的ip和机器名字即可,两个文件分别如下,
~/.bashrc

sudo vim ~/.bashrc

 /etc/hosts

sudo vim /etc/hosts

同样的,保存后退出,重新打开终端或者source一下终端刷新环境变量。

注意:两个文件中的IP对应关系

三、开启分布式通讯 

我们验证一下是否配置成功,首先,在主机(这里是树莓派),启动roscore,主机终端输入,

roscore

然后,在从机(电脑)运行小海龟节点,从机终端输入,

rosrun turtlesim turtlesim_node

从机端出现小海龟,

然后,我们在主机(树莓派)启动小海龟键盘控制节点,主机终端输入,

rosrun turtlesim turtle_teleop_key

点击键盘控制终端,即可用上下左右按键控制虚拟机端的小海龟进行运动,

  • 14
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值