南京郵電大學 林靖凱 白 頔 顧晨暄
隨著無人機行業的發展,多旋翼無人機已在電力巡檢、消防搜救、安防偵查、物流配送等諸多領域得到應用。其中,無人機的自主著陸是任務過程中的關鍵一環。本文以小型四旋翼無人機為研究對象,提出了一種基于機器視覺的無人機自主著陸系統。通過采用地面人工標識AprilTag與無人機的視覺引導跟蹤算法相結合的方案,對無人機在移動平臺上的著陸系統進行了研究和設計。
隨著無人機行業的快速發展,無人機已在諸多領域得到了應用,例如利用無人機進行電力電網的日常巡檢、植保作業或通過搭載在貨車上進行包裹遞送等。旋翼飛行器可垂直起降,更加靈活,適應性更強,但其劣勢是飛行器續航時間較短。為了增加續航時間,必須增加電池容量,但同時增加了機體重量,進而導致飛行時間減短。
為突破固定充電平臺的局限性、擴大無人機作業范圍,本文提出了一種基于機器視覺的無人機在移動平臺上著陸的技術方案。通過自主跟蹤、著陸至移動充電平臺進行充電,從而實現其活動范圍的擴大。飛行器通過搭載的攝像頭進行圖像識別和處理,實現對移動著陸平臺的識別跟蹤、定位和穩定降落。
無人機移動平臺著陸技術作為一項通用的著陸技術,同時也可廣泛應用于其他場景中,比如,智慧物流、電力巡檢、森林防火、生態監測等。因此,本課題的研究方向具有較大的應用價值和市場前景。
本系統包括飛行器和地面引導標識兩部分構成。
2.1.1 飛行器設計方案
目前常見的四旋翼無人機布局方式可分為十字型和X型兩種。十字型無人機的控制較為簡單,X型無人機的控制則更為靈活,適合拓展功能。因此本方案選用X型無人機布局,搭載模塊包括飛行控制模塊、傳感器組、動力模塊。綜合考慮搭載模塊的質量、續航時間、飛行速度等因素,采用330mm機架。
2.1.2 地面引導標識設計方案
現有的基于機器視覺的無人機定位技術主要分為識別自然場景和識別人工標識兩類。隨著計算機視覺技術的發展,多種成熟且有效的圖像識別算法已可以用于自然場景下的目標檢測和跟蹤,其中包括利用攝像頭采集信息,通過傳回地面站或是自主分析的方式來完成任務目標等。傳統的目標識別與提取方法主要有光流法、CamShift目標跟蹤算法、粒子濾波目標跟蹤算法以及基于人工智能的算法等。相比于自然場景的識別,基于人工標識的識別算法具有更高的識別準確率。目前常見的人工標識包括QR碼、ArUco碼、AprilTag碼等。除此之外,還有利用激光雷達、超聲波等來進行定位的算法。
本課題由于對飛行器位置的實時性要求較高,因此在導航和目標跟蹤算法的選擇上較為關鍵。對比多種算法的優缺點,本課題采用AprilTag作為識別標識。AprilTag是一個視覺基準系統,在機器人技術中具有廣泛的應用。與其他人工標識不同,AprilTag增加了對圖表的識別編碼,在存在變形、遮擋的情況下也能保持較高的準確率,具有更好的魯棒性。同時,其檢測程序可以計算出攝像頭相對于標識的3D位置。AprilTag標識包括TAG16H5、TAG25H7、TAG36H11等多種,不同種類的標識其有效區域大小不同,較小的有效區域可在較遠處被識別,但同時由于校驗信息的減少,識別錯誤率也會上升。典型的AprilTag如圖1所示。

圖1 AprilTag實例
經過實驗和測試得出,TAG16H5識別距離遠、錯誤率高,TAG36H11識別距離近、錯誤率低。因此分別選用兩種大小不同的標識搭配進行識別,以滿足在不同高度情況下的識別精度要求。將OpenMV安裝在無人機下方,豎直向下進行圖像信息采集。由于OpenMV攝像頭為定焦鏡頭,在下降過程中無法變換焦距,將導致無法完整識別較大的標識,導致識別精度降低。采用兩種不同大小規格的標識,在不同的飛行高度階段識別不同規格的標識,以滿足識別準確度的要求。
飛行器啟動后開始系統的初始化,初始化完成后起飛執行相應任務。在接收到返航著陸的指令后,飛行器開始跟蹤移動目標上尺寸較大的識別標志。當識別圖像滿足著陸要求時,開始降低高度。高度降低至1m左右后,飛行器維持高度并保持跟蹤,同時對較小的識別標志進行識別,調整飛行位置,繼續執行降落程序。
四旋翼無人機的運動學模型輸入為速度和角速度,輸出為位置和姿態。在地面坐標系下,研究四旋翼的運動下位置與速度的關系,有:

其中,Pe=[x y z]T表示四旋翼重心的位置坐標,Ve=[Vx Vy Vz]T表示四旋翼的速度。
根據姿態角變化率與機體角速度的關系,可得:
無人機采用基于PID的閉環控制方式。PID算法是將偏差的比

圖2 高度PID控制
例、積分和微分通過線性組合構成控制量并對對象進行控制。降落過程中無人機采用雙閉環PID控制。其中角度作為外環,角速度作為內環,進行姿態PID控制。當需要穩定高度時,z軸加速度作為內環,進行高度PID控制,PID輸出值至電子調速器,電子調速器控制電機轉速從而控制無人機高度。控制流程框圖如圖2所示。
3.3.1 邊緣檢測
將采集到的圖像通過自適應閾值進行灰度處理,得到灰度圖。再經過濾波處理后,為每個像素分配白色或黑色值并對其進行二值化處理。通過識別具有相反顏色且相鄰的邊緣像素進行邊緣檢測和分割。
3.3.2 四邊形檢測
首先對無序的輪廓點按照對重心的角度進行排序,接著按照順序選取距離中心點一定范圍內的點進行直線擬合并不停地進行迭代,同時計算每條直線的誤差總和。選取誤差總和最大的四條直線對應的邊角點索引作為四邊形的邊角角點。取角點間的點擬合直線,計算得四條直線的角點作為四邊形的頂點。
3.3.3 解碼與編碼
通過調用OpenMV機器視覺模塊的庫函數tag.x_translation()、tag.y_translation()、tag.z_translation()和tag.x_rotation()、tag.y_rotation()、tag.z_rotation()得到AprilTag相對于攝像頭的3個空間位置量和3個旋轉量。
根據選用的OV7725攝像頭的焦距、像素及感光元件長度,可通過公式計算得到AprilTag相對于攝像頭在x,y,z軸三個方向上的實際距離。通過串口,將相對位置和角度數據傳送至飛控進行進一步處理。
4.1.1 系統硬件總體框圖
系統硬件部分主要包括飛行控制模塊、傳感器組、動力模塊三部分,總體框圖如圖3所示。
4.1.2 飛行控制模塊設計及選擇
飛行控制模塊為無人機的核心控制模塊,其作用包括實時處理傳感器采集的信息得到飛行器的姿態信息,通過PID控制算法得到控制量,轉化為所需要的控制量輸出并控制四個電機工作,從而保證飛行器的穩定飛行。常見的核心飛控板芯片包括stm32、tm4c123、pixhawk、樹莓派等。綜合考慮飛控的開源性、穩定性、可用接口及資源,選擇tm4c123作為飛控板芯片。其主頻為80MHz,Flash容量為256KB,RAM容量32KB,自帶2K的EEPROM,支持UART串口多達8路、I2C通訊6路、PWM輸出多達16路以及12個定時器,可以滿足任務的需求。

圖3 系統硬件總體框圖
4.1.3 傳感器組設計及選擇
飛行器上搭載的傳感器包括陀螺儀模塊、超聲波模塊、光流模塊以及用于OpenMV攝像頭。
(1)IMU姿態傳感器選擇
IMU姿態傳感器選用MPU6050,為6軸運動處理傳感器,它集成了3軸MEMS陀螺儀和3軸加速度計,通過I2C接口與飛控芯片進行通訊和信息傳送。陀螺儀可采集無人機包括沿3個坐標軸方向的線運動和沿3個坐標軸方向的角運動在內的6個自由度的數據信息。通過測量角速率和積分并由飛控進行處理后得到姿態角,來得知無人機的姿態和運動信息。
(2)定位模塊選擇
選用光流LC306模塊作為飛行器空間定位模塊。該模塊通過實時采集圖像,根據前后幀地面的圖像差異實時檢測飛行器的水平移動距離,通過飛控輸出控制量控制電機修正位移,實現無人機長時間的懸停。
(3)定高模塊選擇
選用HC-SR04超聲波測距模塊作為飛行器定高模塊。該模塊用于實現飛行器的高度控制。其可實現0-0.45m的非接觸測距功能,具有功耗低、成本低的特點,同時具有GPIO、串口等多種通信方式,工作穩定可靠。
(4)視覺處理模塊選擇
選用OpenMV攝像頭用于獲取圖像以進行視覺導航。OpenMV攝像頭包括主頻為480MHz的ARM Cortex M7處理器,以及一顆OV7725攝像頭,通過串口實現與飛控的信息交互。OpenMV可采用Python進行編程,易于進行機器視覺的各項開發和應用。
4.1.4 動力模塊設計及選擇
動力模塊由無刷電機、電子調速器、鋰電池、分電板組成。
電機選用2212 KV1400無刷電機。對比傳統直流電機,無刷電機具有體積小、扭矩大、響應速度快、控制精度高的特點,滿足四旋翼飛行器實時及高精度的控制需求。根據無刷電機的功率需求,選用30A的電子調速器。鋰電池選用一塊11.1-12.6V的航模鋰電池,通過各四個電子調速器驅動電機運轉,同時通過分電板穩壓模塊轉換為5V輸出給飛控及其余傳感器組供電。
飛控軟件基于Keil軟件進行開發,采用可移植性較強的C語言進行程序的編寫。軟件的主要設計思路如下:
(1)飛行器上電、飛控接通電源后,進行加速度計、陀螺儀等各項硬件的初始化程序和校準。
(2)遙控飛行器起飛,執行指定任務。此時飛控處在自穩模式,通過姿態解算和控制維持無人機穩定飛行。
(3)通過遙控器上的開關發送著陸信號指令,飛控通過中斷服務函數進入自主著陸模式,執行跟蹤著陸程序。
(4)跟蹤著陸程序首先通過攝像頭尋找TAG16H5系AprilTag。由OpenMV采集到的圖像經過圖像預處理、圖像灰度化、圖像濾波、圖像二值化等步驟后,通過函數解算得到無人機相對于標識二維碼的方位位置信息。
(5)根據解算得到的位置角度信息進行姿態調整并下降高度。高度降至1m左右時,切換識別較小的TAG36H11系AprilTag,繼續通過攝像頭識別、解算相關位置參數信息,根據得到的信息調整姿態直至最終著陸。軟件流程框圖如圖4所示。

圖4 飛控軟件流程框圖
結束語:本文以小型四旋翼無人機為研究對象,通過搭載OpenMV機器視覺及相關輔助模塊,研究并設計了一種無人機對移動目標平臺進行跟蹤和著陸的方案。通過識別AprilTags將無人機引導著陸至目標移動平臺上,提高了無人機的自主飛行能力。