張智勇,張學(xué)識,鐘一鳴,鄭鑫
(北京信息科技大學(xué)儀器科學(xué)與光電工程學(xué)院,北京100192)
近幾年來物聯(lián)網(wǎng)發(fā)展迅速,局部網(wǎng)絡(luò)或互聯(lián)網(wǎng)等通信技術(shù)把傳感器、控制器、機器等通過新的方式聯(lián)在一起達到了事半功倍的效果。這也提高了智能機器人的應(yīng)用范圍,在提高生產(chǎn)力和生產(chǎn)效率的同時,也可以利用智能機器人來輔助甚至替代需要人員的工作崗位。在高危行業(yè)、重體力行業(yè)、高強度工作行業(yè)都可以見到各種各樣的智能機器人。為了保障2019年的雙十一物流效率,各大企業(yè)紛紛引進采用機器人對快遞進行分類和運輸。不光快速高效的物流離不開智能機器人,在倉儲防盜方面它也有很大的作用,基于ROS(Robot Operating System)的安保機器人采用樹莓派作為主控制中心,激光雷達RPLIDARA1對周圍范圍內(nèi)物體位置并進行實時監(jiān)測。此安保機器人還可在掃描的地圖上進行巡邏,在實現(xiàn)倉庫循環(huán)巡邏的功能的同時還可用攝像頭設(shè)備對物體或人員進行識別判斷。
RPLIDAR A1主要分為激光測距核心以及使得激光測距核心高速旋轉(zhuǎn)的機械部分。啟動子系統(tǒng)后,RPLIDAR A1雷達開始工作,激光測距儀的核心開始順時針旋轉(zhuǎn),實現(xiàn)對周圍環(huán)境的360度全方位掃描測距儀,從而獲得周圍環(huán)境的等高線圖。激光雷達的掃描距離數(shù)據(jù)可以通過RPLIDAR A1的通信接口(串口/USB等)獲得。
圖1 雷達示意圖
RPLIDAR A1擁有自己的速度檢測和自適應(yīng)系統(tǒng),采用激光三角測距技術(shù),并與自行開發(fā)的高速視覺采集和處理機制配合使用,可以每秒執(zhí)行8,000多次測距動作,并且掃描頻率為雷達還將根據(jù)實際電動機速度自動進行調(diào)整。無需用戶為RPLIDAR A1提供復(fù)雜的電源系統(tǒng),從而降低了總成本。外部系統(tǒng)通過通信接口可以得到當(dāng)前雷達的實際速度。
RPLIDAR A1采用了激光三角測距技術(shù),配合SLAMTEC研發(fā)的高速的視覺采集處理機構(gòu),全面改進了內(nèi)部光學(xué)和算法系統(tǒng),采樣頻率高大8000次/秒,讓機器人能更快速、精確的建圖。每次測距過程中,RPLIDAR A1將會發(fā)射經(jīng)過調(diào)制的紅外激光信號,該激光信號在照射到目標(biāo)物體后激光雷達的視覺采集系統(tǒng)接收處理。經(jīng)過嵌入在激光雷達內(nèi)部的DSP處理器實時解析計算,被照射到的目標(biāo)物體與激光雷達的距離值以及前的夾角信息將從通訊接口中輸出。
圖2 RPLIDAR A1工作原理
表1 性能參數(shù)[5]
表2 通信接口[5]
ROS安保機器人,是搭建在樹莓派3B+的Ubuntu 16.04操作系統(tǒng)下操作控制的。樹莓派與PC端在同一局域網(wǎng)下通過VNC Viewer搭建互聯(lián)平臺實現(xiàn)遠(yuǎn)程操控ROS機器人[1]。在PC端,可以遠(yuǎn)程輸入終端指令,實現(xiàn)ROS機器人的各種運行動作,并且可以視頻圖像實時傳輸給PC端。Ubuntu mate是Ubuntu Linux的一個分支,基于桌面環(huán)境mate,使用的mate桌面環(huán)境源自GNOME 2源代碼,該源代碼已經(jīng)停止正式維護。ROS機器人采用多消息主題訂閱方式,實現(xiàn)在同一平臺上的多命令操作。人機交互是ROS機器人的優(yōu)點之一,實時傳輸ROS機器人的硬件數(shù)據(jù)、視頻畫面及外界環(huán)境數(shù)據(jù)可以更便捷地得到我們需要的各類數(shù)據(jù)。機器人可識別已保存好的地圖檔案信息,進行既定路線自主導(dǎo)航、人工定點巡邏、自主選擇最佳路徑巡邏監(jiān)控。如圖3所示,為安防機器人的軟件設(shè)計框架,通過感知執(zhí)行層的激光雷達獲取運動空間地圖模型,利用導(dǎo)航控制層實現(xiàn)機器人主控系統(tǒng)和外界環(huán)境的信息交換,使用者可以在PC端遠(yuǎn)程無線監(jiān)視機器人的監(jiān)視操作層實現(xiàn)對安防機器人的可視化控制與界面監(jiān)視。
圖3 基本構(gòu)架圖
ROS安保機器人需要使用激光雷達在陌生的環(huán)境下精確構(gòu)建出地圖并做出自身位置的定位,誤差要達到厘米級別。激光雷達的工作方式有多種,我們采用SLAM技術(shù)進行地圖掃描及定位。
安保機器人在未知的工作場地中構(gòu)建地圖的時候,需要人為幫助它在工作場地中行進。此時便需要機器人與PC端無線連接,通過機器人搭載的樹莓派3B+自身發(fā)出的熱點無線信號,便可實現(xiàn)機器人與PC的無線交互。操作者可以在PC端實時監(jiān)控到機器人的位置和姿態(tài)并且能根據(jù)地圖構(gòu)建的情況判斷下一步對機器人的操控?;诩す饫走_的SLAM法只能依靠激光雷達在工作場地中構(gòu)建地圖環(huán)境和自身定位,而機器人在自身定位的時候需要使用車輪轉(zhuǎn)動的時間、速度和車身的旋轉(zhuǎn)角度等數(shù)據(jù)作為輔助參考[2]。因此,機器人需要人為操作它在工作空間內(nèi)避障運動,這樣可以使地圖構(gòu)建以及機器人自身定位的數(shù)據(jù)更精確,方便之后自動導(dǎo)航時對自身位置的精確判斷。地圖構(gòu)建依賴于激光雷達,其中包括單光束窄帶激光器和接收系統(tǒng)。單個窄帶激光器發(fā)出光脈沖,該脈沖撞擊到對象并將其反射回去,最后被接收系統(tǒng)接收。接收系統(tǒng)可準(zhǔn)確地計算光脈沖從發(fā)射到被物體反射回的光傳播時間。因為光脈沖以光速傳播,所以接收系統(tǒng)總會在下一個光脈沖發(fā)出之前收到前一個被反射回的脈沖。假定在給定的介質(zhì)中確定了光速,則可以將計算傳播時間轉(zhuǎn)換為距離的度量。結(jié)合激光的高度和激光掃描的角度,可以精確計算出地面上每個點的坐標(biāo)x和y。
根據(jù)已完成的工作地點,ROS機器人可以自動規(guī)劃路徑以避開障礙物并進行導(dǎo)航。人工操作構(gòu)建地圖之后,機器人會保存一份原始的地圖信息,自動規(guī)劃路徑時機器人會基于已保存的地圖信息計算出最優(yōu)路徑。在自由航線巡航期間,激光雷達將連續(xù)掃描周圍環(huán)境。當(dāng)激光雷達掃描到動態(tài)物體或未知障礙物時,機器人會根據(jù)局部動態(tài)信息快速確定運動的方向和速度。當(dāng)避障行為的優(yōu)先級高于沿原規(guī)劃路徑行進的優(yōu)先級時,避障規(guī)劃模塊就能夠通過對比獲得運動執(zhí)行系統(tǒng)的控制權(quán),使得機器人按照避障系統(tǒng)重新規(guī)劃的路徑進行避障運動。完成對當(dāng)前障礙物的躲避行為后,路徑規(guī)劃模塊再次取得執(zhí)行系統(tǒng)的控制權(quán),使得機器人重新回到全局規(guī)劃路徑上,繼續(xù)按著先前規(guī)劃的路徑運動。
機器人搭載高清RGB彩色攝像頭,可實現(xiàn)圖像采集功能。在構(gòu)建人臉面部數(shù)據(jù)庫的時候,需要在不同時間、不同光照、不同面部表情、不同面部細(xì)節(jié)的多種環(huán)境下采集較多的面部圖像,然后將圖片信息轉(zhuǎn)化成數(shù)字信息,并人工將人臉庫導(dǎo)入到機器人的存儲系統(tǒng)中,以供人臉識別模塊工作的時候可以隨時調(diào)用數(shù)據(jù)庫中的人臉特征點面部數(shù)據(jù)[3]。圖像采集完成后要重新測試人臉識別模塊,該操作主要是消除信息轉(zhuǎn)變過程中的算法誤差,使得正式使用人臉識別模塊時能快速精確地與數(shù)據(jù)庫信息進行比對并輸出正確的比對信息。
ROS安保機器人,是搭建在樹莓派3B+的Ubuntu 16.04操作系統(tǒng)下操作控制的。樹莓派與PC端在同一局域網(wǎng)下通過VNC Viewer搭建互聯(lián)平臺實現(xiàn)遠(yuǎn)程操控ROS機器人。在PC端,可以遠(yuǎn)程輸入終端指令,實現(xiàn)ROS機器人的各種運行動作,并且可以視頻圖像實時傳輸給PC端。
Ubuntu Mate是基于桌面環(huán)境Mate的Ubuntu Linux的官方派生產(chǎn)品,該桌面環(huán)境Mate源自已停止官方維護的GNOME2源代碼。在ROS機器人中使用多消息主題訂閱,可以實現(xiàn)在同一平臺上同時執(zhí)行多個命令的操作。人機交互是ROS機器人的優(yōu)點之一,實時傳輸ROS機器人的硬件數(shù)據(jù)、視頻畫面及外界環(huán)境數(shù)據(jù)可以更便捷的得到我們需要的各類數(shù)據(jù)。
ROS安保機器人在SLAM地圖構(gòu)建完成之后,訂閱地圖導(dǎo)航節(jié)點話題,借助激光雷達的輔助,可以實現(xiàn)自動導(dǎo)航運動功能。在ROS安保機器人導(dǎo)航的同時,可以實時傳輸視頻畫面并開啟人臉識別功能。當(dāng)遇到“壞人”的面部圖像之后,ROS安保機器人可以觸發(fā)安保裝置工作單元,實現(xiàn)對“壞人”的攻擊工作。
圖4 總體流程圖
比賽中采用地圖加障礙物的形式模擬現(xiàn)實環(huán)境,并將“壞人”的面部圖像貼至氣球前,讓ROS安保機器人自動識別“壞人”面部特征并實現(xiàn)自動導(dǎo)航扎破氣球的功能。這需要ROS機器人多話題多消息的互聯(lián)互通完成,要求ROS機器人可以準(zhǔn)確構(gòu)建地圖,精準(zhǔn)快速地識別面部特征,有序執(zhí)行程序命令,進而達到安防的目的。
在導(dǎo)航系統(tǒng)的設(shè)計中,我們主要使用了ROS系統(tǒng)中的三個工具包:move_ubase、gmap和AMCL。其中,move_uBase工具箱用于使ROS安全機器人在指定地圖范圍內(nèi)移動到目標(biāo)位置;映射工具包用于從激光雷達收集的數(shù)據(jù)中繪制地圖;AMCL工具箱用于定位機器人在當(dāng)前地圖中的相對位置。
move_base工具包實現(xiàn)導(dǎo)航,移動到指定目標(biāo)的ROS行為,在移動過程中會對比已探測的障礙物和已被標(biāo)記成未知的區(qū)域,ROS安保機器人會根據(jù)傳感器數(shù)據(jù),選擇合適的線速度和角速度讓機器人移動到相應(yīng)位置。
在ROS中,地圖是一張位圖,表示空間網(wǎng)絡(luò)被占據(jù)的情況,其中白色像素表示沒有被占據(jù)的網(wǎng)格,黑色像素表示障礙物,灰色像素表示未知點。由于ROS安保機器人配有機器視覺傳感器,所以機器人在其規(guī)定范圍內(nèi)人工干預(yù)控制行動時可以自行創(chuàng)建地圖。運行時讓機器人在一個封閉區(qū)域內(nèi)活動,同時記錄激光雷達測量的數(shù)據(jù)并放入ros bag文件中,然后運行SLAM節(jié)點生成一張地圖。設(shè)計制作的ROS安保機器人能夠有效實現(xiàn)自主導(dǎo)航和人臉識別等功能,這樣的功能可以大大簡化日常使用中工作流程,能夠有效地將機器人所獲得的信息與實際情況結(jié)合起來,實行安防。經(jīng)過測試生成的地圖如圖所示,ROS安保機器人在指定地圖進行自動導(dǎo)航,同時自動識別“壞人”面部特征并實現(xiàn)自動“攻擊”。
圖5 地圖創(chuàng)建
圖6 地圖創(chuàng)建
圖7 面部識別
amcl工具包用于讓機器人在已錄入的地圖里利用機器視覺傳感器中得到的數(shù)據(jù)進行定位。在設(shè)定初始方位時,可以在RViz可視化工具中在地圖上確定ROS安保機器人的位置,當(dāng)確定機器人位置時會出現(xiàn)一個綠色箭頭,調(diào)整箭頭方向和ROS安保機器人方向一致。當(dāng)ROS安全機器人移動時,界面上的機器人將被綠色箭頭包圍。為了驗證所涉及的導(dǎo)航系統(tǒng)能夠?qū)崿F(xiàn)在未知環(huán)境下的定位與導(dǎo)航功能,接下來對ROS安保機器人的障礙物躲避能力進行了測試。距離障礙物一定距離外啟動ROS安保機器人,在機器人已規(guī)劃的運動路徑內(nèi)放置障礙物。在測試過程中,機器人將按照計劃的路徑在障礙物之前行進,然后重新規(guī)劃路徑以避開障礙物,最后繼續(xù)移動至目標(biāo)。
圖8 地圖中定位和巡航
在正式進行系統(tǒng)測試時,首先將ROS安保機器人放入特定的地圖框架中,之后進行創(chuàng)建地圖的工作,通過人工控制機器人移動,在RViz可視化工具中規(guī)劃出現(xiàn)實中整個地圖的框架,利用激光雷達及傳感器,記錄激光雷達測量的數(shù)據(jù)并放入ros bag文件中,然后運行SLAM節(jié)點生成一張地圖。在生成地圖后,進行了下一步圖像傳輸及人臉識別,預(yù)先將“壞人”的面部圖像進行圖像傳輸錄入,不斷改變ROS安保機器人所在位置,以便于機器人更好進行識別,并將圖像存到庫中。最后,把ROS安全機器人放在起點。在rviz可視化工具中,單擊地圖上的鼠標(biāo)左鍵時,將顯示一個綠色箭頭。移動鼠標(biāo),使箭頭方向指向要識別的“壞人”氣球方向,之后機器人會進行自主路徑規(guī)劃,并進行自動導(dǎo)航定位[4]。在接近“壞人”氣球時,打開人臉識別功能,ROS安保機器人會自動根據(jù)庫中保存的圖像識別出“thief”,并進行自主移動,接近壞人達到安防目的。
本文介紹了一種安保機器人設(shè)計方案,基于ROS并以樹莓派為上機位控制中心,通過激光雷達構(gòu)建周圍地圖。應(yīng)用自身視覺傳感器以達到安保的目的。ROS機器人的擴展性強,而且可以進行模塊化編程,提高了安保機器人的應(yīng)用范圍。安保機器人技術(shù)的基礎(chǔ)是地圖構(gòu)建和定位,在執(zhí)行任務(wù)過程中可以將識別到的人臉與數(shù)據(jù)庫中的人臉進行識別以達到對特定區(qū)域監(jiān)管、人員識別的目的。而且還可以通過無線連接接收機器人的畫面和位置信息,當(dāng)識別到數(shù)據(jù)庫中的人臉時還可以給監(jiān)控人員進行反饋。相比于傳統(tǒng)的固定攝像頭,它的靈活性更高,根據(jù)場地可以構(gòu)建地圖自主移動從而解決了傳統(tǒng)攝像頭有監(jiān)控盲區(qū)的問題。同時他又可以對人臉進行識別又節(jié)省了安保人力。安保機器人的靈活性和安保效率上都有很大優(yōu)勢。