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