Demo测试时需要岸上PC与树莓派在同一局域网下运行,二者能进行通信。下水测试时总的设备连接大致如下图。
Fathom-X Interface实际上就是Fathom-X通信板通过网线与一个USB转换器相连,其通过与PC连接后即解决了供电问题,也解决了网络通信问题。Bluerov本体里Fathom-X通信板通过网线与树莓派连接。零浮力缆将两块Fathom-X通信板连接,通过电力载波实现岸上与水下通信。 当然我们在程序开发调试时不必搞得那么花里胡哨的,直接用一根网线将PC与树莓派连接就可以在桌子上进行程序调试了。树莓派不仅可以接上键鼠等外设,还可以给通过HDMI外接显示器进行开发。实际上如果能承受成本,DIY水下平台时能将足够长的网线做好水密作为通信缆进行简单下水测试也未尝不可。 无论是下水测试还是程序开发调试网络配置都面临两个问题:(1)IP配置;(2)ROS网络master的配置。在测试中我将岸上PC的IP设置为192.168.2.1,将树莓派的IP设置为192.168.2.2,主要受原来Bluerov配置的影响。以岸上PC为master。其实这两个问题都很基础,通过搜索引擎很容易就能找到解决的方法,在此我还是简要的写一下吧。 1、IP配置 实际上就是ubuntu系统IP配置的问题。需要注意的是ubuntu18.04与ubuntu16.04两个版本IP的配置方法不同。在此只介绍ubuntu18.04配置的方法。 首先需要修改/etc/netplan/中yaml文件内容。我的设备该路径下的配置文件为01-network-manager-all.yaml。修改如下:
其中: enp0s31f6为网卡名,通过ifconig指令确定各自设备的网卡名。 addresses为需要设定的IP地址。 修改完成后,sudo netplan apply配置生效。 配置完成后可以通过ping或ssh测试岸上PC与树莓派是否能进行通信。 2、ROS网络master配置 以岸上PC为master,修改岸上PC的bashrc文件(sudo vim ~/.bashrc),如下:
其中,ROS_HOSTNAME为本设备IP,ROS_MASTER_URI为ROS网络中master的IP。 显然,树莓派中应配置如下:
修改完后需要source ~/.bashrc,或重启终端。 注意,只有岸上PC的master启动运行时,树莓派才能启动运行各个node。一旦master关闭,则树莓派的各个node将不能正常工作。