曹宇
(上海城建職業(yè)學院,上海 201415)
許多室內(nèi)應(yīng)用場合需要對機器人精確定位,其精度甚至需達到厘米級別。定位技術(shù)常用的有GPS、RFID、藍牙、Wi-Fi、ZigBee、UWB 等。其中 GPS 室外效果良好,但在室內(nèi),由于建筑物阻擋,無法定位。而RFID、藍牙、Wi-Fi、ZigBee和 UWB都可進行室內(nèi)定位。若剔除成本因素,在定位精度、穩(wěn)定性或工作距離上來看UWB更為勝出。因此在設(shè)計室內(nèi)機器人精確路線行走定位時,采用UWB技術(shù)比較合適。
UWB(Ultra-WideBand)使用亞納秒級超窄脈沖來做近距離精確定位,可進行厘米級別精度定位。UWB具有抗干擾性能強、傳輸速率高、消耗電能小、發(fā)送功率小以及高安全性等諸多優(yōu)勢。
機器人在工業(yè)上和服務(wù)行業(yè)上發(fā)展空前。行業(yè)不同,機器人的應(yīng)用場景不一樣;要求不同,機器人的控制方式也會有差異。此處使用的ROS機器人小車,采用四個電機驅(qū)動,以更好的在任意方向行駛。
本系統(tǒng)研究的是:ROS車上攜帶UWB標簽,在UWB基站覆蓋之下,讓ROS車在室內(nèi)隨意行進,通過構(gòu)建的UWB定位系統(tǒng),實時獲取ROS車準確的室內(nèi)位置。
系統(tǒng)整體由三部分組成:UWB定位系統(tǒng)、上位機系統(tǒng)和下位機系統(tǒng)。
UWB定位系統(tǒng),為了實現(xiàn)二維定位至少需要三個基站一個標簽形成UWB定位系統(tǒng),但是這種配置需要有個前提條件,三個基站必須位于同一水平位置上,這對部署提出了很高的要求,因此實際系統(tǒng)采用四個基站和一個標簽。其中0號基站負責將定位信息傳給上位機系統(tǒng),標簽則放在ROS車上用以定位。
上位機系統(tǒng),即服務(wù)器,讀取UWB定位系統(tǒng)的坐標位置,并發(fā)目標位置給ROS下位機;
下位機系統(tǒng),即ROS機器人小車,接收上位機所發(fā)目標位置,調(diào)用API控制電機行進,另外將傳感器信息返回給上位機。
UWB模組選擇DecaWave公司的DW1000芯片,符合IEEE802.15.4-2011超寬帶標準,定位最小誤差可在10厘米以內(nèi),芯片功耗低,可做雙向測距和定位。
構(gòu)建的UWB系統(tǒng)由4個基站和1個標簽組成,實現(xiàn)室內(nèi)精準定位,其結(jié)構(gòu)如圖1所示。
圖1 UWB系統(tǒng)結(jié)構(gòu)
圖2 ROS機器人小車
上位機通過Wi-Fi模組,獲取標簽與基站的信息。在圖1中可見,基站0收集標簽信息并發(fā)送到上位機中。
選用型號為UltraAI ROS的ROS機器人小車。其主控設(shè)備是x86工控機,具有數(shù)據(jù)實時處理性能,滿足運行ROS系統(tǒng)的功能要求;具有多種接口,可連接各類傳感器進行通信。ROS車采用四個電機驅(qū)動,STM32作為電機驅(qū)動主控。工控機的USB接口與激光雷達相連,使ROS車具備了掃描本地地圖和識別障礙物的功能。同時工控機還接入了雙目深度攝像頭,使得ROS車還具備3D物體感知功能。這些外設(shè)使得ROS車具備了室內(nèi)自動駕駛能力。為此只要在ROS車上加上UWB標簽,就可在其行駛中進行定位研究。
UWB常用TOF(Time of Fly)方式計算電磁波傳輸時間,通過傳輸?shù)臅r間換算成距離[1]。標簽A和基站B之間測距,如圖3所示:A在Ta時刻發(fā)出信號,經(jīng)過T時段后,B在Tb時刻收到;B在Tc時刻發(fā)回信號,經(jīng)過T時段后,A在Td時刻收到。其中Ta和Td會記錄在A寄存器中,Tb和Tc記錄在B寄存器中。對同時鐘頻率A、B設(shè)備采用時鐘偏移量方法,可得出單程飛行時間T=[(Td-Ta)-(Tc-Tb)]/2,即為A、B間電磁波傳輸所用時間。所以A、B間距離D=電磁波傳速×[(Td-Ta)-(Tc-Tb)]/2。
圖3 UWB測距
圖4 UWB定位
在UWB 測距原理基礎(chǔ)上,可使用TOA(Time of Arrival,到達時間)定位方法測量:用前述UWB測距原理,計算出標簽與三個不同基站間的距離,最后通過三邊定位算法得到標簽坐標值[2]。如圖4所示,以三基站的位置為原點,標簽到三基站的距離為半徑,畫三個圓,三圓交點就是標簽的坐標。
當測試結(jié)果不準時,會出現(xiàn)三圓未必有交點,或者產(chǎn)生兩個交點,或者三圓相交后形成區(qū)域等情況。需在程序中用糾正半徑,或者求交點平局值等方法解決[3]。
根據(jù)定位原理實現(xiàn)具體代碼,可參考UWB產(chǎn)品官方源程序。這里用流程圖來簡要說明與定位相關(guān)的幾個部分:UWB標簽程序和UWB基站程序。
標簽程序,用于發(fā)送測量命令給各個基站,并測量和各個基站(1/2/3基站)的距離后發(fā)送給基站0。以上循環(huán)進行。見圖5所示。
圖5 標簽程序流程
作為參考點的基站負責響應(yīng)標簽的測距響應(yīng)命令,并將測量結(jié)果封裝到響應(yīng)幀中,通過無線再發(fā)送給標簽。見圖6所示。
圖6 UWB基站程序流程
基站0程序除了作為參考點響應(yīng)標簽的測量命令之外(這部分不再贅述),實時接收標簽發(fā)送的測量數(shù)據(jù),并將測量數(shù)據(jù)緩存后通過串口發(fā)送給上位機。以上循環(huán)進行。見圖7所示。
上述代碼實現(xiàn)后,使用UWB產(chǎn)品官方提供的測試軟件,適配室內(nèi)地圖后,可看到如圖7效果,0/1/2/3是4個基站,中間是ROS車運行定位軌跡顯示,符合實際情況。
圖7 UWB基站0程序
圖8 室內(nèi)ROS車運行定位軌跡
采用UWB技術(shù),實現(xiàn)了對行進中ROS機器人小車的精確定位,測得精度為0.1m,與基于激光SLAM的機器人定位導航處于同一量級。在此基礎(chǔ)上,接下來可與SLAM、深度攝像頭等聯(lián)合使用,進一步提高ROS車的定位精度和智能化水平。