胡琦瑤,周和興,彭先霖2,艾 娜,齊 錦
(1.西北大學 信息科學與技術學院,西安 710127; 2.西北大學 智能交互與信息藝術研究中心,西安 710127)
目前,機器人已廣泛應用于制造業、非制造業以及為人類服務。其中,送水機器人針對的目標用戶十分廣泛,例如辦公室業務繁忙的工作人員、行動不便的老年人以及殘疾人士等,可應用于辦公區域、醫院、家庭等各種場所,極大地解放了人類的雙手,用更智能化的機器代替人類服務。因此設計研究出一個智能室內定位送水的機器人就變得迫在眉睫。
目前關于送水機器人的研究大多集中在運水部分[1]或者單獨倒水部分,并未將兩者有效結合在一起。文獻[2]設計的智能接水機器人,無需人為控制可以完全智能得為用戶完成接水的工作,彌補了當代一些遙控家具機器人的不足。但家居環境的復雜性,系統光靠視覺識別和紅外避障可能在完成效率上不夠理想,甚至于長時間發現不了目標所在。
本文研究開發一個基于物聯網的智能室內定位送水系統,實現了水杯定位、轉向前行、自動添注水等功能,可應用于辦公區域、醫院、家庭等多種場所的智能飲水服務。
本文采用了4個直流電機驅動的機械模塊,倒水模塊采用機械臂送水。控制系統包括UP Squared處理器、電機驅動模塊、STM32F103x(MCU)模塊、Zigbee無線模塊、UWB定位模塊、機械臂模塊、供電與穩壓系統。機械系統包括運輸以及倒水系統,通過機械系統和控制系統的密切配合保證運動的穩定性和功能的可靠性。按照如下步驟進行操作:
1)當用戶需要機器人進行服務時,只需按下按鍵開關,通過Zigbee模塊的無線傳輸將命令發送至機器人的行動總控中心UP Squared開發板,開發板發出行進指令,使得機器人啟動并前進,通過MCU最小模塊實現對機器人的輔助控制。
2)機器人依靠UWB定位模塊實時監測定位信息,并識別出目標地點,計算出到達目標所需轉動的角度以及行進的距離。通過L298N模塊驅動電機運轉實現對機器人前進、倒退、位置調整等運行狀態的控制。并通過MPU6050模塊感知前進角度,對前進方向不斷進行調整。
3)機器人到達目標地便停止行進,利用磁耦合諧振線圈的電壓隨空間距離的變化特性,實現對目標地水杯的精準定位,使得出水口準確對準水杯并開始放水動作。通過超聲波測距儀實時監測水杯水量,保證水杯中的水不會溢出。
4)結束任務后,機器人能夠返回原地待命。
5)當有兩個或兩個以上目標同時發出信號時,機器人應按接收到信號時間的先后分別響應,完成倒水任務。
系統方案如圖1所示。

圖1 系統工作框圖
送水系統要實現在接到送水請求后在較短的時間內將水送達的功能,就必須快速而準確地到達水杯的位置。常見的許多定位方式都不能達到要求。
室內環境相對復雜,紅外測距定位、深度攝像機定位等方式等定位方式準確度不高;而且必須要求水杯在機器人的視距范圍內,而事實上由于室內人員活動、桌面擺件遮擋等因素存在,這一條件常常得不到滿足[3]。
1)室內定位對精度要求較高,GPS、WIFI、藍牙等定位方式精度多在米級,不能滿足高精度定位的要求。
2)Zigbee等定位方式信號傳輸受多徑效應和移動的影響很大,精度對硬件和環境的依賴程度很大[4]。
3)超聲波定位等方式響應較慢,會增加系統工作延遲。
UWB定位[5]采用極窄脈沖傳輸數據,數據傳輸速度快、定位精度可達厘米級、且抗干擾能力強,并且具有低功耗、安全性高等優點,可以較好的滿足系統工作的要求,因此我們在系統中采用UWB模塊進行定位。
DWM1000芯片[6]是一個超寬帶無線收發芯片,對于多路徑衰弱有更強的抗干擾能力,在高衰弱環境下也可以進行可靠的通信,非常容易的集成到實時定位系統(RTLS)和無線傳感網絡(WSN)中。

圖2 DWM1000模塊框圖
本文使用雙面雙向測距算法的通訊方式只需要5次通訊,就能測量標簽分別到三個基站的距離。
送水系統進行移動的動作如前進、左轉彎走弧線、后退等,總體可以分解為兩個正交的部分,即直行和轉向。實際上解決的就是機器人到達目標位置需要旋轉的角度和方向的問題。
2.2.1 角度測算

圖3 角度測算圖
圖3中,A點為起始點的位置,S0、S1、S2三點對應三個定位基站。通過UWB模塊進行測距與定位,可知起始點到三基站的距離,當標簽接收到來自目標基站S0的信號,主控制器控制機器人按初始方向行進一小段距離,得到實時A’的位置信息。V1為機器人前進方向的向量,V2為實時位置到目標點方向的向量,將V2平移至A’點進行分析,則在此時機器人需要轉向目標點的角度為V1與V2的夾角θ。在V1與V2已知的情況下由公式1可計算出機器人需要轉動的角度:
(1)
得出機器人需要轉動的角度θ。
2.2.2 角度感知
在測算出機器人需要轉動的角度后,還需要告訴機器人應該左轉還是右轉。實驗中,給向量V1與V2同一起點,則有兩種情況:1)當θ1>θ2時:(1)判斷條件θ1-θ2-θ<0.5°時,我們判定此時的θ1-θ2就是機器人需要轉動的角度θ,此時機器人應該向右轉,如圖4(a)所示;(2)θ1-θ2-θ>0.5°時,我們判定此時的θ1-θ2不是機器人需要轉動的角度θ,此時機器人應該向左轉,如圖4(b)所示。

圖4 角度感知示意圖
2)當θ2>θ1時:與θ1>θ2時的情況剛好相反。由于標簽定位存在誤差,機器人旋轉控制不是完全精確,因此一次計算有可能無法讓機器人準確的到達目標點。讓機器人返回其所轉角度,當它與θ不一致時,送水系統會不斷檢測機器人的實時位置(x1,y1)與目標點(x2,y2)之間的距離D:
(2)
當機器人與目標點的最小距離小于10 cm時,則讓機器人停止,即視為到達終點;若機器人與目標點的最小距離大于10 cm時,在機器人停止后,需要重新進行一次角度測算與角度感知,在獲得一個新的角度后前進,直到到達目的地附近。通過這樣的算法,大大提高了機器人尋址的精度。

圖5 二次測算示意圖
通過目標方向角度感知的計算,得到機器人需要調整的方向,下一步采用MPU6050模塊檢測機器人旋轉的角度。機器人旋轉速度與電源輸出的能量有關,在電源能量下降時的情況與電量充沛時不同,只是采用簡單的控制策略容易出現旋轉時間長或系統震蕩等問題,因而我們采用PID控制[7],以提高旋轉過程的抗干擾能力。
PID控制根據偏差的比例(Proportional)、積分(Integral)、微分(Differential)進行控制[8],控制框圖如圖6所示[9]。

圖6 PID控制框圖
在本系統中,誤差的積累作用較小,也不需要提前預測差值的到來而提前響應,故而在重點整定比例系數[10]。通過測試不同比例參數下的系統響應情況,選擇出合適的參數。
送水系統在準確到達水杯附近后,需要精確控制出水閥口至杯口正上方。出于系統穩定性考慮,本文采用磁耦合諧振式無線電傳輸裝置進行精準定位。磁耦合諧振式無線電傳輸裝置的主要組成部分包括:
1)磁耦合諧振部分:由諧振線圈、諧振電容串聯構成諧振體,發送與接收線圈分別產生和接受磁場能量,是電路與磁場的耦合媒介[11]。發射線圈采用1.3 mm的漆包線,圓筒式繞法N=3匝,直徑為10 cm,接收線圈與發射線圈尺寸、繞法完全一致,以保證收發端線圈的固有頻率一致。
提高諧振頻率,增加兩線圈之間的互感能夠有效提高傳輸效率,但諧振頻率的增加、線圈直徑以及匝數的增加會帶來很大的線圈損耗電阻,影響傳輸效率。因此要增加線圈直徑、減小匝數,在線圈電感量不變的情況下,這種方法會比增加線圈匝數、減小直徑能更有效的提高傳輸效率。最終,諧振頻率確定在1.3 MHz。
2)磁場驅動源:包括供電和高頻激磁電路,此部分功能是將直流電源的直流電轉換為線圈中的高頻電流,用以驅動磁耦合諧振部分產生諧振磁場并向其提供高頻能量,實現無線電能傳輸[12]。
我們設計在水杯下方安置一個激發線圈,并給它通入脈沖信號,使之在周圍空間中激發變化的磁場,在機器人出水口附近安置一個感應線圈,并在控制端檢測線圈中電壓的峰值。在機器人到達制定位置后,可以先控制步進電機在一個水平面內尋找到使感應線圈電動勢峰值最大的角度,可以預見,這個方向就是激發線圈所在的方向;然后控制出水口垂直上升適當距離;控制步進電機將出水口朝激發線圈方向移動,直至感應線圈電動式峰值達到最大,此時出水口將準確到達水杯正上方。
除了在水平面內精確找到水杯的位置外,在垂直面內還需要控制出水口上升適當距離,并且完成對杯中水位的感知,實驗中采用超聲波測距方法實現。超聲波測距的原理是利用超聲波在空氣中的傳播速度為已知,測量聲波在發射后遇到障礙物反射回來的時間,根據發射和接收的時間差計算出發射點到障礙物的實際距離。
超聲波測距模塊HC-SR04具有性能穩定,測度距離精確,模塊高精度,盲區小等優點,在公共安防、物體測距等領域有廣泛應用[13]。測距步驟如下:
1)采用IO口觸發測距,在控制口發出一個10的高電平信號;
2) 模塊自動發送8個40 kHz的方波,自動檢測是否有信號返回[14];
3)如果有信號返回,通過IO口輸出一個高電平,高電平持續的時間就是超聲波從發射到返回的時間[15]。
4)當有信號返回時,通過定時器計時,當接收口變為低電平時就可以讀定時器的值,可得此次測距的時間,從而計算出距離。不斷的測試,即可以達到你移動測量的值[16]。
在垂直面上升合適距離的關鍵在于送水系統能夠感知到什么位置是合適位置。經過分析發現,在出水口所處的高度尚未超過水杯時,出水口前方較近處就有固體介質(水杯);等所處的高度超過杯口后,出水口前方較遠處才開始出現固體介質(墻)。因而我們可以在出水口附近放置一個超聲波測距模塊[17],通過合理設置距離閾值,距離超過閾值后便停止上升。
在出水口到達指定位置后,控制繼電器,使出水口開始出水,通過超聲波模塊檢測到杯中水位到達合適位置時,上傳一個信號給控制器,停止出水,完成相應工作。
智能室內定位送水系統在按下呼叫器的按鍵后,接受到倒水請求開始工作。因為并非所有的室內環境都覆蓋了WIFI信號,藍牙傳輸受限于距離且易受干擾,采用組網簡單、傳輸距離較長的Zigbee通信模塊進行無線數據傳輸[18]。
DL-20無線發射接收模塊是基于Zigbee技術的無線串口模塊,可以將兩個或者多個串口在無線狀態下連接起來。將DL-20模塊配置為點對點模式,點對點模式存在兩個端口數據傳輸端口:A端和B端。A端串口發出的數據會被B端串口接接收,反之亦然,點對點模式下同一個頻道只允許兩個節點相互通信。

圖7 Zigbee系統功能框圖
數據在傳輸過程中采用的是透明傳輸模式。用戶只需按照Zigbee協議的具體幀格式對數據進行封裝,然后一次進行發送,最后在接收端對數據按照順序進行接收[19]。在實際應用中,選擇波特率為9600,分別將兩個Zigbee通信模塊安置在呼叫器與機器人上。
智能室內定位送水系統要求定位準確,對復雜環境適應能力強,角度調整迅速準確,能較好適應感應線圈在移動中的變化。實驗中分別對以下幾部分進行測試。
為測試UWB模塊在不同復雜程度的環境中的精度,我們分別在空曠的教室與桌椅等遮擋物較多的教室中進行精讀測試,具體方法如下:
1)布置好基站之后,室內隨機選取6個點。
2)用米尺分別測量這些點與基站0之間的距離,測量三次取平均值,將平均值近似看作點與基站0之間的標準距離。
3)將標簽0分別放置到這6個點的位置。
4)在每一點處連續測10次標簽與基站的距離。
5)用測量得到的數據與標準距離的差值的平均值表征誤差。

圖8 UWB定位測試圖
觀察測試結果,我們發現基站與標簽之間距離的遠近,對測距精度并沒有明顯影響,每次測量得到的數據誤差都在10cm之內;在復雜環境中測距的誤差相較于空曠感環境略有上升,但仍能保證較高的測量精度;在測量多次求取平均值之后,測向誤差降到1%以下,可以滿足系統對精度的要求。
這是由UWB是依賴極窄脈沖傳輸數據的特點決定的。理論上穿越書桌等障礙物后,窄脈沖不會產生明顯的衰減。因而即使環境中障礙物較多,對測距精度的影響也微乎其微。這與我們測試得到的結果是一致的。
合理的PID參數的選擇,在提高機器人旋轉速度的同時,系統應該具有較好的穩定性,即震蕩程度低,同時在電源能量變化時能有較強的適應能力,即始終有較好的反應速度和較高的穩定性[20]。
設置機器人旋轉目標為45°,控制機器人旋轉,通過串口實時將機器人旋轉的角度上傳至控制端。將不同的PID參數得到的角度變化情況繪制成曲線圖,多次測試后選取最佳參數。得到的曲線圖如圖9、圖10、圖11所示。

圖9 PID參數為1000-4的測試數據

圖10 PID參數為1200-4的測試數據

圖11 PID參數為1500-5的測試數據
PID的第一個參數表示系統的整體速度,第二個參數表示對于指令的響應速度。經過分析,第一次測量的整體速度高,但響應時間長,系統震蕩嚴重,到達穩定時間較長;第二組在整體速度將下來之后,震蕩較少;第三組在降低整體速度后,消除了震蕩,因此第三組參數較為合理。
多次嘗試后整定的PID參數能使機器人有較快的反映同時保持相對穩定,且在電源能量不同的情況下有較強的適應能力。
本文采用檢測感應線圈中感應電動勢的極值來確定水杯與出水口的相對位置,這要求感應電動勢的極值要明顯存在,且檢測延遲要低。
分別在水平面和垂直面內對感應線圈進行移動,并讀取感應線圈中電動勢的大小,將之繪成曲線圖,觀察極值情況。
由于響應存在延遲,不易直接檢測,我們檢測在系統讀到的感應線圈中電動勢極值時所處的位置與理論位置的差值,以此來間接刻畫系統的響應延遲[21]。感應線圈在水平面內旋轉不同的角度,得到的輸出電壓值如圖12所示,在距離發射線圈最近的位置處,有一個電壓峰值,其感應電壓值是最大的。

圖12 感應電動勢測試數據
為測試HC-SR04模塊測距的精度,設計如下方案:
1)在模塊附近隨機選取6個點;
2)用米尺分別測量這些點與模塊之間的距離,測量3次取平均值,將平均值近似看作點與模塊之間的標準距離;
3)將一個剛性固體介質分別放置到這6個點的位置;
4)在每一點處連續測10次介質與模塊的距離;
5)用測量得到的數據與標準距離的差值的平均值表示誤差。
以第一個點和第二個點測量數據為例說明。
1)第一個點實際測量距離為20 cm,超聲波測距數據如表1所示。

表1 第一個點測量距離 cm
以上20組測量數據平均值為:20.8。
2)第二個點實際測量距離為18 cm,超聲波測距數據如表2所示。

表2 第二個點測量距離 cm
以上20組測量數據平均值為:19.1。
HC-SR04超聲波測距模塊可提供2~400 cm的非接觸式距離感測功能,測量精度最高可以達到3 mm。分析以上測量結果可得,設計的機器人所用超聲波測距模塊測量精度為1 cm。
本文分別在待機狀態下(停止電動勢檢測、機器人運行等,僅串口接收數據工作)測試系統靜態電流、電壓及功耗,在全負荷狀態下(開啟所有設備)測試系統工作電流、電壓及功耗。
各個硬件模塊的功耗如表3所示。

表3 系統各模塊功耗
根據以上各模塊功率測試所得,靜態功耗主要集中在UP Squared處理器,但總體相對來說較低,共計5.35 W,動態功率共計13.6 W,大概為靜態功率的2.5倍。
通過測試發現在靜態情況下機器人耗電極少,可支持長時間數據監聽;在巡航倒水的模式下也有較好的續航能力。
本文所設計的系統采用Zigbee模塊進行呼叫器與機器人之間的數據交互;采用UWB模塊在室內進行精準定位;采用MPU6050 模塊進行旋轉角度感知,PID算法控制機器人旋轉;基于電流磁效應和電磁感應定律感知水杯位置;采用超聲波模塊對出水口上升的高度和水杯中水位進行檢測。不僅能夠很好地實現運水和倒水兩個功能,并且定位精度、運動的穩定性以及功能的可靠性都得到了良好的保障,完全實現了智能室內定位送水的功能,達到了實際應用于室內智能定位送水的技術要求。