基於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臺左右無人機的融合避障,圖像的智能協同,比如其中一臺無人機的雲臺發現興趣目標,聯動所有無人機的智能協同,實現初步的羣體智能。也在尋求有實力的高校研究所合作,我們提供硬件平臺和通用接口,共同實現無人機智能協同控制系統。

微信公衆號關注《阿木實驗室》第一時間獲取無人機前沿科技技術乾貨以及測評內容。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章