国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于SLAM技術(shù)的雙控制器智能機(jī)器人

2020-06-16 00:24蔣江紅張鍥石
關(guān)鍵詞:移動機(jī)器人激光雷達(dá)卡片

蔣江紅,張鍥石

(1.陜西師范大學(xué) 計算機(jī)科學(xué)學(xué)院,陜西 西安 710119;2.中國科學(xué)院深圳先進(jìn)技術(shù)研究院 集成所,廣東 深圳 518055;3.香港中文大學(xué)(深圳),廣東 深圳 518055)

0 引 言

智能機(jī)器人種類繁多,目前應(yīng)用比較廣泛的為輪式移動機(jī)器人,其主要是由微機(jī)控制的智能車輛[1-2]。輪式移動機(jī)器人z主要應(yīng)用于室內(nèi)或庫房的巡邏、行星探測、教學(xué)、科研以及民用運(yùn)輸?shù)确矫?。具備在環(huán)境信息感知基礎(chǔ)上實(shí)現(xiàn)路徑規(guī)劃和自定位成為輪式移動機(jī)器人的必備功能,同時也是此領(lǐng)域機(jī)器人的研究重點(diǎn)。在機(jī)器人運(yùn)動估計和建圖算法中SLAM算法起到了關(guān)鍵作用[3],通過優(yōu)化慣性測量單元獲取的機(jī)器人的位姿信息來提升SLAM算法的精度[4]?;赟LAM技術(shù),文中設(shè)計了一個可以在陌生場景下完成環(huán)境感知、定位、地圖構(gòu)建、動態(tài)路徑規(guī)劃和運(yùn)動控制等自主控制的機(jī)器人系統(tǒng)。不僅可以用于安防監(jiān)控、危險場所巡檢、外星球探測、家庭服務(wù)、自動駕駛等領(lǐng)域,同時為相關(guān)領(lǐng)域的科研工作者提供了一個完整的研究平臺??蒲泄ぷ髡呖梢詫γ恳荒K的算法進(jìn)行替換和改進(jìn),從而不斷提升該移動輪式機(jī)器人的性能。

1 系統(tǒng)總體方案

整個機(jī)器人系統(tǒng)主要由底層運(yùn)動控制器、智能控制器和移動控制終端三部分構(gòu)成。為了提高智能機(jī)器人的工作效率,機(jī)器控制系統(tǒng)采用雙控制器結(jié)構(gòu),其中Arduino控制器用于移動機(jī)器人的速度控制和傳感數(shù)據(jù)的采集,負(fù)責(zé)移動機(jī)器人的移動與轉(zhuǎn)向等具體動作的實(shí)現(xiàn);智能控制器采用全志A31S開發(fā)板,主要負(fù)責(zé)激光雷達(dá)和攝像頭數(shù)據(jù)的采集,并進(jìn)行分析處理形成相應(yīng)的控制指令傳到運(yùn)動控制器,另外結(jié)合采集的數(shù)據(jù),利用SLAM技術(shù)來進(jìn)行路徑規(guī)劃和地圖構(gòu)建并將生成的地圖實(shí)時傳到移動控制終端;移動控制終端用于地圖的顯示以及人機(jī)交互。采用這種架構(gòu)可以使得設(shè)計的移動機(jī)器人在軟硬件方面便于移植、裁剪和進(jìn)行功能上的擴(kuò)展[5]。系統(tǒng)的總體框圖如圖1所示。

圖1 系統(tǒng)總體框圖

2 系統(tǒng)硬件設(shè)計

2.1 智能機(jī)器人結(jié)構(gòu)模型

文中設(shè)計的智能機(jī)器人為輪式移動智能小車,機(jī)器人部件包含車輪、電機(jī)、光電編碼器、視覺傳感器、激光雷達(dá)、電機(jī)驅(qū)動電路、電源控制模塊等組件。機(jī)器人采用差速轉(zhuǎn)向,利用運(yùn)動學(xué)分析,對運(yùn)動過程中各類參數(shù)進(jìn)行調(diào)整才能使機(jī)器人在控制下進(jìn)行移動[6],為了方便控制,移動速度一般在1 m/s左右[7]。綜合實(shí)用性、簡潔性和線路布線易實(shí)現(xiàn)等因素,將車輪、電機(jī)、電源控制模塊、電機(jī)驅(qū)動置于車體底層,將電源、卡片電腦與攝像頭置于車體中間層。根據(jù)激光雷達(dá)的工作原理,將其置于車體頂層,可以有效地提高系統(tǒng)定位的精度。整個系統(tǒng)的結(jié)構(gòu)如圖2所示。

圖2 系統(tǒng)實(shí)物

2.2 傳感器組成

移動機(jī)器人系統(tǒng)搭載了視覺傳感器(攝像頭)、激光雷達(dá)和慣性測量單元(IMU)等主要傳感器,為了能夠?qū)崿F(xiàn)機(jī)器人在狹小空間內(nèi)自主導(dǎo)航避障,機(jī)器人所采用的激光雷達(dá)每秒采集數(shù)據(jù)高達(dá)4 000點(diǎn),采集范圍達(dá)到6米,精度為毫米級。激光雷達(dá)的工作原理類似于聲吶,工作時發(fā)射器發(fā)送經(jīng)過調(diào)制的紅外激光束,激光遇到障礙物體后會有部分激光反射回來被接收視覺采集系統(tǒng)接收物體與雷達(dá)中心的距離以及當(dāng)前距離的夾角信息,并通過通信接口輸出。激光雷達(dá)環(huán)境掃描范圍如圖3所示。

圖3 激光雷達(dá)掃描輪廓

將激光雷達(dá)和攝像頭采集的數(shù)據(jù)進(jìn)行深度融合,可以避免單個傳感器的局限性并有效地提高機(jī)器人定位導(dǎo)航的精度,通過視覺回環(huán)檢測可以降低累計誤差[8-9]。視覺傳感器得到的環(huán)境深度信息能夠匹配到激光雷達(dá)構(gòu)建的2D地圖上,因此可以利用激光雷達(dá)和視覺融合信息發(fā)現(xiàn)單個傳感器所不易發(fā)現(xiàn)的障礙物,結(jié)合激光雷達(dá)得到的邊緣深度和相機(jī)圖像中的深度進(jìn)行自動對齊[10],提高移動機(jī)器人的路徑規(guī)劃和避障性能。

3 控制系統(tǒng)軟件設(shè)計

3.1 控制器系統(tǒng)開發(fā)平臺的搭建

智能控制器軟件平臺采用操作系統(tǒng)Ubuntu12.04LTS,在該操作系統(tǒng)的基礎(chǔ)上建立ROS框架。ROS系統(tǒng)提供了編譯、鏈接和運(yùn)行代碼的工具與庫函數(shù)[11-12],通過創(chuàng)建一個用Arduino控制小車動作的ROS話題,并將該控制算法提前寫入Arduino中,小車在行進(jìn)過程中,采用ORB-SLAM2算法[13]不斷從話題中讀取采集到的實(shí)時圖像信息,首先定位出自身所處的位置,然后再得到實(shí)時運(yùn)動軌跡并繪出所處環(huán)境的地圖信息。

3.2 地圖構(gòu)建與路徑規(guī)劃

智能機(jī)器人主要通過激光雷達(dá)、視覺傳感器、光電編碼器,驅(qū)動電路、電機(jī)、控制器和移動控制終端等來完成整體控制。通過慣性測量單元和傳感器采集到的數(shù)據(jù),利用卡爾曼濾波器[14]和PID控制算法來實(shí)現(xiàn)機(jī)器人的速度控制[15]。采用卡片電腦作為智能控制平臺,數(shù)據(jù)的采集主要由激光雷達(dá)和光電編碼器完成,將所獲得的數(shù)據(jù)通過一系列的算法完成環(huán)境輪廓掃描、地圖構(gòu)建和自主定位等操作。通過自主設(shè)計的機(jī)械控制與嵌入式智能控制系統(tǒng)相結(jié)合,可以實(shí)現(xiàn)高效的機(jī)器人姿態(tài)獲取,從而實(shí)現(xiàn)精準(zhǔn)的路徑規(guī)劃與導(dǎo)航。

使用激光雷達(dá)作為主要的環(huán)境感知途徑,即使在光線條件較差的情況下仍可以工作。由于采用了高分辨率攝像頭和激光雷達(dá)兩種環(huán)境信息采集工具,機(jī)器人的環(huán)境適應(yīng)性強(qiáng),可以在黑夜與白天兩種環(huán)境下正常工作。并且機(jī)器人具有數(shù)據(jù)回傳功能、自主運(yùn)動功能,可進(jìn)行遠(yuǎn)距離自主或者人為控制下的環(huán)境探索。

整個機(jī)器人系統(tǒng)的工作流程為:移動控制終端發(fā)布運(yùn)動控制和地圖構(gòu)建指令,卡片電腦接收到指令后開始工作??ㄆ娔X根據(jù)激光雷達(dá)點(diǎn)云數(shù)據(jù)實(shí)現(xiàn)地圖構(gòu)建,通過一系列算法實(shí)現(xiàn)定位與路徑規(guī)劃,而后通過USB信號總線傳輸控制信號至Arduino控制板,運(yùn)動控制板接收卡片電腦傳來的控制信號,輸出脈沖寬度調(diào)制信號(PWM),控制電機(jī)驅(qū)動板輸出電流,進(jìn)而驅(qū)動機(jī)器人輪子轉(zhuǎn)動。光電編碼器利用碼盤的轉(zhuǎn)動實(shí)現(xiàn)輸出脈沖電信號,經(jīng)比例運(yùn)算后通過Arduino控制板傳到卡片電腦,實(shí)現(xiàn)機(jī)器人車輪運(yùn)動情況的采集。機(jī)器人通過視覺傳感器接收圖像數(shù)據(jù),經(jīng)過信息整合與數(shù)據(jù)反饋分析,采用SLAM算法先對小車進(jìn)行定位,然后生成小車所處環(huán)境的地圖,最后小車可以根據(jù)地圖上的路徑規(guī)劃行駛,避開障礙物。系統(tǒng)的控制流程如圖4所示。

圖4 系統(tǒng)控制流程

機(jī)器人采用柵格地圖作為地圖模型,由于柵格地圖易于創(chuàng)建和維護(hù)且每個柵格的信息可以和對應(yīng)的環(huán)境中的某個區(qū)域所對應(yīng),便于處理超聲波測量數(shù)據(jù)和激光測量數(shù)據(jù),適用于室內(nèi)和未知環(huán)境下的地圖構(gòu)建。

利用激光雷達(dá)采集的二維幾何信息,可以提取點(diǎn)云密度及距離信息,并將其存儲到一個二維的柵格地圖中。

圖5 路徑規(guī)劃

基于柵格地圖[16]實(shí)現(xiàn)路徑規(guī)劃的步驟為:

(1)獲取智能機(jī)器人當(dāng)前的位姿狀態(tài)并進(jìn)行采樣;

(2)根據(jù)每個采樣的速度來計算機(jī)器人以該速度行駛一段時間后的狀態(tài)及相應(yīng)的移動路徑;

(3)利用一些評價標(biāo)準(zhǔn)為多條路線打分,從而選擇最優(yōu)路徑;

(4)重復(fù)上述過程。測試效果如圖5所示。

4 系統(tǒng)測試

文中設(shè)計的智能機(jī)器人采用的硬件平臺為全志A31S卡片電腦和Arduino控制板,其中卡片電腦主要用于地圖構(gòu)建和路徑規(guī)劃算法的實(shí)現(xiàn),Arduino用于控制智能小車的前進(jìn)、后退和轉(zhuǎn)向。為了便于后期智能機(jī)器人功能的擴(kuò)展,Arduino開發(fā)板主要用于機(jī)器人電機(jī)控制以及超聲波傳感器等數(shù)據(jù)的采集;將Arduino利用USB接口連接至卡片電腦,卡片電腦通過ROS操作系統(tǒng)讀取Arduino開發(fā)板采集到的機(jī)器人速度信息和傳感器數(shù)據(jù),從而控制機(jī)器人的電機(jī),使機(jī)器人執(zhí)行相應(yīng)的動作。機(jī)器人通過激光雷達(dá)和視覺傳感器掃描采集周圍環(huán)境信息,通過卡片電腦運(yùn)行的SLAM算法來實(shí)時構(gòu)建地圖,并將構(gòu)建的地圖及時上傳至移動控制終端,通過移動控制終端可以觀察構(gòu)建的地圖并與機(jī)器人進(jìn)行交互。根據(jù)在實(shí)際環(huán)境下對智能機(jī)器人的功能進(jìn)行測試,移動機(jī)器人能夠?qū)崿F(xiàn)在陌生環(huán)境中自主探索導(dǎo)航,主動避障到達(dá)目標(biāo)點(diǎn)。在黑夜環(huán)境中,普通的視覺導(dǎo)航機(jī)器人無法實(shí)現(xiàn)環(huán)境分析與導(dǎo)航功能,紅外成像也是無法做到的。此時激光雷達(dá)機(jī)器人便能充分發(fā)揮它的優(yōu)勢,在環(huán)境光線極低的情況下也能正常工作,與視覺導(dǎo)航機(jī)器人形成互補(bǔ)關(guān)系。實(shí)際測試效果如圖6所示。

從圖中可以看出,在小車的運(yùn)行過程中,ORB_SLAM2會通過不斷在地圖中標(biāo)注出自己的軌跡并根據(jù)周圍的環(huán)境來控制小車的行駛路徑。

5 結(jié)束語

設(shè)計了一種利用卡片電腦和Arduino開發(fā)板搭建的雙控制器智能機(jī)器人模型,并且使用SLAM算法實(shí)現(xiàn)了智能機(jī)器人的定位和在未知環(huán)境下的地圖建模,能夠根據(jù)生成的地圖來對小車的路徑進(jìn)行規(guī)劃和自動導(dǎo)航。實(shí)驗表明設(shè)計的智能機(jī)器人能夠有效實(shí)現(xiàn)小車在未知環(huán)境中的定位和實(shí)時地圖構(gòu)建,具有較高的穩(wěn)定性且易于擴(kuò)展。

猜你喜歡
移動機(jī)器人激光雷達(dá)卡片
移動機(jī)器人自主動態(tài)避障方法
激光雷達(dá)實(shí)時提取甘蔗壟間導(dǎo)航線
基于粒子濾波的欠驅(qū)動移動機(jī)器人多目標(biāo)點(diǎn)跟蹤控制
卡片排一排
法雷奧第二代SCALA?激光雷達(dá)
移動機(jī)器人路徑規(guī)劃算法綜述
融合激光雷達(dá)與超聲波數(shù)據(jù)的障礙物檢測方法
Ouster發(fā)布首款全固態(tài)數(shù)字激光雷達(dá)
健忘卡片
水往高處流
西安市| 衡阳市| 吉木乃县| 武乡县| 甘谷县| 江川县| 苏州市| 富川| 临安市| 故城县| 巢湖市| 泸水县| 寿阳县| 苏尼特左旗| 卢龙县| 化德县| 崇文区| 托克逊县| 屏东县| 景洪市| 麻城市| 登封市| 图们市| 平泉县| 攀枝花市| 乐至县| 南阳市| 富蕴县| 新沂市| 石阡县| 怀远县| 勐海县| 九龙城区| 广宁县| 秦安县| 即墨市| 广西| 林西县| 安泽县| 石景山区| 侯马市|