劉德健 吳健 馬英歌 張昕 祁東升
摘? ?要:為滿足實驗室的管理需求,設(shè)計了一款基于ROS的實驗室服務(wù)機器人。該機器人樣機采用PC為控制平臺,通過二維激光雷達采集位置距離數(shù)據(jù),在ROS分布式框架下進行算法設(shè)計,實現(xiàn)了同步定位及地圖構(gòu)建的功能。并通過二維碼儲存實驗室中實驗柜的物資信息,通過攝像頭采集數(shù)據(jù)在python中識別二維碼,實現(xiàn)了實驗室信息管理的功能。通過實驗證明,該機器人可以準確的構(gòu)建地圖并自身定位。并能準確識別二維碼,讀取存儲的信息。該實驗室服務(wù)機器人具有開源、靈活、易于管理的優(yōu)點。
關(guān)鍵詞:機器人操作系統(tǒng)? 實驗室服務(wù)機器人? 同步定位及地圖構(gòu)建
中圖分類號:TP242? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻標識碼:A? ? ? ? ? ? ? ? ? ? ? ? 文章編號:1674-098X(2019)05(a)-0001-02
隨著全球機器人市場規(guī)模持續(xù)擴大, 工業(yè)、特種和服務(wù)機器人等領(lǐng)域應(yīng)用持續(xù)開拓, 服務(wù)機器人市場規(guī)模高速增長, 據(jù)IFR統(tǒng)計,2017年, 用于專業(yè)用途的服務(wù)機器人的銷售額增長12%[1]。與此同時,機器人的工作環(huán)境也變得越來越復(fù)雜,這就對服務(wù)移動機器人自主完成各種任務(wù)的能力提出了更高的要求。高校實驗室物品種類繁多,各實驗室環(huán)境不同,也正需要一種服務(wù)機器人來管理實驗室。本文設(shè)計一種基于ROS的實驗室智能服務(wù)機器人,能夠做到迅速清點儀器,準確查詢物品位置,使得實驗室的物資信息夠清晰地呈現(xiàn)在實驗室使用者的眼前,提高實驗效率。其中主要的技術(shù)包括同步定位與地圖構(gòu)建技術(shù)與二維碼生成識別技術(shù)。
1? ?實驗室服務(wù)機器人的硬件與軟件組成
室內(nèi)導(dǎo)航機器人采用PC機與機器人控制器和激光雷達進行數(shù)據(jù)交互,實現(xiàn)激光雷達與PC數(shù)據(jù)傳輸,機器人控制器與PC機的信息交互。整體架構(gòu)如圖1所示。
硬件層采用移動機器人車體作為機械平臺,在其上搭建了HOUKUYO UST-10LX激光雷達和STM32F407硬件控制系統(tǒng)。其中HOUKUYO UST-10LX激光雷達通過網(wǎng)絡(luò)接口作為ROS的運行平臺,實現(xiàn)室內(nèi)地圖構(gòu)建及導(dǎo)航的主要功能。STM32F407主要驅(qū)動電機、編碼器和陀螺儀,為上層提供運動計算數(shù)據(jù)。采用STM32F407作為底盤驅(qū)動主控制模塊,驅(qū)動電機與編碼器,選用激光雷達作為核心傳感器,采集室內(nèi)環(huán)境的深度信息后進行數(shù)據(jù)轉(zhuǎn)換與處理,然后使用ROS實現(xiàn)地圖構(gòu)建、定位的功能。
2? 同步定位與地圖構(gòu)建
本文選用Gmapping算法和掃描匹配算法進行二位柵格地圖的構(gòu)建。Gmapping算法基于Rao-Blackwellized粒子濾波器(RBPF),其建立的柵格地圖具有良好的性能。
SLAM算法通過機器人操作系統(tǒng)(ROS)中SLAM-GMapping包實現(xiàn),其中包含SLAM-GMapping的節(jié)點,通過激光掃描數(shù)據(jù)和機器人移動可以得到二維柵格地圖。SLAM-GMapping 節(jié)點訂閱激光數(shù)據(jù)scan(sensor _ msgs/LaserScan)和傳輸數(shù)據(jù)( tf/tfMessage) ,輸出發(fā)布的柵格地圖。并將構(gòu)建的地圖通過運行 map_sever保存,存儲在圖像文件和YAML文件中。YAML文件描述地圖元數(shù)據(jù)并命名圖像文件對占用數(shù)據(jù)進行編碼。
Gmapping算法節(jié)點關(guān)系圖如圖2所示。啟動 hukuyo_node 節(jié)點保持機器人與PC上位機的連接,通過base_link與 base_laser之間靜態(tài)坐標變換來確定安裝激光測距儀的位置,將里程計信息使用 odom_tf發(fā)布并廣播,發(fā)布/pose_topic 獲得的里程計位姿。控制小車的運動,啟動 GMapping; 運行/map與/odom 之間的坐標變換,然后運行 rviz進行地圖顯示,設(shè)置 LaserScan 的話題為/laser,Map的話題為/map 用以顯示構(gòu)造環(huán)境地圖。
3? 實驗結(jié)果
3.1 同步定位與地圖構(gòu)建實驗結(jié)果
通過機器人操作系統(tǒng)(ROS)中SLAM-GMapping包對環(huán)境較為簡單的實驗室走廊環(huán)境實驗結(jié)果如圖3所示。同時還對環(huán)境較為復(fù)雜的實驗室內(nèi)部環(huán)境進行了環(huán)境地圖構(gòu)建,實驗結(jié)果如圖4所示,從實驗結(jié)果可以看出實驗室服務(wù)機器人可以對走廊以及內(nèi)部環(huán)境進行精準的建圖并自身定位??梢詽M足實驗室服務(wù)機器人的工作要求。
3.2 實驗室信息管理實驗結(jié)果
此研究中通過快速響應(yīng)碼(Quick Response),即QR Code完成對信息的讀取。二維碼的生成及識別采用Anacoda Pytho3.6編程實現(xiàn):二維碼的生成利用依賴于PIL模塊和 qrcode庫的第三方開源模塊——python-qrcod實現(xiàn);二維碼的識別依賴Opencv以及pyzbar包實現(xiàn),先調(diào)用Opencv庫開啟攝像頭進行灰度化處理并定位,再利用pyzbar.decode()解碼函數(shù)讀取二維碼信息,包括判斷版本信息及糾錯級別、進制轉(zhuǎn)換、將獲取數(shù)據(jù)與解碼關(guān)聯(lián)等操作,最后提取出二維碼的數(shù)據(jù)內(nèi)容和類型,并打印到終端,流程圖5所示。
最后通過與SQlite庫[7]的結(jié)合錄入和存儲相應(yīng)二維碼中實驗器材的信息,并用Pyqt將個信息采集到信息讀取的過程打包,方便管理人員操作和信息瀏覽。最終的掃描結(jié)果如圖6所示。掃描到的數(shù)據(jù)存儲到數(shù)據(jù)庫中,便于管理。4? 結(jié)語
實驗室服務(wù)器人樣機采用PC為控制平臺,通過二維激光雷達采集位置距離數(shù)據(jù),在ROS分布式框架下進行算法設(shè)計,實現(xiàn)了同步定位及地圖構(gòu)建以及導(dǎo)航的功能。并通過二維碼儲存實驗室中實驗柜的物資信息,通過攝像頭采集數(shù)據(jù)在python中識別二維碼,實現(xiàn)了實驗室信息管理的功能。通過實驗表明該機器人具有開源、靈活、易于管理的優(yōu)點,為實驗室機器人的進一步研發(fā)打下了基礎(chǔ)。
參考文獻
[1] 陶永,王田苗,劉輝,等.智能機器人研究現(xiàn)狀及發(fā)展趨勢的思考與建議[J].高技術(shù)通訊,2019,29(2):149-163.
[2] 壽佳鑫,張志明,蘇永清,等.基于ROS和激光雷達的室內(nèi)移動機器人定位和導(dǎo)航系統(tǒng)設(shè)計與實現(xiàn)[J].機械與電子,2018,36(11):76-80.
[3] 任祥華. 激光雷達室內(nèi)SLAM方法[D].哈爾濱工程大學(xué),2018.