王仕儀 張學(xué)峰 任 彬 郁 洋 趙增旭
(石家莊鐵道大學(xué) 機(jī)械工程學(xué)院,河北 石家莊 050000)
住宅區(qū)、辦公區(qū)是各種室內(nèi)突發(fā)事件的主要場(chǎng)所。為防患于未然,樓層巡檢工作必須到位。而由于巡檢工作的高度重復(fù)性、監(jiān)控視野盲區(qū)與部分突發(fā)事件的危險(xiǎn)性,容易出現(xiàn)漏檢、效率低、危及巡查者人身安全等問(wèn)題。機(jī)器人輔助代替人工巡檢,提升巡檢工作智能化水平顯得尤為重要。目前,樓層智能巡檢方面大多依賴軌道式巡檢機(jī)器人,其靈活性受到限制,無(wú)法高效處理隨機(jī)事件。本項(xiàng)目旨在研究面向樓層巡檢的自主導(dǎo)航智能車設(shè)計(jì),利用SLAM 技術(shù)實(shí)現(xiàn)巡檢無(wú)人車的自主定位與導(dǎo)航,在此基礎(chǔ)上增添輔助結(jié)構(gòu)可實(shí)現(xiàn)多功能全方位智能巡檢[1]。該設(shè)計(jì)結(jié)構(gòu)可以減輕巡檢壓力并有效規(guī)避突發(fā)風(fēng)險(xiǎn),加強(qiáng)對(duì)樓層突發(fā)事件的應(yīng)急速度,有效提升巡檢效率[2],守護(hù)居住人員的財(cái)產(chǎn)安全。
樓層巡檢小車采用霍爾編碼器減速電機(jī)作為底盤驅(qū)動(dòng)力,控制系統(tǒng)由上位機(jī)樹莓派4B+和PC 虛擬機(jī),配合下位機(jī)OpenCRP 控制板,實(shí)現(xiàn)平臺(tái)的控制和通信功能。驅(qū)動(dòng)系統(tǒng)采用四輪獨(dú)立懸掛全向移動(dòng)底盤,實(shí)現(xiàn)全方位移動(dòng)。其主要傳感器包括編碼器、MPU6050,激光雷達(dá),實(shí)現(xiàn)平臺(tái)與外界的信息交互。通過(guò)對(duì)機(jī)械結(jié)構(gòu)的設(shè)計(jì)確定巡檢車的尺寸大小,車輪選擇,車輪擺放順序號(hào)等,在此基礎(chǔ)上進(jìn)行巡檢車的各個(gè)車輪的運(yùn)動(dòng)結(jié)算,對(duì)運(yùn)動(dòng)模型進(jìn)行設(shè)計(jì)。對(duì)控制系統(tǒng)搭建要確保上下位機(jī)的正常通信,工作站與樹莓派的正常話題收發(fā)。
本文采用同局域網(wǎng)下ssh 連接實(shí)現(xiàn)。在以上基礎(chǔ)上,通過(guò)SLAM 的導(dǎo)航進(jìn)行地圖構(gòu)建,實(shí)現(xiàn)小車的自動(dòng)巡檢功能[3]。
小車的整體設(shè)計(jì)設(shè)計(jì)尺寸為20cm×20cm×15cm,小車的底盤結(jié)構(gòu)部分由四麥輪全向移動(dòng)底盤及獨(dú)立懸掛裝置組成,驅(qū)動(dòng)層平臺(tái)采用“O 形”麥克納姆輪全向移動(dòng)底盤??蓪?shí)現(xiàn)全方位移動(dòng),提升巡檢工作的效率與靈活度[4]。另外在底盤中心配備傳感部分,小車的上層由激光雷達(dá)和攝像頭模組組成,激光雷達(dá)負(fù)責(zé)掃描構(gòu)建地圖及自主定位,攝像頭模組可以實(shí)現(xiàn)圖像的識(shí)別等,其主要組成結(jié)構(gòu)如圖1 所示。
圖1 小車主要組成結(jié)構(gòu)
上位機(jī)使用樹莓派4B 開發(fā)板,提供4GB 內(nèi)存,擁有充分的計(jì)算能力。下位機(jī)采用OpenCRP 全向輪麥輪小車主控板,以STM32F103RCT6 芯片作為主控,集成MPU6050 模塊、TB6612 電機(jī)驅(qū)動(dòng)模塊、穩(wěn)壓芯片。
3.1.1 遠(yuǎn)程控制
PC 端虛擬機(jī)與樹莓派連接到同一個(gè)局域網(wǎng),通過(guò)ssh 進(jìn)行連接,工作本與樹莓派連接到同一個(gè)rosmaster下,在樹莓派上開啟topic 話題,發(fā)布msg 消息給各個(gè)node 節(jié)點(diǎn)。樹莓派4B+可以運(yùn)行移植到ROS 系統(tǒng)中的動(dòng)能包,包括底層驅(qū)動(dòng)腳本。鍵盤控制腳本。SLAM 算法功能包等。通過(guò)串口將控制指令發(fā)送給OpenCRP 控制板等設(shè)備。
3.1.2 閉環(huán)控制
運(yùn)行g(shù)mapping 建圖導(dǎo)航算法后,虛擬機(jī)通過(guò)Rviz,實(shí)現(xiàn)數(shù)據(jù)在PC 端遠(yuǎn)程顯示。
GMapping 算法實(shí)現(xiàn)
本設(shè)計(jì)基于ROS 系統(tǒng),調(diào)用openslamgmapping 算法實(shí)現(xiàn)。先將激光雷達(dá)數(shù)據(jù)與里程計(jì)數(shù)據(jù), 通過(guò)ROSgmapping 封裝之后, 發(fā)送給openslamgmapping 算法包。算法包優(yōu)先處理定位問(wèn)題,使用RBPF 粒子濾波,將里程計(jì)數(shù)據(jù)進(jìn)行處理,得到無(wú)人車位姿狀態(tài)的概率估計(jì)值。在獲得定位的基礎(chǔ)上, 對(duì)激光雷達(dá)數(shù)據(jù)進(jìn)行初步處理,獲得初始地圖。通過(guò)ROS 新獲得的粒子與已產(chǎn)生的地圖進(jìn)行傳感器數(shù)據(jù)匹配[6]。不斷矯正里程計(jì)誤差并添加新的傳感器數(shù)據(jù)scan 作為地圖[7]。最終輸出基于概率的二維柵格化地圖,如圖2 所示。
圖2 生成地圖
無(wú)人車移動(dòng)平臺(tái)發(fā)布傳感器信息,虛擬機(jī)發(fā)布導(dǎo)航的目標(biāo)位置,navigation 功能包即可實(shí)現(xiàn)導(dǎo)航的功能。其中move_ base 提供主要的運(yùn)行、交互接口。amcl 實(shí)現(xiàn)對(duì)無(wú)人車自身的精確定位。
move_base 主要由兩大規(guī)劃器組成全局路徑規(guī)劃與本地實(shí)時(shí)規(guī)劃。全局路徑規(guī)劃是根據(jù)目標(biāo)位置規(guī)劃總體路徑。本地實(shí)時(shí)規(guī)劃,在每個(gè)周期內(nèi),針對(duì)實(shí)時(shí)的環(huán)境信息做出相應(yīng)行動(dòng)。主要算法有A*算法[8]。
3.3.1 Dijkstra 算法
f(n)是節(jié)點(diǎn)n 的綜合優(yōu)先級(jí),首選優(yōu)先級(jí)高的節(jié)點(diǎn),即f(n)最小。g(n)是節(jié)點(diǎn)n 距離起點(diǎn)的代價(jià)。h(n)是節(jié)點(diǎn)n 距離終點(diǎn)的預(yù)計(jì)代價(jià),也就是該算法的啟發(fā)函數(shù)[5]。A*優(yōu)先選取f(n)值最小為條件,尋找下一個(gè)遍歷節(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)啟動(dòng)后,在虛擬機(jī)終端運(yùn)行Rviz 并配置導(dǎo)航文件。綠色箭頭起點(diǎn)代表無(wú)人車大概率所在位置, 箭頭朝向代表無(wú)人車正方向。灰黑色地圖為此時(shí)全局地圖。大紅點(diǎn)圍成的地圖,為雷達(dá)掃描的局部地圖。若此時(shí)全局地圖與局部地圖特征網(wǎng)格不匹配,可以使用“2D PoseEstimate”按鈕對(duì)無(wú)人車位姿進(jìn)行校準(zhǔn)。
發(fā)布一個(gè)目標(biāo)點(diǎn)之后,無(wú)人車周圍密集小箭頭位姿估計(jì)將會(huì)集中到實(shí)際位姿附近。并生成一條全局規(guī)劃路徑,以及一條局部規(guī)劃路徑。無(wú)人車將跟隨路徑, 自動(dòng)導(dǎo)航和避障到指定位置。多點(diǎn)連續(xù)導(dǎo)航與單點(diǎn)導(dǎo)航的前期準(zhǔn)備相同。相比于單點(diǎn)導(dǎo)航,執(zhí)行多點(diǎn)連續(xù)導(dǎo)航通過(guò)該按鈕在地圖上發(fā)布多個(gè)目標(biāo)操作, 通過(guò)Rviz 中的“Publish Point”實(shí)現(xiàn),無(wú)人車將會(huì)依次前往設(shè)置的目標(biāo)位置,如圖3 所示。
圖3 目標(biāo)點(diǎn)設(shè)置
中間的兩個(gè)黑點(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è)計(jì),為保證底盤的平穩(wěn)性設(shè)計(jì)單縱臂式獨(dú)立懸掛系統(tǒng),上層傳感部分搭載銳爾威視攝像頭模組和思嵐激光雷達(dá),配合樹莓派4B+,能夠?qū)崿F(xiàn)自主巡航與避障功能,在錄入不同的地圖環(huán)境后,既可實(shí)現(xiàn)自主巡檢,又可以實(shí)現(xiàn)自動(dòng)多點(diǎn)自動(dòng)巡檢掃描,同時(shí)可以上傳實(shí)時(shí)圖像,實(shí)現(xiàn)樓層無(wú)死角監(jiān)控,使后臺(tái)人員可及時(shí)對(duì)正常監(jiān)控?zé)o法覆蓋的地方進(jìn)行無(wú)盲點(diǎn)監(jiān)控??梢詫?shí)現(xiàn)多功能樓層巡檢智能化。但在對(duì)于避障的準(zhǔn)確性和快速性方面仍然有一定的提高空間,這也是我們下一步研究的方向,此設(shè)計(jì)對(duì)提高無(wú)人車自主導(dǎo)航的準(zhǔn)確性和魯棒性等問(wèn)題具有一定的科學(xué)意義和工程實(shí)用價(jià)值。