王仕儀 張學(xué)峰 任 彬 郁 洋 趙增旭
(石家莊鐵道大學(xué) 機(jī)械工程學(xué)院,河北 石家莊 050000)
住宅區(qū)、辦公區(qū)是各種室內(nèi)突發(fā)事件的主要場所。為防患于未然,樓層巡檢工作必須到位。而由于巡檢工作的高度重復(fù)性、監(jiān)控視野盲區(qū)與部分突發(fā)事件的危險性,容易出現(xiàn)漏檢、效率低、危及巡查者人身安全等問題。機(jī)器人輔助代替人工巡檢,提升巡檢工作智能化水平顯得尤為重要。目前,樓層智能巡檢方面大多依賴軌道式巡檢機(jī)器人,其靈活性受到限制,無法高效處理隨機(jī)事件。本項(xiàng)目旨在研究面向樓層巡檢的自主導(dǎo)航智能車設(shè)計,利用SLAM 技術(shù)實(shí)現(xiàn)巡檢無人車的自主定位與導(dǎo)航,在此基礎(chǔ)上增添輔助結(jié)構(gòu)可實(shí)現(xiàn)多功能全方位智能巡檢[1]。該設(shè)計結(jié)構(gòu)可以減輕巡檢壓力并有效規(guī)避突發(fā)風(fēng)險,加強(qiáng)對樓層突發(fā)事件的應(yīng)急速度,有效提升巡檢效率[2],守護(hù)居住人員的財產(chǎn)安全。
樓層巡檢小車采用霍爾編碼器減速電機(jī)作為底盤驅(qū)動力,控制系統(tǒng)由上位機(jī)樹莓派4B+和PC 虛擬機(jī),配合下位機(jī)OpenCRP 控制板,實(shí)現(xiàn)平臺的控制和通信功能。驅(qū)動系統(tǒng)采用四輪獨(dú)立懸掛全向移動底盤,實(shí)現(xiàn)全方位移動。其主要傳感器包括編碼器、MPU6050,激光雷達(dá),實(shí)現(xiàn)平臺與外界的信息交互。通過對機(jī)械結(jié)構(gòu)的設(shè)計確定巡檢車的尺寸大小,車輪選擇,車輪擺放順序號等,在此基礎(chǔ)上進(jìn)行巡檢車的各個車輪的運(yùn)動結(jié)算,對運(yùn)動模型進(jìn)行設(shè)計。對控制系統(tǒng)搭建要確保上下位機(jī)的正常通信,工作站與樹莓派的正常話題收發(fā)。
本文采用同局域網(wǎng)下ssh 連接實(shí)現(xiàn)。在以上基礎(chǔ)上,通過SLAM 的導(dǎo)航進(jìn)行地圖構(gòu)建,實(shí)現(xiàn)小車的自動巡檢功能[3]。
小車的整體設(shè)計設(shè)計尺寸為20cm×20cm×15cm,小車的底盤結(jié)構(gòu)部分由四麥輪全向移動底盤及獨(dú)立懸掛裝置組成,驅(qū)動層平臺采用“O 形”麥克納姆輪全向移動底盤。可實(shí)現(xiàn)全方位移動,提升巡檢工作的效率與靈活度[4]。另外在底盤中心配備傳感部分,小車的上層由激光雷達(dá)和攝像頭模組組成,激光雷達(dá)負(fù)責(zé)掃描構(gòu)建地圖及自主定位,攝像頭模組可以實(shí)現(xiàn)圖像的識別等,其主要組成結(jié)構(gòu)如圖1 所示。

圖1 小車主要組成結(jié)構(gòu)
上位機(jī)使用樹莓派4B 開發(fā)板,提供4GB 內(nèi)存,擁有充分的計算能力。下位機(jī)采用OpenCRP 全向輪麥輪小車主控板,以STM32F103RCT6 芯片作為主控,集成MPU6050 模塊、TB6612 電機(jī)驅(qū)動模塊、穩(wěn)壓芯片。
3.1.1 遠(yuǎn)程控制
PC 端虛擬機(jī)與樹莓派連接到同一個局域網(wǎng),通過ssh 進(jìn)行連接,工作本與樹莓派連接到同一個rosmaster下,在樹莓派上開啟topic 話題,發(fā)布msg 消息給各個node 節(jié)點(diǎn)。樹莓派4B+可以運(yùn)行移植到ROS 系統(tǒng)中的動能包,包括底層驅(qū)動腳本。鍵盤控制腳本。SLAM 算法功能包等。通過串口將控制指令發(fā)送給OpenCRP 控制板等設(shè)備。
3.1.2 閉環(huán)控制


運(yùn)行g(shù)mapping 建圖導(dǎo)航算法后,虛擬機(jī)通過Rviz,實(shí)現(xiàn)數(shù)據(jù)在PC 端遠(yuǎn)程顯示。
GMapping 算法實(shí)現(xiàn)
本設(shè)計基于ROS 系統(tǒng),調(diào)用openslamgmapping 算法實(shí)現(xiàn)。先將激光雷達(dá)數(shù)據(jù)與里程計數(shù)據(jù), 通過ROSgmapping 封裝之后, 發(fā)送給openslamgmapping 算法包。算法包優(yōu)先處理定位問題,使用RBPF 粒子濾波,將里程計數(shù)據(jù)進(jìn)行處理,得到無人車位姿狀態(tài)的概率估計值。在獲得定位的基礎(chǔ)上, 對激光雷達(dá)數(shù)據(jù)進(jìn)行初步處理,獲得初始地圖。通過ROS 新獲得的粒子與已產(chǎn)生的地圖進(jìn)行傳感器數(shù)據(jù)匹配[6]。不斷矯正里程計誤差并添加新的傳感器數(shù)據(jù)scan 作為地圖[7]。最終輸出基于概率的二維柵格化地圖,如圖2 所示。

圖2 生成地圖
無人車移動平臺發(fā)布傳感器信息,虛擬機(jī)發(fā)布導(dǎo)航的目標(biāo)位置,navigation 功能包即可實(shí)現(xiàn)導(dǎo)航的功能。其中move_ base 提供主要的運(yùn)行、交互接口。amcl 實(shí)現(xiàn)對無人車自身的精確定位。
move_base 主要由兩大規(guī)劃器組成全局路徑規(guī)劃與本地實(shí)時規(guī)劃。全局路徑規(guī)劃是根據(jù)目標(biāo)位置規(guī)劃總體路徑。本地實(shí)時規(guī)劃,在每個周期內(nèi),針對實(shí)時的環(huán)境信息做出相應(yīng)行動。主要算法有A*算法[8]。
3.3.1 Dijkstra 算法

f(n)是節(jié)點(diǎn)n 的綜合優(yōu)先級,首選優(yōu)先級高的節(jié)點(diǎn),即f(n)最小。g(n)是節(jié)點(diǎn)n 距離起點(diǎn)的代價。h(n)是節(jié)點(diǎn)n 距離終點(diǎn)的預(yù)計代價,也就是該算法的啟發(fā)函數(shù)[5]。A*優(yōu)先選取f(n)值最小為條件,尋找下一個遍歷節(jié)點(diǎn)。通常用集合open_set 和close_set 分別表示待遍歷和已遍歷的節(jié)點(diǎn)。
將所建地圖分別保存在樹莓派和虛擬機(jī)端。虛擬機(jī)連接樹莓派,在樹莓派端運(yùn)行nav.launch 導(dǎo)航節(jié)點(diǎn),并調(diào)用建立的GMapping 地圖。節(jié)點(diǎn)啟動后,在虛擬機(jī)終端運(yùn)行Rviz 并配置導(dǎo)航文件。綠色箭頭起點(diǎn)代表無人車大概率所在位置, 箭頭朝向代表無人車正方向。灰黑色地圖為此時全局地圖。大紅點(diǎn)圍成的地圖,為雷達(dá)掃描的局部地圖。若此時全局地圖與局部地圖特征網(wǎng)格不匹配,可以使用“2D PoseEstimate”按鈕對無人車位姿進(jìn)行校準(zhǔn)。
發(fā)布一個目標(biāo)點(diǎn)之后,無人車周圍密集小箭頭位姿估計將會集中到實(shí)際位姿附近。并生成一條全局規(guī)劃路徑,以及一條局部規(guī)劃路徑。無人車將跟隨路徑, 自動導(dǎo)航和避障到指定位置。多點(diǎn)連續(xù)導(dǎo)航與單點(diǎn)導(dǎo)航的前期準(zhǔn)備相同。相比于單點(diǎn)導(dǎo)航,執(zhí)行多點(diǎn)連續(xù)導(dǎo)航通過該按鈕在地圖上發(fā)布多個目標(biāo)操作, 通過Rviz 中的“Publish Point”實(shí)現(xiàn),無人車將會依次前往設(shè)置的目標(biāo)位置,如圖3 所示。

圖3 目標(biāo)點(diǎn)設(shè)置
中間的兩個黑點(diǎn)表示障礙物,中的綠線和紅線分別代表全局與局部的規(guī)劃路線。從起始點(diǎn)到0 點(diǎn)與從0 點(diǎn)到1 點(diǎn),從1 點(diǎn)到2 點(diǎn)均自主導(dǎo)航行與避障行駛至目標(biāo)點(diǎn)。
本作品采用分層結(jié)構(gòu)設(shè)計,為保證底盤的平穩(wěn)性設(shè)計單縱臂式獨(dú)立懸掛系統(tǒng),上層傳感部分搭載銳爾威視攝像頭模組和思嵐激光雷達(dá),配合樹莓派4B+,能夠?qū)崿F(xiàn)自主巡航與避障功能,在錄入不同的地圖環(huán)境后,既可實(shí)現(xiàn)自主巡檢,又可以實(shí)現(xiàn)自動多點(diǎn)自動巡檢掃描,同時可以上傳實(shí)時圖像,實(shí)現(xiàn)樓層無死角監(jiān)控,使后臺人員可及時對正常監(jiān)控?zé)o法覆蓋的地方進(jìn)行無盲點(diǎn)監(jiān)控。可以實(shí)現(xiàn)多功能樓層巡檢智能化。但在對于避障的準(zhǔn)確性和快速性方面仍然有一定的提高空間,這也是我們下一步研究的方向,此設(shè)計對提高無人車自主導(dǎo)航的準(zhǔn)確性和魯棒性等問題具有一定的科學(xué)意義和工程實(shí)用價值。