關鍵詞:全球衛星導航系統、即時動態定位、無人機、航向角
3. 無人機系統
3.1 硬體架構
本文採用自組式四旋翼無人機系統,四旋翼
無人機多採用質地輕巧堅固的碳纖維做為機架 的材料,搭配無刷直流馬達做為動力的輸出,並 以電子變速控制器控制其輸出轉速,使用鋰聚電 池做為無人機的整體電源供應,而控制部分是由 飛控主板做為無人機的運算核心,另外也使用遙 控裝置及數據傳輸。(ArduPilot Dev Team, 2020b)
圖 3 無人機系統示意圖
3.1.1 馬達及電子變速控制
馬達與電子變速控制為無人機動力輸出部 分,由飛控板輸出脈波寬度調變 (Pulse Width Modulation, PWM) 訊號給連接在各馬達上的電 子變速控制器 (Electronic Speed Controller, ESC),
再透過電子變速控制器控制馬達,達到調節馬達 轉速的功效。在無人機上所使用的是直流無刷馬 達,可由其 KV 值計算其轉速,KV 值定義為每 伏特電壓可產生多少轉速,在相同電壓下,低 KV 值的馬達須配合較長的螺旋槳,高 KV 值的馬達 轉速高則須配合較短的螺旋槳,若將低 KV 值的 馬達配上較短的槳會造成推力不足的情況,高 KV 值的馬達若配上較長的獎則會遭成電流過大,
若超過馬達能負荷的範圍則能會造成馬達燒壞 的情況。
3.1.2 遙控與無線數據傳輸系統
無人機自動飛行時無法確定其飛行軌跡是 否會遇到障礙物,因此需要透過遙控系統可以隨
王士益、劉瑋傑、顏永哲、歐陽盟、林修國: 應用低成本雙頻GNSS RTK技術於無人機定位定向之研究 243
時介入,用來控制飛機的飛行與飛行模式切換,
保障飛行安全,遙控裝置多使用 2.4GHz 頻段進 行點對點的無線通訊。無人機上使用的無線數據 傳輸系統遵循 MAVLink (Micro Air Vehicle Link) 通訊協定,MAVLink 是一種非常輕量的訊息傳 輸協議,專門用於與無人機以及地面控制站之間 進行通信,使得地面控制站能即時監視無人機在 航 行 中 的 飛 行 數 據 ( 高 度 、 方 位 、 速 度 等 ) (Wikipedia, 2020)。
圖 4 數據傳輸裝置 圖 5 遙控裝置發射端 兩種飛控韌體,本文使用 Ardupilot 作為飛控韌 體。pixhawk 4 mini 完整硬體規格如表 1,其內建 pixhawk 4 mini
處理器 STM32F765
Accel/Gyro ICM-20689 、 BMI055
Magnetometer IST8310 Barometer MS5611 傳輸介面 microSD card slot
尺寸 Dimensions:38x55x15.5mm Weight: 37.2g
3.2 地面控制站
Mission Planner,也是屬於開源的軟體可讓開發 者進行修改。Mission Planner 可以連接 RTK 的參 考站,將參考站資料傳送至無人機,使無人機能 進行 RTK 定位,連接參考站的方式支援電腦本 地 COMport、TCP、UDP 以及常用於 GNSS 定位 的 NTRIP。圖 7 Mission Planner 地面控制站程式畫面
圖 8 Mission Planner RTK 參考站連線畫面
244 航測及遙測學刊 第二十五卷 第四期 民國 109 年 12 月
3.3 飛控韌體
在本文所使用的飛控板可相容的開源飛控 韌體有 PX4 及 ArduPilot 兩大專案,ArduPilot 因 發行時間較早且調整軟體支援多國語系,多為業 餘或自組無人機玩家所使用的主流飛控韌體,對 於定翼機、旋翼機、無人船及自走車開發出具備 完整且出色的飛行控制系統,同時兼具跨平台及 較多的驅動程式支持,故此本文使用的飛控韌體 即為 ArduPilot。
ArduPilot 韌體架構如圖 9,由架構中得知 ArduPilot 的飛行控制核心是由 Flight Code 負責,
其 中 分 為 三 個 階 層 : Vehicle Code 、 Shared Libraries 、 Hardware Abstraction Layer (HAL) (ArduPilot Dev Team, 2020a)。Vehicle Code 定義 了不同型式的載具,根據所選擇的載具,系統會 調整成所選載具的硬體架構。Shared Libraries 為 共用函式庫,其中包括感測器驅動程式,姿態和 定位估計及 PID 控制。HAL 為硬體抽象層,使 ArduPilot 可移植到許多不同平台。
圖 9 ArduPilot 架構 (修改自 ArduPilot Dev Team, 2020b)
王士益、劉瑋傑、顏永哲、歐陽盟、林修國: 應用低成本雙頻GNSS RTK技術於無人機定位定向之研究 245
圖 10 ArduPilot 運作流程 (修改自 ArduPilot Dev Team, 2020b) 圖 10 為 ArduPilot 韌體運作流程,ArduPilot
處理飛行任務是由一主要迴圈反覆執行,逐一呼 叫函式。
圖 11 為 ArduPilot 韌體在自動返航模式時的 流程,飛行中將不斷的反覆執行,第一步檢查目 前飛行的模式並呼叫該模式,圖中為自動返航模 式;第二步解析目前姿態並設定目標 roll、pitch、
yaw 值至姿態控制器,計算飛行路徑並更新目標 位置;第三步為計算位置、速度、加速度及姿態 誤差;第四步將上述誤差參數轉換為馬達個別的 PWM 訊號;最後將 PWM 訊號傳至 ESC,藉此 驅動馬達以反應飛行任務。
無人機系統飛行狀態使用三軸加速度計、三 軸陀螺儀及三軸電子磁力計、以及 GNSS 所提供
的 位 置 及 速 度 , 透 過 擴 展 卡 爾 曼 濾 波 器 (Extended Kalman Filter, EKF) 預估外插及更新 狀態來修正狀態向量。
一般的卡爾曼濾波器是利用遞迴的方式,將 前一時刻之估測值及新的觀測量進行解算,得出 當前時刻之估測值,在動態系統中會利用狀態轉 移矩陣 (State Transition Matrix),將當前時刻之 狀態向量進行估測,並藉由觀測量來修正。
在 擴 展卡 爾曼 濾波 器中 ,狀 態轉 換模 型 (State Transition Model) 和 觀 測 模 型 (Measurement Model) 不需要是狀態的線性函數,
可以是可微函數。擴展卡爾曼濾波器是卡爾曼濾 波器的非線性版本,可對當前均值和協方差的估 計線性化。
246 航測及遙測學刊 第二十五卷 第四期 民國 109 年 12 月
圖 11 ArduPilot 自動返航模式程式流程 (修改自 ArduPilot Dev Team, 2020b)