第一章 緒論
1.4 研究成果與貢獻
國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
之飛行路徑與理想的圓形路徑相互比較,同時也會確認目標之影像資料是否能 維持在無人機畫面的正中心以達到最佳的檢視品質,我們會藉由這兩種指標來 確認本研究之成效。最後第五章則討論本研究的結論以及規劃相關的未來工 作。
1.4 研究成果與貢獻
本論文的研究成果與貢獻主要是讓無人機可以在不使用其他感測器的情 況下,僅使用 SLAM 以視覺定位無人機的位置並且應用於實際的檢測任務。無 人機首先會使用特徵點比對之方式來確認建築是否為我們欲檢測之目標建築 物,接著無人機會自動靠近目標建築物並標示出該建築物位於 SLAM 座標系統 之圓心位置,並依據使用者所設定的檢視半徑規劃出圓形的檢視路徑以進行環 繞檢視。在環繞的過程中,無人機會根據 SLAM 所提供的姿態位置來檢查自身 是否仍在路徑的軌道上,如果偏離了軌道,無人機便會根據自身位置實時動態 校正。由於本研究目標是環繞檢視任務,因此在過程中需要無人機的攝影機能 一直正對著目標物來進行檢視,因此我們的無人機會也根據目標物相對於無人 機之位置來調整無人機攝影機所面向的角度。
另外在無人機自主建築物檢測的相關研究中,雖然有許多研究皆有提出 許多新穎的方法,但是很多的實驗仍然停留在使用模擬器或是在實驗室的環境 中來進行測試,而沒有拿到真實世界的環境做實際的應用。在真實世界中其實 往往會有許多的不可控因素影響到實驗的進行,比如說自然光照、風速、訊號 影響等等,而那些因素皆會影響到實際實驗進行的狀況。因此做為本論文的方 法測試,我們會以真實世界裡的橋墩做為實際測試的例子,實際驗證我們所提 出之方法,並以兩種評估指標做為基準來評測實驗數據。
‧
measurement unit,IMU)來協助無人機測量自身位置。慣性測量單元是藉由無 人機內建的一些測量單元例如:陀螺儀、指北針以及加速度計等等所構成,而 圖建構(Simultaneous Localization and Mapping,SLAM)便是以此做為根基並‧
大多數的 SLAM 皆是利用運動推斷結構[11](Structure from motion,
SFM)來做為根基。攝影機可以透過在環境中四處移動來獲取到許多環境周遭的 是在於擷取影像特徵值之方法的不同。在其中,DSO-SLAM、LSD-SLAM 以及 ORB-SLAM 為技術發展較為成熟也是比較多人所使用的 SLAM 技術,並且這些 技術皆有被包裝成 ROS(Robot Operating System)提供給使用者使用。
DSO-SLAM[12]為基於直接算法所設計的 SLAM,在點雲的生成量上是 屬於稠密的點雲地圖,因此構建出來的點雲群的可讀性較高。然而因為它缺乏 閉環檢測(loop-closure)的功能,因此它不會根據先前走訪過的特徵值來重新 校正攝影機的位置,而這也導致了 DSO-SLAM 在使用時,它會隨著使用時間的 推移而逐漸累積誤差值導致其定位精度逐漸下降。因此在面對長時間的任務 時,使用 DSO-SLAM 作為座標系統之定位基礎可能會產生比較大的誤差。
LSD-SLAM[13]與 DSO 同樣是屬於稠密類型的點雲地圖,它的特徵點是 藉由影像的梯度來擷取,而它也是被歸類為使用直接算法方式的 SLAM 技術。
與 DSO 不同的是,LSD-SLAM 具備閉環檢測的功能,因此當攝影機走訪到重 覆的位置後,它可以根據偵測到的重複的特徵值重新為其位置進行校正。然而 LSD-SLAM 對光源的敏感度較高,而在室外環境運行時因其光源變化相較於室 內來說較為複雜,因此相比於室內環境 LSD-SLAM 在室外的運行結果通常會比 較差[14]。
ORB-SLAM[15]的點雲是基於 ORB 特徵點提取方式來獲取的。由於其特 徵點擷取之方法,ORB-SLAM 僅能生成半稠密(Semi-dense)的點雲地圖,因 此在可讀性上 ORB-SLAM 相較於上述之 SLAM 也比較差,而其特徵點擷取之
‧
誤差。而表現第二好的 SLAM 為 LSD-SLAM,其平均誤差值為 0.277m;表現 最好的 SLAM 為 ORB-SLAM,其平均誤差值為 0.159m。ORB-SLAM 雖然對於紋理單調的場景其穩定性雖然不高,但是在自主檢測的任 務中不單單只有建築物本身,其目標建築物附近的環境影像特徵皆可以成為 ORB-SLAM 定位的依據以增強 ORB-SLAM 的定位精確度。除此之外,ORB-SLAM 也同時支援使用者自行存儲地圖,讓使用者做完一次環繞檢視任務後,
可以保存當前建立好的點雲地圖以便之後可以重複利用。鑒於上述之因素,本 研究最後選定 ORB-SLAM 做為本研究視覺導航之無人機的定位依據。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
2.2 行為樹
由於檢視 3D 物件的任務流程十分繁瑣,且在進行任務時有部分的動作 需要無人機重複執行,例如:建築物的環繞、前後校正以及轉向校正等等,因 此程式的模組化(Modularity)與可重用性(Reusability)對於檢視任務來說非 常重要,本小節將探討可將程式模組化之方法。
有限狀態機(Finite state machine)已經被應用於電腦科學多年,有限狀 態機是一個數學的計算模型,可以表示有限個狀態以及在這些狀態之間可以因 為達成某些條件而自動切換狀態。有限狀態機通常會有一個起始階段顯示初始 之狀態,以及一個終點狀態顯示最終目標,如圖 2.1 為有限狀態機之範例,初 始狀態為 S0 而終點狀態為 S3,其中會根據使用者輸入之數值 1 或 0 來做狀態 之間的切換,當有限狀態機偵測到連續兩個輸入數值皆相同後則會進到最終狀 態 S3。
圖 2.1:有限狀態機。
而使用有限狀態機的應用種類繁多,從紅綠燈號誌的變化到投幣販賣機 的應用都可以使用有限狀態機來進行設計,而在無人機的應用上有限狀態機可 以幫助其在進行決策以及狀態之間的變換上更加清楚明確。如[17]所提及之案 例,他們設計一套系統可以利用無人機去進行人員的搜索和救援任務,他們利 用平行階層化的有限狀態機(Parallel Hierarchical Finite State Machine,
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
PHFSM)去連接無人機之各個技術組件,並根據當下無人機的狀況在各個狀態 節點中進行條件切換。圖 2.2[17]為他們所設計之 PHFSM 架構,每個節點代表 著一個較大型的科技組件,並且每個節點裡面也同時是由複數個有限狀態機去 組成。而在 PHFSM 的系統架構中,他們可以很輕易的利用階層化的方式來定 義緊急狀態(Emergence State)並將其設為最優先級,來讓無人機偵測到異常 後能快速的進行緊急處理。這樣的編排已經某種程度增加了其系統的模組性和 重複使用性以及易讀性,並且已經有優先序的概念形成。
圖 2.2:無人機的救援任務以 PHSFM 表示。[17]
行為樹也類似於有限狀態機,其設計之目的也是幫助程式進行模組化以 及提高可重用性。而與有限狀態機不同的是,行為樹在設計上更為精簡,在閱 讀上也更符合直覺,並且可模組化的程度與可重用性相比於有限狀態機更高,
因此使用者可以很輕鬆地從行為樹中添加或刪除動作及條件甚至於其子樹,而 不必仔細去確認修改所有內容。行為樹最早被使用於電玩遊戲產業去控制 NPC
(None player character)的行為,而現今行為樹也被應用於許多其他領域。行 為樹的樹葉節點可以分為兩種類型,其分別為:動作節點(Action node)以及 情況節點(Condition node),而非樹葉的節點則可以分為 4 種:選擇節點
(Selector node)、序列節點(Sequence node)、並行節點(Parallel node)以 及裝飾節點(Decorator node )。而以上六種節點皆只會回傳 3 種狀態:成功、
運行中以及失敗,而其詳細規則如表 2.1。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
表 2.1:行為樹之規則簡介。
結點類型 成功 失敗 執行中
選擇節點 一個節點成功 所有節點失敗 一個節點回傳執行中 序列節點 所有節點成功 一個節點失敗 一個節點回傳執行中 並行節點 N 個節點成功 N 個節點無法成功 所有節點回傳執行中
裝飾節點 自訂 自訂 自訂
動作節點 完成動作 無法完成動作 執行中
條件節點 合乎條件 不合乎條件 無
行為樹會以一定頻率由左至右逐一拜訪其各個節點。選擇節點以圖示表 示為問號,當其下之任一節點回傳成功其便會往上回傳成功,反之失敗;序列節 點以圖示表示為單箭頭,當其下所有節點回傳成功便會回傳成功,反之失敗;並 行節點以圖示表示為雙箭頭,當其下 N 個子節點回傳成功便會回傳成功,反之 失敗;裝飾節點以圖示表示為外框菱形,其可以由使用者自行定義回傳成功以及 失敗之條件;狀況節點以圖示表示為外框橢圓形,其會依據使用者設定之條件並 根據當下情況進行判斷來回傳成功或失敗;動作節點以圖示表示為外框方型,若 動作完成則會回傳成功,反之則回傳失敗。
圖 2.3[18]之例子顯示行為樹相比於有限狀態機可以用更簡潔的方式來描 述問題。若以有限狀態機來設計系統,開發者必須很繁複的去根據狀態所回傳 之三種狀態(即:成功、失敗以及運行中)來進行節點之設計,而由於行為樹 之節點本身就被預設為會根據條件來回傳這三種狀態,因此在系統的設計上相 對來說更為方便。而由於行為樹其本身為樹狀之結構圖,因此行為樹可以很輕 易的設計出具有優先化概念之階層化邏輯架構,而相比於有限狀態機,行為樹 的這種樹狀結構之特性也可以讓使用者能更直覺的從邏輯架構中刪除或是添加 額外的行為,而不用去詳細確認節點之間的狀態轉換。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
圖 2.3:開前門,如果成功則通過,分別以 FSM(左)和行為樹(右)表示。[18]
圖 2.3:開前門,如果成功則通過,分別以 FSM(左)和行為樹(右)表示。[18]