以雲端運算為基礎之增強型同時定位與建圖
86
0
0
全文
(2) 以 雲 端 運 算 為 基 礎 之 增 強 型 同 時 定 位 與 建 圖. 學生:林東源. 指導教授:許陳鑑 博士 王偉彥 博士. 國立臺灣師範大學電機工程學系碩士班. 摘. 要. FastSLAM 演算法常常被用來解決同時定位與建圖問題。雖然 FastSLAM2.0 的運算效率比 EKF-SLAM 來的高,但是隨著地標數目增加的時候,FastSLAM2.0 會因為需要多次比對量測資訊與粒子內存的地標資訊,而降低運算效率。因此, 本論文提出一改良作法,稱之為「增強型同時定位與建圖演算法(ESLAM)」,避 免只用里程計資訊預測機器人位置,也使用環境資訊更新機器人預測位置,並選 擇與量測資訊相似性最高的地標資訊先更新機器人位置後,再更新地標位置。模 擬結果顯示,我們所提出的演算法相較於 FastSLAM2.0 具有較高的運算效率,且 具有較良好的定位與建圖準確度,而相較於 CESLAM 雖然犧牲了些許運算效率, 但提升了準確度。由於 SLAM 演算法常需要複雜計算,使得執行效率低落,無法 達成即時處理的目標。因此,我們提出一雲端運算架構,將計算密集的任務卸載 至雲端運算平台,運用雲端的快速運算以提升演算法之效能,其作法係利用 RPC 傳輸協定搭配雲端平行化架構進行以雲端為基礎之增強型同時定位與建圖。實驗 結果證明,本方法可以確保定位與建圖的準確度之外,並運用雲端運算提升同時 定位與建圖之執行效率。 關鍵字:同時定位與建圖、FastSLAM、Hadoop、HBase、雲端運算. i.
(3) Enhanced Simultaneous Localization and Mapping (ESLAM) Based on Cloud Computing Student:Tung-Yuan Lin. Advisor:Dr. Chen-Chien Hsu Dr. Wei-Yen Wang. Department of Electrical Engineering National Taiwan Normal University. ABSTRACT. FastSLAM is currently the most common solution to SLAM problems. Although the processing speed of FastSLAM2.0 is already faster than the EKF-SLAM, it could become slower under the circumstances of too many landmarks existence, where comparison measurements needed to be taken many times and would lower the calculating effectiveness. Therefore, this thesis proposes an improved version, Enhanced SLAM, which avoids using the odometer information only but also include the sensor measurements to estimate the robot’s pose. We used the landmark information that has the largest likelihood to update the robot’s pose first and then update the landmarks’ location. Compared to the FastSLAM2.0, our algorithm improved both the accuracy and the efficiency. Compared to the CESLAM, we improved the accuracy of locating and mapping but sacrificed some calculating effectiveness. The calculation consumes too much time and thus fails to achieve the goal of instant processing, hence, we utilized the high-speed of the cloud computing based on the combination of RPC Transfer Protocol and cloud parallel system to process ESLAM. The experiment results showed that this solution we proposed can improve the accuracy as well as the effectiveness of locating and mapping.. Keywords: SLAM, FastSLAM, Hadoop, HBase, Cloud Computing. ii.
(4) 致. 謝. 剛服完兵役的我,在對人生徬徨之際,父母的一句話: 「趁年輕多 念點書!」讓我再次回到校園生活,碩士生涯的這兩年感謝我的指導 教授許陳鑑教授與王偉彥教授,無論在生活或是研究上指引我應有態 度與方向。 其次,感謝我的口試委員李世安教授與王銀添教授,能夠抽出時 間審閱我的論文,給我許多寶貴的建議,使我的論文更加完善。 感謝所有實驗室的同學與系辦的大家,這兩年來的陪伴。 最後,感謝我的父母與家人,我的後盾,希望這篇論文能令你們 感到驕傲。 向所有在我身邊幫助過、關心我的人,在此謹以本文獻上我最誠 摯的感謝與祝福。. 林東源. 謹誌. 中華民國一○四年七月. iii.
(5) 目 摘. 錄. 要 ..................................................................................................................... I. ABSTRACT ................................................................................................................... II 致. 謝 ...................................................................................................................III. 目. 錄 .................................................................................................................. IV. 表 目. 錄 .................................................................................................................. VI. 圖 目. 錄 ................................................................................................................. VII. 第一章. 緒論 .................................................................................................................1. 1.1. 研究動機與背景 .........................................................................................1. 1.2. 研究目的 .....................................................................................................3. 1.3. 論文架構 .....................................................................................................6. 第二章. 文獻探討與回顧 .............................................................................................7. 2.1. 理論基礎 .....................................................................................................7. 2.2. 2.1.1. 卡曼濾波器(Kalman Filter) ................................................................7. 2.1.2. 粒子濾波器(Particle Filter) ................................................................9. SLAM 演算法 ...........................................................................................13 2.2.1. 快速型同時定位與建圖演算法 1.0 (FastSLAM 1.0) .....................14. 2.2.2. 快速型同時定位與建圖演算法 2.0 (FastSLAM 2.0) .....................17. 2.2.3. 具有高計算效率之同時定位與建圖演算法 (CESLAM) ..............21. 2.3. 雲端機器人同時定位與建圖 ...................................................................27. 第三章. 增強型同時定位與建圖演算法(ESLAM) ...................................................29. 第四章. 以雲端運算為基礎之增強型同時定位與建圖 ...........................................36. 4.1. 雲端平台 ...................................................................................................36 4.1.1. 端點協同處理器(Endpoint) ..............................................................38. 4.2. ESLAM 雲端架構.....................................................................................40. 第五章. 實驗結果 .......................................................................................................47 iv.
(6) 5.1. 實驗環境 ...................................................................................................47. 5.2. ESLAM 模擬結果.....................................................................................48. 5.3. ESLAM 雲端實驗結果.............................................................................56. 5.4. 實驗討論 ...................................................................................................66. 第六章. 結論與未來展望 ...........................................................................................68. 6.1. 結論 ...........................................................................................................68. 6.2. 未來展望 ...................................................................................................68. 參考文獻 .......................................................................................................................70 自傳 ...............................................................................................................................75 學術成就 .......................................................................................................................77. v.
(7) 表. 目. 錄. 表 1.1、圖 1.2 圖示及符號說明 ....................................................................................4 表 5.1、ESLAM 實驗用電腦規格...............................................................................47 表 5.2、ESLAM 雲端實驗用電腦規格.......................................................................47 表 5.3、16 個地標各種 SLAM 演算法的定位模擬結果 ...........................................51 表 5.4、16 個地標各種 SLAM 演算法的建圖模擬結果 ...........................................52 表 5.5、70 個地標各種 SLAM 演算法的定位模擬結果 ...........................................52 表 5.6、70 個地標各種 SLAM 演算法的建圖模擬結果 ...........................................52 表 5.7、不同地標數各種 SLAM 演算法的執行時間比較 ........................................53 表 5.8、209 個地標各種 SLAM 演算法的定位模擬結果 .........................................54 表 5.9、209 個地標各種 SLAM 演算法的建圖模擬結果 .........................................55 表 5.10、209 個地標各種 SLAM 演算法的執行時間比較 .......................................55 表 5.11、實驗一:有無多執行緒版 ESLAM 演算法的模擬結果............................57 表 5.12、實驗二:不同地標數下單機與雲端版 ESLAM 演算法執行時間比較 ...60 表 5.13、實驗三:不同粒子數下單機與雲端版 ESLAM 演算法執行時間比較 ...62 表 5.14、實驗四:仿真實環境單機與雲端版 ESLAM 執行時間比較 ...................65. vi.
(8) 圖. 目. 錄. 圖 1.1、智慧型機器人導航領域示意圖 .......................................................................1 圖 1.2、機器人同時定位與建圖運作概念示意圖 .......................................................4 圖 1.3、簡易機器人同時定位與建圖流程圖 ...............................................................5 圖 2.1、卡曼濾波器流程圖 ...........................................................................................9 圖 2.2、競爭選取法簡易流程圖 ................................................................................. 11 圖 2.3、粒子濾波器流程圖 .........................................................................................12 圖 2.4、MCL 簡易示意圖說明 ...................................................................................12 圖 2.5、CESLAM 流程圖 ............................................................................................26 圖 3.1、ESLAM 流程圖...............................................................................................35 圖 4.1、HADOOP 生態系 ..............................................................................................37 圖 4.2、HBASE 簡易架構圖 .........................................................................................37 圖 4.3、MAPREDUCE ON HBASE ..................................................................................39 圖 4.4、ENDPOINT 平行呼叫和執行 ............................................................................39 圖 4.5、ESLAM 粒子結構示意圖...............................................................................40 圖 4.6、ESLAM 雲端架構圖.......................................................................................46 圖 4.7、本論文實驗所用之雲端架構圖 .....................................................................46 圖 5.1、16 個地標各種 SLAM 演算法的模擬結果 ...................................................49 圖 5.2、70 個地標各種 SLAM 演算法的模擬結果 ...................................................50 圖 5.3、209 個地標各種 SLAM 演算法的模擬結果 .................................................54 圖 5.4、實驗一:有無多執行緒版 ESLAM 演算法的模擬結果 .............................56 圖 5.5、實驗二:單機與雲端版 ESLAM 演算法的模擬結果 .................................58 圖 5.6、實驗二:不同地標數單機與雲端版 ESLAM 執行時間長條圖 .................60 圖 5.7、實驗三:不同粒子數下單機與雲端版 ESLAM 執行時間長條圖 .............62 圖 5.8、實驗四:模擬所用的環境地圖 .....................................................................64 vii.
(9) 圖 5.9、實驗四:仿真實環境下 ESLAM 模擬結果 .................................................65 圖 5.10、實驗四:仿真實環境單機與雲端版 ESLAM 執行時間長條圖 ...............65. viii.
(10) 第一章. 緒論. 1.1 研究動機與背景 隨著科技日新月異,現今社會中開始出現各式各樣的智慧型機器人,代替人 類執行複雜且危險的任務,或是執行居家照護工作,智慧型機器人產業進而蓬勃 發展。然而,在未知環境中像是深海、地底、甚至是外太空,當智慧型機器人要 執行各種任務時,必須了解自己所在的位置,以及環境周圍的樣貌,才能準確行 動,這表示智慧型機器人需要具有導航(navigation)能力,才能順利執行任務。. 路徑規劃 (Path Planning). 自我定位 (Localization). 地圖建置 (Map Building). 同時定位與建圖 (Simultaneous Localization and Map Building). 圖 1.1、智慧型機器人導航領域示意圖 如圖 1.1 所示,智慧型機器人的研究議題可概略劃分為三個主要領域:自我定位 ( Localization)、地圖建置(Map Building)、以及路徑規劃(Path Planning),而包含 自我定位與地圖建置是近年來被廣為討論的「同時定位與建圖 (Simultaneous Localization and Map Building, SLAM)」[1][2]技術,SLAM 可以看成是先有雞還 先有蛋的問題:想要在環境中定位出準確的位置我們需要無偏差的環境地圖,但 1.
(11) 建立這樣的地圖卻又需要依靠準確的定位結果,在未知環境中智慧型機器人既沒 有位置也沒有地圖時,機器人就無法執行任務,因此 SLAM 的技術在機器人導航 中就顯得重要。在 1985 年就有學者將卡曼濾波器(Kalman Filter, KF)裝置在移動 平台上進行導航[3],在 1995 年 International Symposium on Robotics Research (ISRR)研討會中出現專有名詞 SLAM [4],在當時就有很多學者及學術單位提出不 同的研究成果,像是美國麻省理工學院[5]、澳洲雪梨大學[6][7]。. 著名的 SLAM 技術有 EKF-SLAM 與 FastSLAM 兩種。EKF-SLAM 是由 Smith 等人提出,運用延展性卡曼濾波器(Extended Kalman Filter, EKF)來解決同時定位 與建圖問題[8],智慧型機器人將里程計資訊與感測器資訊輸入卡曼濾波器中,同 時預測與更新機器人的位置與障礙物的位置。EKF-SLAM 於運算過程中會將非線 性系統以線性化處理並加以使用,所以針對線性或趨近於線性之系統有良好效能, 然而,現實情況下並非所有機器人系統均為線性系統,非線性系統下 EKF-SLAM 的結果往往不如預期[9]。此外,EKF-SLAM 會因為環境地圖資訊的增加,導致 共變異數矩陣的運算量呈現二次方倍數的成長,當地圖資訊數以千計將造成龐大 的運算負擔,使得運算效能低落[5][10]。EKF-SLAM 對於錯誤的環境特徵容忍度 低[11],錯誤的資料關聯會使得定位與建圖結果有著嚴重的錯誤。因此許多針對 EKF-SLAM 的改良便油然而生,Chatterjee 等人提出以 Geese PSO 參數[12]來改良 EKF-SLAM 的架構[13][14],提升 EKF-SLAM 的強健性,Williams 等人也提出管 理地標的策略[15],刪除不可靠的地標[16],以提升 EKF-SLAM 的效果[17][18]。. FastSLAM 則是由 Montemerlo 等人提出,運用 Rao-Blackwellized 粒子濾波器 (Rao-Blackwellized Particle Filter, RBPF) [19]來達成同時定位與建圖,RBPF 可以 看做是 EKF 結合粒子濾波器(Particle Filter, PF),將 SLAM 問題分為兩部分來看: 一是定位部分以 PF 來處理,另一為建圖部分以 EKF 來運算。相較於 EKF-SLAM 以單一且龐大的 EKF 架構來處理所有的環境特徵,RBPF 則是給予每一環境特徵 獨立的 EKF,降低運算負擔。Montemerlo 等人提出的 FastSLAM 有兩個版本: FastSLAM1.0 [20]與 FastSLAM2.0 [21]。兩者最大差別在於機器人定位與粒子權 2.
(12) 重計算方式不同,FastSLAM2.0 為了更準確的機器人定位結果相對上需要花費更 多計算時間,隨著地標數目越來越多,所花費的時間也相對大幅增加。然而,因 為定位與建圖結果相互影響下,隨著執行 SLAM 任務次數增加,FastSLAM2.0 的 誤差累積越發嚴重,尤其是沒有閉迴路(Loop-closure)的情況下,為了解決這些問 題,楊誠愷[22]提出的具有高計算效率之同時定位與建圖演算法(Computationally Efficient SLAM, CESLAM)以 FastSLAM2.0 為基礎加以改良,在更新地標前先更 新機器人位置,且跳過不必要的更新,以降低運算量,並且提升精確度。鄧宏志 [23]提出將粒子群最佳化演算法(Particle Swarm Optimization, PSO)結合雙層粒子 濾波器架構的 SLAM,運用 PSO 快速收斂的性質與 PF 來定位,更以 PF 取代 FastSLAM 中 EKF 的角色,提升建圖的精準度。. 隨著未知環境的擴展,所建立的環境地標數目大量增加,所使用的 FastSLAM 演算法中每個粒子內存的地標相對增加,造成計算負擔,隨著網路科技日漸發達, 開始有學者提出利用雲端平行運算以及卸載的概念,結合 FastSLAM 演算法的雲 端架構[24]使得同時定位與建圖更有效率。. 綜合以上觀點,本論文針對具有高計算效率之同時定位與建圖進行改良及探 討,提出一改良的增強型同時定位與建圖(Enhanced SLAM, ESLAM),並使用 Apache HBase 下的協同處理器 Endpoint 實現以雲端為基礎之 ESLAM。. 1.2 研究目的 智慧型機器人同時定位與建圖,是藉由智慧機器人在未知環境裡的移動,從 移動過程中重複接收感測器所量測到的環境特徵資訊,記錄環境特徵後得以完成 環境地圖的建立,並根據這些環境特徵與機器人本身的里程計資訊進行推算,達 到自我定位之功能。如圖 1.2 所示。. 3.
(13) m3. ut 2 st 2. zt3. m1. ut 1 zt11. ut. st 1. st. zt21. m5. zt41. zt2. st 1. zt5 2. m4 m2. 圖 1.2、機器人同時定位與建圖運作概念示意圖 表 1.1、圖 1.2 圖示及符號說明 圖示. 說明 機器人在環境中的真實位置。 機器人在環境中的預測位置,即定位結果。 地標特徵在環境中的真實位置。 地標特徵在環境中的預測位置,即建圖結果。. st. 機器人在 t 時刻的預測狀態,包含機器人位置與方向。. ut. 機器人在 t 1 時刻到 t 時刻之間的移動資訊,包含移動距離與方 向。. mn. 第 n 個地標特徵的預測位置。. ztn. 感測器於 t 時刻所量測到第 n 個地標特徵的量測資訊。. 參考圖 1.2 及表 1.1,深色三角形為機器人的真實位置,淺色三角形為機器人 的預測位置;深色星形為地標的真實位置,淺色星形為地標的預測位置。如圖所 4.
(14) 示,機器人在 t 時刻的狀態 st 是由 t 1時刻的狀態 st 1 與機器人移動資訊 ut 來決定, 機器人雖然根據 ut 移動,但因為里程計的誤差,機器人的預測位置與真實位置間 就存在著差距。再來,會根據機器人上感測器對於地標特徵 mn 所量測到的量測資 訊 ztn ,來修正機器人的預測位置,並更新已知地標特徵的預測位置,對於未知地 標特徵的預測位置則會新增於的圖中。藉由重複執行上述動作,建立出環境地 圖。. 自我定位 機器人 位置預測. 移動資訊. 機器人 位置修正. 感測資訊. 地圖建置 障礙物 位置修正. 圖 1.3、簡易機器人同時定位與建圖流程圖 如圖 1.3 所示,機器人根據已建立好的地圖資訊,藉由機器人的移動資訊與 環境的感測資訊來自我定位,環境地圖則依靠機器人的位置與環境感測資訊來完 成,隨著機器人持續移動探索環境,並重複執行演算法,進而達成機器人的同時 定位與建圖。本論文提出一 CESLAM 的改良作法,在預測機器人狀態時使用里 程計資訊與感測器資訊,避免 CESLAM 在預測機器人狀態時只使用里程計所發 生的誤差,以提升定位與建圖的精確度,並使用雲端的平行運算與卸載來提升運 算效能完成同時定位與建圖。 5.
(15) 1.3 論文架構 本論文包含六個章節,第一章為緒論,對於機器人同時定位與建圖的研究背 景做說明,並闡述本論文的研究動機與目的。第二章文獻探討與回顧,介紹 FastSLAM 所用到的理論基礎以及 FastSLAM1.0 與 FastSLAM2.0,並介紹以 FastSLAM2.0 為基礎,改良其運算效率的 CESLAM,以及回顧近年來以雲端運算 為基礎之同時定位與建圖的相關文獻。第三章介紹以 CESLAM 為基礎,改良其 定位與建圖精確度的 ESLAM。第四章則是說明本論文實驗所使用的雲端運算平 台,以及如何將雲端運算結合 ESLAM,以雲端運算為基礎之 ESLAM 架構。第 五章介紹實驗環境,比較不同 SLAM 演算法之模擬結果,以及以雲端運算為基礎 之 ESLAM 實驗結果。最後,第六章為本論文的結論與未來展望。. 6.
(16) 第二章. 文獻探討與回顧. 2.1 理論基礎 2.1.1 卡曼濾波器(Kalman Filter) 卡曼濾波器(Kalman Filter, KF)可以說是貝氏濾波器(Bayes Filter) [25]的實現, 在 1958 年由 Swerling 與 1960 年 Kalman 提出,用來處理線性高斯系統。根據馬 卡夫性質(Markov Property) [26],一個隨機程序(Random Process)在給定過去及現 在狀態的情況下,若未來狀態僅與現在狀態有關,與過去狀態無關,則稱此程序 具有馬卡夫性質。而卡曼濾波器則是根據貝氏濾波器的馬卡夫假設來實現。. 以下將介紹卡曼濾波器演算法的架構,其主要流程包括兩個步驟:狀態預測、 狀態更新。. 1、 狀態預測(Prediction): 當機器人移動時,機器人現在時刻的狀態 st ,由前一時刻的狀態 st 1 ,以 及現在時刻的移動資訊 ut 來估測::. st ~ p(st | st 1, ut ). (2.1). 在線性系統下可展開如下:. st Ft st 1 Gt ut t. (2.2). 其中 st 1 與 st 為狀態向量, ut 為移動資訊向量,若 st 為 n 維度, ut 為 m 維度,則. Ft 為 n n 的矩陣, Gt 則為 n m 的矩陣, t 為高斯雜訊。 st 與 t 可高斯表示如 下: st ~ N ( t , t ). t ~ N (0, Qt ) 7. (2.3).
(17) 則狀態預測可寫成:. ˆ t Ft t 1 Gt ut ˆ t Ft t 1Ft T Qt. (2.4). 2、 狀態更新(Update): 量測資訊 zt 也必須為線性系統,量測預測 zˆt 表示如下:. zt ~ p ( zt | st ) zˆt H t sˆt t. (2.5). t ~ N (0, Rt ) 其中 zt 為 k 維度,則 H t 為 k n 的矩陣, t 為高斯雜訊。 我們令 K t 為卡曼增益(Kalman gain)用來決定更新的程度,其運算如下:. Kt ˆ t H tT ( H t ˆ t H tT Rt )1. (2.6). 1 由上式可知當 Rt 值越小,K t 值越大,Rt 趨近於 0 時,K t 近似於 H t ;ˆ t 值越小,. K t 值則越小, ˆ t 趨近於 0 時, K t 則近似於 0。 更新公式如下:. t ˆ t Kt ( zt H t ˆt ). (2.7). t ( I Kt H t )ˆ t 當量測誤差 Rt 趨近於 0,更新時量測資訊 zt 的權重則越大,相對量測預測 zˆt 的 權重越小;而當狀態預測的共變異數矩陣 ˆ t 趨近於 0,更新時量測資訊 zt 的權 重則越小,量測預測 zˆt 的權重則越大[27][28][29][30]。. 8.
(18) 狀態預測. ut 1. ut. ut 1. st 1. st. st 1. zt 1. zt. zt 1. 狀態更新. 圖 2.1、卡曼濾波器流程圖 如圖 2.1 所示,在狀態預測後,執行狀態更新,並重新回到下一時刻的 狀態預測,透過重複疊代執行上述步驟,即可估測出下一時刻的狀態。. 2.1.2 粒子濾波器(Particle Filter) 粒子濾波器(Particle Filter, PF)又稱為序列式蒙地卡羅法(Sequential Monte Carlo method, SMC) [31],由命名為濾波器可以得知是一種利用過往資訊到目前資 訊來估測目前狀態的演算法,以貝氏濾波器(Bayes Filter) [25]為基礎所衍生出的 演算法,相較於延展型卡曼濾波器(Extended Kalman Filter, EKF) [8]與非察覺型卡 曼濾波器(Unscented Kalman Filter, UKF) [32],在非線性系統或是高維度的問題中, 粒子濾波器能獲的較佳的結果[33][34]。粒子濾波器經常被使用於機器人自我定位 上,主要的概念是當機器人在已知環境中,藉由建立一定數量代表機器人的粒子 群(particles) [35]隨機散佈在地圖上,隨著真實機器人的移動,虛擬粒子機器人也 跟著移動,移動過程中藉由比較真實機器人所量測到的感測器資訊與虛擬機器人 的感測資訊做比較,兩者越相近給予該粒子的權重(weight)越大,保留權重較大的 粒子,濾除權重較小的粒子,如此重複疊代運算,當粒子漸漸集中一處時,則可 以推測該位置為真實機器人所在。以粒子濾波器應用於機器人定位又稱為蒙地卡 羅定位(Monte Carlo Localization, MCL) [36][37]。 9.
(19) 粒子濾波器演算法的流程包含四個步驟:初始化、狀態預測、權重設定以及 重新取樣。. 1、 初始化(Initialization): 隨機產生 K 個粒子,散佈在地圖上。每個粒子包含位置 x 及 y ,粒子朝向 角 :. s0k ( x0k , y0k ,0k ) k 1,2,..., K. (2.8). k. 其中, s0 代表第 0 時刻粒子 k 的狀態。. 2、 狀態預測 (Prediction): 粒子群根據機器人的移動資訊 ut ,以及前一時刻的狀態 st 1 ,來估測機器 人現在時刻的狀態 st : (2.9). st ~ p(st | st 1, ut ) 3、 權重設定(Weight Assignment):. 機器人接收感測器資訊 zt 後,與粒子狀態 st 中的量測預測 zˆt 比對,並計 k. k. 算粒子權重 wk ,兩者越相似給予粒子的權重越大,接著對所有粒子權重做正 規化:. W k. wk K. wk. (2.10). k 1. 4、 重新取樣(Resampling): 此步驟以演化計算中常用的重新取樣演算法,競爭選取法(Tournament Selection) [38]進行重新取樣,每個粒子權重不一樣,權重較大的粒子在重新 取樣後有較大的機會被保留,權重較小的粒子則容易被淘汰。. 10.
(20) K particles. Population. Choose K particles randomly. Choose the best one of K particles. New population. 圖 2.2、競爭選取法簡易流程圖 圖 2.2 為 競 爭 選 取 法 之 流 程 圖 , 競 爭 選 取 法 可 調 整 競 爭 族 群 大 小 (tournament size)選擇適當的競爭壓力,使整個演化族群最佳化。首先,須設 定競爭大小參數 K ,接著從粒子群中隨機選出 K 個粒子,再從 K 個粒子中挑 選權重最大的粒子為新的粒子族群,重複選取步驟,直到新的粒子群數目與 舊粒子群數目相同為止。. 圖 2.3 為粒子濾波器之流程圖,初始化粒子群後,以機器人的移動資訊 進行狀態預測步驟,再藉由機器人感測資訊做為計算權重之依據,使用競爭 選取法將粒子群做重新取樣,再回到狀態預測步驟,如此重複疊代,粒子群 會往權重大的地方聚集,也就是最相近機器人所在的位置。. 11.
(21) 粒子初始化. 狀態預測. 移動資訊. 權重設定. 感測資訊. 重新取樣. 圖 2.3、粒子濾波器流程圖. (a) 粒子初始化撒點. (b) 粒子開始收斂. (c) 粒子漸漸收斂至相似處 (d) 粒子收斂結果 圖 2.4、MCL 簡易示意圖說明. 12.
(22) 圖 2.4 為粒子濾波器運用於機器人定位的示意圖,圖中黑色區域為障礙 物,藍色圓形代表真實機器人,圓上線段代表機器人地朝向角,綠色圓形代 表粒子,圓上線段則是粒子朝向角。圖 2.4(a)在粒子初始化階段,會在地圖 上隨機散佈粒子。圖 2.4(b)隨著機器人的移動,散落四處的粒子開始慢慢收 斂,可以發現粒子群漸漸聚集於環境特徵相似之處,圖 2.4(c)經由重複疊代 運算,分散的粒子群越來越少,圖 2.4(d)粒子最後幾乎收斂至機器人位置附 近。. 2.2 SLAM 演算法 Montemerlo 在 2003 年 提 出 的 一 解 決 同 時 定 位 與 建 圖 問 題 的 演 算 法 : FastSLAM。FastSLAM 以 Rao-Blackwellized 粒子濾波器(Rao-Blackwellized Particle Filter, RBPF)將 SLAM 問題分為兩部分來看:一是機器人自我定位,另一為機器 人地圖建立: N. p( st , m | z t , u t , nt ) p( s t | z t , u t , nt ) p(mn | s t , z t , u t , nt ). (2.11). n 1. 其中 st {s1 , s2 ,..., st } 為機器人從開始到 t 時刻的狀態集合; z t {z1 , z2 ,..., zt } 為機器 人從開始到 t 時刻所量測到的環境資訊集合; u t {u1 , u2 ,..., ut } 為機器人從開始到 t. 時 刻 的 移 動 命 令 集 合 ; nt {n1 , n2 ,..., nt } 為 資 料 關 聯 後 的 地 標 編 號 集 合 ;. mn (n 1,2,..., N ) 為地標的資訊,也可以說是所建立的地圖資訊。. FastSLAM 在機器人自我定位部分使用粒子濾波器(Particle Filter, PF)來預測 機器人位置,在機器人地圖建立部分使用延展型卡曼濾波器(Extended Kalman Filter, EKF)來預測地標位置。在 FastSLAM 演算法中每個粒子 k 在 t 時刻的資訊 如下:. Stk stk , 1,kt , 1,k t , 2,k t , k2,t ,..., Nk ,t , kN ,t 13. (2.12).
(23) 其中, k 為粒子的編號, stk 為在 t 時刻粒子 k 中機器人的狀態,包含:位置與朝向. . . 角 stk sx , s y , s 。 nk,t 與 kn ,t 分別為在 t 時刻粒子 k 中第 n 個地標的平均值與共變 異數。. 2.2.1 快速型同時定位與建圖演算法 1.0 (FastSLAM 1.0) FastSLAM1.0 演算法可以分為以下幾個步驟:機器人狀態預測(Prediction)、 資料關聯(Data Association)、地標更新與新增(Updating the Landmark Estimates)以 及重新取樣(Resampling)。. 1、 機器人狀態預測(Prediction): 在 FastSLAM1.0 中,對每個粒子 k 1,2,..., K 利用機器人移動資訊 ut 產生 機器人的狀態預測:. stk ~ p(st | stk1, ut ). (2.13). 2、 資料關聯(Data Association): 由於執行同時定位與建圖演算法所使用的感測器為雷射測距儀,在 SLAM 過程中,感測器所獲得的環境資訊為一筆一筆的距離與角度,如何從 這些距離、角度資訊來判斷來自哪個障礙物地標的資訊就變得非常重要,藉 由資料關聯,我們可以分辨該筆量測資訊是來自已知或是未知的障礙物。本 論文使用粒子最大相似性資料關聯法(Per-particle Maximum Likelihood Data Association),以條件機率的方式計算量測資訊與量測預測的相似性,判斷量 測資訊與粒子中地標資訊的關係。在 FastSLAM 演算法中我們假設地標與地 標之間為獨立的,每次計算只考慮單一地標。. 以機器人的移動資訊預測當時刻機器人的位置後,利用粒子中機器人的 狀態與粒子中先前所存在的地標 n 資訊,產生對應的量測預測 zˆnk,t : 14.
(24) zˆnk,t h(sˆtk , mnk,t 1 ). (2.14). 其中, h(sˆtk , mnk,t 1 ) 為量測資訊模型,代表粒子 k 中,機器人狀態與地標 n 之間 的相對距離 r 以及角度 :. (m s )2 (m s ) 2 x x y y r ( s , m) h ( s , m) m s ( s, m) tan 1 ( y y ) s mx sx . (2.15). 接著計算量測資訊模型內針對地標的變化量:. H mn h(stk , mnk,t 1 ) / mnk,t 1. (2.16). 並 以 地 標 的 共 變 異 數 矩 陣 (covariance) kn,t 1 來 計 算 創 新 共 變 異 數 矩 陣 (innovation covariance) n :. n H m nk ,t 1H mT Rt n. (2.17). n. 其中, Rt 為雜訊。並計算量測資訊 zt 與量測預測 zˆnk,t 的相似性(likelihood):. pn p( zt | zˆnk,t ) . 1 exp ( zt zˆnk,t )T ( n )1 ( zt zˆnk,t ) 2 2 n 1. (2.18). 重複上述方程式(2.14)至方程式(2.18),直到完成粒子 k 中所有 N 個地標的相 似性計算,可得到一相似性矩陣 P :. P p0 其中, pn , n 1, 2,. p1. pN . p2. (2.19). , N 為粒子 k 中第 n 個地標的相似性, p0 為是否新增地標. 的門檻值(threshold)。接著從相似性矩陣中挑選最大的相似性,則可以找到相 似性最大的地標:. 15.
(25) nˆ arg max P. (2.20). nˆ 為相似性最大的地標編號,可判斷出該筆量測資訊 zt 所量測到的地標為已 知或是未知地標。. 3、 地標更新與新增(Updating the Landmark Estimates): 在資料關聯步驟後,即可知道每筆量測資訊所量測到的地標是已知或是 未知地標,則可進一步決定是否更新或新增該地標資訊在地圖上: a.. 1 nˆ N : 代表地標 nˆ 與該筆量測資訊 zt 的相似性較大,地標 nˆ 為已知地標,藉 由以下公式更新地標的資訊,以及計算該粒子的權重:. N tk N tk1 K t nkˆ ,t 1H mT nˆ nˆ ,1t. nkˆ ,t nˆk,t 1 K t ( zt zˆnk,t ). (2.21). knˆ ,t ( I K t H mnˆ ) nkˆ ,t 1 wtk wtk1 pnˆ b.. nˆ 0 : 表示相似性均無超過門檻值,此筆量測資訊所量測到的障礙物為新 的地標,必須將此地標新增於地圖中:. N tk N tk1 1. nkˆ ,t h 1 stk , zˆnˆ ,t . k nˆ,t. 1. ( H R H mnˆ ) T mnˆ. 1. (2.22). wtk wtk1 p0 在 t 時刻內每筆量測資訊重複上述步驟後,即完成地標更新與新增步驟。. 16.
(26) 4、 重新取樣(Resampling): 根據每個粒子的權重進行重新取樣,淘汰權重較低的粒子,複製權重較 高的粒子,來增加定位與建圖結果的準確性。本論文使用“競爭選取法”進行 重新取樣,詳細內容請參閱本論文第 2.1.2 節。. 2.2.2 快速型同時定位與建圖演算法 2.0 (FastSLAM 2.0) 在 FastSLAM 1.0 的機器人狀態預測步驟中,只根據機器人當時刻的移動資 訊 ut 來預測:. stk ~ p(st | stk1, ut ). (2.23). FastSLAM 1.0 的機器人自我定位結果,可說是只根據機器人的里程計資訊來完成 定位,並沒有使用到當時刻的量測資訊 zt 來修正或是更新。因此當機器人經過崎 嶇路面造成里程計誤差時,機器人的定位結果往往不如預期,Montemerlo 為了解 決以上問題,提出了 FastSLAM 2.0。與 FastSLAM 1.0 相比,在機器人狀態預測 步驟中 FastSLAM 2.0 不只考慮了當時刻機器人的移動資訊 ut,並且利用量測資訊. zt 來使得定位結果更加準確: stp ~ p(st | st 1,k , u t , z t , nt ). (2.24). 因此,相較於 FastSLAM 1.0,FastSLAM 2.0 擁有更準確的機器人定位結果, 所建立的環境地圖也更準確。FastSLAM 2.0 演算法的說明如下:. 1、 機器人狀態預測(Prediction): 首先,與 FastSLAM 1.0 一樣,使用機器人的移動資訊 ut 來預測機器人的 狀態:. stk ~ p(st | stk1, ut ) 17. (2.25).
(27) 利用粒子中機器人的狀態與粒子中先前所存在的地標 n 資訊,產生對應的量 測預測 zˆnk,t :. zˆnk,t h(sˆtk , mnk,t 1 ). (2.26). 分別計算量測資訊模型內針對地標的變化量以及針對機器人狀態的變化 量:. H mn h( stk , mnk,t 1 ) / mnk,t 1. (2.27). H st h( stk , mnk,t 1 ) / stk. 並 以 地 標 的 共 變 異 數 矩 陣 (covariance) kn,t 1 來 計 算 創 新 共 變 異 數 矩 陣 (innovation covariance) n :. n H m nk ,t 1H mT Rt n. (2.28). n. 運用以上資訊來更新粒子 k 內機器人的狀態:. kst ,t [ H sTt ( n ) 1 H st ( kst ,t 1 ) 1 ]1. sk ,t ks ,t H sT ( n )1 ( zt zˆnk,t ) sk ,t 1 t. t. t. (2.29). t. 利用更新後機器人狀態分佈的平均值 skt ,t 與共變異數矩陣 kst ,t ,可得到更新 後的機器人狀態:. . stk ~ N skt ,t , kst ,t. . (2.30). 初始值分別為:. kst ,0 t. sk ,0 stk t. 18. (2.31).
(28) 2、 資料關聯(Data Association): 以機器人的量測資訊更新當時刻機器人的位置後,利用粒子中機器人的 狀態與粒子中先前所存在的地標 n 資訊,產生對應的量測預測 zˆnk,t :. zˆnk,t h(sˆtk , mnk,t 1 ). (2.32). 接著計算量測資訊模型內針對地標的變化量:. H mn h(stk , mnk,t 1 ) / mnk,t 1. (2.33). 並 以 地 標 的 共 變 異 數 矩 陣 (covariance) kn,t 1 來 計 算 創 新 共 變 異 數 矩 陣 (innovation covariance) n :. n H m nk ,t 1H mT Rt n. n. (2.34). 其中, Rt 為雜訊。並計算量測資訊 zt 與量測預測 zˆnk,t 的相似性(likelihood):. pn p( zt | zˆnk,t ) . 1 exp ( zt zˆnk,t )T ( n )1 ( zt zˆnk,t ) 2 2 n 1. (2.35). 重複上述方程式(2.32)至方程式(2.35),直到完成粒子 k 中所有 N 個地標的相 似性計算,可得到一相似性矩陣 P :. P p0. 其中, pn , n 1, 2,. p1. pN . p2. (2.36). , N 為粒子 k 中第 n 個地標的相似性, p0 為是否新增地標. 的門檻值(threshold)。接著從相似性矩陣中挑選最大的相似性,則可以找到相 似性最大的地標: nˆ arg max P. (2.37). nˆ 為相似性最大的地標編號,可判斷出該筆量測資訊 zt 所量測到的地標為已 19.
(29) 知或是未知地標。. 3、 地標更新與新增(Updating the Landmark Estimates): 在資料關聯步驟後,即可知道每筆量測資訊所量測到的地標是已知或是 未知地標,則可進一步決定是否更新或新增該地標資訊在地圖上。 a.. 1 nˆ N : 代表地標 nˆ 與該筆量測資訊 zt 的相似性較大,地標 nˆ 為已知地標,藉 由以下公式更新地標的資訊,以及計算該粒子的權重: N tk N tk1 K t nkˆ ,t 1H mT nˆ nˆ 1. nkˆ ,t nkˆ ,t 1 K t ( zt zˆnk,t ) knˆ ,t ( I K t H mnˆ ) nkˆ ,t 1. (2.38). L H st t H sTt nˆ wtk wtk1. b.. 1 exp ( zt zˆnk,t )T ( L) 1 ( zt zˆnk,t ) 2 2 L 1. nˆ 0 : 表示相似性均無超過門檻值,此筆量測資訊所量測到的障礙物為新 的地標,必須將此地標新增於地圖中:. N tk N tk1 1. nkˆ ,t h 1 stk , zˆnˆ ,t knˆ,t ( H mT nˆ R 1H mnˆ ) 1. (2.39). wtk wtk1 p0 在 t 時刻內每筆量測資訊重複上述步驟後,即完成地標更新與新增步驟。. 4、 重新取樣(Resampling): FastSLAM 2.0 的重新取樣階段與 FastSLAM 1.0 相同,本論文使用“競爭 選取法”進行重新取樣,詳細內容請參閱本論文第 2.1.2 節。 20.
(30) 2.2.3 具有高計算效率之同時定位與建圖演算法 (CESLAM) Montemerlo 提出的 FastSLAM2.0 雖然解決了 FastSLAM1.0 只使用機器人移 動資訊來預測機器人狀態時,因為里程計誤差而產生錯誤,但 FastSLAM2.0 卻產 生了另一個問題:執行時間。因為 FastSLAM2.0 在更新機器人狀態時,考慮了機 器人的量測資訊並使用 EKF 來運算,不論量測資訊與粒子內所產生的量測預測 相關性如何,所有的量測資訊都被拿來更新機器人的狀態( ks,t 和 sk,t )。與只使用 里程計資訊更新機器人狀態的 FastSLAM1.0 相較之下,需要花費更多計算時間, 特別是當地標數目越多,花費時間的差異則越大。. 因此,楊誠愷提出具有高計算效率之同時定位與建圖演算法(Computationally Efficient Algorithm for Simultaneous Localization and Mapping, CESLAM),在機器 人狀態預測步驟,為了演算法的執行速度,CESLAM 與 FastSLAM1.0 一樣,只 考慮機器人移動資訊 ut 來預測機器人狀態。在資料關聯步驟,將所產生的量測預 測進行判斷,如果該筆量測預測的距離超過實際感測器能夠測量的距離,則跳過 後面計算的部分,並令這筆量測預測的相似性為 0,以節省不必要的計算。另外, 如果當時刻有多筆量測預測的相似性高於門檻值 p0,則會取具有最大相似性的量 測預測,針對該地標進行更新的動作,但在更新地標之前,先使用這組量測預測 去更新機器人的狀態,再進行地標的更新。. 如上述所說,CESLAM 在每個時刻只會更新機器人狀態一次,如此一來,就 能省下大量的計算時間,不會因為地標數目增加,而導致更新次數太多,花費大 量時間,更不會因為毫無相關的更新將機器人的狀態更新至錯誤的地方。圖 2.5 為具有高計算效率之即時定位與建圖演算法(CESLAM)的流程圖,CESLAM 演算 法的說明如下: 1、 機器人狀態預測(Prediction): 為了提升計算效率,與 FastSLAM1.0 一樣,對每個粒子 k 1,2,..., K 利用 機器人移動資訊 ut 產生機器人的狀態預測: 21.
(31) stk ~ p(st | stk1, ut ). (2.40). 2、 資料關聯(Data Association): 以機器人的移動資訊預測當時刻機器人的位置後,利用粒子中機器人的 狀態與粒子中先前所存在的地標 n 資訊,產生對應的量測預測 zˆnk,t :. zˆnk,t h(sˆtk , mnk,t 1 ). (2.41). 接著計算量測資訊模型內針對地標的變化量:. H mn h(stk , mnk,t 1 ) / mnk,t 1. (2.42). 並 以 地 標 的 共 變 異 數 矩 陣 (covariance) kn,t 1 來 計 算 創 新 共 變 異 數 矩 陣 (innovation covariance) n :. n H m nk ,t 1H mT Rt n. n. (2.43). 其中, Rt 為雜訊。並計算量測資訊 zt 與量測預測 zˆnk,t 的相似性(likelihood):. pn p( zt | zˆnk,t ) . 1 exp ( zt zˆnk,t )T ( n )1 ( zt zˆnk,t ) 2 2 n 1. (2.44). 重複上述方程式(2.41)至方程式(2.44),直到完成粒子 k 中所有 N 個地標的相 似性計算,可得到一相似性矩陣 P :. P p0. 其中, pn , n 1, 2,. p1. pN . p2. (2.45). , N 為粒子 k 中第 n 個地標的相似性, p0 為是否新增地標. 的門檻值(threshold)。接著從相似性矩陣中挑選最大的相似性,則可以找到相 似性最大的地標:. 22.
(32) nˆ arg max P. (2.46). nˆ 為相似性最大的地標編號,可判斷出該筆量測資訊 zt 所量測到的地標為已 知或是未知地標。. 3、 粒子狀態更新、地標更新與新增(Updating the Particle State and Landmark Estimates): 在資料關聯步驟後,即可知道每筆量測資訊所量測到的地標是已知或是 未知地標,則可進一步決定是否更新或新增該地標資訊在地圖上。 a.. 1 nˆ N : 代表地標 nˆ 與該筆量測資訊 zt 的相似性較大,地標 nˆ 為已知地標。為 了使地標更新更準確,在更新地標資訊前,使用該筆量測資訊先更新機 器人的狀態,避免不必要或是錯誤的更新,使得機器人定位結果可以更 準確,相對所建立出的地標位置也更準確。藉由以下公式更新機器人的 狀態: 首先,分別計算量測資訊模型內針對地標的變化量以及針對機器人狀態 的變化量:. H mn h( stk , mnk,t 1 ) / mnk,t 1. (2.47). H st h( stk , mnk,t 1 ) / stk. 並以地標的共變異數矩陣(covariance) kn,t 1 來計算創新共變異數矩陣 (innovation covariance) n :. n H m nk ,t 1H mT Rt n. (2.48). n. 運用以上資訊來更新粒子 k 內機器人的狀態:. kst ,t [ H sTt ( n ) 1 H st ( kst ,t 1 ) 1 ]1. sk ,t ks ,t H sT ( n )1 ( zt zˆnk,t ) sk ,t 1 t. t. t. t. 23. (2.49).
(33) 利用更新後機器人狀態分佈的平均值 skt ,t 與共變異數矩陣 kst ,t ,可得到 更新後的機器人狀態:. . stk ~ N skt ,t , kst ,t. . (2.50). 初始值分別為:. kst ,0 t. sk ,0 stk. (2.51). t. 接著根據更新後的機器人狀態去更新地標,並計算該粒子的權重: N tk N tk1 K t nkˆ ,t 1H mT nˆ nˆ 1. nkˆ ,t nkˆ ,t 1 K t ( zt zˆnk,t ) knˆ ,t ( I KH mnˆ ) knˆ ,t 1. (2.52). L H st t H sTt nˆ wtk wtk1. b.. 1 exp ( zt zˆnk,t )T ( L) 1 ( zt zˆnk,t ) 2 2 L 1. nˆ 0 : 表示相似性均無超過門檻值,此筆量測資訊所量測到的障礙物為新 的地標,必須將此地標新增於地圖中:. N tk N tk1 1. nkˆ ,t h 1 stk , zˆnˆ ,t knˆ,t ( H mT nˆ R 1H mnˆ ) 1. (2.53). wtk wtk1 p0 在 t 時刻內每筆量測資訊重複上述步驟後,即完成地標更新與新增步 驟。 24.
(34) 4、 重新取樣(Resampling): CESALM 的重新取樣階段與 FastSLAM 1.0 相同,本論文使用“競爭選取法” 進行重新取樣,詳細內容請參閱本論文第 2.1.2 節。. 25.
(35) 開始. 機器人狀態預測. 資料關聯 計算量測預測 zˆnk,t (n=1 to N). zˆnk,t <LRF的最 大值?. N 相似性pn=0. Y. 計算相似性pn. 相似性>門檻?. Y. 利用環境資訊zt更新 粒子狀態. 粒子狀態更新 、地標更新與 新增. N 新增地標至 粒子k中. 更新地標. 計算權重. (粒子k=1 to K) k=k+1. N 粒子k==K? Y. 重新取樣. Y 地標n==N?. N. 圖 2.5、CESLAM 流程圖. 26.
(36) 2.3 雲端機器人同時定位與建圖 雲端運算(Cloud Computing)可以說是近幾年來科技與資訊展業最流行的詞彙, 雲端運算所謂何物?在網路的示意圖中,通常以「雲」來代表網際網路,「雲端 運算」可以說是利用網路共享多台電腦的運算資源,來達到大量儲存,快速運算。. 一位學者曾經說過這樣的話:「古時候,人們用牛來搬運重物,當一頭牛無 法搬運時,他們不會想要養一頭更大的牛。同理,我們不需要運算能力更強大的 電腦,而是需要連結更多電腦的系統。」在未來大數據(Big Data)的時代,如何運 用雲端的儲存與分析運算就變得極為重要,以智慧型機器人導航為例,當機器人 在未知環境中,執行同時定位與建圖任務時,一台智慧型機器人的能力有限,無 論是移動範圍、計算效率,隨著環境越來越廣闊,環境中必須被記錄的資訊越來 越複雜,即便是運算能力非常強的智慧型機器人,也有無法完成任務的一天。藉 由雲端運算,能夠將更多電腦與機器人連結,甚至與更多機器人連結,因此,開 始有許多學者對於多機器人或是雲端多機器人提出相關研究結果,Arumugam 等 人在 2010 年提出一種軟體即為服務(Software as a Service, SaaS)架構運用機器人 在同時定位與建圖:Distributed Agents with Collective Intelligence, DAvinCi [24], 將 FastSLAM 演算法運用於 Hadoop [39]叢集以 MapReduce [40]結構加以平行化, DAvinCi 服務被設計來當作 Hadoop 叢集與執行 SLAM 任務之機器人端間的橋梁, 且驗證了雲端運算用於機器人同時定位與建圖上能夠提升計算效率,然而,他們 所提出的 DAvinCi 服務卻沒有探討網路延遲所帶來的影響,當資料在 Hadoop 叢 集間傳來傳去,可能會因為網路延遲,而造成機器人無法達成同時定位與建圖的 任務。. Ayush 等人在 2013 年提出一種基礎設施即為服務(Infrastructure as a Service, IaaS)架構運用在機器人同時定位與建圖[41],他們使用同時定位與建圖演算法是 根據 Klein 與 Murray 的平行追蹤與建圖(Parallel Tracking and Mapping, PTAM) [42] 演算法,PTAM 演算法的主要概念是將同時定位與建圖分為 Tracking 與 Mapping 27.
(37) 兩個平行執行的程序來達成同時定位與建圖,此種演算法常應用於手持式的視覺 感測器,相較於 EKF-SLAM 與 FastSLAM 更能容忍視覺感測器因為晃動造成影 像變動的誤差,原因在於 PTAM 演算法並不會將所有視覺感測器所偵測到的所有 影像都拿來運算,只會取重要且有用的影像作為依據,如此便能提升運算效率。. Riazuelo 等人在 2014 年提出一種合作式追蹤與建圖的雲端架構 (Cloud Framework for Cooperative Tracking and Mapping, C2TAM) [43],可以說結合了上 述研究的優點,考慮到機器人在執行同時定位與建圖任務時與雲端的互動, C2TAM 演算法以機器人為客戶端並將 Tracking 部分的運算分配給機器人,而 Mapping 部分交給雲端系統同時平行處理,減少了機器人客戶端的運算,也減少 了需要傳輸至雲端系統的資料量。. Mohanarajah 等人在 2015 年發表「Cloud-based Collaborative 3D Mapping in Real-Time with Low-Cost Robots」[44],使用的低成本機器人只配備有手機等級的 處理器,所有同時定位與建圖演算法的運算都在雲端系統上,綜合以上文獻探討, 當一台機器人無法完成導航任務時,多台機器人間的互相協助,使得探索不再受 限於環境大小。當一台智慧型機器人無法處理複雜的環境特徵時,雲端運算連結 了多台電腦,使得處理這些資訊更為快速,甚至機器人只需要負責探索與蒐集環 境資訊,不須將昂貴的運算電腦搭載於機器人身上,大大降低了環境探索所需要 耗費的成本及資源。. 28.
(38) 第三章. 增強型同時定位與建圖演算法(ESLAM). 雖然 CESLAM 具有較好的計算效率,但 CESLAM 仍有個潛在的問題:因為 CESLAM 只考慮里程計資訊來預測機器人的狀態,當遇到崎嶇路面時,仍有機會 產生像 FastSLAM1.0 定位與建圖結果偏移的情形。因此,我們提出一種 CESLAM 的改良架構:增強型同時定位與建圖演算法(Enhanced Simultaneous Localization and Mapping, ESLAM),ESLAM 在機器人狀態預測時,為了避免只使用里程計所 造成的錯誤,我們跟 FastSLAM2.0 一樣,考慮了機器人移動資訊 ut 與量測資訊 zt , 來預測機器人的狀態。接下來,在資料關聯步驟,與 CESLAM 一樣先針對每一 筆預測的量測資訊 (粒子 k 與其內部所存在之地標 n ) 進行判斷,如果預測出的距 離超過實際感測器的測量距離,則直接跳過計算的部分,並令這筆量測預測的相 似性為 0,可省下不必要的計算。如果當時刻有多筆量測預測的相似性高於門檻 值 p0 ,則會取具有最大相似性的量測預測,針對該地標進行更新的動作,但在更 新地標之前,先使用這組量測預測去更新機器人的狀態,再進行地標的更新。此 外,我們判斷量測資訊與量測預測的距離差是否超過門檻,如果超過便給予該粒 子一極小權重,使該粒子在重新取樣階段較容易被淘汰。. 如上述所說,與 CESLAM 一樣 ESLAM 在每個時刻只會更新機器人狀態一 次,如此一來,就能省下大量的計算時間,不會因為地標數目增加,而導致更新 次數太多,花費大量時間,更不會因為毫無相關的更新將機器人的狀態更新至錯 誤的地方。圖 3.1 為所提出之增強型同時定位與建圖演算法(ESLAM)的流程圖, 詳細步驟說明如下:. 1、 機器人狀態預測(Prediction): 為了使定位與建圖結果更準確,與 FastSLAM2.0 一樣,對每個粒子 k 1,2,..., K 利用機器人移動資訊 ut 產生機器人的狀態預測:. 29.
(39) stk ~ p(st | stk1, ut ). (3.1). 利用粒子中機器人的狀態與粒子中先前所存在的地標 n 資訊,產生對應的量 測預測 zˆnk,t :. zˆnk,t h(sˆtk , mnk,t 1 ). (3.2). 分別計算量測資訊模型內針對地標的變化量以及針對機器人狀態的變化 量:. H mn h( stk , mnk,t 1 ) / mnk,t 1. (3.3). H st h( stk , mnk,t 1 ) / stk. 並 以 地 標 的 共 變 異 數 矩 陣 (covariance) kn,t 1 來 計 算 創 新 共 變 異 數 矩 陣 (innovation covariance) n :. n H m nk ,t 1H mT Rt n. (3.4). n. 運用以上資訊來更新粒子 k 內機器人的狀態: kst ,t [ H sTt ( n ) 1 H st ( kst ,t 1 ) 1 ]1. sk ,t ks ,t H sT ( n )1 ( zt zˆnk,t ) sk ,t 1 t. t. t. (3.5). t. 利用更新後機器人狀態分佈的平均值 skt ,t 與共變異數矩陣 kst ,t ,可得到更新 後的機器人狀態:. . stk ~ N skt ,t , kst ,t. 30. . (3.6).
(40) 初始值分別為:. kst ,0 t. (3.7). sk ,0 stk t. 2、 資料關聯(Data Association): 以機器人的量測資訊更新當時刻機器人的位置後,利用粒子中機器人的 狀態與粒子中先前所存在的地標 n 資訊,產生對應的量測預測 zˆnk,t :. zˆnk,t h(sˆtk , mnk,t 1 ). (3.8). 接著計算量測資訊模型內針對地標的變化量:. H mn h(stk , mnk,t 1 ) / mnk,t 1. (3.9). 並 以 地 標 的 共 變 異 數 矩 陣 (covariance) kn,t 1 來 計 算 創 新 共 變 異 數 矩 陣 (innovation covariance) n :. n H m nk ,t 1H mT Rt n. n. (3.10). 其中, Rt 為雜訊。並計算量測資訊 zt 與量測預測 zˆnk,t 的相似性(likelihood):. pn p( zt | zˆnk,t ) . 1 exp ( zt zˆnk,t )T ( n )1 ( zt zˆnk,t ) 2 2 n 1. (3.11). 重複上述方程式(3.8)至方程式(3.11),直到完成粒子 k 中所有 N 個地標的相似 性計算,可得到一相似性矩陣 P :. P p0. 其中, pn , n 1, 2,. p1. pN . p2. (3.12). , N 為粒子 k 中第 n 個地標的相似性, p0 為是否新增地標. 的門檻值(threshold)。接著從相似性矩陣中挑選最大的相似性,則可以找到相 31.
(41) 似性最大的地標: nˆ arg max P. (3.13). nˆ 為相似性最大的地標編號,可判斷出該筆量測資訊 zt 所量測到的地標為已 知或是未知地標。 另外,量測資訊 zt 與量測預測 zˆt 分別包含距離 r 與角度 :. zt [r ]T zˆ [rˆ ˆ]T. (3.14). t. 我們判斷量測資訊 zt 與量測預測 zˆt 的距離差是否超過門檻:. rdiff r rˆ. (3.15). 如果 rdiff 大於我們所設定的門檻值,代表該筆量測資訊 zt 雖然具有最大的相似 性,卻與我們產生的量測預測 zˆt 有一定的差距,則給予該粒子一極小的權重. 106 : wtk wtk1. (3.16). 使得該粒子在重新取樣階段較容易被淘汰。. 3、 粒子狀態更新、地標更新與新增(Updating the Particle State and Landmark Estimates): 在資料關聯步驟後,即可知道每筆量測資訊所量測到的地標是已知或是 未知地標,則可進一步決定是否更新或新增該地標資訊在地圖上。 a. 1 nˆ N : 代表地標 nˆ 與該筆量測資訊 zt 的相似性較大,地標 nˆ 為已知地標。為 了使地標更新更準確,在更新地標資訊前,使用該筆量測資訊先更新機 32.
(42) 器人的狀態,避免不必要或是錯誤的更新,使得機器人定位結果可以更 準確,相對所建立出的地標位置也更準確。藉由以下公式更新機器人的 狀態: 首先,分別計算量測資訊模型內針對地標的變化量以及針對機器人狀態 的變化量:. H mn h( stk , mnk,t 1 ) / mnk,t 1. (3.17). H st h( stk , mnk,t 1 ) / stk. 並以地標的共變異數矩陣(covariance) kn,t 1 來計算創新共變異數矩陣 (innovation covariance) n :. n H m nk ,t 1H mT Rt n. (3.18). n. 運用以上資訊來更新粒子 k 內機器人的狀態:. kst ,t [ H sTt ( n ) 1 H st ( kst ,t 1 ) 1 ]1. sk ,t ks ,t H sT ( n )1 ( zt zˆnk,t ) sk ,t 1 t. t. t. (3.19). t. 利用更新後機器人狀態分佈的平均值 skt ,t 與共變異數矩陣 kst ,t ,可得到 更新後的機器人狀態:. . stk ~ N skt ,t , kst ,t. . (3.20). 初始值分別為:. kst ,0 t. sk ,0 stk. (3.21). t. 接著根據更新後的機器人狀態去更新地標,並計算該粒子的權重: 33.
(43) N tk N tk1 K t nkˆ ,t 1H mT nˆ nˆ 1. nkˆ ,t nkˆ ,t 1 K t ( zt zˆnk,t ) knˆ ,t ( I K t H mn ) nkˆ ,t 1. (3.22). L H st t H sTt nˆ wtk wtk1. 1 exp ( zt zˆnk,t )T ( L) 1 ( zt zˆnk,t ) 2 2 L 1. b. nˆ 0 : 表示相似性均無超過門檻值,此筆量測資訊所量測到的障礙物為新 的地標,必須將此地標新增於地圖中:. N tk N tk1 1. nkˆ ,t h 1 stk , zˆnˆ ,t knˆ,t ( H mT nˆ R 1H mnˆ ) 1. (3.23). wtk wtk1 p0 在 t 時刻內每筆量測資訊重複上述步驟後,即完成地標更新與新增步 驟。. 4、 重新取樣(Resampling): ESALM 的重新取樣階段與 FastSLAM 1.0 相同,本論文使用“競爭選取法”進 行重新取樣,詳細內容請參閱本論文第 2.1.2 節。. 34.
(44) 開始. 機器人狀態預測. 資料關聯 計算量測預測 zˆnk,t (n=1 to N). N. zˆnk,t <LRF的最. 相似性pn=0. 大值? Y. 計算相似性pn. 粒子狀態更新、地 標更新與新增 Y. 相似性>門檻?. r rˆ k rdiff ?. Y. 縮小粒子權重. N N 新增地標至 粒子k中. 更新地標. 計算權重. (粒子k=1 to K) k=k+1. N 粒子k==K?. Y. 重新取樣. Y. N 地標n==N?. 圖 3.1、ESLAM 流程圖. 35. 利用環境資訊zt更新 粒子狀態.
(45) 第四章. 以雲端運算為基礎之增強型同時定位與建圖. 4.1 雲端平台 雖然增強型同時定位與建圖演算法(ESLAM)有著較高的精確度,相較於 FastSLAM2.0 也有較良好的運算效率,但相較於 CESLAM 演算法,卻需要花費 更多時間來運算,因為此類演算法由於虛擬粒子群內的地標數目,會隨著環境特 徵增加而增加,特別是探索大型以及複雜環境時,複雜的計算與大量的資料使得 問題更加嚴重。為了解決上述的問題,本論文提出一以雲端運算為基礎之增強型 同時定位與建圖架構,藉由雲端運算系統的平行化運算,使 ESLAM 演算法能夠 更快速地進行定位與建圖,提高執行效率。. Hadoop 是 Apache 軟體基金會所提出的開放原始碼計畫(Open Source Project) [39],原先是做為原始碼搜尋引擎的一部分,架構上主要是由 Google 提出的 Google File System[45]及 MapReduce [40]實作而成,近年來由於 Yahoo!、Google、 IBM 等公司的投入與開發,使得 Hadoop 日漸成熟,代表一個雲端生態系如圖 4.1 所示,各種不同架構像是分散式檔案系統(Hadoop Distributed File System, HDFS) 及資源管理系統(Yet Another Resource Negotiator, YARN)均能有效儲存資料和分 配資源,使得 MapReduce 更穩定,提升雲端叢集的擴展性與容錯性,HBase [46] 則是建立在 HDFS 上的分散式 NoSQL 資料庫,可以說是 Google Bigtable 的實現 [47]。Hadoop 雲端運算主要透過資料分佈儲存,包含 HDFS 與 HBase,將檔案或 資料表分散至多個節點儲存,並利用分散式平行運算,包含 MapReduce 以及 HBase 的協同處理器(Coprocessor)所提供的平行運算功能。ZooKeeper [46]可說是資料管 理系統用來管理 HBase 的叢集狀態。. 36.
(46) Oozie. Chukwa. Flume. ZooKeeper. (Workflow Monitoring). (Monitoring). (Monitoring). (Management). Data Management. Hive. Pig. Mahout. Avro. Sqoop. (SQL). (Data Flow). (Machine Learning). (RPC, Serialization). (RDBMS Connector). MapReduce. YARN. (Cluster Management). (Cluster & Resource Management). HDFS. HBase. (Distributed File System). (Column DB Storage). Data Access. Data Processing. Data Storage. 圖 4.1、Hadoop 生態系. HBase. Client. ZooKeeper. HMaster. HRegionServer. HRegionServer. HRegion. HRegion. HRegion. HRegion. HDFS. Hadoop. HDFS. DataNode. DataNode. DataNode. DataNode. 圖 4.2、HBase 簡易架構圖. 37. DataNode.
(47) HBase 專案起源於 2006 年底,由 Powerset 公司的 Chod 等人創立且開發, 參 考由 Google 的 Chang 等人所撰寫的「Bigtable: A Distributed Storage System for Structured Data」[47],圖 4.2 為 HBase 的簡易架構圖,如圖 4.2 所示 HBase 由一 個 Master 節點與多個 RegionServer 節點組成,簡單來說 Master 節點負責控管 RegionServer 節點,而它們的資料存放於 HDFS,ZooKeeper 叢集可說是它們間的 協調者,避免指派任務時產生錯誤。客戶端(Client)所下達的指令通過遠端程序呼 叫(RPC)通訊協定傳送至 HBase 伺服器端(RegionServer),並且在 RegionServer 執 行。. 4.1.1. 端點協同處理器(Endpoint). HBase 作為一個線上資料庫系統,給人們的印象停留在資料存取上,想要在 HBase 裡執行資料上的計算,必須依靠 Client 端的程式或是 Hadoop MapReduce, 圖 4.3 為運用 MapReduce 模型來處理 HBase 的資料,因此有了 HBase 協同處理 器 (Coprocessors) , 加 入 了 協 同 處 理 器 , 我 們 可 以 將 任 意 計 算 邏 輯 (Arbitrary Computation)佈署在 HBase 的 RegionServers 上,使得 HBase 從資料儲存系統轉變 為高效率且分散式的資料儲存與資料處理系統。. HBase 的 Coprocessors 有兩種:觀察者(Observer)以及端點(Endpoint),Observer 可以想像成是一種介於 Client 端與 HBase 之間的觸發器(trigger),Endpoint 比較像 是 HBase 的一種儲存過程,擴展了 HBase RPC 協定,將客戶端的一個要求同時 傳送到所有 Region 上,Endpoint 能夠平行地呼叫和執行,如圖 4.4 所示。. 38.
(48) Map Input. Output Reduce. Region 0 Region 1 Region 2. Region 0 Region 1. Map. Region 2. Region 3. Region 3. Region 4. Reduce. Table. Region 4 Table. Map MapReduce. 圖 4.3、MapReduce on HBase. Region Server 1. Parallel RPC Calls. Endpoint coprocessor. table, , 123456789. Endpoint coprocessor. table, row-6, 123456789. Batch.Call. HTable Thread Pool Region Server 2 Endpoint coprocessor. table, row-4, 123456789. Endpoint coprocessor. table, row-7, 123456789. Batch.Call back. 圖 4.4、Endpoint 平行呼叫和執行. 39.
(49) 4.2 ESLAM 雲端架構 為了提升 ESLAM 執行效率,我們提出結合 HBase 的協同處理器功能,將 ESLAM 平行化的架構。. Robot Pose. Landmark 1. Landmark 2. Landmark N. Particle 1. x. y . 1 1. 2 2. N N. Particle 2. x. y . 1 1. 2 2. N N. Particle K. x. y . 1 1. 2 2. N N. 圖 4.5、ESLAM 粒子結構示意圖 由圖 4.5 所示,在 ESLAM 中的粒子與粒子間並不會互相傳輸資料,粒子內 存的訊息彼此是獨立且無關聯,因此將不同粒子分散至不同運算節點可同時平行 化運算,提升運算效率。圖 4.6 為 ESLAM 的雲端架構圖,圖 4.7 為本論文所採 用的雲端架構圖,. 以下將做詳細說明:. 機器人端以橘色方塊圖表示,機器人所搭載的里程計與感測器,會將 SLAM 所需要的機器人移動資訊 ut 與感測資訊 zt 以無線傳輸至雲端系統,雲端系統以綠 色方塊圖表示,藍色方塊圖的客戶端(Client),紫色方塊圖的伺服器端(Server)。. 1.. 機器人狀態預測根據移動資訊(Prediction from Odometer): 對每個粒子 k 1,2,..., K 利用機器人移動資訊 ut 產生機器人的狀態預測:. stk ~ p(st | stk1, ut ). 40. (4.1).
(50) 2.. 批次呼叫(Batch.Call) 透過客製化的遠端程序呼叫(RPC)通訊協定,根據客戶端(Client)與各個 伺服器端(Servers)佈署好的端點協同處理器(Endpoint Coprocessor),客戶端呼 叫各個伺服器端等待並做好準備,客戶端將狀態預測後的粒子資訊打包成可 以傳輸的訊息(Messages),透過遠端程序呼叫通訊協定將訊息傳給各個伺服 器端,各個伺服器端將訊息解讀後開始執行 SLAM 演算法的運算:. a、. 機器人狀態預測使用感測資訊更新(Prediction from Measurements): 利用粒子中粒子的狀態與所存的地標 n ,產生量測預測 zˆn,t : k. zˆnk,t h(sˆtk , mnk,t 1 ). (4.2). 分別計算量測資訊模型內針對地標的變化量以及針對機器人狀態的變 化量:. H mn h(stk , mnk,t 1 ) / mnk,t 1. (4.3). H st h(stk , mnk,t 1 ) / stk. 並以地標的共變異數矩陣(covariance) kn,t1 來計算創新共變異數矩陣 (innovation covariance) n :. n H mn nk ,t 1H mTn Rt. (4.4). 運用以上資訊來更新粒子 k 內機器人狀態:. kst ,t [ H sTt ( n ) 1 H st ( kst ,t 1 ) 1 ]1. sk ,t ks ,t H sT ( n )1 ( zt zˆnk,t ) sk ,t 1 t. t. t. (4.5). t. 其中為粒子 k 更新後機器人狀態分佈的 平均值 skt ,t 與共變異數 矩陣. kst ,t , 41.
(51) 可得到更新後的粒子狀態:. stk ~ N (skt ,t , kst ,t ). (4.6). 初始值分別為:. kst ,0 t. (4.7). skt ,0 stk b、. 資料關聯(Data Association): 利用粒子中粒子的狀態與所存的地標 n ,再次產生量測預測 zˆn,t : k. zˆnk,t h(sˆtk , mnk,t 1 ). (4.8). 接著計算量測資訊模型內針對地標的變化量,地標的 Jacobian 矩陣:. H mn h(stk , mnk,t 1 ) / mnk,t 1. (4.9). 並以地標的共變異數矩陣(covariance) kn,t1 來計算創新共變異數矩陣 (innovation covariance) n :. n H mn nk ,t 1H mTn Rt. (4.10). 計算量測資訊 zt 與量測預測 zˆn,t 的相似性(likelihood): k. pn p( zt | zˆnk,t ) . 1 exp ( zt zˆnk,t )T ( n )1 ( zt zˆnk,t ) 2 2 n 1. (4.11). 重複上述方程式至方程式,直到完成粒子 k 中所有 N 個地標的相似性計 算,可得到一相似性矩陣 P :. P [ p0 p1 p2. pN ] 42. (4.12).
(52) 其中 pn , n 1,2,..., N 為粒子 k 中第 n 個地標的相似性,為判斷是否新增地標 的門檻值,接著從相似性矩陣中挑選最大的相似性,則可以找到相似性 最大的地標:. nˆ argmax P. (4.13). nˆ 為相似性最大的地標編號,可判斷出該筆量測資訊 zt 所量測到的地標 為已知或是未知地標。 另外,量測資訊 zt 與量測預測 zˆt 分別包含距離 r 與角度 :. zt [r ]T zˆ [rˆ ˆ]T. (4.14). t. 我們判斷量測資訊 zt 與量測預測 zˆt 的距離差是否超過門檻:. rdiff r rˆ. (4.15). 如果 rdiff 大於我們所設定的門檻值,代表該筆量測資訊 zt 雖然具有最大的 相似性,卻與我們產生的量測預測 zˆt 有一定的差距,則給予該粒子一極 6 小的權重 10 :. wtk wtk1. 使得該粒子在重新取樣階段較容易被淘汰。. c、. 粒子狀態更新、地標更新與新增(Updating the Particle State and Landmark Estimates):. 43. (4.16).
(53) 在資料關聯步驟後,即可知道每筆量測資訊所量測到的地標是已知 或是未知地標,則可進一步決定是否更新或新增該地標資訊在地圖上: i.. 1 nˆ N : 代表地標 nˆ 與該筆量測資訊 zt 相似性較大,地標 nˆ 為已知地標, 為了確保不會將地標更新在錯誤的位置上,在跟新地標前先更新機 器人狀態,首先,分別計算量測資訊模型內針對地標的變化量以及 針對機器人狀態的變化量:. H mn h(stk , mnk,t 1 ) / mnk,t 1 H st h(stk , mnk,t 1 ) / stk. (4.17). 並以地標的共變異數矩陣(covariance) kn,t1 來計算創新共變異數矩陣 (innovation covariance) n :. n H mn nk ,t 1H mTn Rt. (4.18). 運用以上資訊來更新粒子 k 內機器人狀態:. kst ,t [ H sTt ( n )1 H st (kst ,t 1 )1 ]1. skt ,t skt ,t 1 kst ,t H sTt ( n )1 ( zt zˆnk,t ). (4.19). 其中為粒子 k 更新後機器人狀態分佈的平均值 skt ,t 與共變異數矩陣. kst ,t ,可得到更新後的粒子狀態: stk ~ N (skt ,t , kst ,t ). (4.20). 初始值分別為:. kst ,0 t. skt ,0 stk 44. (4.21).
(54) 接著根據更新後的機器人狀態去更新地標,並計算該粒子的權重:. Ntk Ntk1 Kt nkt ,t 1H mTnˆ nˆ 1. nkˆ ,t nkˆ ,t 1 Kt ( zt zˆnk,t ) knˆ ,t ( I Kt H mnˆ ) nkˆ ,t 1. (4.22). L H st t H sTt nˆ wtk wtk1. ii.. 1 exp ( zt zˆnk,t )T ( L) 1 ( zt zˆnk,t ) 2 2 L 1. nˆ 0 : 表示相似性均無超過門檻值,此筆量測資訊所量測到的障礙物 為新的地標,必須將此地標新增於地圖中:. Ntk Ntk1 1. nkˆ ,t h 1 stk , zˆnˆ ,t knˆ,t ( H mTnˆ Rt 1H mnˆ )1. (4.23). wtk wtk1 p0 在 t 時刻內每筆量測資訊重複上述步驟後,即完成地標更新與新增步 驟。 接著各個伺服器端將粒子內的資訊再次打包成訊息,透過遠端程序呼叫傳送 回客戶端,當客戶端接受所有伺服器端所傳回的訊息後,開始解讀訊息並執行重 新取樣步驟。. 3.. 重新取樣(Resampling): 重新取樣步驟同樣採用“競爭選取法”進行重新取樣,詳細內容請參閱本 論文第 2.1.2 節。. 45.
(55) 雲端 代理伺服器端. 機器人端 里程計移動資訊 感測器量測資訊. 機器人狀態預測. 伺服器端 批次呼叫 遠端程序呼叫 解讀來自客戶端 的粒子資訊 打包粒子資訊 傳至伺服器端 執行SLAM運算 資料關聯 更新粒子資訊 粒子權重設定 解讀來自伺服器端 的粒子資訊 打包粒子資訊 傳回客戶端. 重新取樣. 圖 4.6、ESLAM 雲端架構圖 客戶端. 機器人端 里程計移動資訊 感測器量測資訊. 機器人狀態預測. 雲端 伺服器端 批次呼叫 遠端程序呼叫 解讀來自客戶端 的粒子資訊 打包粒子資訊 傳至伺服器端 執行SLAM運算 資料關聯 更新粒子資訊 粒子權重設定 解讀來自伺服器端 的粒子資訊 打包粒子資訊 傳回客戶端. 重新取樣. 圖 4.7、本論文實驗所用之雲端架構圖 46.
(56) 第五章. 實驗結果. 5.1 實驗環境 本論文模擬 ESLAM 與其他 SLAM 演算法比較,所使用的個人電腦規格如表 5.1 所示,使用 Visual Studio 2010 Express 作為編譯器,演算法程式碼以 C 程式語 言撰寫,並運用 OpenCV 函式庫所提供的矩陣運算函式,以及影像相關函式完成 撰寫。 表 5.1、ESLAM 實驗用電腦規格 處理器 Intel Core i7-2600 3.40 GHz 記憶體 8.00GB. 本論文模擬 ESLAM 雲端實驗,所使用的雲端電腦規格如表 5.2 所示,使用 Eclipse 作為編譯器,演算法程式碼以 Java 程式語言撰寫,並運用 OpenCV 與 JavaCV 函式庫所提供的矩陣運算函式,以及影像相關函式完成撰寫。. 表 5.2、ESLAM 雲端實驗用電腦規格 處理器 Intel Core i5-3470 3.20 GHz 記憶體 4.00GB. 本論文所模擬之機器人搭載的感測器均為雷射測距儀,範圍為 180 度,每 1 度為單位,每一時刻則有 181 筆量測資訊,所模擬的量測距離最大值為 100 pixels, 每次接收的感測資訊都帶有高斯雜訊, rdiff 門檻值設定為量測距離最大值的 5%, 即為 5 pixels。機器人移動資訊包括移動距離與旋轉角度,移動距離以 10 pixels 為單位向前或向後移動,旋轉角度以 15 度為單位向左或向右旋轉,每次回傳的 移動資訊都帶有高斯雜訊。. 47.
(57) 5.2 ESLAM 模擬結果 ESLAM 模擬的目的是為了驗證本論文所提出的方法能提高同時定位與建圖 結果之準確度。模擬比較了 FastSLAM1.0、FastSLAM2.0、CESLAM 以及所改良 的 ESLAM 演算法。所使用的地圖大小為 500 500 pixels,地圖含有 16 個點狀地 標,每種演算法所使用的粒子數均為 30 顆粒子,為了比較不同 SLAM 的定位誤 差,所模擬機器人移動的路經均相同且固定,移動距離為每次 10 pixels,旋轉角 度為每次 15 度,所回傳的機器人移動資訊帶有高斯雜訊。. 圖 5.1 為模擬 16 個地標各種 SLAM 演算法執行一次 SLAM 任務的結果,每 次 SLAM 任務為執行 100 次動作,包含前進與原地旋轉,每次動作間執行 5 次 SLAM 演算法的疊代,每一時刻機器人的真實位置構成機器人真實路徑由粉紅色 點表示,所有 SLAM 均固定且相同,每一時刻預測的機器人位置則以灰色點表示, 代表定位結果,資料取自粒子群中權重最大的粒子,圖 5.1 中聚集的綠色點代表 粒子,圖 5.1 中真實機器人以黃色圓圈表示,幾乎被綠色粒子覆蓋,藍色線段為 雷射測距儀之模擬。. 圖 5.1 中包含的點狀地標由黑色點表示,地標大小為 1 pixel,為方便辨識, 以咖啡色圓圈標記,不影響 SLAM 模擬,所預測的地標位置以紅色圓圈標記,即 為建圖結果。圖 5.1 顯示出所改良的 ESLAM 演算法模擬結果相較於其他 SLAM 演算法,無論是在定位結果也就是路徑重合上,或是建圖結果也就是地標重合上, 均有較良好的結果。. 圖 5.2 為模擬 70 個地標各種 SLAM 演算法執行一次 SLAM 任務的結果,每 次 SLAM 任務為執行 100 次動作,包含前進與原地旋轉,每次動作間執行 5 次 SLAM 演算法的疊代。圖 5.2 顯示出所改良的 ESLAM 演算法模擬結果相較於其 他 SLAM 演算法,無論是在定位結果也就是路徑重合上,或是建圖結果也就是地 標重合上,均有較良好的結果。 48.
(58) (a)FastSLAM1.0. (b)FastSLAM2.0. (c)CESLAM. (d) ESLAM. 圖 5.1、16 個地標各種 SLAM 演算法的模擬結果. 49.
Outline
相關文件
9、 空壓機皮帶張力於第一次開始運轉 1000 小時後予以檢查,第二次以後每隔 3000 小時實施,每 3000 小時清 潔自動排水閥,每
各縣市政府於提報自評資料時,下列四個考核項目權重為就業服務或就 業服務臺績效執行佔
各縣市政府於提報自評資料時,下列四個考核項目權重為就業服務或就 業服務臺績效執行佔
工 作 任 務 工 作 活 動 工 作 產 出 行 為 指 標
Step 3: : : :模擬環境設定 模擬環境設定 模擬環境設定 模擬環境設定、 、 、 、存檔與執行模擬 存檔與執行模擬
大略來說 , 以上兩者決定 dynamic programming a lgorithm 的執行時間. ( 之前說的 Subproblem graphs
大略來說 , 以上兩者決定 dynamic programming a lgorithm 的執行時間.. ( 之前說的 Subproblem graphs
for…迴圈自初值開始判斷 <條件判斷> 是否為 true,若為 true 則執行 for 迴圈內的敘述,並依 <增量值>,每次增 加 (或減少) 指定的增量值,直至 <條件判斷>