池垚 胡文昊 李志遠(yuǎn) 邢澤天 楊智星
摘要:隨著5G技術(shù)的不斷的發(fā)展和成熟,給SLAM技術(shù)帶來了新的機(jī)遇和挑戰(zhàn)。SLAM在室內(nèi)機(jī)器人在實(shí)現(xiàn)自主導(dǎo)航的過程中起到了至關(guān)重要的作用。現(xiàn)就SLAM的移動(dòng)機(jī)器人領(lǐng)域,以miiboo機(jī)器人為載體,搭建ROS操作系統(tǒng)作為平臺(tái),提出一種基于2D激光雷達(dá)的系統(tǒng)設(shè)計(jì)。對(duì)研究學(xué)習(xí)有一定的幫助。本文通過Ubuntu構(gòu)建Linux環(huán)境,通過ROS對(duì)系統(tǒng)進(jìn)行設(shè)計(jì)。
關(guān)鍵詞:ROS? 激光雷達(dá)? 2D-SLAM? 移動(dòng)機(jī)器人
1 引言
SLAM,又稱為CML,意為即時(shí)定位與地圖構(gòu)建或是同步建圖與定位。把機(jī)器人放在未知的環(huán)境中,能否有方法讓其在移動(dòng)的同時(shí)實(shí)時(shí)描繪出環(huán)境的地圖,并獲取自己在地圖中的實(shí)時(shí)位置。這種實(shí)時(shí)建圖與定位的方法就稱作SLAM。
SLAM主要有兩大應(yīng)用領(lǐng)域,AR/VR領(lǐng)域(工業(yè)用途)和移動(dòng)機(jī)器人領(lǐng)域(商業(yè)用途)而室內(nèi)機(jī)器人,則在移動(dòng)機(jī)器人領(lǐng)域有著無法撼動(dòng)的地位。感知、決策與控制是激起人們完成任務(wù)的三個(gè)基本的過程。機(jī)器人通過傳感器獲取環(huán)境信息,利用數(shù)據(jù)處理程序?qū)λ邮盏降男畔⑦M(jìn)行處理,并將其傳輸給決策程序,進(jìn)而做出相應(yīng)的決策,同時(shí)下達(dá)指令對(duì)機(jī)器人進(jìn)行控制。機(jī)器人在進(jìn)行數(shù)據(jù)處理的時(shí)候經(jīng)常會(huì)采用SLAM將采集到的環(huán)境信息繪成地圖,且在地圖中標(biāo)明自己的位置情況。
SLAM考慮到了環(huán)境的真實(shí)的拓補(bǔ)結(jié)構(gòu),可直接且有效地獲取環(huán)境地圖,并通過環(huán)境地圖做出路徑規(guī)劃,或是給機(jī)器人研究者提供一些較為直觀的可視化信息,給研究者們帶來便利。此外環(huán)境地圖還可方便機(jī)器人狀態(tài)估計(jì)的誤差校正,有效地減少了機(jī)器人的位姿漂移。
2 ROS的學(xué)習(xí)環(huán)境
ROS的研究與學(xué)習(xí)需要在Linux環(huán)境下展開。安裝ROS絕大部分都是通過Linux環(huán)境下的Ubuntu系統(tǒng)完成的,安裝Ubuntu系統(tǒng)主要有安裝雙系統(tǒng)或者使用VMware虛擬機(jī)。綜合考慮,團(tuán)隊(duì)采用了Ubuntu16.04系統(tǒng),選用的版本是Kinetic Kame.
通過對(duì)博客“古月居ROS21講”和VMware的學(xué)習(xí)與操作,了解并掌握所需的使用命令。根據(jù)所學(xué)的知識(shí)在miiboo機(jī)器人上進(jìn)行研究。
3 底盤設(shè)計(jì)
底盤是進(jìn)行SLAM 建圖和避障導(dǎo)航的基礎(chǔ)。底盤可提供輪式里程計(jì)和運(yùn)動(dòng)控制,并主要由帶編碼器的電機(jī)與控制板組成,如圖1所示。
3.1編碼器
編碼器為增量式正交編碼器,相位差為90度的兩個(gè)信號(hào)稱之為正交。倘若知道正交的關(guān)系,便可根據(jù)兩個(gè)信號(hào)的接收順序來判斷機(jī)器人的方向。通過對(duì)編碼器的信號(hào)相位進(jìn)行捕獲,便知電機(jī)的轉(zhuǎn)向和轉(zhuǎn)速。
3.2 電機(jī)控制板
電機(jī)控制板通過串口與樹莓派相連接,電機(jī)控制板接收樹莓派下發(fā)的控制指令,采用PID算法進(jìn)行控制;與此同時(shí),采集電機(jī)上的編碼器數(shù)據(jù)發(fā)送給樹莓派,采用航跡推演的算法得出里程計(jì)信息。
3.3 差動(dòng)兩輪底盤輪式里程計(jì)
輪式里程計(jì)是底盤非常重要的組成部分。通過航跡推演算法估計(jì)機(jī)器人位姿,可得出機(jī)器人的速度??梢哉f,對(duì)于機(jī)器人的定位和控制,輪式里程計(jì)都起到了不可或缺的作用。
輪式里程計(jì)是底盤非常重要的組成部分。通過航跡推演算法估計(jì)機(jī)器人位姿,可得出機(jī)器人的速度。機(jī)器人底盤實(shí)時(shí)位姿p1、p2、...、pn連接起來就是機(jī)器人的航跡。假設(shè)相鄰位姿的p1和p2的間隔時(shí)間很短,在已知位姿p1和當(dāng)前左右輪速度vl、vr的情況下,便可利用微積分便可得出機(jī)器人的位姿p2,如此迭代,便是航跡推演。經(jīng)過航跡推演,我們便能得到機(jī)器人當(dāng)前位姿、速度等信息。
4 SLAM建圖
SLAM的建圖主要需要對(duì)以下幾個(gè)方面進(jìn)行配置與驅(qū)動(dòng):底盤、激光雷達(dá)、IMU、攝像頭,配置完成后運(yùn)用cartographer_ros和ros-navigation實(shí)現(xiàn)建圖和自主避障導(dǎo)航。
4.1 底盤的使用
首先底盤控制可配參數(shù),再驅(qū)動(dòng)miiboo的底盤,通過PID鑒定后進(jìn)行里程計(jì)的標(biāo)定。并借助urdf模型描述底盤中各個(gè)傳感器的關(guān)系如圖2所示:
4.2激光雷達(dá)
對(duì)激光雷達(dá)進(jìn)行參數(shù)配置,然后對(duì)激光雷達(dá)進(jìn)行驅(qū)動(dòng),并設(shè)置激光雷達(dá)數(shù)據(jù)格式,一般采用右手坐標(biāo)系,掃描數(shù)據(jù)以極坐標(biāo)來表示,以x軸為0度方向,由x軸轉(zhuǎn)向y軸為正方向。
4.3 IMU
首先對(duì)IMU數(shù)據(jù)可配參數(shù)進(jìn)行設(shè)置,再驅(qū)動(dòng)IMU模塊,并設(shè)置IMU的數(shù)據(jù)格式,采用右手坐標(biāo)系,并提供了三個(gè)軸的加速度、角速度和磁力計(jì),并采用歐拉角表示其姿態(tài)。
4.4 攝像頭
首先設(shè)置攝像頭的參數(shù),然后驅(qū)動(dòng)攝像頭,并訂閱攝像頭發(fā)布的圖像topic進(jìn)行攝像頭遠(yuǎn)程顯示。
4.5利用cartographer_ros和ros-navigation進(jìn)行建圖和自主避障導(dǎo)航
通過Ubuntu進(jìn)行建圖,如圖3所示;運(yùn)用amlc粒子濾波算法來解決全局定位的問題,通過重要性采樣的不斷迭代,迫近實(shí)際值,通過自適應(yīng)的蒙特卡洛算法來解決機(jī)器人綁架問題。利用激光雷達(dá)等傳感器數(shù)據(jù)生成代價(jià)地圖,通過建立不同的圖層并進(jìn)行重疊,從而生成障礙物。并通過全局路徑規(guī)劃和局部路徑規(guī)劃從而進(jìn)行避障和自主導(dǎo)航。
先對(duì)各個(gè)參數(shù)進(jìn)行配置完成后,啟動(dòng)各種節(jié)點(diǎn)的啟動(dòng)文件,同時(shí)載入配置。打開并啟動(dòng)Rviz,設(shè)置并檢查初始位置。指定導(dǎo)航目標(biāo)點(diǎn)后,機(jī)器人便開始規(guī)劃路徑并自動(dòng)導(dǎo)航。
5 結(jié)語
隨著5G技術(shù)的飛速發(fā)展,人工智能的發(fā)展愈發(fā)的如火如荼。機(jī)器人作為人工智能的一個(gè)重要的應(yīng)用領(lǐng)域,有著卓越的市場(chǎng)前景。本文基于ROS對(duì)2D激光SLAM進(jìn)行學(xué)習(xí)與研究,介紹了系統(tǒng)的應(yīng)用基礎(chǔ)、底盤設(shè)計(jì)、SLAM建圖與自主避障等等。利用激光雷達(dá)構(gòu)建代價(jià)地圖并通過路徑規(guī)劃實(shí)現(xiàn)自主避障及導(dǎo)航。具有參考和學(xué)習(xí)的價(jià)值。
參考文獻(xiàn)
[1]羅恒杰,鮑泓,徐成,李培峰,李玉卿.基于激光雷達(dá)的2D SLAM方法綜述[C].中國(guó)計(jì)算機(jī)用戶協(xié)會(huì)網(wǎng)絡(luò)應(yīng)用分會(huì).中國(guó)計(jì)算機(jī)用戶協(xié)會(huì)網(wǎng)絡(luò)應(yīng)用分會(huì)2019年第二十三屆網(wǎng)絡(luò)新技術(shù)與應(yīng)用年會(huì)論文集.中國(guó)計(jì)算機(jī)用戶協(xié)會(huì)網(wǎng)絡(luò)應(yīng)用分會(huì):北京聯(lián)合大學(xué)北京市信息服務(wù)工程重點(diǎn)實(shí)驗(yàn)室,2019:165-171.
[2]李輝.基于激光雷達(dá)的2D-SLAM的研究[D].浙江工業(yè)大學(xué),2017.