一、配置主从机和网络
1 虚拟机桥接和NAT
首先需要了解虚拟机桥接和NAT的区别
——请点击此处
简单说,桥接后,虚拟机所分配的网段和发射wifi的机器人的网段,相同,网络可以相互ping通。
net连接后,虚拟机和机器人所处网段不同,网络不能相互ping通。
2 设置IP
本文使用RK3288作为机器人的终端
为了电脑(即PC端)和rk3288网线连接通信方便,将pc端的桥接网络(ens33)设为固定ip(192.168.0.66),具体操作步骤如下:
(1)在PC端将网络设置其改为自动获取ip,点击Automatic(DHCP)
(2)连接rk3288的热点,然后通过ifconfig命令查看桥接网络(ens33)的配置
ifconfig
(3)修改IPv4的Addresses为固定值,这样IP就不会随意变化
点击Manual,根据(2)步骤查到的IP地址,自行设置固定IP。
比如我的在(2)中查询到的IP是10.42.0.183,那么前三位10.42.0不要动,最后的的数字一般可设为2-245之间的任意一个数,比如10.42.0.10
这样 桥接网络 算是搭建好了,接下来就是真正的搭建ROS分布式通信
二、分布式通信设置
在笔记本(pc)和rk3288上都分别设置好 ip地址 和 对应设备名称,具体步骤如下:
(1)在笔记本上(pc)打开hosts,输入红框内的内容
sudo vim /etc/hosts
(2)在rk3288上打开hosts,输入红框内的内容
sudo vim /etc/hosts
前面的是IP,后面的是名字,尽量对齐
(3)ping一下,看看通信是否正常。
在笔记本上(pc),ping rk3288
ping rk3288
在rk3288上,ping 笔记本(pc)
ping pc
现在主从机和网络已经配置好了,可以使用ROS分布式通信了
三、通信验证
在rk3288上
(1)打开一个bash,运行rosmaster
roscore
(2)再打开一个bash,运行小龟节点
rosrun turtlesim turtlesim_node
(3)在pc上发布命令,让小龟运动
rostopic pub -r 10 /turtle1/cmd_vel geometry_msgs/Twist
通过小乌龟可以运动可知:从机(pc)可以对主机(rk3288)发送命令
(4)然后在pc上查看小龟的位置信息
rostopic echo /turtle1/pose
由此可知,从机可以订阅主机的话题
至此完成ROS的分布式通信
注:
1.部分内容参考 link
2.未经许可不能转载