1. 程式人生 > >無人系統路徑規劃開發流程(避障方向)含程式碼

無人系統路徑規劃開發流程(避障方向)含程式碼

有很多同學在我們微信群和我們阿木實驗室論壇提問,無人機/無人車的路徑規劃和避障應該怎麼入手。隨著無人系統的發展,無人系統的路徑規劃的研究也越來熱。生活中無人機器系統也越來越多的出現,從無人機,到無人車,商城的引導機器人。一個新興機器人行業正在興起。

一 系統軟體和硬體框架

一個典型的無人機系統的計算機構架如下:

圖一 無人機計算機系統

這種以PX4/Ardupilot為代表的小型無人系統的計算機系統構架圖,主要有兩塊:感知和任務計算機和飛控計算機,無人車其實類似(車輛底盤驅動系統和感知系統)。目前來講飛控計算機不斷在成熟和完善,研究和應用的熱點在感知和任務
計算機上。

二 研究方向

在Ardpuliot/PX4的感知和任務管理計算機開發中,和大型無人機的任務管理計算機開發不同,小型無人機的任務管理計算機集中在環境感知,自動避障路徑規劃,目標物體識別追蹤,自動搜尋,叢集控制策略等領域。符合小型化,低空域,在有限空間飛行的特點。
開發重點
1 環境感知:以鐳射雷達,視覺感測器等硬體為主的鐳射SLAM/視覺SLAM開發方向,獲得裝置自身的方位,速度和姿態為目的,作為GPS的補充或者替代。
2 路徑規劃:以自動避障的路徑規劃,以叢集控制為主的路徑規劃,以自動搜尋的路徑規劃,以無人機自動排程系統的路徑規劃。獲得當前空間和時間下的裝置自身的最優運動路徑(一般是期望的速度和期望的位置),來執行復雜任務為目的。
3 視覺識別:以目標物體的識別,感知,追蹤,引導。獲得目標物體的相對位置為目的。
很多的無人機應用開發的目標實際上同時包含了環境感知和路徑規劃,視覺識別三大塊。比如可以進行一個良好的路徑規劃的基礎是環境感知,本身的位置速度估算正確才可以去完成一個有效的路徑規劃,否則路徑規劃就會失效。
一般室外的環境感知GPS就可以完成,遮擋等複雜場景,環境感知由任務和感知計算機來做。
還是上一張圖:

感知和任務計算機的開發三大方向,和開發流程方法。

三 無人系統開發手段和方法

1 任務和感知計算機開發硬體載體
以往工業級以PowerPC,FPGA等為代表的硬體載體,現在的消費級或者說準工業級以Arm構架和Intel為多。像大疆的妙算系列無人機板載計算機就有英偉達的TX2和Intel的。
因為任務和感知計算機通常要求計算能力比較強,普通的微控制器構架無法勝任。還有就是飛控計算機和任務計算機是模組化分立的,模組化的。業界由玩家把樹莓派同時用來飛控計算機和任務和感知計算機,這樣設計是很不合理的,且不說樹莓派的運算能力如何,飛控計算機和任務計算機軟體執行在同一個硬體上,從軟體和硬體設計上都有重大的缺陷。專業領域不推薦那麼做,這也是這類一體化板卡沒有發展起來的原因。飛控計算機要求實時性,任務計算機計算複雜,如果任務計算機軟體複雜性問題導致了整個系統的崩潰,飛控計算機也崩潰,那麼無人系統就失控了,如果任務計算機崩潰,只要飛控計算機不崩潰,整個無人系統還是可以安全著陸的。我們曾經也有一款這樣的板卡,後來我們停產了,沒有發展起來。我們在硬體設計上還是走向分模組,相對獨立的做法。同樣軟體設計上也遵守這樣的設計,模組獨立,降低耦合。
我們目前用到的硬體如下:

英偉達的nano

英偉達的TX2
我們淘寶店鋪均有售,可以關注
https://shop142114972.taobao.com/?spm=a230r.7195193.1997079397.2.3efb3d8dLWaZOj

2 開發流程
以避障為例:

開發硬體平臺

https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-18433176671.6.13def907NjLqL4&id=591693894635

開發手段

按照完整的開發流程

1 建立數學模型

2 演算法開發

3 模擬

4 實機測試

以完成一個鐳射雷達避障為例:

1 數學建模

業界關於避障的演算法,有很多論文,開源的程式碼。比如可以採用簡單高效的VFH演算法,數學模型相對比較簡單,方便構建。

2 演算法開發

根據數學模型編寫程式碼,涉及複雜的數學公式可以採用matlab來開發,VFH比較簡單,開源的程式碼做一下優化就可以完成,或者直接用matlab來編寫也相對比較容易。

3 模擬

避障屬於場景和邏輯,最好用三維可視環境搭建出虛擬環境,在虛擬環境中模擬,常用的模擬工具有FlightGear,Gazebo,AirSim等等,寫好的演算法在虛擬模擬環境中執行,看一看避障的效果如何。總結就是模擬有問題,實際測試一定有問題。

4 實機測試

模擬測試通過以後,然後實機測試具體功能,在模擬中感測器資料大多為理想值,模擬的程式碼有時候不能完全適用於真實環境。當然可以在模擬系統中加入噪聲資料,和建立模擬模型的時候高度還原真實物理場景,這樣也可以提高模擬程式碼的適應性。
以上4個步驟,尤其的模擬環節一定不可缺少,可以提升開發效率,降低開發成本。我們的板載計算機功能包,提供了完善的模擬環境和程式碼框架,歡迎大家關注我們的github和wiki。

以上詳細文件參考wiki和我們的github.

板載計算機介紹 騰訊連結

https://v.qq.com/x/page/f3014rj41ib.html

微信公眾號關注《阿木實驗室》獲取更多無人機開發測評資訊,關注《阿木社群》獲取更多學習課程資訊。
社群論壇地址:bbs.amovauto.com 參與討論。