设置ROS分布式通信

目录

  • 一、配置主从机和网络
    • 1 虚拟机桥接和NAT
    • 2 设置IP
  • 二、分布式通信设置
  • 三、通信验证


一、配置主从机和网络

1 虚拟机桥接和NAT

首先需要了解虚拟机桥接和NAT的区别——请点击此处

简单说,桥接后,虚拟机所分配的网段和发射wifi的机器人的网段,相同,网络可以相互ping通。

net连接后,虚拟机和机器人所处网段不同,网络不能相互ping通。

2 设置IP

本文使用RK3288作为机器人的终端
为了电脑(即PC端)和rk3288网线连接通信方便,将pc端的桥接网络(ens33)设为固定ip(192.168.0.66),具体操作步骤如下:

(1)在PC端将网络设置其改为自动获取ip,点击Automatic(DHCP)
设置ROS分布式通信_第1张图片
(2)连接rk3288的热点,然后通过ifconfig命令查看桥接网络(ens33)的配置

ifconfig

设置ROS分布式通信_第2张图片
(3)修改IPv4的Addresses为固定值,这样IP就不会随意变化

点击Manual,根据(2)步骤查到的IP地址,自行设置固定IP。
比如我的在(2)中查询到的IP是10.42.0.183,那么前三位10.42.0不要动,最后的的数字一般可设为2-245之间的任意一个数,比如10.42.0.10
设置ROS分布式通信_第3张图片

这样 桥接网络 算是搭建好了,接下来就是真正的搭建ROS分布式通信

二、分布式通信设置

在笔记本(pc)和rk3288上都分别设置好 ip地址 和 对应设备名称,具体步骤如下:

(1)在笔记本上(pc)打开hosts,输入红框内的内容

sudo vim /etc/hosts

设置ROS分布式通信_第4张图片
(2)在rk3288上打开hosts,输入红框内的内容

sudo vim /etc/hosts

设置ROS分布式通信_第5张图片
前面的是IP,后面的是名字,尽量对齐

(3)ping一下,看看通信是否正常。
在笔记本上(pc),ping rk3288

ping rk3288

设置ROS分布式通信_第6张图片
在rk3288上,ping 笔记本(pc)

ping pc

设置ROS分布式通信_第7张图片
现在主从机和网络已经配置好了,可以使用ROS分布式通信了

三、通信验证

在rk3288上
(1)打开一个bash,运行rosmaster

roscore

(2)再打开一个bash,运行小龟节点

rosrun turtlesim turtlesim_node

(3)在pc上发布命令,让小龟运动

rostopic pub -r 10 /turtle1/cmd_vel geometry_msgs/Twist

设置ROS分布式通信_第8张图片
设置ROS分布式通信_第9张图片
通过小乌龟可以运动可知:从机(pc)可以对主机(rk3288)发送命令

(4)然后在pc上查看小龟的位置信息

rostopic echo /turtle1/pose

设置ROS分布式通信_第10张图片
由此可知,从机可以订阅主机的话题

至此完成ROS的分布式通信


注:
1.部分内容参考 link
2.未经许可不能转载

你可能感兴趣的:(搭建移动机器人,分布式,网络,自动驾驶)