陳龍 劉娟秀



摘要:為使機器人完成對室內環境地圖的建立,并對自身進行實時定位,實現自主導航、自主行走的目的,選用電源模塊、驅動模塊、主控模塊等硬件設備搭建一個機器人運動平臺,并采用激光雷達作為該平臺距離傳感器。在同時定位與地圖構建數學模型的基礎上,采用擴展卡爾曼濾波算法對該數學模型進行優化求解,得到模型最優解。在機器人操作系統ROS上對機器人進行編程控制,實現機器人實時定位和建圖、自主導航功能。
關鍵詞:室內機器人;概率模型;EFK-SLAM;定位與建圖;自主導航
中圖分類號:TP242 ? ? ?文獻標識碼:A
文章編號:1009-3044(2020)24-0001-03
Abstract: In order to make the robot complete the establishment of the indoor environment map, and to be positioned in real-time, realize autonomous navigation and autonomous walking, power module, drive module, main control module, and other hardware equipment is used to build a robot motion platform in this paper. Laser radar is selected as the distance sensor of the platform. The Slam (simultaneous localization and mapping) mathematical model and the EKF (Extended Kalman filter) algorithm are used to solve the mathematical model. The optimal solution of the model is obtained, and the robot is programmed and controlled on the ROS (robot operating system). Realize the robot real-time localization, mapping, and autonomous navigation functions.
Key words: indoor robot; probability model; EFK-SLAM; localization and mapping; autonomous navigation
1 背景
隨著經濟的發展和社會的進步,人們對高質量生活的需求也逐漸提高。室內機器人成為近幾年發展迅速的一類機器人,在醫療、文娛、服務、安保行業的應用也日益廣泛。作為當前代替人工的優秀解決方法,有著巨大的發展前景。為使室內機器人更加智能化,能夠在更少人工干預的條件下,自主去完成設定的任務。本文設計一款室內機器人,使用激光雷達采集的距離數據,通過優化過后的SLAM模型進行運算,可以使機器人知道自身在室內環境的實時位置,在此基礎上完成對標定位置點之間的自主導航。
2系統設計
2.1總體設計
室內機器人的總體可以分為上位機和下位機兩大部分,兩個部分獨立運行實現各自功能,并通過總線方式進行數據的交互,其原理框圖如圖1所示。
上位機可以由微型計算機充當,也可以直接使用筆記本電腦,相當于系統的大腦,對大數據量的信息進行處理,即對來自下位機的數據進行處理,得到運動平臺的位置信息,依靠處理過后的數據進行實時定位和建圖,并對機器人的運動做出決策。將控制命令發送給下位機,下位機控制運動平臺的動作,完成計劃的任務。在運動平臺中,下位機起到了兩個作用:控制平臺的運動和傳感器信息的收集,將這些信息進行簡單的處理過后發送給上位機,根據上位機發送的指令對平臺的運動進行控制。激光雷達安裝在運動平臺的前端,根據運動平臺的移動得到位置的距離信息。
2.2上位機設計
本設計將使用安裝在上位機中的ROS(robot operating system)操作系統,該系統的特點是利用節點發布話題,通過訂閱相同話題實現節點間通信和數據交換。本設計自定義5個ROS節點:抽象節點,激光節點,建圖節點,遙控節點以及導航節點。其中,抽象節點負責上位機與主控板的數據的讀寫以及接收編碼器數據。激光節點負責接收激光雷達測量數據。建圖節點是根據激光雷達的數據,運用SLAM算法模型得到機器人實時位置信息,并繪制成為地圖。遙控節點實現鍵盤控制運動平臺移動。導航節點是根據已有地圖,控制機器人完成自主導航任務。ROS控制系統主要的流程圖如圖2所示,其中虛線框位上位機的部分。
2.3下位機設計
下位機部分主要由主控模塊,電源模塊,電機驅動模塊構成。主控模塊是采用意法半導體stm32 f407vgt6芯片組成的最小系統,該芯片的最高工作頻率可以達到168MHz,可以對一些小數據量的信息進行處理。電源模塊有多路開關和多種電源轉換功能,可以為整個運動平臺的各種設備提供電力支持。電機驅動模塊中使用兩塊BTS7970芯片,可以驅動一個電機,保證足夠大的驅動能力。
3 SLAM基本原理與程序設計
3.1 SLAM的基本原理
同時定位與建圖(simultaneous localisation and mapping,SLAM)[1]是指:如果將可以移動的機器人放入一個未知而陌生的環境中,機器人如何通過對于環境的掃描在通過一定的處理得到與這個環境相一致的地圖,并且能夠知道自己在地圖之中的位置。
如圖3所示,一個機器人在室內環境中移動,它通過激光雷達得到一系列的標志點和自己的相對位置的距離信息。
通過這些信息對移動軌跡與所有的標志點都是實時進行估計的,構成一個兩步的遞歸預測矯正算法模型。模型中包含有預測和矯正兩個過程,將預測得到的標志點進行矯正,不斷地縮小估計標志點和真是標志點之間的誤差。隨著觀測次數的增加,標志點之間相關程度不斷增加,標志點相對位置信息也不斷地變得準確。
當機器人運動到了新的點上,重新觀測先前的標志點時,機器人與標志點的位置都會被更新。同時也會出現這一個位置的標志點,這些新出現的標志點可以立即與已知的地圖相關聯。最終,所有的標志點形成了一個相互關聯的網絡,它們的精度隨著觀測次數的增加而增加,標志點數量隨觀測次數的增加而增加。
圖4以條帶表示點與點之間的相關性。當機器人在環境當中來回運動的時候,這些條帶會變得越來越粗并將會影響整個網絡。
3.2同時定位與建圖的程序設計
SLAM算法模型可以在一定程度上幫助減小估計標志點和真實標志點之間的誤差,但是想要真正實現機器人的實時定位與建圖,還需要使用擴展卡爾曼濾波(Extended Kalman filter,EKF)算法對該數學模型進行優化,去除不正確的標志點,使模型具有線性,這些都利于提高定位與建圖的精度。
將上述過程通過程序不停地迭代,得到EKF-SLAM定位與建圖程序的框圖如圖5所示:
3.3自主導航的程序設計
在已經獲得室內地圖數據的基礎之上,對機器人進行路徑規劃,在機器人行走過程中也不斷對地圖進行實時比對和重新規劃,從而實現機器人的自主導航。得到機器人自主導航的程序框圖如圖6所示。
4系統調試
4.1同時定位與建圖的調試
首先,在新終端啟動機器人抽象節點,通過該節點對機器人的狀態進行初始化,并啟動對機器人運動平臺系統的控制程序。接下來,在另一個新終端中啟動雷達激光節點,激光雷達能正常工作,這時的激光雷達能夠輸出距離的數據。之后,再新開一個終端,啟動建圖節點,這個節點是為了運行建圖的程序,調取空白建圖界面,讀取激光雷達的距離數據和里程數據,使得機器人實時的定位信息能夠被讀取到。最后,利用RVIZ對建圖過程進行可視化。如果正常的話,可以得到如圖7所示的畫面。
利用無線鍵盤遙控機器人在準備導航的環境中緩慢移動,使RVIZ中顯示的地圖逐漸補全,直到將整個環境的地圖建好為止。當地圖建好之后就要對地圖進行保存。最終,實驗室外面走廊的地圖如圖8所示。
4.2自主導航的調試
按照之前的方法,在兩個終端中啟動抽象和激光節點,之后將先前建好的地圖導入導航節點中,啟動導航節點。若導航節點正常啟動之后,就可知道當前機器人的狀態,并對導航狀態進行初始化,最后得到機器人的里程數據,此時機器人可以開始進行導航。利用RVIZ對機器人初始位置標定,之后為機器人指定導航的目標點。得到自主導航畫面如圖9所示。
其中,機器人前方的紅色細線為規劃出來的全局路徑,如果在行經過程中沒有障礙物機器人將沿著這條路徑行走,當遇到障礙物時,機器人將向右邊移動繞開障礙物之后重新回到這條全局路徑。
5結束語
通過硬件設備的搭建,獲得本設計的運動平臺,之后通過對SLAM模型的理解和優化得到機器人同時定位與建圖以及自主導航的控制原理。根據原理利用ROS操作系統,對機器人運動平臺進行編程控制,最終對程序進行調試,使得機器人實現同時定位與建圖以及自主導航的功能。為后續機器人實現未知環境下的移動,為室外機器人、無人駕駛車及其他輪式移動機器人的工程應用提供理論基礎和技術依據。
參考文獻:
[1] 潘心冰.基于Kinect的移動機器人SLAM技術研究[D].哈爾濱:哈爾濱工業大學,2017.
[2] 潘琪.自主移動機器人的路徑規劃算法研究[D].長沙:湖南大學,2016.
[3] 張探.導盲機器人自主導航技術研究[D].鎮江:江蘇科技大學,2016.
[4] 楊俊駒.動態環境下基于ROS的移動機器人路徑規劃技術研究[D].蘇州:蘇州大學,2016.
[5] 徐亮.室內清掃機器人的路徑規劃研究[D].鄭州:中原工學院, 2011.
[6] 胡正偉.清掃機器人定位及路徑規劃研究[D].秦皇島:燕山大學,2010.
[7] 何炳蔚,張立偉,張建偉.基于ROS的機器人理論與應用[M].北京:科學出版社,2017: 101.
[8] 余冬冬.移動機器人避障與軌跡規劃[D].杭州:浙江大學,2017.
[9] 唐燁.智能家居環境中基于移動機器人的目標搜索[D].杭州:浙江大學,2017.
[10] 高志發,武建新.基于ROS的移動機器人的路徑規劃策略研究[J].機械研究與應用,2017, 30(3): 161-162.
[11] Estévez P, Cappelletto J,?lvarez F,et al. Coordinated navigation Using Dynamically Varying Velocity Fields[C]. 9th International Conference on Artificial Intelligence and Soft Computing. Zakopane, Poland. June 2008.
[12] Ogata K. Modern Control Engineering[M]. 5th ed. Prentice-Hall Pearson, 2010.
[13] Medina-Meléndez W , FermínL,FernéndezG,et al. Optical Flow Based Velocity Field Control[C]. Modalidad: 9th International Conference on Artificial Intelligence and Soft Computing. Zakopane, Poland, 2008(6): 771-781.
[14] Certad N,Acuna R,Terrones ?,et al.Study and improvements in landmarks extraction in 2D range images based on an adaptive curvature estimation[C]//2012 VI Andean Region International Conference. 7-9 Nov. 2012, Cuenca, Ecuador. IEEE, 2012:95-98.
[15] Point Clouds.Official Web Site[EB/OL].[2019-12-26].http://www.pointclouds.org.
【通聯編輯:謝媛媛】