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