趙夢成 黎昱宏 張宏宇



摘要:近年來,隨著人工智能的迸發,計算機的各項技術的突破,硬件技術的發展。機器人行業也取得了新的進展。服務類移動機器人的研發也不限于實驗室,慢慢走出實驗室而開始商用。對于服務類移動機器人來說,SLAM(同時定位于地圖構建)是關鍵技術,也是目前研究的主要方向和熱門。
本文主要針對室內移動機器人的探究,使用ROS平臺和Gazebo試驗和仿真SLAM。一開始介紹本文的研究背景和近年來國內外的服務類移動機器人的現狀。其次介紹了本文所用到的移動平臺,和介紹ROS機器人操作系統。之后介紹SLAM的概率學模型,在概率學模型上添加地圖。最后開始試驗對SIAM的測試,在未知環境下實現了地圖構建和導航。
關鍵詞:移動機器人;機器人操作系統;SLAM;粒子
中圖分類號:TP391 文獻標識碼:A
文章編號:1009-3044(2020)09-0274-03
1 引言
1.1 選題背景與意義
20世紀60年代,機器人都只是固定在基座上來進行已知工作中來運動。隨著計算機性能的大幅度提升,尤其近年來人工智能和機器學習的大爆發。移動機器人從實驗室的研究到實地場景應用再到機器人的大規模生產。
1.2 本文的研究內容與主要工作
這篇文章主要介紹了機器人移動底盤的物理學模型,SLAM在原理主要分析了濾波器的中的slam方法和優化導航包。最后在移動平臺上實現激光雷達和攝像頭的建圖與導航,并且在ROS平臺上進行仿真實驗,Gazebo仿真。
2 基于ROS的移動機器人平臺搭建
2.1 移動機器人平臺搭建
本實驗平臺搭建是采用EAI公司的底盤。機器人下位機是二輪差分的機構,輪子是兩個主輪和四個萬向輪,可使整機轉彎半徑達到最小。移動平臺實物如圖1所示。
2.2 ROS系統的介紹
ROS是一個系統,它主要是一個開源的為機器人打造的一個平臺。它可以為開發者提供一系列的工具和庫,類似與一些傳統的操作系統[2]。ROS在某一角度可以當作機器人的框架。
2.3 里程計模型
在ROS中,里程計是衡量機器人從初始位姿到終點位姿的一個標準,具體來說就是使用移動傳感器獲取數據[3][4]。底盤的運動學模型主要分為兩種:兩輪差分和三輪全向模型。
2.3.1 里程計信息
本文使用的EAI地盤就是采用兩輪差速運動模型。運動模型如圖2所示。底盤可以看作以O點做圓弧運動,V,ω為地盤中心點的線速度和角速度,VL,VR左右兩輪的速度,d為輪子離地盤中心的距離。
小車的中心點是以半徑為r做圓弧運動,因為整個小車是剛性物體,所以小車的左右兩輪都是在做圓弧運動。即兩輪的角速度是相等的,ωL=ωR。即可獲得(1):
就能得出半徑r。根據左右輪的角速度相等,就等于小車中心點的角度度。可以得出公式(2):
化簡就可以得出小車中心點的角速度,同理能計算出小車中心點的線速度。
2.3.2 航跡推算
由兩輪差速運動模型可以得出小車中心點的線速度和角速度。在當小車進行運動時從tl時刻運動到t2時刻,可以求解得出小車在這一過程中的運動學增量dx,dy,d0,且需要將車體坐標系轉換成世界坐標系[5](3):
可以用向量[dx,dy,d0]T來表示t1時刻到t2時刻小車的位姿增量。由迭代關系我們就可以知道下一時刻的位姿可用上一時刻的位姿求解得。因為里程計測量會混入噪聲則有(4):
2.4 線性最小二乘
給定線性方程組Ax=b,其中A為m*n矩陣,x為n的狀態向量。A行作約束條件,列作未知數的維數。在實際情況中約束條件多過未知數的維數。就需要找到一個離真實解最接近的一個解[6][7]。
2.5.1 權重評估
在狀態傳播到當前時刻,機器人是無法知道實際位姿。因為粒子只能從預測分布進行采樣,聯合權重一起近似機器人的后驗概率分布。權重就是用來評估機器人預測分布和實際分布的比值,比值越大,權重越小。權重的定義:
每次重采樣后都要進行權重更新。在權重評估里豎條信號的高低表示權重的大小,根據圖示分析,權重的大小是和后驗概率密切相關,盡管密度函數g的密度很大。
2.5.2 重采樣
到目前為止,新的粒子群是根據先驗概率分布進行采樣,并且用觀測模型進行權重評估。粒子群進行重采樣,以Wt的概率接受這個粒子,生成一個隨機數。根據其落在區間決定接受粒子。重復多次。權重大的多復制幾次,權重小的粒子就會被刪除。整個粒子濾波的算法流程如下:
算法第一行函數參數是已知條件,位姿,t時刻的里程計數據和激光雷達數據。三至七行程序是粒子運動學傳播。第五行觀測數據進行權重評估。第六行由前面得到的兩個數據放在一個數據集內。程序八到十一行對粒子進行重采樣。
2.6 FASTSLAM的優化
算法流程為:我們已知條件為t-l時刻的粒子群,t時刻的觀測數據,t-1時刻的里程計數據。求解t時刻的粒子分布。
3 試驗分析
這章將介紹導航算法在機器人底盤上實現。對處理過的導航包進行真機試驗和在ROS平臺下進行仿真試驗。
3.1 仿真對比
本次試驗采樣ROS中兼容的仿真軟件Gazebo,來進行仿真。只改變優化前后的代碼,比較試驗結果來說明優化程度。
在試驗的過程和試驗結果中明顯就能看出在想要時間下建圖會出現雙重圖,而且在建圖過程中粒子數比較多,建圖過程中掃描的地圖反應時間較長,通常在環境中走一圈地圖沒有建完。
對比于在相同環境相同時間,小車走的路線如圖所示。
根據建圖過程中和試驗結果來看,優化后的建圖明顯比較完整,并且掃描的粒子數較為少,掃描出的地圖比陜,基本小車走一圈就能夠建立較為完整的地圖。
參考文獻:
[1]胡春旭.ROS機器人開發實踐[M].北京:機械工業出版社,2018.
[2](西)恩里克·費爾南德斯(Enrique Fernandez),劉錦濤,張瑞雷等譯.ROS機器人程序設計[M].北京:機械工業出版社,2016.
[3]卡梅倫·休斯(Cameron Hughes),特雷西·休斯(Tracey Hughes)著劉錦濤,李筆鋒譯.機器人編程實戰[M].北京:機械工業出版社,2017.
[4]R.帕特里克.戈貝爾.ROS進階實例[M].中山大學出版社, 2017.
[5]蔡蕓,滕茹梅,服務機器人的應用與發展[Jl.科教導刊一電子版(上旬),2014(5):139.
[6]孫小凱基于RGB-D信息的物體定位與識別[D].浙江大學2014.
[7] JohnJ.Craig.機器人學導論[M].機械工業出版社,2006.
[8] Araya H,Kagoshima M.Semi-automatic control system for hy-draulic shoveI[J]. Automation in Construction, 2001, 10(4):477-486.
[9] Lowe D G.Distinctive image features from scale-invariant key-points[J].lnternational Journal of Computer Vision, 2004,60(2):1-110.
【通聯編輯:梁書】