顏頤欣 張洋
摘 要:針對(duì)目前安防機(jī)器人控制系統(tǒng)中,功能擴(kuò)展受主控機(jī)負(fù)荷能力限制、監(jiān)控平臺(tái)不支持地圖加載,或地圖更新實(shí)時(shí)性較差等問題,設(shè)計(jì)了一種安防機(jī)器人控制系統(tǒng)。該系統(tǒng)采用分散式模塊化方案來設(shè)計(jì)機(jī)器人本體硬件結(jié)構(gòu),增強(qiáng)了主控機(jī)的負(fù)荷能力,同時(shí),基于對(duì)Lidar-SLAM技術(shù)的研究,提出了地圖坐標(biāo)匹配算法,然后,綜合運(yùn)用web開發(fā)技術(shù),搭建了移動(dòng)機(jī)器人監(jiān)控平臺(tái),并在該平臺(tái)驗(yàn)證了地圖加載方法的有效性和地圖更新的實(shí)時(shí)性。本系統(tǒng)有效地解決了目前存在于安防機(jī)器人控制系統(tǒng)中的不足之處,降低了系統(tǒng)的維護(hù)成本,為安防機(jī)器人控制系統(tǒng)的設(shè)計(jì)提供了參考。
關(guān)鍵詞:安防機(jī)器人;控制系統(tǒng);web開發(fā)技術(shù) ;Lidar-SLAM技術(shù)
DOI:10.15938/j.jhust.2019.05.015
中圖分類號(hào): TP486.3
文獻(xiàn)標(biāo)志碼: A
文章編號(hào): 1007-2683(2019)05-0088-05
Abstract:In view of the existing problems in the control system of security robots, such as the function extension is limited by the load capacity of the main control machine of the robot, the monitoring platform does not support map loading, or the map updates are poor in real time, etc, the paper designed a control system for security robot. The system designs the hardware structure of the robot by using decentralized modular scheme to enhance load capacity of the main control machine.Based on the research of Lidar-SLAM technology, a map coordinate matching algorithm is proposed. Then, a mobile robot monitoring platform is built by using web development technology, and the validity of the map loading method and the real-time of map updating are verified on this platform. The system effectively solves the shortcomings of the existing security robot control system, and reduces the maintenance cost of the system. It provides a reference for the design of the security robot control system.
Keywords:security robot; control system; web development technology; lidar-SLAM
0 引 言
安防機(jī)器人控制系統(tǒng),不僅能解放人力安防巡邏,更能提高巡邏質(zhì)量,擴(kuò)大巡邏范圍,豐富監(jiān)測(cè)指標(biāo)[1-2]。目前,在對(duì)安防機(jī)器人控制系統(tǒng)的研究方面已經(jīng)做了大量的工作,如在兩輪安防機(jī)器人控制系統(tǒng)的設(shè)計(jì)與研究中,提出了一種基于U-COSII系統(tǒng)內(nèi)核的兩輪安防機(jī)器人控制系統(tǒng),該系統(tǒng)雖實(shí)現(xiàn)了一些通用功能,但功能擴(kuò)展受主控機(jī)的負(fù)荷能力限制,并且監(jiān)控平臺(tái)也不支持加載地圖[3-4]。在基于百度地圖的移動(dòng)機(jī)器人監(jiān)控平臺(tái)的研究中,實(shí)現(xiàn)了在移動(dòng)機(jī)器人監(jiān)控平臺(tái)上加載地圖,并且在地圖上可以對(duì)機(jī)器人進(jìn)行位置追蹤,再結(jié)合視頻回傳圖像,用戶體驗(yàn)較好[5-6]。但該方式因依賴于第三方公司提供的高精度地圖,在無網(wǎng)絡(luò)條件下,需提前下載大量電子地圖圖元,對(duì)PC機(jī)的存儲(chǔ)能力有較高要求,并且實(shí)時(shí)性較差 [7-8]。近年來,移動(dòng)機(jī)器人SLAM技術(shù)獲得了顯著的進(jìn)步[9-10],隨著激光雷達(dá)造價(jià)的逐漸降低,采用Lidar-SLAM技術(shù)來完成智能移動(dòng)機(jī)器人的自主導(dǎo)航和定位將成為一種最佳選擇[11-12]。
本文采用分散式模塊化方案來設(shè)計(jì)機(jī)器人本體硬件結(jié)構(gòu),實(shí)現(xiàn)了機(jī)器人本體自主避障、自主導(dǎo)航、故障檢測(cè)、智能巡檢等功能,減輕了主控機(jī)的負(fù)荷,易于功能擴(kuò)展。同時(shí),采用將基于Lidar-SLAM技術(shù)實(shí)時(shí)構(gòu)建的高精度地圖加載到監(jiān)控平臺(tái)上的方法,來實(shí)現(xiàn)監(jiān)控平臺(tái)上的地圖加載,該方法室內(nèi)外通用,不受網(wǎng)絡(luò)限制。本系統(tǒng)在功能擴(kuò)展、實(shí)用性、通用性等方面都有較好的提高,可有效地彌補(bǔ)目前存在于安防機(jī)器人控制系統(tǒng)中的不足之處。
1 系統(tǒng)總體設(shè)計(jì)
本系統(tǒng)主要由安防機(jī)器人本體、無線通信系統(tǒng)和監(jiān)控平臺(tái)三大部分組成。系統(tǒng)總體設(shè)計(jì)框圖,如圖1所示。
其中安防機(jī)器人本體通過各硬件模塊采集數(shù)據(jù),并通過主控機(jī)來對(duì)這些數(shù)據(jù)進(jìn)行處理,實(shí)現(xiàn)自主避障、導(dǎo)航、故障檢測(cè)、智能巡檢等功能;無線通信系統(tǒng)采用Wi-Fi技術(shù)實(shí)現(xiàn),主要用于建立監(jiān)控平臺(tái)和機(jī)器人本體之間的可靠通信;監(jiān)控平臺(tái)主要實(shí)現(xiàn)在地圖上對(duì)機(jī)器人進(jìn)行位置追蹤、查看機(jī)器人回傳的實(shí)時(shí)數(shù)據(jù)和視頻圖像、遠(yuǎn)程控制機(jī)器人工作等。
2 機(jī)器人本體設(shè)計(jì)
2.1 本體硬件電路設(shè)計(jì)
本文采用CAN總線來完成主控機(jī)與各電路模塊之間的通信。將紅外模塊、電源模塊、GPS模塊、IMU模塊、激光雷達(dá)模塊、電機(jī)驅(qū)動(dòng)模塊等相互獨(dú)立的掛在CAN總線上,并且將各關(guān)鍵模塊采集的數(shù)據(jù),經(jīng)過自身的MCU進(jìn)行預(yù)處理后,才通過CAN總線傳輸給主控機(jī),如圖2所示。
2.2 主控機(jī)程序工作流程設(shè)計(jì)
本文在本體的主控機(jī)中安裝了Ubuntu14.04操作系統(tǒng)[13-14],并在操作系統(tǒng)中安裝了開源的ROS包[15-16],通過訂閱和發(fā)布話題,來處理本體硬件感知設(shè)備采集的數(shù)據(jù)。主控機(jī)程序按功能劃分可以分為四大模塊:檢測(cè)模塊,規(guī)劃模塊、控制模塊和外部控制模塊。主控機(jī)程序工作流程如圖3所示。
圖3 主控機(jī)程序工作流程框圖
Fig.3 The workflow diagram of the master computer program
檢測(cè)模塊負(fù)責(zé)處理本體中的激光雷達(dá)、編碼器等傳感器對(duì)周圍環(huán)境和自身進(jìn)行檢測(cè)得到的數(shù)據(jù);規(guī)劃模塊負(fù)責(zé)根據(jù)機(jī)器人目的地進(jìn)行速度規(guī)劃;控制模塊負(fù)責(zé)參考規(guī)劃模塊的規(guī)劃結(jié)果,控制電機(jī)轉(zhuǎn)速和行進(jìn)方向(在局域網(wǎng)較差時(shí),啟用實(shí)時(shí)系統(tǒng)單元,進(jìn)行手動(dòng)控制);外部控制模塊主要負(fù)責(zé)實(shí)時(shí)系統(tǒng)單元啟動(dòng)時(shí)的外部控制,保證系統(tǒng)的使用安全性。
3 監(jiān)控平臺(tái)設(shè)計(jì)
本文綜合使用HTML、JavaScript和PHP等web開發(fā)技術(shù)搭建了監(jiān)控平臺(tái),并通過建立TCP連接,實(shí)現(xiàn)了監(jiān)控平臺(tái)與機(jī)器人本體之間的網(wǎng)絡(luò)通信,選用MySQL數(shù)據(jù)庫來設(shè)計(jì)實(shí)現(xiàn)關(guān)鍵數(shù)據(jù)存儲(chǔ)[17-18]。
3.1 總體功能設(shè)計(jì)
監(jiān)控平臺(tái)按照功能可劃分為:通信模塊、電子地圖模塊、實(shí)時(shí)信息顯示模塊、遠(yuǎn)程操控模塊四部分。總體功能設(shè)計(jì)框圖如圖4所示。
圖4 監(jiān)控平臺(tái)總體功能設(shè)計(jì)框圖
Fig.4 Block diagram of overall function design of monitoring platform
通信模塊主要實(shí)現(xiàn)機(jī)器人本體和監(jiān)控平臺(tái)之間的實(shí)時(shí)通信;電子地圖模塊可顯示機(jī)器人工作地圖,并可在地圖上顯示機(jī)器人的工作路線,動(dòng)態(tài)設(shè)置機(jī)器人的自主工作路線等;實(shí)時(shí)信息顯示模塊,主要實(shí)現(xiàn)對(duì)安防機(jī)器人的工作環(huán)境視頻信息、工作異常參數(shù)、機(jī)器人的精準(zhǔn)坐標(biāo)等數(shù)據(jù)的實(shí)時(shí)顯示;遠(yuǎn)程控制模塊,主要實(shí)現(xiàn)對(duì)安防機(jī)器人的遠(yuǎn)程操控。
3.2 通信模塊設(shè)計(jì)
本文選用基于TCP/IP協(xié)議的Scoket套接字協(xié)議標(biāo)準(zhǔn)[19-20]來實(shí)現(xiàn)機(jī)器人本體和監(jiān)控平臺(tái)之間的通信。在php.ini文件中開啟Socket的擴(kuò)展,然后通過PHP的socket類對(duì)象提供的一系列方法,實(shí)現(xiàn)服務(wù)器與客戶端通信連接請(qǐng)求的監(jiān)聽,若有請(qǐng)求,則綁定指定的端口,建立TCP連接,實(shí)現(xiàn)雙向通信,該過程如圖5所示。
3.3 電子地圖模塊設(shè)計(jì)
3.3.1 地圖匹配算法
本文采用目前應(yīng)用最廣的gmapping方法來實(shí)現(xiàn)Lidar-SLAM技術(shù),用gmapping方法構(gòu)建的2D柵格地圖圖片格式為PGM格式并且圖片本身有數(shù)學(xué)特征。根據(jù)該地圖的格式特點(diǎn)來對(duì)地圖圖片進(jìn)行初步處理,具體方法如圖6所示。
基于2D柵格地圖的數(shù)學(xué)特征,設(shè)計(jì)地圖坐標(biāo)匹配算法。已知機(jī)器人位置坐標(biāo)所參考坐標(biāo)系為統(tǒng)一橫軸墨卡托投影坐標(biāo)(universal transverse mercator,UTM)系,地圖圖片中心點(diǎn)的坐標(biāo)設(shè)為(xc,yc),單位為m;經(jīng)地圖處理方法處理后的實(shí)際加載地圖寬度和高度,分別設(shè)為wd、hd,單位為pixel;地圖圖片的壓縮率設(shè)為P;監(jiān)控平臺(tái)地圖顯示區(qū)域的中心點(diǎn)坐標(biāo)設(shè)為(xdc,ydc),單位為m;每個(gè)像素點(diǎn)代表的距離設(shè)為Q;原始地圖圖片的寬度和高度分別設(shè)為w0、h0,單位為pixel。則實(shí)際加載地圖圖片中心點(diǎn)坐標(biāo)和監(jiān)控平臺(tái)地圖顯示區(qū)域中心點(diǎn)坐標(biāo)之間的轉(zhuǎn)換公式如下:
根據(jù)以上地圖坐標(biāo)匹配公式,便可將gmapping實(shí)時(shí)構(gòu)建的地圖匹配到監(jiān)控平臺(tái)地圖顯示區(qū)域。
在已知機(jī)器人最大活動(dòng)范圍內(nèi)的UTM坐標(biāo)集合的前提下,支持動(dòng)態(tài)設(shè)置機(jī)器人的自主工作路線。首先,用戶在監(jiān)控平臺(tái)上通過鼠標(biāo)點(diǎn)擊,選擇自主工作路線上的關(guān)鍵點(diǎn),然后利用(2)式的逆運(yùn)算,將這些關(guān)鍵點(diǎn)轉(zhuǎn)成UTM坐標(biāo),利用二分法查找算法和估算的思想在機(jī)器人最大活動(dòng)范圍內(nèi)的UTM坐標(biāo)集合中,找到自主工作路線上的UTM坐標(biāo)的集合,并將該集合發(fā)送給機(jī)器人,機(jī)器人將沿著新路線工作,同時(shí)通過(2)式,將該集合轉(zhuǎn)為像素坐標(biāo),在監(jiān)控平臺(tái)地圖上顯示。
3.3.2 電子地圖軟件實(shí)現(xiàn)及結(jié)果驗(yàn)證
JavaScript技術(shù)為Web GIS客戶端開發(fā)提供了專門的OpenLayers框架,該框架支持的地圖來源除了WFS、WMS、KaMap、GoogleMAp等,還可以是任意有地理意義的地圖圖片[21]。
本文首先通過OpenLayers提供的Map類實(shí)例化地圖,并將HTML中div的id設(shè)置為map,從而完成將gmapping構(gòu)建的2D柵格地圖加載到瀏覽器地圖顯示區(qū)域,表現(xiàn)為地圖,并在該map上添加全屏顯示、工具條等控件;然后,通過Layer類來實(shí)例化圖層,即指定地圖圖層的縮放級(jí)別、類型、范圍、地圖數(shù)據(jù)來源等;接下來,調(diào)用OpenLayers提供addLayer函數(shù),將實(shí)例化后的圖層添加到Map上,再通過調(diào)用map.zoomToExtent函數(shù)調(diào)整地圖大小以適應(yīng)web界面;最后,為加載的地圖添加自定義事件,如通過設(shè)置地圖的點(diǎn)擊和畫線事件,來實(shí)現(xiàn)監(jiān)控平臺(tái)顯示機(jī)器人當(dāng)前工作路線和動(dòng)態(tài)設(shè)置機(jī)器人自主工作路線等。
3.5 遠(yuǎn)程控制模塊設(shè)計(jì)
在該模塊,用戶可結(jié)合地圖顯示的機(jī)器人工作路線和視頻回傳的圖像,對(duì)安防機(jī)器人進(jìn)行遠(yuǎn)程控制,如切換機(jī)器人的工作狀態(tài)、設(shè)置機(jī)器人自主工作路線及分配工作任務(wù)、切換運(yùn)行速度、運(yùn)行方向和燈光模式等??刂颇K的軟件控制流程如圖10所示。
在該界面,通過點(diǎn)擊“開始示教”按鈕,可重新構(gòu)建地圖,并在監(jiān)控平臺(tái)重新加載該地圖。從而令監(jiān)控平臺(tái)加載的地圖具有良好的實(shí)時(shí)性。
4 結(jié) 論
1)通過采用分散式模塊化方案設(shè)計(jì)機(jī)器人本體硬件結(jié)構(gòu),有效地減輕了主控機(jī)的負(fù)荷,有利于系統(tǒng)進(jìn)行功能擴(kuò)展。
2)將Lidar-SLAM技術(shù)實(shí)時(shí)構(gòu)建的2D柵格地圖用于在監(jiān)控平臺(tái)上加載地圖,并提出了地圖坐標(biāo)匹配算法,經(jīng)驗(yàn)證,該地圖加載方法可行,并且不受互聯(lián)網(wǎng)的限制,實(shí)時(shí)性較好,地圖坐標(biāo)匹配準(zhǔn)確。
3)綜合運(yùn)用web開發(fā)技術(shù),搭建了支持地圖加載的安防機(jī)器人監(jiān)控平臺(tái),并實(shí)現(xiàn)了監(jiān)控平臺(tái)與機(jī)器人本體之間的遠(yuǎn)程通信,在該監(jiān)控平臺(tái)可查看機(jī)器人實(shí)時(shí)數(shù)據(jù)、遠(yuǎn)程控制機(jī)器人等。
后續(xù)工作將在本文研究的基礎(chǔ)上,在成本控制、地圖本身的美觀度和自主工作路線動(dòng)態(tài)設(shè)置方法的精確度等方面進(jìn)行改進(jìn)。
參 考 文 獻(xiàn):
[1] 劉國(guó)正.“互聯(lián)網(wǎng)+”英特爾智能安防助建新型平安智慧城市[J]. 中國(guó)自動(dòng)識(shí)別技術(shù),2017(5):51.
[2] 劉存信,跟上我國(guó)經(jīng)濟(jì)發(fā)展步伐促進(jìn)安防產(chǎn)業(yè)邁向中高端水平[J]. 中國(guó)安防, 2017(4):1.
[3] 李森, 潘小琴, 欽盼琛等. 基于遠(yuǎn)程控制的雙輪安防機(jī)器人系統(tǒng)設(shè)計(jì)[J]. 自動(dòng)化與儀表, 2017, 32(5):30.
[4] 李磊磊, 陳家斌, 楊黎明等. 基于道路信息的智能地圖匹配算法[J]. 中國(guó)慣性技術(shù)學(xué)報(bào), 2016, 24(2):170.
[5] 馮凱,歐陽瑞鐲,宗天煜等. 基于視覺的SLAM技術(shù)發(fā)展及其研究分析[J]. 信息技術(shù),2017(10):33.
[6] 馬曉敏, 劉丁, 辛菁. 移動(dòng)機(jī)器人生物啟發(fā)式變結(jié)構(gòu)軌跡跟蹤控制[J]. 電機(jī)與控制學(xué)報(bào), 2018(7):11.
[7] 錢殿偉, 郭錦榮. 多機(jī)器人的積分滑模編隊(duì)控制[J]. 電機(jī)與控制學(xué)報(bào), 2016, 20(1):99.
[8] 黃海, 李岳明, 龐永杰. 多水下機(jī)器人編隊(duì)的組網(wǎng)通信方法研究[J]. 電機(jī)與控制學(xué)報(bào), 2017, 21(5):97.
[9] 滿春濤, 曹淼, 李巍. 基于深度相機(jī)的SLAM算法評(píng)測(cè)[J]. 電機(jī)與控制學(xué)報(bào), 2017, 21(12):60.
[10]溫嘉斌, 麻宸偉. 無刷直流電機(jī)模糊 PI 控制系統(tǒng)設(shè)計(jì)[J]. 電機(jī)與控制學(xué)報(bào), 2016, 20(3):102.
[11]錢曉明, 張浩, 王曉勇等. 基于激光掃描匹配的移動(dòng)機(jī)器人相對(duì)定位技術(shù)研究[J]. 農(nóng)業(yè)機(jī)械學(xué)報(bào), 2016, 47(3):14.
[12]MUR A,RUAL,MONTIEL J.M.M, TARDOS,JUAN D. ORB-SLAM: A Versatile and Accurate Monocular SLAM System[J]. IEEE Transactions on Robotics, 2017, 31(5):1147.
[13]PIERZCHALA M, GIGUERE P, ASTRUP R. Mapping Forests Using an Unmanned Ground Vehicle with 3D LiDAR and Graph-SLAM[J]. Computers & Electronics in Agriculture, 2018, 145:217.
[14]步新宇,項(xiàng)玉. 智能移動(dòng)機(jī)器人定位技術(shù)[J]. 科技展望,2016,26(10):181.
[15]MUHAMME Balclar,SIRMA Yavuz,MEHMET FA,ERKAN U. R-SLAM: Resilient Localization and Mapping in Challenging Environments[J]. Robotics and Autonomous Systems,2017,87:45.
[16]陳卓,蘇衛(wèi)華,安慰寧,等. 移動(dòng)機(jī)器人SLAM與路徑規(guī)劃在ROS框架下的實(shí)現(xiàn)[J]. 醫(yī)療衛(wèi)生裝備,2017,38(2):109.
[17]欒祿祥. 室內(nèi)移動(dòng)機(jī)器人機(jī)器視覺定位系統(tǒng)的設(shè)計(jì)[J]. 自動(dòng)化儀表, 2017, 38(2):49.
[18]李秀智, 李尚宇, 賈松敏.實(shí)時(shí)的移動(dòng)機(jī)器人語義地圖構(gòu)建系統(tǒng)[J]. 儀器儀表學(xué)報(bào), 2017, 38(11):2769.
[19]王明, 胡慶武, 李清泉, 等. 基于位置簽到數(shù)據(jù)的城市分層地標(biāo)提取[J]. 計(jì)算機(jī)學(xué)報(bào), 2016, 39(2):405.
[20]張君濤, 趙智慧, 周四望. 矢量任務(wù)地圖:群智感知任務(wù)漸進(jìn)式分發(fā)方法[J]. 計(jì)算機(jī)學(xué)報(bào), 2017, 40(8):1946.
[21]王建民. 領(lǐng)域大數(shù)據(jù)應(yīng)用開發(fā)與運(yùn)行平臺(tái)技術(shù)研究[J]. 軟件學(xué)報(bào), 2017, 28(6):1516.
(編輯:王 萍)