許志強 翟漪璇 韓金鑫 顏義鵬 成怡
【摘 要】本文基于Kinect深度攝像頭,結合2D SLAM算法設計出了一套精確的輪式移動機器人導航系統(tǒng)。該系統(tǒng)主要包括底盤驅動、數據采集、PC三大部分。通過機器人自身攜帶的Kinect深度攝像頭對室內環(huán)境掃描,利用Gmapping算法構建出環(huán)境地圖,在已構建出的柵格地圖基礎上,結合A*算法和動態(tài)窗口法,實現機器人的自主定位與導航。
【關鍵詞】移動機器人;嵌入式控制;A*算法;自主導航
中圖分類號: TP242 文獻標識碼: A 文章編號: 2095-2457(2018)16-0200-002
DOI:10.19694/j.cnki.issn2095-2457.2018.16.092
【Abstract】Based on Kinect depth camera and 2D SLAM algorithm,an accurate wheeled mobile robot navigation system is designed.The system mainly includes three parts:chassis drive,data acquisition and PC.Through the Kinect depth camera carried by the robot to scan the indoor environment,the environment map is constructed by Gmapping algorithm.On the basis of the constructed grid map,the autonomous positioning and navigation of the robot are realized with the combination of A* algorithm and dynamic window method.
【Key words】Mobile robot;Embedded control;A*algorithm;Autonomous navigation
0 引言
目前,國內外多集中在利用激光傳感器和里程計等載體實現在未知環(huán)境中移動機器人的自主導航,而隨著機器視覺技術的快速發(fā)展,利用機器視覺傳感器實現載體重建環(huán)境地圖成為可能。由于智能載體的導航技術受到特殊任務的限制,GPS等有源導航方式已經不能滿足當前的自主導航任務。而基于SLAM算法的導航是根據載體及環(huán)境特征的相對位置實現推位的一種導航方式,是無源導航,對外不接收和發(fā)送信號,能夠保證完成任務的隱避性。因此,本文就室內環(huán)境下移動機器人的自主導航問題進行研究,從而設計出了一套完善的移動機器人自主導航系統(tǒng)。
1 系統(tǒng)組成
本文設計的自主導航系統(tǒng)主要由底盤驅動,Kinect深度攝像頭,PC三大部分組成。機器人底盤安裝兩個DC12V并且?guī)в谢魻柧幋a器的直流電機,底盤上的Arduino控制板利用采集到的直流電機上的霍爾編碼器信號,計算出機器人底盤里程計信息。Kinect深度攝像頭采集障礙物到攝像頭的距離數據。PC利用得到的距離數據,通過Gmapping算法,計算得到室內環(huán)境的柵格地圖。系統(tǒng)組成框圖如圖1所示,搭建機器人平臺如圖2所示。
下位機硬件主要由兩部分組成:機器人底盤和Kinect深度攝像頭。機器人底盤基于差速驅動控制,由兩個12v DC電機、控制板Arduino UNO、電機驅動板L298P。上位機是個人電腦。上下位機通過串口進行通訊,將上位機計算所得脈沖數據傳遞給下位機,將下位機編碼器測的里程計數據發(fā)送給上位機,實現數據間的交互,從而達到控制機器人導航避障的目的。
控制板Arduino UNO搭載高性能的8位AVR ATmega 328p處理器,該處理器外設特點:6個通道的PWM、可編程串行USART、8個10位ADC、兩個具有獨立預分頻器和比較器的8位定時器/計數器,I2C通信、具有獨立片內振蕩器的可編程看門狗定時器等。完全能夠滿足小型機器人特點的要求。Arduino UNO控制板采集底盤兩路電機的里程數據,控制電路通過PWM信號輸出來控制直流電機轉速。L298P用于直流電機的驅動。
Kinect深度攝像頭是微軟研制開發(fā),應用于體感游戲的一個配件。它具有動作捕捉、語音識別、影像識別、采集場景紋理和深度圖像等功能,是一種可以獲取場景深度的設備。本設計中主要利用Kinect采集深度信息的功能,實時獲取環(huán)境信息并加以利用。Kinect采集的深度信息精度是毫米級別,能夠滿足柵格地圖的精度要求。
2 軟件部分設計
本文設計的移動機器人導航系統(tǒng)是基于ROS 平臺,在利用Kinect提取出點云數據,依據Gmapping算法構建出環(huán)境地圖,然后在已構建環(huán)境地圖的基礎上,通過A*算法實現機器人的自主定位和導航。
Gmapping是一種高效的Rao-Blackwellized粒子濾波器,用于根據激光距離數據得出柵格地圖,是一個比較完善的地圖構建開源包,使用激光和里程計的數據來生成二維地圖。在采樣的過程中將機器人最新的觀測信息作為參考,使用更加接近目標后驗概率分布的提議,降低了機器人位姿估計的誤差,在粒子更新過程中,以當前有效粒子數量和粒子的多樣性為條件進行重采樣操作,提高了地圖創(chuàng)建的精確性和穩(wěn)定性。
A*算法是一種具有啟發(fā)式特征的全局路徑規(guī)劃算法,該算法具有較強的靈活性,能夠適應于不同的規(guī)劃場景。A*算法主要特點是同時考慮當前節(jié)點與初始節(jié)點和目標節(jié)點的接近程度,采用啟發(fā)式評價函數(1)計算該節(jié)點的距離代價。
f(n)=g(n)+h(n)(1)
其中,f(n)表示當前節(jié)點與初始節(jié)點和目標節(jié)點之間的代價評估函數;g(n)表示在環(huán)境狀態(tài)空間中,當前節(jié)點與初始點之間的真實代價;h(n)表示從當前節(jié)點n移動到目標點路徑的代價估計值。移動機器人的A*算法實現流程如下:
1)根據地圖信息新建OPEN表和CLOSE表,將初始節(jié)點S添加至OPEN表,地圖中障礙節(jié)點添加入CLOSE表中;
2)判斷OPEN表是否為空表,若否,將OPEN表中第一個節(jié)點n移至CLOSE表;若是空表,則返回(1);
3)判斷節(jié)點n是否為目標節(jié)點,若n是目標節(jié)點,則生成最優(yōu)路徑;若n不是目標節(jié)點,則計算n的所有后繼節(jié)點的f值,并進行節(jié)點擴展;具體過程為若該后繼節(jié)點不在OPEN和CLOSE表中,則加入OPEN表并標記該節(jié)點到節(jié)點n的指針;若該后繼節(jié)點在OPEN表中,且新f值小于原f值,則更新其f值并修改該節(jié)點的指針指向節(jié)點n;若該后繼節(jié)點在CLOSE表中,且新f值小于原f值,則將其從CLOSE表移回OPEN表,更新其f值并修改該節(jié)點的指針指向節(jié)點n。
4)按f值升序重排OPEN表,并返回(2)。
4 實驗結果及分析
將搭建好的移動機器人平臺放置室內環(huán)境任意一點,并把該點作為構建室內地圖的起始點,在移動機器人運動停止后運行保存地圖節(jié)點,把構建好的室內環(huán)境柵格地圖保存為圖3所示的圖片。從圖3可以看出,構建好的柵格地圖完整的顯示了室內環(huán)境輪廓。該地圖是一張位圖,主要是用來表示柵格被占據的狀況,其中白色像素點代表未被占據的網格即可行區(qū)域。黑色像素點代表障礙物,灰色像素點代表的是“未知”區(qū)域。
將移動機器人放置在圖4所示的起點位置,其中黃色箭頭表示移動機器人的位姿狀態(tài),在RVIZ可視化界面上設置好終點位置,移動機器人就會按照A*算法和動態(tài)窗口法在避開障礙物的同時規(guī)劃出可行路徑即圖中黃線所示,實現從起點到終點的自主定位與導航。
5 結束語
對設計的基于Kinect移動機器人導航系統(tǒng)架構進行現實場景的實驗,結果表明本文設計的導航系統(tǒng)能夠精確地實現移動機器人的自主定位與導航,在規(guī)劃可行路徑時采用動態(tài)窗口法實時監(jiān)控,解決了導航的精度和穩(wěn)定性問題,能夠滿足移動機器人在復雜環(huán)境下的自主導航。
【參考文獻】
[1]卞云松.基于Arduino 單片機的避障小車機器人[J].自動化技術與應用,2014,33(1).
[2]紀欣然.基于Arduino開發(fā)環(huán)境的智能尋光小車設計[J].現代電子技術,2012,35(15).
[3]鄭瀟峰.基于ROS的移動機器人室內激光導航研究[D].重慶郵電大學,2017.
[4]鄒謙.基于圖優(yōu)化SLAM的移動機器人導航方法研究[D].哈爾濱工業(yè)大學,2017.
[5]劉曉帆,趙彬.基于ROS的移動機器人平臺系統(tǒng)設計[J].《微型機與應用》,2017,36(11).
[6]Madjid Hank,Moussa Haddad.A hybrid approach for autonomous navigation of mobile robots in partially-known environments[J]. Robotics and Autonomous Systems,2016,86.
[7]Shaowu Yang,Sebastian A.Scherer,Xiaodong Yi,Andreas Zell. Multi-camera visual SLAM for autonomous navigation of micro aerial vehicles[J].Robotics and Autonomous Systems,2017,93.