基于ROS节点多机协同(无人机/无人车)分析

1.背景

无论是民用领域,还是军用领域。无人机/机器人的小型集群化,都是一个趋势。目前应用比较多的物流机器人,也是很多机器人协同配合完成任务。

随着技术的发展,进入机器人时代,机器与机器之间的通信协同工作,是必然趋势。集群机器人各自的数据共享,传感器状态数据共享,相互控制接口。要做到集群中任何一个机器人都可以获取其他机器人的状态数据,控制其他机器人的移动,实现群体协同工作。通信机制的选择比较重要,涉及到集群机器人的组网。

本文就是讨论和测试利用ROS通信的机制来实现多台的无人机集群,网内的每台无人机都可以实现相互数据读取和相互控制,无人机组网的队形变换和感知协同。

和普通的编队表演不一样,编队表演,地面站一控多,预先设置好无人机队形即可。多机协同是每台无人机要和全体无人机或者周边的无人机进行信息交互,互相控制的,整个无人机队形不是预先设置好的,是无人机相互感知,相互控制的结果,通过算法收敛到一个最佳的无人机运动轨迹,来实现协同工作。

2.系统功能框图

图1

群体协同工作要考虑两个方面:

第一通信硬件系统要支持每个节点(无人机/无人车)的组网互联,要求就是双工通信,组成网络,双工通信的数传模块很多,但是可以大规模组网的就有点少了,一般TCP/IP局域网就是一种路由器为中心节点的星形网络,所有数据都是通过路由器做IP地址转发,每个节点就可以相互通信,那么路由器这个中心节点的数据流动带宽,就是整个网络的数据传输带宽上限,我们平时说的百兆带宽,千兆带宽就是这个意思,千兆的数据容量肯定比百兆大。还有一些无中心节点的通信硬件系统,一般价格比较高,且带宽有一定限制,这里不做描述,咨询做通信的厂家也可以寻得一些方案。

第二软件系统的结构,每个无人机/无人车运行的节点,组成的群体是什么样子的结构,如果采用ROS的方案,ROS是支持分布式运行的节点,也就是1号无人机和2号无人机可以用ROS节点的方式相互通信。目前的ROS1就是用中心点的通信方式,也就是说在图1中ROS Master是整个ROS节点的中心,组成一个星状网络结构,这个ROS Master是和其他节点的通信桥梁。有点不好的因素是ROS Mater这个中心节点出现异常,整个组网就失效了。

硬件来讲WIFI路由器(TCP/IP)的方案也是路由器中心节点异常,网络就失效了。

软件层面来说用ROS1的方式,也是一样ROS Master异常网络也就失效了。

但是采用以上的好处是:WIFI的局域网设备成熟可选方案多。

ROS1也是提供了分布式多节点,解决了软件构架的问题,不用考虑相互通信的软件问题,ROS1组网消息列表中有所有当前网络节点的所有数据和控制指令,无人机1获得无人机2的传感器数据,无人机1和无人机2相互控制对方的飞行速度,飞行位置都可以实现。这就构成了群体智能的基础。提供相互感知和相互控制的接口。

但是这种方式的群体容纳个数的问题有待考虑,我们认为这种方式容纳10台无人设备,无论是在三维仿真和真实无人机飞行都是相对比较容易的。如果想容纳更多的无人系统,那么消息流要精简,和选择通信带宽更高的硬件设备。理论上一个网段的局域网可以容纳255台设备。

还有一点就是ROS2的推出,支持了无中心节点的通信方式DDS,软件通信层面没有中心点这一说,稳定性大为提升,在软件的消息通信层面,是非常适合组网的群体智能,因为ROS2推出不久,后续还是非常值得研究的。尤其是真正的分布式运行DDS的模式。

ROS1系统软件运行图

部分消息节点图

利用ROS分布式消息的模式,比如1号无人机给2号无人机发送指令,只需要加一个前缀/uav2/****  或者/uav1/****,就可以读取或者发送控制指令到2号无人机。ROS系统会维护一个所有无人机的消息指令队列(Topic),根据索引消息指令队列,就可以实现集群内部的所有无人机的传感器消息和控制指令的共享。

仿真视频

利用ROS环境仿真代码和实机代码高度一致,不用考虑仿真代码不能用于实机的问题。

仿真环境下5台无人机进行多机队形切换

实际测试视频

无人机编队测试:4台无人机室外飞行编队测试

以上是4台无人机的测试,因为采用的是一般的普通GPS,精度有限(0.5到2米),所以队形的保持不是很理想。但是可以看到多机协同的基本效果,是以后的智能算法协同的软件和硬件基础。

5台无人机编队协同测试视频

基于ROS节点多机协同的无人机编队测试

构架PX4固件410轴距无人机,ROS,MAVROS

通信组网硬件设备如下:

系统涉及组网硬件介绍:https://homer-wiki.readthedocs.io/en/latest/

实际工作硬件带宽状态,通信方式和通信带宽是很重要的考虑因素,我们记录了5台ROS1的通信带宽数据。

只有ROS主节点的系统带宽占用如下:

峰值在347KB这是一台主无人机启动ROS的数据流交互所占用的带宽。

5台无人机同时启动系统所占用的带宽如下:

峰值在1.16MB/S,这个硬件的图数传的设计带宽是100M,理论的传输带宽在12MB/S。所以五台无人机的组网协同,远远没有达到上线。估算10台左右的ROS无人机组网还是可以实现的。

如果要所有图像视频数据共享,那么带宽的压力会比较大。但是一般的传感器位置数据,速度数据,状态数据,控制指令数据等这些数据的共享还是相对比较容易的,带宽还是可以满足要求。其次还可以对通信数据的精简,在协同状态下,只保留位置,速度,姿态,状态等数据,也可以在带宽有限的情况下,容纳更多的无人机。

拉距带宽测试:(通信带宽会受到距离的影响,拉锯测试很有必要,但是限制于场地,后期我们会进行地面拉锯带宽测试)

这个产品和项目我们想最终进化成10台左右无人机的融合避障,图像的智能协同,比如其中一台无人机的云台发现兴趣目标,联动所有无人机的智能协同,实现初步的群体智能。也在寻求有实力的高校研究所合作,我们提供硬件平台和通用接口,共同实现无人机智能协同控制系统。

微信公众号关注《阿木实验室》第一时间获取无人机前沿科技技术干货以及测评内容。

猜你喜欢

转载自blog.csdn.net/msq19895070/article/details/106719404