有很多同學在我們微信群和我們阿木實驗室論壇提問,無人機/無人車的路徑規划和避障應該怎么入手。隨着無人系統的發展,無人系統的路徑規划的研究也越來熱。生活中無人機器系統也越來越多的出現,從無人機,到無人車,商城的引導機器人。一個新興機器人行業正在興起。
一 系統軟件和硬件框架
一個典型的無人機系統的計算機構架如下:
圖一 無人機計算機系統
這種以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 參與討論。