作者:葉長春;王鐘雷;韓滔;朱疆成
引言
國際空中機器人大賽 (International Aerial Robotics Competition, IARC)自1991年首次開展以來,已經成為當今歷史最長、最具挑戰性的無人機大賽之一。該賽事在23年的歷程中,先后完成了6代任務,2014年進入第7代任務。比賽目的是推動無人機技術向前發展。
當前的第7代任務需要無人機驅趕地面機器人越過指定邊界,同時還要躲避障礙物并滿足飛行高度和邊界限制。由于比賽場地是邊長為20米的正方形區域,如圖1所示,且無人機只能在沒有先驗地圖的情況下完成比賽,所以成熟的無人機實時定位與地圖構建(Simutaneously Locating and Mapping, SLAM)方法[1-2]是不適用的,必須重新設計新的實現方法。
多旋翼無人機是一種多軸飛行器,有多個旋翼來懸停、維持姿態及平飛。和固定翼飛機不同,它通過旋翼提供的推力使飛機升空,其旋翼大小相同,分布位置接近對稱,比較常見的是四旋翼和六旋翼。簡單來說,通過調整不同旋翼之間的相對速度來調節不同位置的推力,并克服每個旋翼之間的反扭力矩,就可以控制飛機維持姿態、或完成各種機動飛行。出于比賽對飛行器尺寸的限制以及平臺的成熟度考慮,這里選用四旋翼作為無人機平臺,搭建的無人機平臺如圖2所示。
第7代任務的技術重點是移動目標跟蹤與降落、移動障礙物規避和驅趕策略制定。這些任務的完成需要激光雷達、攝像頭,超聲波和慣性測量單元(Inertial Measurement Unit, IMU)等傳感器,同時在軟件層面需要多任務同時運行。這對編程提出了很大的挑戰,為了方便程序的多任務管理、程序復用和多任務通信,引入機器人操作系統(Robotic Operating System,ROS)框架。ROS是基于Linux,針對機器人任務而深度定制的操作系統[3]。ROS以其節點化的組織結構和多編程語言的支持使程序員能更加專注于算法的實現,ROS內部有專門的節點管理器負責節點間的通信,還能對同一個WIFI網段的節點進行管理。考慮到比賽現場復雜的電磁環境,將圖像傳回地面站進行計算存在傳輸延時以及連接中斷的風險,將計算主要放在無人機機載設備上是一個可靠的選擇,地面站則負責一些飛行狀態的顯示。
1 硬件平臺
平臺采用XAircraft X650 Pro碳纖可折疊四旋翼機架,TMOTOR 3110電機和配套電調。底層飛行器姿態控制選用悟空飛控系統,遙控器選用天地飛7通道遙控器,使用STM32做手自動切換。上層部分選用X86嵌入式微控制器負責圖像獲取、激光雷達數據獲取、控制指令計算和飛行數據反饋,圖3是飛行器的整體框架,由于各個模塊所需的電壓不同,這里的供電部分采用虛線連接,下面具體介紹各個硬件模塊。
1.1 手動自動切換
由于悟空飛控系統整體是不開源的,不能獲得其姿態解算數據,只能通過改變其輸入信號來改變其飛行方向,經過測試發現接收機信號是周期為21ms的PWM信號。為了滿足程序自動控制和遙控器手動控制的切換,這里引入STM32單片機實現手/自動控制的切換和模擬接收機信號。接收機5路信號即油門、俯仰、偏航、橫滾和手動自動切換,STM32的5個定時器負責捕捉5路接收機信號,1個定時產生4路周期相同的PWM信號來模擬實際的接收機信號并輸出給悟空飛控,具體見圖4。
1.2 視覺部分
四旋翼的視覺部分主要由攝像頭、嵌入式工控機組成,攝像頭選用羅技HD720P廣角USB攝像頭。視覺算法需要一定的硬件計算資源,考慮到ARM架構的控制板的計算能力有限且存在交叉編譯的問題,這里選用X86架構的工控機作為機載計算平臺,參考市面上的一些微工控機以及尺寸功耗的考慮,最終選用威盛P910工控機。
1.3 避障部分
避障部分主要由激光雷達組成,激光雷達測距系統包括一個單束窄帶激光器和一個接收系統。這里選用日本北陽株式會社產的Hokuyo UTM-30LX激光雷達,如圖5所示,此款雷達有270度的測量范圍和30米的測試距離,總重270g,滿足飛行器避障模塊的要求。
2 軟件結構
軟件結構主要可以分為4個部分:定位、目標識別與跟蹤、高度控制和避障。幾個模塊之間是互相獨立又互相聯系的,整個控制回路最后數據融合輸出到飛行器硬件平臺。在ROS框架下有很多開源的包可以利用,各個軟件模塊都在ROS下實現。軟件整體結構如圖6所示,下面分塊介紹逐個模塊的實現。
2.1 TLD算法
TLD(Tracking-Learning-Detecting)由英國薩利大學的Zdenek Kalal提出[5]。TLD是一種穩定、魯棒、可靠的長時間跟蹤算法。該算法研究的出發點是單獨地運用現有跟蹤算法或檢測算法都無法長時間地跟蹤目標。Kalal創造性地將跟蹤算法和檢測算法相結合來解決跟蹤目標在被跟蹤過程中發生的形變、部分遮擋等問題,同時,通過一種改進的在線學習機制不斷更新跟蹤模塊的“顯著特征點”和檢測模塊的目標模型及相關參數,從而使得跟蹤效果更加理想。
在此系統中,為了保持好的追蹤效果。根據地面機器人在圖像中的位置,引入一個PD控制器,使飛行器保持在地面機器人上方。控制器的輸入是攝像頭畫面中央的像素位置,反饋值是實際捕捉到的地面機器人在圖像中的位置,控制框圖如圖7所示,根據實驗調整PD參數而使地面機器人保持在圖像的中央。圖8顯示了飛行器識別出的地面機器人,圖9顯示飛行器正在跟蹤地面機器人。
2.2 高度控制算法
根據實際飛行器實驗和悟空控制系統的說明[6],測試到油門信號與飛行器的實際升降有對應關系,具體如圖10所示。油門PWM信號占空比分子在1000到2000之間變化,當在1450到1550之間時,悟空控制系統會使飛行器會自動鎖定當前高度,根據這一特點設計了開關控制器,當高度低于給定值將占空比分子設置成1580,這樣飛行器會緩緩上升。當高度高于給定值時設成1430,這樣飛行器緩緩下降。并設置實際值在給定值上下5cm不作控制,即自動鎖定當前高度。如圖11,實驗時給定值在0.5m—1m—1.5m切換時,飛行器能及時達到給定值。在打舵的時候,飛行器高度會有所改變,該控制器也能及時調整達到設定高度。圖11中直線表示給定高度,綠線表示飛行器的實際高度,在時間10s附近開啟高度控制器。
3 結束語
基于國際空中機器人大賽第7代任務,本文提出了一種機載設備的實現方法,并詳細介紹了該方法的硬件平臺和軟件模塊。此方法完成了定位、高度控制、障礙物規避和單一地面機器人識別與跟蹤。飛行器續航能力有限且比賽時間有一定要求,所以要完成比賽a階段的追趕目標,上層的策略模塊還需要進一步完善。比賽的b階段增加了飛行器的同臺博弈,因此還需要更多的實驗以增加系統的魯棒性。
責任編輯:gt
-
機器人
+關注
關注
210文章
28231瀏覽量
206614 -
攝像頭
+關注
關注
59文章
4814瀏覽量
95474 -
激光雷達
+關注
關注
967文章
3943瀏覽量
189625
發布評論請先 登錄
相關推薦
評論