董明澤 韓雨薇 許凱成 段睿劼 朱天宇



摘? 要:該文設計了一套基于開源機器人操作系統(ROS)和激光雷達的移動機器人控制系統方案,以滿足當前室內機器人在定位與地圖構建上的需求。該系統以開源卡片式電腦樹莓派3B+為核心控制器,使用STM32作為驅動控制板,在Linux系統下使用ROS分布式框架下進行軟件算法的開發。根據機器人的狀態和用戶命令可實現人機交互、SLAM地圖掃描繪制、WiFi遠程控制、即時定位和室內導航的功能。實際調試結果表明,系統能夠構建出與實際環境差別較小的特征圖,并對平臺實時位置進行精確的定位,能有效完成定位和導航的任務。
關鍵詞:ROS? SLAM? 激光雷達? 同步定位與地圖構建? 自主導航
中圖分類號:TP242? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻標識碼:A文章編號: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
機器人技術是一門快速發展的學科,它包含著深厚的科學理論,長期以來吸引了許多研究人員。隨著計算機技術的飛速發展,人們已經設計并生產了一系列機器人,以滿足世界各地不同領域的某些特定需求。使用智能的機器人控制系統代替人類來完成一些繁瑣或危險的任務已具有廣闊的應用前景。機器人常采用傳感器來感測周圍環境,其中包含激光雷達(LRF)、慣性測量單元(IMU)、全球定位系統(GPS)、攝像機等。通常,輪式和腿式運動被廣泛用于移動機器人,與需要更大的自由度和更大的機械復雜性的腿式運動相比,輪式運動非常適合平坦地面。而ROS是一個主要基于Unix平臺用于操作機器人的開源軟件框架,它提供了大量可用于開發機器人軟件系統的軟件包,許多開發人員和研究人員在ROS社區中分享了他們的知識和成就。
該文闡述了ROS的主要特點,并設計了一套基于ROS和激光雷達的低成本、高性能的輪式移動機器人定位和導航控制平臺。
1? ROS特點介紹
ROS的主要特點可以歸納為以下幾條。
(1)免費開源。ROS遵守BSD許可,公布在ROS中的所有代碼允許商業或者非商業項目的修改及使用。也正是因為這一特點,ROS的使用者數目近年來有極大的增長。
(2)點對點設計。ROS自帶豐富的工具包且支持使用高性能傳感器,這就對處理器的性能有了一定的要求,而ROS這種點對點的運行處理方式可以分散這些復雜算法所帶給處理器的壓力,還便于修改和測試,提高了系統的穩定性和魯棒性。
(3)平臺間的可操作性。ROS消息傳遞中間允許在不同節點之間進行通信。可以使用具有ROS客戶端庫的任何語言來編譯這些節點,可以用C++或C編寫高性能節點,并用Python或Java編寫其他節點[1]。
2? 硬件總體設計
機器人平臺主要由核心控制器、激光雷達、慣性測量單元、位置控制模塊和電源等組成,不僅能獨立自主地實現平臺的定位導航功能,而且能將下位機傳感器接收到的信息通過WiFi局域網上傳至上位機并能接收使用者通過服務器發出的各種指令,進而控制平臺完成指定任務。移動機器人控制平臺的硬件設計框架見圖1[2]。
該控制系統采用樹莓派3B+作為核心控制板,由于樹莓派采用分時的Linux內核的Ubuntu Mate操作系統,但移動平臺對于控制系統的實時性又有很高的需求,所以需要使用STM32作為下位機驅動控制器來控制平臺的運動。
電機驅動板需要能夠驅動4個直流電機,故選用四路BT N7971B直流電機驅動。增加隔離芯片74LS244來隔離BTN芯片和單片機,達到保護BTN和單片機芯片的目的。
激光雷達(光檢測和測距)是一種傳感技術,它使用光源和接收器進行遠程物體檢測和測距。在撞擊物體后,發射的光脈沖被反射并返回激光雷達系統。LiDAR系統和物體之間的距離可由光脈沖發送和接收之間的時間算出[3]。
3? 軟件總體設計
機器人的軟件框架主要利用ROS系統獨特的代碼模塊化的方式進行構建,軟件框架被分成獨立的模塊化程序,各模塊中的代碼可以被單獨編譯和執行,這些軟件模塊稱為“節點”。軟件總體框圖見圖2,該文將介紹底盤驅動和導航控制兩個部分。
3.1 底盤驅動
這部分主要包括了機器人的運動控制和編碼器、IMU等傳感器原始數據的采集。STM32接收到上位機通過串口通信下發的原始速度和方向指令后,將總體速度和角度通過正交速度和方向分離為4個電機各自的速度,進而輸出對應PWM給電機驅動模塊。平臺運動方式為差速式,可以通過兩后側電機的差速控制運動的方向。電機外接高精度的增量式AB相編碼器,通過FTM正交解碼獲得當前電機轉動的速度,由測得的速度和測速的時間間隔可得到運動位移,由位移和IMU傳來的姿態信息可以計算得出系統在此段時間內相對位姿的變化情況。對下位機功能的具體運用見表1。
3.2 路徑規劃
該平臺采用AMCL算法來做機器人的實時位置識別,A*算法做全局路徑規劃,DWA算法做局部路徑規劃[4],路徑規劃總體框架見圖3。AMCL即為自適應蒙特卡洛定位算法,旨在復雜且非結構化的環境中,基于粒子分數計算過程之后的LIDAR點云掃描匹配過程,構建基于激光雷達的定位系統。就像在實際空間中有不同權值的機器人一樣,這些粒子具有其自身的坐標和方向值。某個粒子的權重值為機器人的實際姿態與此粒子的預測姿態之間的絕對差,權值越大,該粒子預測的機器人字體就越準確。每當機器人在環境中移動并提供新的傳感器數據時,都會對粒子進行重新采樣。經過多次AMCL算法迭代后,粒子將收斂并評估機器人姿勢的近似值。
A*算法是運算最快的路徑規劃算法,它結合了Dijkstra算法使用的信息(靠近起點的有利頂點)和貪婪最佳優先搜索算法中使用的信息(靠近目標的有利頂點)[5]進而進行路徑規劃。
4? 結語
該文利用機器人操作系統ROS和開源卡片式電腦等設計了一個激光導航移動機器人平臺,并在分布式框架下進行軟件算法的開發,機器人的底層驅動控制器利用差速驅動的方式構建。在未來的工作中,平臺在該文設計的基礎上可以進行自主導航、構建地圖、實時定位、視覺導航、語音識別等復雜應用的研究。
參考文獻
[1] 肖軍浩,盧惠民,薛小波,等.將機器人操作系統(ROS)引入本科實踐教學[J].科技創新導報,2016(22):157-158.
[2] 胡振旺,陳益民,李林.基于STM32的家庭服務機器人系統設計[J].電子產品世界,2015(9):55-57.
[3] 賀利樂,王消為,趙濤.未知環境下履帶式移動機器人SLAM研究[J].傳感器與微系統,2018(10):50-53.
[4] 張永妮.智能機器人避障路徑規劃算法研究[J].中小企業管理與科技,2016(4):202-203.
[5] 劉云翔,杜杰,張晴.基于路徑優化的A*算法與Dijkstra算法的性能比較[J].現代電子技術,2017(13):181-183,186.
[6] 胡振旺.基于STM32的家庭服務機器人系統設計[D].廣東工業大學,2015.