ROS分布式通信:树莓派与虚拟机

序言

在ROS小车的调试中,我们常采用树莓派ubuntu作为ROS主机,而PC虚拟机作为从机。ROS采用分布式框架将节点通过松散耦合方式结合起来,只要主机与从机建立联系,那么我们就能实现在PC端虚拟机查看主机打印的消息、运行状态、数据信息等,方便我们调试。

这里以树莓派作为主机,PC端作为从机,请确保树莓派与PC处于同一局域网下。

1、查看主机和从机IP地址及主机名
1.1、获取树莓派IP地址及主机名

输入以下命令,获取树莓派IP:

ip a

可以看到以下结果:

在这里插入图片描述

由于我之前为树莓派配置或静态IP,为了避免每次分配的IP地址不固定,导致每次都要获得树莓派IP的问题。其中192.168.167.8是我设置的静态IP,而192.168.131.56是树莓派实际被分配的IP,但它是不固定的。

输入以下命令,获取主机名:

hostname

可看到以下结果:

在这里插入图片描述

我们最终得到树莓派的IP与主机名:

IP地址:192.178.167.8
主机名:ubuntu
1.2、获取虚拟机IP地址及主机名

输入以下命令,获取虚拟机IP:

ip a

可看到以下结果:

在这里插入图片描述

输入以下命令,获取虚拟机主机名:

hostname

可看到以下结果:

在这里插入图片描述

我们最终得到虚拟机的IP与主机名:

IP地址:192.178.167.100
主机名:LSK
2、添加对方 IP 地址和主机名
2.1、在树莓派中添加信息

执行以下命令:

sudo vim /etc/hosts

添加以下内容

192.178.167.100 LSK
2.2在虚拟机中添加信息

执行以下命令:

sudo vim /etc/hosts

添加以下内容

192.178.167.8 ubuntu
3、测试
3.1、树莓派端测试

执行以下命令:

ping LSK

出现以下结果:

在这里插入图片描述

3.2、虚拟端测试

执行以下指令

ping ubuntu

出现以下结果:

在这里插入图片描述

4、设置ROS URI
4.1、修改树莓派配置文件

执行以下命令:

sudo vim ~/.bashrc

添加以下内容

export ROS_HOSTNAME=ubuntu
export ROS_MASTER_URI=http://ubuntu:11311
4.2、修改虚拟机配置文件

执行以下命令

sudo vim ~/.bashrc

添加以下内容

export ROS_HOSTNAME=LSK
export ROS_MASTER_URI=http://ubuntu:11311
4.3、测试

在树莓派端输入以下命令,启动ROS核心:

roscore

在虚拟机端输入以下命令:

rostopic list

若无找不到ros master报错,且PC成功得到树莓派端ROS话题,则打印成功:

在这里插入图片描述

5、其他

在 ROS 网络中,坐标变换和消息类型都标上了消息戳,因此多机通信时间同步往往很关键。对此将 ROS 主机和从机都跟互联网服务器上时钟保持一致即可实现数据同步。ROS 主机和从机都安装 chrony 即可。

sudo apt-get install chrony

同时,如果你需要在虚拟机实时修改树莓派代码,可以考虑NFS挂载的方法,在这里就不过多涉及。

可以关注完整的ROS小车搭建环境:
树莓派安装Ubuntu20 Server
树莓派ubuntu连接wifi及SSH登陆
树莓派ubuntu20配置静态IP
树莓派USB端口重映射与下位机串口通信
树莓派ubuntu20安装ROS
ROS分布式通信:树莓派与虚拟机

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值