潘雷,潘明章,李勁,梁科
(廣西大學機械工程學院,廣西南寧 530004)
遙操作機械手已經(jīng)成為一個活躍且有趣的研究領域[1],它將人類的智能與機器人的高精度相結合來執(zhí)行長距離或者人類無法到達的操作,已經(jīng)被廣泛應用于醫(yī)療、航空航天、救援和深海探索等非結構化環(huán)境下的任務中[2-5]。
在遙操作過程中,操作者與從機械手分隔兩地,操作者往往只能通過攝像頭提供的視覺信息認知從端環(huán)境。然而視覺信息存在畫面分辨率有限、視角的靈活度不足和視野易被遮擋等缺點。雖然可以通過增加攝像頭來提供給操作者更多的環(huán)境信息,但是這無疑會增加操作者的認知和工作負荷。因此,當從端工作空間內存在障礙物時,遙操作的約束使操作者難以準確感知障礙物的位置,可能導致危險情況的發(fā)生,比如碰撞。
由于遙操作系統(tǒng)中視覺反饋的種種限制,且隨著觸覺反饋設備的不斷發(fā)展與進步,人們逐漸嘗試開發(fā)觸覺反饋來增強操作者對從機械手與障礙物的感知,提高遙操作系統(tǒng)的安全性和作業(yè)效率[6]。目前,已有許多觸覺反饋方法被提出,如虛擬夾具[7]、控制屏障[8]、人工勢場[9]等。但這些方法大多數(shù)是基于從機械手與障礙物之間的位置信息,雖然有少數(shù)方法涉及到速度信息,也只是考慮了速度大小[10],忽略了速度方向,所生成的觸覺反饋并不夠準確地反映碰撞信息。為此,本文作者提出阻尼觸覺反饋的方法,并且為了使人類操作員更準確、更迅速地感知障礙物信息,提出一種避障阻尼模型,該模型除了關注從機器人與障礙物之間的距離外,還加入了對從機器人末端的速度方向這一新因素的考慮,通過速度信息預測未來一段時間的機器人運動,從而調整觸覺反饋阻尼輔助人類操作者找到無碰撞的運動方向。最后通過實驗證明其有效性。
遙操作系統(tǒng)主要分為3個部分:主動系統(tǒng)、從動系統(tǒng)和通信系統(tǒng),如圖1所示。人類操作者通過力反饋主手將位置信息通過通信手段傳達給從端,從而遠程控制從機器人按照操作者意圖運動。一方面,操作者可以通過顯示器獲取攝像機提供的從端環(huán)境的視覺信息;另一方面,從機器人與環(huán)境的交互力信息可以通過力反饋主手傳遞給操作者實現(xiàn)觸覺反饋。
圖1 遙操作系統(tǒng)原理
由于大部分主從設備在構型上存在差異,無法在關節(jié)空間直接進行主從映射,所以文中使用笛卡爾空間的位置映射[11]來完成遙操作運動控制,如式(1)所示:
vs=Kv·vm
(1)
式中:vm為主手的實際運動速度;vs是發(fā)送給從機器人控制器的速度指令;Kv是調整主從速度縮放比例的參數(shù)。
從機器人的控制器將接收到的控制信號為vs通過逆運動學分解成每個關節(jié)的角速度,并通過PID控制實現(xiàn)伺服跟隨,從而實現(xiàn)遙操作系統(tǒng)的主從運動學映射。
在機器人領域,觸覺反饋被廣義地定義為機器人、人類與真實、遠程或者虛擬環(huán)境之間的真實和模擬的觸覺和力覺的交互。其中觸覺是指與人類皮膚有關的振感[12]、壓覺、溫度等感官刺激的總稱;而力覺是指人類對與機器人運動學有關的位置、速度、慣性力等物理特性的感知。在操作者、主手和從機械手構成的主從遙操作系統(tǒng)中,觸覺反饋技術的實現(xiàn)需要主手具有觸覺反饋的功能,觸覺反饋主手可以將從機械手在真實或模擬環(huán)境中所生成的力感和觸感反饋給操作者,增強操作者對遠端環(huán)境的感知。為提高主從遙操作機器人的安全性,減少甚至避免因網(wǎng)絡延遲或者操作者人為失誤等導致的從機械手碰撞、傾覆等危險情況的發(fā)生,觸覺反饋技術提供了一個切實可行的方向。
文獻[1]在研究遙操作系統(tǒng)的主從映射方法時,將主手反饋力設置為一個與主手位置和速度有關的彈簧阻尼模型,從機械手的速度越高,操作者感受到的阻力就越大,如果從機械手移動過快,操作者將很難繼續(xù)加速從機械手,因為他/她已經(jīng)感受到來自主手的非常高的操作阻力,這可以保證安全操作。受到這一思想的啟發(fā),為了提高遙操作系統(tǒng)的安全性,減少人為誤操作導致的從機械手與障礙物碰撞,增強操作者對遠端障礙物的感知,將主手的觸覺反饋設置為一個與速度方向有關的避障阻尼模型,如圖2所示。
圖2 阻尼觸覺反饋示意
速度方向是影響碰撞風險的一個重要因素。在存在障礙物的環(huán)境中,當從機械手的末端執(zhí)行器沿不同方向運動時,所產(chǎn)生的碰撞風險顯然不同。根據(jù)當前方向的碰撞風險調整主手觸覺反饋的阻尼值,使操作者感知到不同速度方向上的操作感差異,提供觸覺上的提示,從而幫助操作者尋找安全的運動路線,可避免從機械手與障礙物發(fā)生碰撞。
遙操作系統(tǒng)的阻尼觸覺反饋力Fm由式(2)計算:
Fm=-D·vm
(2)
式中:D為根據(jù)當前碰撞風險計算得到的操作阻尼值;觸覺反饋力Fm的方向始終與主手速度vm方向相反。
為了提高觸覺反饋的準確性和及時性,同時考慮從機械手與障礙物的距離因素和速度因素,文中提出式(3)所示的避障阻尼模型:
D=Ddis·(1+λvel)
(3)
式中:Ddis為與障礙物距離有關的阻尼值;λvel為與速度方向有關的阻尼增益。
與傳統(tǒng)的避障策略類似,文中所提出的避障阻尼模型需要計算機械臂與障礙物之間的最小距離。為此,需要計算障礙物到機械臂每個連桿的最小距離,則可以檢測出距離障礙物最近的連桿,并將該連桿與障礙物之間的最小距離當作該時刻機械臂與障礙物的最小距離。
傳統(tǒng)碰撞檢測方法使用幾何體包絡法,即以圓柱體和球體近似替代機械臂連桿和障礙物來計算距離,將問題簡化為點到線段的距離問題。顯然這種方式無法準確描述機械臂在復雜形狀障礙物環(huán)境中的位置信息,且運算量龐大。雖然球體是面對距離計算和碰撞檢測最簡單的實體,但是它并不能很好地反映真實環(huán)境,從而導致機器人在避障過程中存在過于保守的現(xiàn)象,不能充分利用工作空間。
文中采用GJK算法[13]快速計算機械手與障礙物之間的距離。GJK算法是一種有效且快速的算法,用于計算2個任意形狀的凸多面體之間的最小距離,如圖3所示。
圖3 GJK算法
考慮2個凸體A和B,在三維空間中,其由矩陣定義的頂點分別為VA∈RnA×3和VB∈RnB×3。nA和nB分別是凸體A和B的頂點數(shù)。這些矩陣的每一行表示相應凸體頂點的位置。GJK 算法采用這些矩陣并計算2個凸體的最近頂點之間的最小距離。
(4)
因此,為了使用GJK算法計算距離,如圖4所示,將機器人不規(guī)則連桿建模為凸形膠囊體。對于障礙物,根據(jù)形狀采用合適的凸形體(長方體、圓柱體、球體等)及其組合進行包裹。
考慮到避障阻尼應該在障礙物距離較遠時保持較小值,以保證人類操作者的動作不會受到明顯限制,只有當障礙物在一定距離內時才達到較大值,從而使操作者感受到運動阻力。因此,有必要設計一種開關機制來實現(xiàn)這種功能。這在遙操作系統(tǒng)中是個很好的特性,因為沒有必要在明顯安全的情況下讓操作者感知到避障帶來的運動阻礙感。此外,值得注意的是,不連續(xù)的阻尼會導致人類操作者在操作過程中受到突變斷續(xù)的反饋力,從而導致不舒適的用戶體驗。因此,式(3)中的Ddis由式(5)計算:
(5)
式中:KD為阻尼幅值調節(jié)因子,通過實驗獲得最佳值;d是當前從機器人與障礙物之間的最小距離;ds是阻尼觸覺反饋開始起作用的安全距離,根據(jù)實際任務需求進行調整;α為整形因子,用來調節(jié)阻尼與距離d之間的關系。
當從機械手與障礙物之間的距離足夠遠(即碰撞風險很小)時,Ddis趨近于0,人類操作者基本感受不到避障阻尼的存在,可以輕松驅動主手設備沿任意方向自由運動。當機器人小于所設定的避障安全距離ds時,Ddis逐漸增大。隨著Ddis的增大,人類操作員在操縱主手的過程中所感受到的阻力越來越明顯,從而提醒操作員從機械手已經(jīng)接近障礙物,應降低操縱速度避免碰撞。
除了距離,速度方向也是影響碰撞風險的一大因素。為了量化速度方向對碰撞的影響,將其轉化為距離計算的問題,如圖5所示。
圖5 基于末端速度的運動預測與距離計算
在圖5(a)中,當前時刻機器人末端執(zhí)行器的速度為vs,假設機器人在接下來的tp時間內都按照該速度的方向運動,速度大小設置為常量vp。則機器人連桿將在空間中劃出一個復雜的運動曲面,為了量化此末端速度對機器人的碰撞影響,需要得到預測過程中機器人與障礙物的最小距離,即障礙物到該復雜運動曲面的最小距離。然而該問題很難通過解析法直接解出,因為要得到該曲面的準確數(shù)學表達并不容易。如圖5(b)所示,將預測時間tp內機器人的運動曲面離散化為N個狀態(tài),利用逆運動學求解,并根據(jù)“最小行程”策略(取2個相鄰運動時刻機器人關節(jié)角度變化的最小值)選擇得到這N個狀態(tài)下對應的關節(jié)角度,然后求解出每個中間狀態(tài)下機器人與障礙物的最小距離,從而取N個距離中的最小距離作為預測時間tp內機器人與障礙物的最小距離,由式(6)計算:
(6)
式中:din是第n狀態(tài)下機器人m個連桿中第i個連桿與障礙物之間的距離,由GJK算法計算可得;t0表示初始時刻;dt是t時刻機器人與障礙物之間的最小距離;dmin是預測時間tp內機器人與障礙物之間的最小距離。
然而,在某些情況下,只通過上述預測時間內的最小距離dmin并不能準確表達速度方向對碰撞的影響。如圖6所示,為了方便理解,只考慮機械手末端執(zhí)行器的碰撞,以rp為半徑的圓代表預測時間內末端可到達的范圍邊界。vs1和vs2代表機械臂末端執(zhí)行器的2個大小相等、方向不同的速度,且預測時間tp內都會導致機械臂與障礙物發(fā)生碰撞,即dmin=0。但是,vs1、vs22個速度對碰撞的影響并不相同,vs1會比vs2更早導致碰撞的發(fā)生。因此,為了進一步提高預測的準確性,對機器人從當前狀態(tài)首次到預測最小距離狀態(tài)的時間進行了計算,為了簡化描述,后面稱之為碰撞時間tc,由式(7)計算:
(7)
圖6 末端以不同速度方向運動對碰撞的影響
式中:k(k=1,2,…,N)是預測周期tp內離散狀態(tài)中對應于最小距離dmin的第一次的機器人狀態(tài)的序列號。
建立與速度方向相關的避障阻尼增益因子λvel,由式(8)計算:
(8)
式中:ωv是增益比例系數(shù)。
當機器人沿著遠離障礙物的速度方向運動時,dmin=dt0=d,λvel=0,則表示當前速度方向不會給主手設備帶來額外的阻尼增益。當機器人沿著接近障礙的速度方向運動時,通過預測周期內的最小距離dmin來調整阻尼增益λvel。為了進一步區(qū)分預測周期內不同速度方向對碰撞風險的影響(dmin=0),還在該模型中引入了碰撞時間tc(0≤tc≤tp),tc減小表示當前速度方向的碰撞風險不斷增高,λvel逐漸增大,使操作者感受到避障阻尼在不同速度方向上的差異,為操作者提供了早期避障預警和適當?shù)囊龑?,從而進一步減少了碰撞的發(fā)生,提高遙操作系統(tǒng)的安全性和可靠性。
通過上述分析,得到所提出的避障阻尼模型,式(3)可以進一步由式(9)表示:
(9)
為了驗證所提出的觸覺反饋方法的有效性,搭建了遙操作機械手的觸覺反饋實驗平臺。分別采用UR5e協(xié)作機器人和omega.7力反饋設備作為遙操作系統(tǒng)的從端和主端。上位機采用AMD Ryzen 5 5600H with Radeon Graphics(3.30 GHz) CPU和開源機器人操作系統(tǒng)ROS-Melodic with RT-PREEMPT(Ubuntu18.04×64),控制回路以500 Hz的頻率運行,通過以太網(wǎng)實現(xiàn)上位機、主端和從端之間的通信。
為了模擬遠程機械手搬運和避障任務,邀請了5名受試者進行遙操作實驗(均沒有遙操作經(jīng)驗),受試者被要求操作力反饋主手控制從機械臂末端執(zhí)行器在避開障礙物的同時搬運工件依次到達3個目標位置,每個受試者的路線順序隨機,如圖7所示。實驗前,通過反復實驗調整所提模型中的相關參數(shù),以獲得系統(tǒng)的最佳性能。為了簡便,此實驗中,從機械臂末端執(zhí)行器的姿態(tài)保持不變,障礙物的形狀以及相對從機械手的位姿已知。
在該實驗中,分別進行了2組實驗:第一組只提供給操作者視覺反饋,即操作者只能通過攝像機提供的畫面感知遠端環(huán)境;第二組除了視覺反饋外,還通過力反饋主手向操作者提供文中提出的阻尼觸覺反饋。每個受試者需要分別在上述2組實驗模式下完成一次實驗。在整個實驗過程中,用于評估方案性能的記錄參數(shù)包括碰撞次數(shù)、任務耗時和主觀工作量。其中:主觀工作量使用NASA任務負荷指數(shù)(TLX)[14]進行評估(包括6個問題,評分范圍0~100,100表示工作量最大),以記錄任務期間感知的身體和精神負荷。
碰撞次數(shù)結果如表1所示??梢钥闯觯核岢龅挠|覺避障方法可以顯著地減少碰撞的發(fā)生,提高遙操作系統(tǒng)的安全性。在表2中,記錄了2個組別每個操作者完成任務的時間,當操作者可以同時利用視覺和觸覺(組別2)時,相比于僅有視覺反饋(組別1),操作者的平均任務耗時降低了20%。即所提出的觸覺避障方法在提高遙操作作業(yè)效率上可以發(fā)揮重要作用。NASA-TLX的調查結果如圖8、9所示:當使用阻尼觸覺反饋時,NASA-TLX的加權評分平均分明顯減少了47.17%(從59.93降低到31.67);此外,相較于組別1,組別2每項工作量的平均評分都較低,說明所提出的觸覺方法顯著降低了操作者的工作負荷。
表1 碰撞次數(shù)
表2 任務耗時
圖8 NASA-TLX的加權平均分
圖9 操作人員對每項工作量的平均評分
針對觸覺反饋在主從遙操作機械手系統(tǒng)避障應用中存在的網(wǎng)絡傳輸時延和準確性不足等問題,提出了一種新的阻尼觸覺反饋方法,同時考慮了距離和速度因素。根據(jù)距離設計了一種可實現(xiàn)觸覺平滑介入的開關機制,通過離散化的方法將速度方向對于碰撞的影響轉化為距離計算問題進行量化。實驗結果表明:與僅提供視覺反饋的遙操作相比,該方法提供給操作者的阻尼觸覺反饋可以實現(xiàn)遠端障礙物的準確碰撞感知,有效提高安全性和作業(yè)效率,并且顯著降低了操作者的工作負荷。