董明澤 韓雨薇 許凱成 段睿劼 朱天宇
摘? 要:該文設(shè)計(jì)了一套基于開源機(jī)器人操作系統(tǒng)(ROS)和激光雷達(dá)的移動(dòng)機(jī)器人控制系統(tǒng)方案,以滿足當(dāng)前室內(nèi)機(jī)器人在定位與地圖構(gòu)建上的需求。該系統(tǒng)以開源卡片式電腦樹莓派3B+為核心控制器,使用STM32作為驅(qū)動(dòng)控制板,在Linux系統(tǒng)下使用ROS分布式框架下進(jìn)行軟件算法的開發(fā)。根據(jù)機(jī)器人的狀態(tài)和用戶命令可實(shí)現(xiàn)人機(jī)交互、SLAM地圖掃描繪制、WiFi遠(yuǎn)程控制、即時(shí)定位和室內(nèi)導(dǎo)航的功能。實(shí)際調(diào)試結(jié)果表明,系統(tǒng)能夠構(gòu)建出與實(shí)際環(huán)境差別較小的特征圖,并對(duì)平臺(tái)實(shí)時(shí)位置進(jìn)行精確的定位,能有效完成定位和導(dǎo)航的任務(wù)。
關(guān)鍵詞:ROS? SLAM? 激光雷達(dá)? 同步定位與地圖構(gòu)建? 自主導(dǎo)航
中圖分類號(hào):TP242? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1672-3791(2020)11(a)-0031-03
Design of Wheeled Mobile Robot Positioning and Navigation System
DONG Mingze1? HAN Yuwei1? XU Kaicheng2? DUAN Ruijie1? ZHU Tianyu1
(1.Liangxin College, China Jiliang University; 2.College of Mechanical and Electrical Engineering, China Jiliang University, Hangzhou, Zhejiang Province, 310018 China)
Abstract: This paper designs a set of mobile robot control system solutions based on open source robot operating system (ROS) and lidar to meet the needs of current indoor robots in positioning and map construction. This system uses the open source card computer Raspberry Pi 3B+ as the core controller, uses STM32 as the drive control board, and uses the ROS distributed framework to develop software algorithms under the Linux system. According to the state of the robot and user commands, it can realize the functions of human-computer interaction, SLAM map scanning and drawing, WiFi remote control, instant positioning and indoor navigation. The actual debugging results show that the system can construct a feature map with a small difference from the actual environment, and accurately locate the real-time position of the platform, which can effectively complete the positioning and navigation tasks.
Key Words: ROS; SLAM; Lidar; Synchronous positioning and map construction; Autonomous navigation
機(jī)器人技術(shù)是一門快速發(fā)展的學(xué)科,它包含著深厚的科學(xué)理論,長(zhǎng)期以來(lái)吸引了許多研究人員。隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,人們已經(jīng)設(shè)計(jì)并生產(chǎn)了一系列機(jī)器人,以滿足世界各地不同領(lǐng)域的某些特定需求。使用智能的機(jī)器人控制系統(tǒng)代替人類來(lái)完成一些繁瑣或危險(xiǎn)的任務(wù)已具有廣闊的應(yīng)用前景。機(jī)器人常采用傳感器來(lái)感測(cè)周圍環(huán)境,其中包含激光雷達(dá)(LRF)、慣性測(cè)量單元(IMU)、全球定位系統(tǒng)(GPS)、攝像機(jī)等。通常,輪式和腿式運(yùn)動(dòng)被廣泛用于移動(dòng)機(jī)器人,與需要更大的自由度和更大的機(jī)械復(fù)雜性的腿式運(yùn)動(dòng)相比,輪式運(yùn)動(dòng)非常適合平坦地面。而ROS是一個(gè)主要基于Unix平臺(tái)用于操作機(jī)器人的開源軟件框架,它提供了大量可用于開發(fā)機(jī)器人軟件系統(tǒng)的軟件包,許多開發(fā)人員和研究人員在ROS社區(qū)中分享了他們的知識(shí)和成就。
該文闡述了ROS的主要特點(diǎn),并設(shè)計(jì)了一套基于ROS和激光雷達(dá)的低成本、高性能的輪式移動(dòng)機(jī)器人定位和導(dǎo)航控制平臺(tái)。
1? ROS特點(diǎn)介紹
ROS的主要特點(diǎn)可以歸納為以下幾條。
(1)免費(fèi)開源。ROS遵守BSD許可,公布在ROS中的所有代碼允許商業(yè)或者非商業(yè)項(xiàng)目的修改及使用。也正是因?yàn)檫@一特點(diǎn),ROS的使用者數(shù)目近年來(lái)有極大的增長(zhǎng)。
(2)點(diǎn)對(duì)點(diǎn)設(shè)計(jì)。ROS自帶豐富的工具包且支持使用高性能傳感器,這就對(duì)處理器的性能有了一定的要求,而ROS這種點(diǎn)對(duì)點(diǎn)的運(yùn)行處理方式可以分散這些復(fù)雜算法所帶給處理器的壓力,還便于修改和測(cè)試,提高了系統(tǒng)的穩(wěn)定性和魯棒性。
(3)平臺(tái)間的可操作性。ROS消息傳遞中間允許在不同節(jié)點(diǎn)之間進(jìn)行通信??梢允褂镁哂蠷OS客戶端庫(kù)的任何語(yǔ)言來(lái)編譯這些節(jié)點(diǎn),可以用C++或C編寫高性能節(jié)點(diǎn),并用Python或Java編寫其他節(jié)點(diǎn)[1]。
2? 硬件總體設(shè)計(jì)
機(jī)器人平臺(tái)主要由核心控制器、激光雷達(dá)、慣性測(cè)量單元、位置控制模塊和電源等組成,不僅能獨(dú)立自主地實(shí)現(xiàn)平臺(tái)的定位導(dǎo)航功能,而且能將下位機(jī)傳感器接收到的信息通過(guò)WiFi局域網(wǎng)上傳至上位機(jī)并能接收使用者通過(guò)服務(wù)器發(fā)出的各種指令,進(jìn)而控制平臺(tái)完成指定任務(wù)。移動(dòng)機(jī)器人控制平臺(tái)的硬件設(shè)計(jì)框架見圖1[2]。
該控制系統(tǒng)采用樹莓派3B+作為核心控制板,由于樹莓派采用分時(shí)的Linux內(nèi)核的Ubuntu Mate操作系統(tǒng),但移動(dòng)平臺(tái)對(duì)于控制系統(tǒng)的實(shí)時(shí)性又有很高的需求,所以需要使用STM32作為下位機(jī)驅(qū)動(dòng)控制器來(lái)控制平臺(tái)的運(yùn)動(dòng)。
電機(jī)驅(qū)動(dòng)板需要能夠驅(qū)動(dòng)4個(gè)直流電機(jī),故選用四路BT N7971B直流電機(jī)驅(qū)動(dòng)。增加隔離芯片74LS244來(lái)隔離BTN芯片和單片機(jī),達(dá)到保護(hù)BTN和單片機(jī)芯片的目的。
激光雷達(dá)(光檢測(cè)和測(cè)距)是一種傳感技術(shù),它使用光源和接收器進(jìn)行遠(yuǎn)程物體檢測(cè)和測(cè)距。在撞擊物體后,發(fā)射的光脈沖被反射并返回激光雷達(dá)系統(tǒng)。LiDAR系統(tǒng)和物體之間的距離可由光脈沖發(fā)送和接收之間的時(shí)間算出[3]。
3? 軟件總體設(shè)計(jì)
機(jī)器人的軟件框架主要利用ROS系統(tǒng)獨(dú)特的代碼模塊化的方式進(jìn)行構(gòu)建,軟件框架被分成獨(dú)立的模塊化程序,各模塊中的代碼可以被單獨(dú)編譯和執(zhí)行,這些軟件模塊稱為“節(jié)點(diǎn)”。軟件總體框圖見圖2,該文將介紹底盤驅(qū)動(dòng)和導(dǎo)航控制兩個(gè)部分。
3.1 底盤驅(qū)動(dòng)
這部分主要包括了機(jī)器人的運(yùn)動(dòng)控制和編碼器、IMU等傳感器原始數(shù)據(jù)的采集。STM32接收到上位機(jī)通過(guò)串口通信下發(fā)的原始速度和方向指令后,將總體速度和角度通過(guò)正交速度和方向分離為4個(gè)電機(jī)各自的速度,進(jìn)而輸出對(duì)應(yīng)PWM給電機(jī)驅(qū)動(dòng)模塊。平臺(tái)運(yùn)動(dòng)方式為差速式,可以通過(guò)兩后側(cè)電機(jī)的差速控制運(yùn)動(dòng)的方向。電機(jī)外接高精度的增量式AB相編碼器,通過(guò)FTM正交解碼獲得當(dāng)前電機(jī)轉(zhuǎn)動(dòng)的速度,由測(cè)得的速度和測(cè)速的時(shí)間間隔可得到運(yùn)動(dòng)位移,由位移和IMU傳來(lái)的姿態(tài)信息可以計(jì)算得出系統(tǒng)在此段時(shí)間內(nèi)相對(duì)位姿的變化情況。對(duì)下位機(jī)功能的具體運(yùn)用見表1。
3.2 路徑規(guī)劃
該平臺(tái)采用AMCL算法來(lái)做機(jī)器人的實(shí)時(shí)位置識(shí)別,A*算法做全局路徑規(guī)劃,DWA算法做局部路徑規(guī)劃[4],路徑規(guī)劃總體框架見圖3。AMCL即為自適應(yīng)蒙特卡洛定位算法,旨在復(fù)雜且非結(jié)構(gòu)化的環(huán)境中,基于粒子分?jǐn)?shù)計(jì)算過(guò)程之后的LIDAR點(diǎn)云掃描匹配過(guò)程,構(gòu)建基于激光雷達(dá)的定位系統(tǒng)。就像在實(shí)際空間中有不同權(quán)值的機(jī)器人一樣,這些粒子具有其自身的坐標(biāo)和方向值。某個(gè)粒子的權(quán)重值為機(jī)器人的實(shí)際姿態(tài)與此粒子的預(yù)測(cè)姿態(tài)之間的絕對(duì)差,權(quán)值越大,該粒子預(yù)測(cè)的機(jī)器人字體就越準(zhǔn)確。每當(dāng)機(jī)器人在環(huán)境中移動(dòng)并提供新的傳感器數(shù)據(jù)時(shí),都會(huì)對(duì)粒子進(jìn)行重新采樣。經(jīng)過(guò)多次AMCL算法迭代后,粒子將收斂并評(píng)估機(jī)器人姿勢(shì)的近似值。
A*算法是運(yùn)算最快的路徑規(guī)劃算法,它結(jié)合了Dijkstra算法使用的信息(靠近起點(diǎn)的有利頂點(diǎn))和貪婪最佳優(yōu)先搜索算法中使用的信息(靠近目標(biāo)的有利頂點(diǎn))[5]進(jìn)而進(jìn)行路徑規(guī)劃。
4? 結(jié)語(yǔ)
該文利用機(jī)器人操作系統(tǒng)ROS和開源卡片式電腦等設(shè)計(jì)了一個(gè)激光導(dǎo)航移動(dòng)機(jī)器人平臺(tái),并在分布式框架下進(jìn)行軟件算法的開發(fā),機(jī)器人的底層驅(qū)動(dòng)控制器利用差速驅(qū)動(dòng)的方式構(gòu)建。在未來(lái)的工作中,平臺(tái)在該文設(shè)計(jì)的基礎(chǔ)上可以進(jìn)行自主導(dǎo)航、構(gòu)建地圖、實(shí)時(shí)定位、視覺(jué)導(dǎo)航、語(yǔ)音識(shí)別等復(fù)雜應(yīng)用的研究。
參考文獻(xiàn)
[1] 肖軍浩,盧惠民,薛小波,等.將機(jī)器人操作系統(tǒng)(ROS)引入本科實(shí)踐教學(xué)[J].科技創(chuàng)新導(dǎo)報(bào),2016(22):157-158.
[2] 胡振旺,陳益民,李林.基于STM32的家庭服務(wù)機(jī)器人系統(tǒng)設(shè)計(jì)[J].電子產(chǎn)品世界,2015(9):55-57.
[3] 賀利樂(lè),王消為,趙濤.未知環(huán)境下履帶式移動(dòng)機(jī)器人SLAM研究[J].傳感器與微系統(tǒng),2018(10):50-53.
[4] 張永妮.智能機(jī)器人避障路徑規(guī)劃算法研究[J].中小企業(yè)管理與科技,2016(4):202-203.
[5] 劉云翔,杜杰,張晴.基于路徑優(yōu)化的A*算法與Dijkstra算法的性能比較[J].現(xiàn)代電子技術(shù),2017(13):181-183,186.
[6] 胡振旺.基于STM32的家庭服務(wù)機(jī)器人系統(tǒng)設(shè)計(jì)[D].廣東工業(yè)大學(xué),2015.