文生平,黃培輝
(華南理工大學 聚合物新型成型裝備國家工程研究中心 聚合物成型加工工程教育部重點實驗室,廣州 510640)
隨著“中國制造2025”的開展,移動機器人漸漸活躍在物流業、服務業、軍事、醫療等多個領域中[1]。伴隨著半導體技術、計算機技術、傳感技術等相關技術的日趨成熟,移動機器人也得以蓬勃發展。
移動機器人傳統的導航方式主要是電磁導航、磁帶導航和慣性導航等,其存在著靈活性差,易受干擾等不足。激光導航作為新型的移動機器人導航方式,具有高度靈活性,而且得益于激光信號精度高,速度快的特點,激光導航的抗干擾能力較強[2-3]。
移動機器人要實現各項功能都離不開控制系統,許多學者對移動機器人的控制系統進行了研究[4-5]。目前,國內對激光導航移動機器人的嵌入式控制系統研究相對不多,本文基于ARM開發了一種激光導航移動機器人的嵌入式控制系統,用于實現移動機器人的無線通訊、激光數據采集和處理、運動控制等功能。
激光導航移動機器人嵌入式控制系統的總體框圖如圖1所示。

圖1 嵌入式總體系統框圖Fig.1 Block diagram of embedded system
該控制系統采用“Raspberry Pi基金會”開發的Raspberry Pi 3 Model B作為核心控制器。Raspberry Pi 3是基于ARM Cortex-A 53的64位微處理器,具有體積小,運算速度快,接口豐富等優點。Raspberry Pi 3 Model B開發板帶有BCM43438芯片,可實現無線收發功能,從而能夠通過無線WiFi與電腦上位機進行數據交互。
機器人平臺選用Yujin公司開發的Kobuki移動機器人。該款機器人底部裝有左、右兩側驅動輪,機器人的左右輪帶有編碼器。Kobuki的接口控制板,可通過串口通訊的方式與核心控制器進行通訊。
選用上海思嵐公司開發的RPLIDAR A1激光雷達作為外部激光傳感器。該激光雷達可通過串口通訊的方式與核心控制器進行通訊,接收來自控制器的啟動信息,并將采集到的激光信號轉換為電信號通過串口反饋到控制器。
激光導航移動機器人的嵌入式控制系統是基于Linux操作系統開發的。Linux操作系統支持ARM架構,而且具有多任務操作的特性,實現多個任務程序同時而獨立運行。Linux操作系統還能具備圖形界面,操作方便,實現良好的人機交互。Linux系統作為一種開源、免費的操作系統,對于嵌入式控制系統開發而言,不但節約成本而且便于使用。
激光雷達掃描周圍的環境信息并通過串口將數據以極坐標形式反饋到核心控制器,串口波特率設置為115200 b/s。
基于粒子濾波的實時定位及地圖構建算法是目前主流的激光導航算法之一。如圖2所示,粒子濾波算法利用激光掃描周圍環境特征λ,并將激光掃描數據作為t時刻機器人的位姿觀測數據zt;以里程計數據作為t時刻機器人的內部傳感器輸入ut,結合zt和ut來估算機器人在t時刻的位姿st,并更新環境地圖m[6]。
聯合后驗概率分布可表示為

根據Rao-Blackwellized思想,實時定位及地圖構建可以被分解為2部分,即:利用粒子濾波進行定位的非高斯后驗部分和利用卡爾曼濾波器進行全局地圖更新的條件高斯部分。因此概率分布(1)可以做進一步的因式分解,即

進行因式分解[7]的意義在于,實時定位及地圖構建可以完全劃分成機器人位姿估計和地圖更新2個步驟,從而簡化了算法的計算量。首先利用激光掃描數據和里程計數據估算機器人位姿后驗概率,然后結合位姿和激光掃描數據完成對地圖的更新。粒子濾波算法位姿估計及地圖更新如圖2所示。

圖2 粒子濾波算法位姿估計及地圖更新Fig.2 Particle filter algorithm pose estimation and map updating
粒子濾波器估算后驗概率的原理,是利用地圖中隨機分布多個粒子,每個粒子表示機器人的一種潛在的軌跡。移動機器人在行駛過程中,粒子集合不斷通過迭代收斂,權重高的粒子得以保留而權重低者則被舍棄,最終保留與機器人軌跡基本吻合的粒子集。重采樣過程中,自適應閾值Neff用于表示粒子群與機器人軌跡的吻合程度,其計算公式為

核心控制器通過串口與Kobuki移動機器人平臺的接口控制板進行數據交互,從而達到控制Kobuki移動機器人的目的,串口波特率設置為115200 b/s。
Kobuki移動機器人的運動控制指令由起始位、有效長度、有效信息和檢驗位,共4部分組成。其中:①起始位共有2字節,由2個十六進制數0xAA和0x55組成。②有效長度是指有效信息所包含的字節數,其為1個十六進制數。③有效信息是具體的控制命令,由標識符和具體數據組成。以移動機器人的運動控制為例,需要標識符為0x01,具體數據包括速度(2字節,單位為mm/s),轉彎半徑(2字節,單位為mm)。④檢驗位為單字節,用于校驗數據有效性。以運動控制為例,控制指令報文見表1。

表1 運動控制指令報文Tab.1 Motion control instruction message
利用所提出的嵌入式控制系統,在Kobuki移動機器人平臺上進行應用試驗,實物如圖3所示。

圖3 嵌入式控制系統實物照片Fig.3 Embedded control system object
移動機器人放置于室內環境中,并利用激光雷達對室內環境進行掃描,并且構建地圖,電腦上位機[9]可以通過無線WiFi實時觀測移動機器人的地圖構建過程,并向嵌入式控制系統發送控制指令,從而控制移動機器人的運動。在1.75 m×10 m的室內走廊和4.5 m×6 m的室內房間分別進行試驗。
在1.75 m×10 m的室內走廊中測試移動機器人的直線行走準確度。在走廊中軸線上,移動機器人共行走8.5 m,測量機器人的最終位置與中軸線的位置偏差和偏向角(偏向左記為正,偏向右記為負),測量數據見表2。

表2 直線行駛試驗的測量數據Tab.2 Straight-line driving experimental data
由表可知,平均位置偏差為9.5 mm,算術平均偏向角為2.71°。同時嵌入式系統通過激光雷達構建出走廊的環境地圖。
在4.5 m×6 m的室內房間中,上位機通過無線WiFi向嵌入式控制系統發送數據,再由核心處理器通過RS232串口向Kobuki移動機器人發送運動控制指令,實現運動控制功能。移動機器人按照給定的矩形路線循環行駛,矩形頂點坐標為(0,0),(0,3000),(4000,3000),(4000,0),單位為 mm。 移動機器人在運動過程中,激光雷達不斷掃描獲取室內房間的環境特性,并構建出掃描地圖。

圖4 試驗場景及相應的激光掃描地圖Fig.4 Experimental scene and corresponding laser scanning map
試驗的場景以及相應的激光掃描地圖如圖4所示。由地圖構建結果可見,嵌入式控制系統接收并處理激光雷達所反饋的數據,構建出室內環境地圖,反應出室內環境的二維情況,嵌入式控制系統的激光導航定位功能得以實現。
提出了一種激光導航移動機器人的嵌入式控制系統架構,并進行了不同現實場景下的試驗。試驗結果表明,該控制系統能夠實現激光導航移動機器人的激光導航定位,運動控制等功能,且上位機可以通過無線WiFi與嵌入式控制系統進行信息交互,實時監控,操作方便。該嵌入式控制系統采用串口通訊,適用面廣,可移植性強,具有較好的實用價值。
[1]宋春林.基于激光測距儀的移動機器人SLAM研究與實現[D].哈爾濱:哈爾濱工業大學,2014.
[2]滿增光.基于激光雷達的室內AGV地圖創建與定位方法研究[D].南京:南京航空航天大學,2014.
[3]肖鵬,欒貽青,郭銳,等.變電站智能巡檢機器人激光導航系統研究[J].自動化與儀表,2012,27(5):5-9.
[4]徐艾,譚寶成,廉春原,等.智能輪式移動機器人嵌入式控制系統設計[J].國外電子元器件,2008,10(11):30-32.
[5]戚樹騰,聶森,陳軍,等.基于激光導航的果園移動機器人自動控制系統[J].農機化研究,2015,37(10):8-12.
[6]李昀澤.基于激光雷達的室內機器人SLAM研究[D].廣州:華南理工大學,2016.
[7]武二永,項志宇,沈敏一,等.大規模環境下基于激光雷達的機器人 SLAM 算法[J].浙江大學學報:工學版,2007,41(12):1982-1986.
[8]王權,胡越黎,張賀.基于ROS與Kinect的移動機器人同時定位與地圖構建[J].計算機應用研究,2017,34(10):1-6.
[9]文生平,陳端平,劉其信.基于Qt的激光導引移動機器人監控系統設計[J].自動化與儀表,2016,31(8):6-9.