王 琦,崔志鵬,曾祥明,李佳睿,薛培延,喬俊福
(太原工業學院 自動化系,山西 太原 030008)
隨著社會的發展以及人們生活節奏的加快,越來越多的人想要把自己從繁瑣的家務中解脫出來,市場對于掃地機器人的需求也越來越大。而當下市面上的掃地機器人大多為隨機式、LDS激光式和視覺導航式,這些掃地機器人路徑規劃方式不僅低效,還有著掃描不全面、抗干擾能力弱、功能較為單一等缺陷,無法滿足一些特殊的需求,為此研發了一種掃描更全面、路徑規劃更精準、功能更加齊全的清潔機器人。
我們設計的基于SLAM算法的多功能清潔機器人由底盤、爬樓機構、清潔機構、激光雷達及控制系統等組成。通過激光雷達及時檢測機器人周圍環境,從而實現清潔機器人的防跌落以及障礙物的檢測;由吸塵裝置結合毛刷反復清潔以增強清潔能力,可以帶走墻體死角等處難以清除的灰塵細毛;通過合理地設計機器人的機械結構,使機器人更加多功能化,可以清潔大教室、會議室等難以清潔的地方。
爬樓機構如圖1所示,主要由機械臂、舵機、滑軌、齒條等組成。

圖1 爬樓機構
(1) 當機器人檢測到前方有樓梯時,上端機械臂通過舵機控制逆時針旋轉,同時下端機械臂通過舵機控制順時針旋轉將機器人支撐起來。
(2) 將機器人支撐起來后,通過齒輪齒條傳動機構將機器人前半部分伸出;通過齒輪反向旋轉,使機器人后半部分向前運動。
(3) 后半部分向前運動之后,機器人重心前傾,通過后輪摩擦力的作用使機器人成功攀爬上臺階,完成爬樓。
清潔機器人爬樓過程如圖2所示。

圖2 清潔機器人爬樓過程
清潔機構(如圖3所示)的掃帚葉片由電機驅動,兩個電機相對轉動將灰塵等垃圾掃至中間灰塵吸入口處,通過抽風機將垃圾吸入到塵盒中,完成對地面的清潔。

圖3 清潔機構
清潔機器人控制部分的底層架構由單片機控制中心、電機調速系統、PID算法控制器等構成,下面依次介紹各個部分原理及其作用。
清潔機器人由旭日X3派作為開發板,它兼容了以前的樹莓派接口,具有更強的算力與處理能力且支持Ubuntu20系統。
電機調速使用直流電機脈沖寬度調制(Pulse Width Modulation),簡稱PWM。在驅動控制的調整系統中,可以根據需要的速度改變一個周期內電平接通和斷開的時間長短,即通過改變占空比來改變平均電壓的大小,從而控制電機的轉速。
使用開環控制的電機當發出速度等于0的指令后,由于慣性存在,電機會繼續轉動一段時間,所以我們利用PID算法實現快、準、穩的速度控制。PID(Proportion Integration Differentiation)其實就是指比例、積分、微分控制,可以利用如下公式根據誤差值e(t)控制變量和獲取反饋去不斷修正控制函數U(t):
其中:kP、TI、TD分別為比例增益、積分增益及微分增益。
由于攝像頭在室外工作時受環境、光照影響較大,而激光雷達受光照影響較小,即使在黑暗條件下也能很好地工作,所以我們選擇用激光雷達感知環境。激光雷達通過向目標環境發射激光數據,并對接收反射回來的數據進行分析,進而完成環境地圖和位置的計算。
使用卡爾曼濾波(KF)和人工神經網絡算法對多種傳感器的數據進行信息融合,進而將處理后的數據運用 Gmapping 算法和 AMCL 定位系統進行SLAM 建圖,最后使用Move_base功能包實時規劃出最優的全局與局部路徑,使設備實現自主導航與自動避障。
AMCL即自適應蒙特卡洛定位,其核心是一種利用粒子表示置信度的自適應蒙特卡羅算法,主要原理是:根據環境地圖,采樣粒子估計機器人位姿的概率分布,其可靠程度由粒子權重決定。
這種方法會在機器人可能的定位位置周圍假設多個前進方向,然后在機器人行進過程中,依據激光雷達和編碼器等信息對這些假設的前進方向進行篩選,逐步剔除明顯不可信的假設前進方向,留下可信度較高的前進方向。在機器人運動過程中,那些假設前進方向會逐漸收斂,最終匯聚成一個機器人最可信的定位位置。
為了在 SLAM 建圖過程中能夠生成最佳效果的二維地圖,我們參考了文獻[1],在原有 AMCL 算法的基礎上,添加了動態參數,使其粒子群收斂速度根據機器人速度的改變而改變,使清潔機器人的實時定位更加精確。
我們用Gazebo軟件仿真場景,得到的Gazebo仿真場景如圖4所示。圖4中,有兩個虛擬墻壁(正方形)、兩個障礙物(小圓)和激光雷達(大圓)。激光雷達掃描環境,并在Rviz中顯示計算后的SLAM建圖結果,如圖5所示。

圖4 Gazebo仿真場景

圖5 Rviz中顯示的SLAM建圖結果
由此可見,使用各種傳感器和激光雷達能夠成功檢測到障礙物和周圍環境,并準確建出此場景的地圖。
所謂路徑規劃,是指達到機器人行走路線最短、行走時間最短等目標并避開障礙物(DWA算法)到目標點的最優路徑。
關于全局最優路徑規劃問題,我們使用了A*(A-Star)算法[2]。A*是一種靜態路網中求解最短路徑最有效的直接搜索方法,也是解決許多搜索問題的有效算法。它結合了BFS和dijkstra算法的優點,在進行啟發式搜索提高算法效率的同時,可以基于評估函數保證找到一條最優路徑。
關于機器人需要具備的自動避障功能,我們選用DWA算法作為機器人的局部路徑規劃算法,其流程為:首先使用激光雷達掃描來尋找一切即將到來的障礙物,并將數據傳遞給機器人,接著對數據進行解析,提前規劃好最優路線,最后評價每一個方案后擇優實現,一直重復上述步驟至遍歷完成。
Move_Base是 Navigation 系統里扮演核心中樞的 ROS 包,它將機器人導航需要用到的地圖、坐標、路徑和行為規劃器連接到了一起,同時還提供了導航參數的設置接口。使用此功能包可以實時規劃出最優的全局與局部路徑,清潔機器人可以實現自主導航與自動避障的功能。
制作的清潔機器人樣機如圖6所示,經測試機器人可實現運動控制和SLAM建圖,并給出最優路徑規劃方案。

圖6 制作的清潔機器人樣機
在一些大型工廠中,往往需要清潔一些對人體不太友好的廢棄物,使用大型設備極大地浪費了資源,并且建造成本極高。在階梯大教室及會議廳等頻繁使用的大型場所更是如此,因此外形小巧、可自動避障、高效率的智能清潔機器人就顯得頗為合適了。故該機器人不論在車間、火車站還是大型會議廳均有很廣闊的應用前景。