我是靠谱客的博主 要减肥茉莉,最近开发中收集的这篇文章主要介绍ROS中的分布式通讯(树莓派与虚拟机)一、前言二、树莓派连接WIFI三、查找局域网下的其他设备 IP四、确定可以ping通五、配置文件修改六、配置主机 IP七、配置从机 IP八、测试九、可能会遇到的问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

ROS中的分布式通讯(树莓派与虚拟机)

  • 一、前言
  • 二、树莓派连接WIFI
  • 三、查找局域网下的其他设备 IP
  • 四、确定可以ping通
  • 五、配置文件修改
  • 六、配置主机 IP
  • 七、配置从机 IP
  • 八、测试
  • 九、可能会遇到的问题

一、前言

在移动机器人开发过程中,RVIZ 是一个非常好用的可视化工具,但是运行ROS系统的硬件平台往往都是放在机器人上随机器人运动的,不利于我们外接显示屏去使用RVIZ。

所以,在本篇文章中,将介绍如何在ROS中进行分布式通信,实现效果是在树莓派(树莓派安装在机器人上)上运行roscore时,在个人PC中即使不运行roscore也可以正常运行RVIZ。

在正式介绍实现过程前,先确保以下几点:
1、树莓派安装好 ubuntu 以及 ROS 系统;个人PC中安装好 虚拟机、 ubuntu 以及 ROS 系统。在本文中,虚拟机用的是VMWare,ubuntu是20.04版本,ROS是 noetic 版本。
2、使树莓派与个人PC处于同一局域网下;

二、树莓派连接WIFI

树莓派终端输入下面指令打开编辑文本:

sudo gedit /etc/netplan/50-cloud-init.yaml

改为以下格式即可(注意每行的缩进,一个缩进为4个空格,不能使用TAB键):
请添加图片描述

然后使用sudo reboot指令重启树莓派,使配置生效。

三、查找局域网下的其他设备 IP

通过命令行输入arp -a指令就可以看到树莓派的 IP 地址。

方法1、在个人PC端输入arp -a指令:
在这里插入图片描述
PS:树莓派的 IP 一般不会是.1.255结尾的,并且前缀是和本机的IP一样的,如上图所示,所以树莓派IP应该是 192.168.43.8。

方法2、在树莓派端输入arp -a指令可以看到其他设备IP:
在这里插入图片描述但是这种方法不能看到本机 IP,只能看到其他设备的 IP

方法3、树莓派端输入iwconfig指令可以看到 WIFI 名称:
在这里插入图片描述方法4、树莓派端输入ifconfig -a指令可以看到本机 IP:
在这里插入图片描述

四、确定可以ping通

找到 IP 后,可以使用ping 对方IP的指令看看是否能ping通,如:
在这里插入图片描述如果虚拟机无法ping通树莓派,可以看看本文第九章内容。

五、配置文件修改

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

主机端:
从机的IP 从机计算机名
在这里插入图片描述

从机端:
主机的IP 主机计算机名
在这里插入图片描述

六、配置主机 IP

配置主机的 IP 地址:

树莓派端输入以下命令配置.bashrc文件:

sudo gedit ~/.bashrc

加入以下代码:

export ROS_MASTER_URI=http://主机IP:11311
export ROS_HOSTNAME=主机IP

如:
在这里插入图片描述设置完后,保存退出。

然后是最最最关键的一步:一定要source一下,不然运行不了roscore

source ~/.bashrc

在这里插入图片描述

七、配置从机 IP

配置从机的 IP 地址,从机可以有多台,每台都做如下设置:

我这里从机是我的笔记本电脑,所以我在虚拟机端输入以下命令配置.bashrc文件:

sudo gedit ~/.bashrc

加入以下代码:

export ROS_MASTER_URI=http://主机IP:11311
export ROS_HOSTNAME=从机IP

如:
在这里插入图片描述设置完后,保存退出。

然后是最最最关键的一步:一定要source一下,不然运行不了roscore

source ~/.bashrc

在这里插入图片描述

八、测试

1、主机(树莓派)启动 roscore

2、主机启动RVIZ,可以启动则为配置成功

九、可能会遇到的问题

1、虚拟机无法ping通树莓派:
在ping的时候出现网络不可达或者目标不可达的情况,并且右上角的网络小图标也不见了。
在这里插入图片描述

可尝试以下操作:

sudo service network-manager stop
sudo rm /var/lib/NetworkManager/NetworkManager.state
sudo service network-manager start

执行到这一步可以尝试使用ping指令测试网络是否通畅。

如果图标或者网络还不正常可以继续尝试下面两条命令。

sudo gedit /etc/NetworkManager/nm-system-settings.conf

把false改成true

sudo service network-manager restart

2、树莓派端运行roscore没有反应,要按几次ctrl+c才能中断运行:
这种情况一般是由于切换了 WiFi 造成的,切换 WIFI 后必须安装本文第五六七章修改对应文件才可以,并且一定要source一下:

source ~/.bashrc

最后

以上就是要减肥茉莉为你收集整理的ROS中的分布式通讯(树莓派与虚拟机)一、前言二、树莓派连接WIFI三、查找局域网下的其他设备 IP四、确定可以ping通五、配置文件修改六、配置主机 IP七、配置从机 IP八、测试九、可能会遇到的问题的全部内容,希望文章能够帮你解决ROS中的分布式通讯(树莓派与虚拟机)一、前言二、树莓派连接WIFI三、查找局域网下的其他设备 IP四、确定可以ping通五、配置文件修改六、配置主机 IP七、配置从机 IP八、测试九、可能会遇到的问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部