劉力瑋 馬振興 張志輝 謝淋東 張國續
(河南科技大學 機電工程學院,河南 洛陽471003)
SLAM (simultaneous localization and mapping) 算法是一種實現定位并進行地圖構建的系統,ORB-SLAM2 算法是SLAM 發展過程中較為完善的一種算法,它囊括了機器人ORB 特征、多線程共同實現追蹤Tracking、地圖構建LocalMapping 和關鍵幀KeyFrameshe 的提取。基于此,設計一種以SLAM算法為核心的移動機器人,能夠實現實時構建地圖并進行路徑規劃,根據算法采用合理路線進行移動工作,及時反饋收集信息的功能。
該移動機器人通過激光雷達與Kinect相機作為傳感器收集地圖信息,使用ORB-SLAM2 系統進行地圖構建,篩選關鍵幀,探查障礙物及周邊環境,再將地圖網格化,篩選目標路徑上的障礙點,結合Dijkstra算法進行最優路徑規劃。機器人在移動過程中,激光雷達時刻發出360°全覆蓋激光對地圖進行實時分析,配合Kinect 相機將探索畫面展現至操作終端顯示屏中,實時反饋信息。該移動機器人結合機械、電控、傳感器于一體,是操作簡單,實用性高的機電一體化產物。
移動機器人是機器視覺和機器人控制的有機結合,是一個非線性的復雜系統,利用視覺傳感器得到圖像作為反饋信息,構建而成的全閉環伺服反饋系統。ROS 機器人系統(Robot Operating System)可以提供環境感知、運動控制、路徑規劃等研究領域經典并且前沿的算法代碼庫,可以加強機器人代碼的復用率的模塊化。該移動機器人基于ROS 系統并通過激光雷達和Kinect 相機采集環境信息,在STM32 單片機中進行數據處理,借助ORB-SLAM2 系統構建地圖,生成地圖關鍵幀,篩選目標方向位置路線上的障礙物,再在系統中使用優化算法進行路徑路徑,避開障礙物,驅動電機使機器人按規劃路徑移動。由于激光雷達360°時刻發射激光進行環境采集,機器人在整個工作過程中,時刻將采集的地圖信息反饋至操作系統的顯示界面,操作人員可通過操作系統對機器人下達指令。機器人控制結構框架如圖1 所示。

圖1 機器人系統控制結構圖
地圖構建需要激光雷達、Kinect 相機和ORB-SLAM2 系統共同完成。激光本身具有非常精確的測距能力,測距精度在厘米級別,探測精度高,在探測過程中激光朝360°全方向發散,結合激光發射情況,構建當前位置信息,將之傳遞至STM32 之后,進行地圖構建。Kinect 相機則通過發射紅外光進行光譜分析,將探查畫面數字化傳遞回控制界面,經過相應的圖像處理系統后得到的畫面清晰度高,結合激光雷達的測定距離,即可標記出地圖中一些重要地形的位置,和一些障礙物的具體分布情況。地圖構建則依靠ORB-SLAM2 系統,該系統是一個完整的SLAM系統,包括視覺里程計、跟蹤、回環檢測、路線規劃,被廣泛應用于移動機器人領域。激光雷達、Kinect 相機和ORB-SLAM2 相互配合,能得到一份清晰的探索地圖,系統結構如圖2 所示。
ORB-SLAM2 系統進行真實場景的實際應用時,需要在ROS 系統中瀏覽相機發布的彩色圖像和深度圖像,結合激光反射情況確定距離,進行關鍵幀和地圖點的提取,生成局部點云地圖,最終經過閉環檢測和全局優化生成全局點云地圖,并生成優化路徑,驅動電機,使機器人進行避障或直行運動。

圖2 ORB-SLAM2 系統結構圖
通過ORB-SLAM2 算法得到地圖關鍵幀之后,為方便路徑規劃,采取柵格解耦法,將機器人工作空間劃分為若干點塊,標記存在障礙物的域塊,在行進方向上將這些域塊篩選出來,在地圖中以目標方向最遠的域塊作為目標域塊,在這個過程中即可標記出當前地圖重要域塊位置。確定障礙物所在域格后,可將其轉變為數學建模中的圖論優化問題,找到機器人避開這些點位抵達目標點的最優路徑,也就是最短路問題。在這個過程中,因為機器人本身具有一定大小,所以在通過障礙物區域時要適當增大轉角與轉彎距離,確保機器人不會與障礙物發生碰撞。Dijkstra 算法常被用來解決最短路問題對每個障礙點做上標記,計算相鄰兩點之間最短距離,生成帶權鄰接矩陣,再從矩陣中篩選兩點之間的最短路徑,即可找到從起點至目標點的最優路徑。因該算法的到的是通過各點抵達目標點的路線,所以需要在路線上做些改動,在抵達各障礙點時進行一定的轉向,避開該障礙物。


設計一種基于ORB-SLAM2 系統結合激光雷達與相機實現智能避障的探索機器人。依靠SLAM系統構建地圖篩選地圖關鍵幀,通過柵格解法定位處在目標路線上的障礙點,再利用Dijkstra 算法找到最優路線,周期化機器人運動,完成探索工作。整個過程具有自主能力,基本不需要人工操控,方便進行未知環境探索,且具有體積小,重量輕,易于攜帶特點,在接收相關指令后還可以抓取小物體進行攜帶,缺點是算法復雜性較高,對處理器有較高要求。此外機器人可以針對具體使用環境可以進行部分硬件結構的調整和材料的更換,也可實現多臺智能機器人共同工作,相互配合,高效的探索未知區域的,具有較強應用價值。