李博昊 羅詠涵 彭克勤 北京信息科技大學(xué)
移動機器人是一種具備自動、可移動性、人工智能等多方面能夠半自主或全自主工作的機器。自1961年美國誕生世界上第一臺工業(yè)機器人誕生后,經(jīng)過近60年發(fā)展,機器人已經(jīng)逐漸步入工業(yè)、教育、軍事、管理、科研、醫(yī)療、服務(wù)等行業(yè)。機器人與人類社會的融合,逐漸改變了人類的生活方式。
如今機器人產(chǎn)業(yè)在我國市場快速發(fā)展,國內(nèi)機器人許多企業(yè)的生產(chǎn)線上可以看到我國自行生產(chǎn)的機器人,但是也逐漸衍生出了很多問題等待我們的處理與解決。我國主要存在的問題有:基礎(chǔ)零件部件制造能力差,關(guān)鍵零件技術(shù)缺失;機器人沒有形成自己的品牌,中國從事機器人研究的企業(yè)沒有形成較大規(guī)模,缺乏市場品牌的認知度,面臨外國品牌的競爭壓力。我國需要開展關(guān)鍵技術(shù)研究,機器人技術(shù)不斷的發(fā)展,需要滿足不同產(chǎn)品需求的機器人構(gòu)形。
國內(nèi)現(xiàn)在缺乏拓展性高且又性價比高的設(shè)備框架,不利于在原有的基礎(chǔ)上加入一些新的功能,面對不同需求,產(chǎn)品的局限性較高,升級改造的時候十分麻煩。本文所研發(fā)設(shè)計的基于激光雷達SLAM的自主導(dǎo)航機器人系統(tǒng),可基于設(shè)計人的需求在原有的機器人平臺上進行拓展研發(fā),增加更多的功能,并且根據(jù)時代的需求進行不同層面的升級,在保證經(jīng)濟利益的同時最便利的提高了產(chǎn)品的擴展性,符合當下與時俱進的快節(jié)奏的更新?lián)Q代,解決了當下機器人的一大問題。
(1)本系統(tǒng)支持操作者選擇區(qū)域構(gòu)建地圖。
(2)本機器人系統(tǒng)可供操作者對周圍環(huán)境進行實時監(jiān)控。
(3)本系統(tǒng)支持機器人進行移動路徑的數(shù)據(jù)記錄和地圖保存。
(4)使用Gmapping算法進行建圖,ACML算法進行定位。
本機器人系統(tǒng)的主控制器采用的是運行Linux系統(tǒng)的樹莓派4B板,用來處理計算機器人的里程數(shù)據(jù)和雷達等數(shù)據(jù)。樹莓派是由注冊于英國的慈善組織“Raspberry Pi 基金會”開發(fā)的一種微型電腦,其中搭載Linux嵌入式系統(tǒng),擁有體積小、易操作功能強大等優(yōu)點。
樹莓派共有40個IO接口,其中GPIO(General Purpose I/O Ports)接口數(shù)量為26個,26個GPIO端口可以輸出或者輸入高低電平,用戶通過這一特點可以使樹莓派和其他傳感器進行數(shù)據(jù)交互。
樹莓派4B的一些GPIO接口具有I2C接口、SPI接口、UART接口、PWM接口的功能。I2C是一種同步串行總線,它可以實現(xiàn)連接在總線上的兩個器件進行信息傳輸,樹莓派通過I2C端口可以實現(xiàn)多個設(shè)備間的交互。SPI是串行外設(shè)接口,這種接口用來控制多個控制器之間的主從關(guān)系。UART是通用異步收發(fā)傳輸器,在樹莓派上啟用了串口終端,可以使用電腦來控制樹莓派,樹莓派通過異步收發(fā)傳輸器就可以直接控制Arduino單片機。
機器采用激光測距的方式測量距離。激光測距與超聲波測距測量相比精度較高,而且與計算機視覺測距相比處理數(shù)據(jù)的復(fù)雜度較低。采用的激光雷達測距范圍是12cm-350cm,測距分辨率1°,測距精度為2cm,這樣的激光雷達雖然配置較低,但是可以滿足室內(nèi)測距的要求。
在SLAM導(dǎo)航系統(tǒng)中機器自身位姿的計算是非常重要的,這就需要IMU(慣性測量單元)裝置來測量物體的角速度和加速度。MPU9250芯片是一個包含三個單站的加速度計和三個單軸的陀螺儀,加速度計檢測獨立三軸的重力加速度信號,陀螺儀檢測角速度信號,測量出移動機器人在三維空間中的角速度和加速度,并進行計算解出移動機器人的姿態(tài)。
圖1 機器人系統(tǒng)構(gòu)結(jié)構(gòu)
如今移動機器人底盤常用的驅(qū)動方式為履帶式驅(qū)動和輪式驅(qū)動。采用履帶式底盤驅(qū)動的機器人在面對復(fù)雜地形時移動能力強于輪式驅(qū)動的機器人模型,但是履帶式驅(qū)動模型安裝復(fù)雜,控制較困難;輪式驅(qū)動的優(yōu)勢在于結(jié)構(gòu)設(shè)計較簡易、功耗較小、便于控制,但是輪式驅(qū)動方式無法跨越障礙物,本文設(shè)計的機器人系統(tǒng)主要應(yīng)用于室內(nèi)環(huán)境,主要的移動地面較平整,遇到障礙物機器人可以通過路徑規(guī)劃的方式繞過障礙物。綜合考慮設(shè)計機器人的復(fù)雜度、成本和移動靈活性,結(jié)合本機器人系統(tǒng)主要應(yīng)用的環(huán)境為室內(nèi),地形較平坦,沒有復(fù)雜的障礙物,本機器人系統(tǒng)采用輪式底盤結(jié)構(gòu)的方式進行驅(qū)動。
本機器人系統(tǒng)采用Gmapping算法進行建圖,Gmapping算法是在RBPF的粒子濾波算法的基礎(chǔ)上改進而來的。RBPF粒子濾波算法是將定位和建圖根據(jù)貝葉斯法則將兩個過程分離,即將該SLAM問題分解成移動機器人位姿估計和移動機器人的地圖估計。這樣大大降低了該SLAM問題的難度。該算法的主要步驟如下:
(1)首先以移動機器人的初始位置開始構(gòu)建地圖,在初始位置生成N個的粒子,每個粒子權(quán)重為1/N。
(2)機器根據(jù)前一時刻的例子狀態(tài)和當前機器人的位姿,采樣產(chǎn)生新的粒子。
(3)根據(jù)每一時刻的觀測值,為每個粒子重新計算權(quán)值,越有可能獲得觀測的例子,獲得新的權(quán)重越高。
(4)隨著計算的次數(shù)越多,某些粒子的權(quán)重越來越低趨近于0,某些粒子的權(quán)重越來越高趨近于1,為了能準確的估計移動機器人的位姿,將重采樣過后的粒子集輸入到狀態(tài)轉(zhuǎn)移方程中,獲得新的觀測粒子。
(5)根據(jù)粒子的軌跡和觀測記錄,對每個粒子攜帶的地圖與歷史地圖匹配后更新到全局地圖中。
圖2 建圖流程
在SLAM導(dǎo)航問題中,機器人的精確定位是十分重要的,因為如果無法準確定位機器人的當前位置,那么規(guī)劃出到目的地的路徑必然是錯誤的。
AMCL(adaptive Monte Carlo localization)算法是蒙特卡洛定位方法的一種升級版,使用自適應(yīng)的 KLD 方法來更新粒子。
本系統(tǒng)使用ROS中提供的rviz三維可視化平臺操作機器人。rviz是ROS官方提供的一款3D可視化工具,它以圖形化界面的方式將移動機器人的各種參數(shù)展示給操作者,并且操作者可以對ROS的程序進行圖像化操作。在此界面上可以顯示機器人構(gòu)建成功地圖、機器人深度攝像頭返回的點云數(shù)據(jù)、機器人規(guī)劃的移動路徑等數(shù)據(jù),還可以操作機器人的運動,使用戶更為直觀的得到機器人的位姿和構(gòu)建成功的地圖。
圖3 Rviz運行界面
基于激光SLAM的室內(nèi)移動機器人在設(shè)計中運用了多種傳感器,本系統(tǒng)運用了激光雷達模塊進行測距、建圖,并使用樹莓派作為系統(tǒng)的主控制器,相較于單獨使用單片機來進行數(shù)據(jù)處理,樹莓派獲得的數(shù)據(jù)更準確、更可靠。
系統(tǒng)室內(nèi)建圖使用Gmapping算法,通過雷達返回的數(shù)據(jù)使用AMCL算法進行定位,此設(shè)計方案具有可靠性高、性價比好及框架易用性高等優(yōu)點。并且在此平臺上還可以加裝其他的硬件設(shè)施和其他功能,具有較高的擴展性。