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