蹇興強(qiáng),穆春陽(yáng),馬 行,田國(guó)禾,張春濤
(北方民族大學(xué) a.寧夏智能信息與大數(shù)據(jù)處理重點(diǎn)實(shí)驗(yàn)室;b.電氣信息工程學(xué)院;c.機(jī)電工程學(xué)院,銀川 750021)
隨著機(jī)器人技術(shù)的快速發(fā)展,越來(lái)越多的機(jī)器人進(jìn)入到人類的生產(chǎn)、生活環(huán)境中,需要機(jī)器人與人進(jìn)行交互的要求也越來(lái)越多。機(jī)器人與人的交互分為人機(jī)物理交互和人機(jī)認(rèn)知交互[1]。當(dāng)機(jī)器人本體與人類用戶接觸時(shí)即稱為人機(jī)物理性交互,人機(jī)物理交互系統(tǒng)通常完成一些機(jī)器人與人或外界環(huán)境交互的任務(wù),需要保證安全性、柔順性和穩(wěn)定性[2-3]。如常見(jiàn)的人機(jī)物理交互應(yīng)用有主動(dòng)康復(fù)訓(xùn)練機(jī)器人[4-6]、機(jī)器人主動(dòng)柔順拋磨[7]、手術(shù)機(jī)器人導(dǎo)納安全控制[8]、基于物理人機(jī)交互的智能助行器[9]、具有安全物理交互能力的柔性關(guān)節(jié)協(xié)作機(jī)器人等[10-12]。機(jī)器人-環(huán)境-人的物理交互過(guò)程,外力感知和交互控制對(duì)于保證其安全性并提高其交互性能具有非常重要的意義,如在人機(jī)協(xié)作場(chǎng)合,好的物理交互能更好地保證安全和效率。HADDADIN等[13]將機(jī)器人在非約束條件下通過(guò)碰撞仿真研究得出機(jī)器人對(duì)人的傷害程度主要與機(jī)器人質(zhì)量、碰撞速度、接觸剛度、碰撞方式等有關(guān)。
當(dāng)機(jī)器人與人的物理交互接觸超出安全閾值時(shí)會(huì)對(duì)彼此造成傷害。因此,在人機(jī)協(xié)作中實(shí)現(xiàn)機(jī)器人本體與人類用戶發(fā)生物理接觸時(shí)進(jìn)行有效安全的交互十分重要。
針對(duì)機(jī)器人的安全性問(wèn)題,ISO于2016年制定了安全標(biāo)準(zhǔn)ISO 10218,其中定義了4種類型的協(xié)作操作及相應(yīng)的安全措施,包括安全級(jí)監(jiān)控停止、手動(dòng)牽引、速度和距離監(jiān)控、功率及力限制[14]。在這4種安全措施約束下保證基本的人機(jī)物理交互的安全。4種安全措施前3項(xiàng)屬于事前控制的內(nèi)容,事前控制的關(guān)鍵在于信息的全面性和控制的實(shí)時(shí)性,這需要更多的傳感器設(shè)備在一定程度上增加了系統(tǒng)的復(fù)雜性;第4項(xiàng)屬于事后控制的內(nèi)容,事后控制方法則期望在一定程度上減緩撞擊的傷害程度,避免剛度過(guò)大造成二次傷害以確保機(jī)器人與人和環(huán)境之間的安全性[15]。顯然4種安全措施在人機(jī)協(xié)作時(shí)并不能有效地提高人機(jī)協(xié)作的效率,因此需要在機(jī)器人本體與人接觸時(shí)采取有效安全的物理交互策略。一方面使機(jī)器人與人和環(huán)境接觸時(shí)保證安全,另一方面機(jī)器人能夠及時(shí)地感知人類用戶交互動(dòng)作意圖并做出響應(yīng)。
本文針對(duì)人機(jī)協(xié)作任務(wù)中操作人員需要與機(jī)器人進(jìn)行物理交互的場(chǎng)景。利用Simscape Multibody工具箱建立協(xié)作機(jī)器人Baxter與人進(jìn)行物理交互的仿真環(huán)境?;趧?dòng)力學(xué)模型實(shí)現(xiàn)碰撞檢測(cè)并通過(guò)安全軌跡跟蹤實(shí)現(xiàn)人機(jī)物理交互的安全和順應(yīng)性。仿真和實(shí)驗(yàn)結(jié)果表明結(jié)合Simscape Multibody搭建人機(jī)物理交互環(huán)境對(duì)研究和搭建機(jī)器人與人進(jìn)行協(xié)作任務(wù)有重要的參考意義。
本文利用Baxter機(jī)器人的URDF文件可以直接生成多體鏈?zhǔn)浇Y(jié)構(gòu)模塊(Simscape)和三維可視化模型,如圖1所示。
圖1 Baxter機(jī)器人可視化模型
在Simulink多體結(jié)構(gòu)鏈模塊中包含機(jī)器人的運(yùn)動(dòng)學(xué)信息。模塊中主要由機(jī)器人連桿部分和關(guān)節(jié)部分構(gòu)成機(jī)器人的鏈?zhǔn)浇Y(jié)構(gòu)模型。其中關(guān)節(jié)(Revolute Joint)提供驅(qū)動(dòng)(Actuation)選項(xiàng),如力矩(Torque)驅(qū)動(dòng)或運(yùn)動(dòng)驅(qū)動(dòng)(Motion);并提供關(guān)節(jié)模擬傳感器反饋接口,如位置(Position),速度(Velocity),驅(qū)動(dòng)力矩(Actuator Torque)等接口。利用這些接口可以與控制算法進(jìn)行結(jié)合,快速實(shí)現(xiàn)控制算法的搭建。
基于模型的控制提出利用機(jī)器人動(dòng)力學(xué)模型來(lái)減少由于各種干擾因素引起的非線性問(wèn)題,并保證一定的控制性能[13]。機(jī)器人逆動(dòng)力學(xué)一般公式如下:
(1)
(2)
根據(jù)公式(2)計(jì)算力矩控制結(jié)構(gòu)如圖2所示。
圖2 計(jì)算力矩控制結(jié)構(gòu)
由上述,在Simulink環(huán)境下搭建的計(jì)算力矩控制系統(tǒng)如圖3所示,控制系統(tǒng)主要由軌跡規(guī)劃模塊,計(jì)算力矩控制器模塊和Baxter機(jī)器人模型模塊三部分組成。其中計(jì)算力矩控制器由圖2所示的計(jì)算力矩控制結(jié)構(gòu)封裝成子系統(tǒng)模塊,并將期望的軌跡輸入以及機(jī)器人模型中關(guān)節(jié)傳感器接口的反饋信號(hào)作為該模塊的輸入,計(jì)算力矩控制器計(jì)算獲得的力矩作為輸出串聯(lián)到由Simscape導(dǎo)出的Baxter機(jī)器人模型中的關(guān)節(jié)驅(qū)動(dòng)接口中。
圖3 計(jì)算力矩控制系統(tǒng)
如圖4所示,為測(cè)試機(jī)器人運(yùn)動(dòng)中左臂與固定障礙物發(fā)生碰撞的數(shù)據(jù)關(guān)節(jié)力矩變化結(jié)果。
圖4 Baxter碰撞測(cè)試左臂力矩變化
由圖4中S0關(guān)節(jié)力矩峰值點(diǎn)①可以看出,機(jī)器人在實(shí)際力矩驅(qū)動(dòng)下運(yùn)動(dòng)。大約在3.2 s時(shí),機(jī)器人與固定不動(dòng)的障礙物發(fā)生碰撞,關(guān)節(jié)力矩值逐漸上升,直到超過(guò)力矩限制后,關(guān)節(jié)力矩值迅速下降,進(jìn)入安全級(jí)的運(yùn)動(dòng)停止——粗線部分。在安全級(jí)運(yùn)動(dòng)停止一段時(shí)間后機(jī)器人手臂再次與固定障礙物發(fā)生碰撞,如圖4中關(guān)節(jié)力矩峰值點(diǎn)②和③,這對(duì)機(jī)器人的關(guān)節(jié)傷害較大,也有可能對(duì)環(huán)境造成二次傷害,在人機(jī)協(xié)作的場(chǎng)所不足以進(jìn)行有效的交互。結(jié)果表明Baxter機(jī)器人本身的碰撞檢測(cè)與安全反應(yīng)策略,不足以高效應(yīng)對(duì)安全交互與協(xié)作的場(chǎng)合。其碰撞檢測(cè)方法是通過(guò)力矩限制實(shí)現(xiàn)的,安全反應(yīng)策略為監(jiān)控級(jí)的運(yùn)動(dòng)停止,即當(dāng)檢測(cè)到關(guān)節(jié)力矩超過(guò)閾值時(shí)停止運(yùn)動(dòng),由此對(duì)機(jī)器人的碰撞檢測(cè)和軌跡安全控制進(jìn)行改進(jìn)是必要的。
一般的,機(jī)器人在正常工作狀態(tài)時(shí),其動(dòng)力學(xué)方程為公式:
(3)
其中,c為諧波減速比;τm為電機(jī)輸出扭矩;τf為引入的摩擦力,電機(jī)扭矩經(jīng)諧波放大同時(shí)再由摩擦消耗部分扭矩后所得力矩便是關(guān)節(jié)處驅(qū)動(dòng)連桿的力矩τj,在Baxter機(jī)器人中這部分由關(guān)節(jié)傳感器直接提供。
τj=cτm-τf
(4)
在與環(huán)境發(fā)生碰撞或與人進(jìn)行物理交互時(shí),產(chǎn)生外力介入,這時(shí)直觀的動(dòng)力學(xué)公式變?yōu)楣?5)。
(5)
τtot=τj-τext
(6)
其中,τtot為關(guān)節(jié)總受力矩;τj為關(guān)節(jié)驅(qū)動(dòng)力矩,由計(jì)算力矩控制器計(jì)算獲得,在機(jī)器人本體中是由關(guān)節(jié)力矩傳感器測(cè)量獲得。因此外力矩為:
(7)
采用基于逆運(yùn)動(dòng)學(xué)模型的碰撞檢測(cè)原理如圖5所示。
圖5 逆動(dòng)力學(xué)模型碰撞檢測(cè)原理
由于期望的軌跡通常是時(shí)間的函數(shù),針對(duì)關(guān)節(jié)空間的軌跡有q(t)∈Rn,在關(guān)節(jié)空間中的軌跡由離散的采樣時(shí)間Δt進(jìn)行采樣,當(dāng)前時(shí)刻可以描述為:ti=ti-1+Δt。如果對(duì)采樣時(shí)間進(jìn)行修改處理,那么實(shí)際上可以通過(guò)及時(shí)地改變軌跡采樣來(lái)更正運(yùn)動(dòng)。即根據(jù)軌跡的時(shí)間屬性,在當(dāng)前時(shí)間機(jī)器人未檢測(cè)到外力矩突變,此刻軌跡所需力矩與逆動(dòng)力學(xué)計(jì)算力矩幾乎相等時(shí),機(jī)器人按照期望的軌跡運(yùn)行;在檢測(cè)到外力矩突變時(shí),重新定義采樣時(shí)間以達(dá)到軌跡更正的目的,將重新定義的采樣時(shí)間設(shè)為:
ti=ti-1+fSΔt
(8)
其中,fS為采樣時(shí)間戳的更正函數(shù),通過(guò)重新定義采樣時(shí)間,得到的當(dāng)前關(guān)節(jié)空間的軌跡由q(ti)變?yōu)椋?/p>
qd(ti)=q(tt-1+fSΔt)
(9)
其中,fS分段定義為:
(10)
(11)
其中,α為常數(shù),用于調(diào)整軌跡變更的靈敏度。如圖6所示,為Simulink環(huán)境搭建的基于逆動(dòng)力學(xué)模型的碰撞檢測(cè)與軌跡安全跟蹤算法模塊,其中的軌跡縮放模塊由MATLAB-function編寫,由上述軌跡更正函數(shù)代碼化。
圖6 碰撞檢測(cè)與軌跡安全跟蹤模塊
物理碰撞模型主要由包含Baxter機(jī)器人URDF生成的三維機(jī)器人物理模型和由Simscape Multibody建模工具導(dǎo)入的人體三維實(shí)體模型組成。將人體三維模型與Baxter機(jī)器人模型之間的碰撞接觸過(guò)程構(gòu)建為線性彈簧-阻尼系統(tǒng),用于模擬物理交互過(guò)程。線性彈簧-阻尼器系統(tǒng)主要用于計(jì)算碰撞力,以及計(jì)算由碰撞力施加到Baxter機(jī)器人各關(guān)節(jié)的力矩。計(jì)算碰撞接觸力公式為:
F=K×rP-sign(rP)×D×eV
(12)
其中,F(xiàn)為碰撞接觸力;K為剛度系數(shù);D為阻尼系數(shù);rP為機(jī)器人末端與人體模型左臂手部幾何實(shí)體的相對(duì)距離;eV為機(jī)器人末端速度;sign為符號(hào)函數(shù),它的取值由rP決定。
(13)
通過(guò)計(jì)算的碰撞接觸力F計(jì)算施加到Baxter機(jī)器人各關(guān)節(jié)的力矩公式為:
τc=J×F
(14)
其中,J為Baxter機(jī)器人根據(jù)運(yùn)動(dòng)時(shí)的當(dāng)前關(guān)節(jié)構(gòu)型計(jì)算與人體模型手部發(fā)生碰撞時(shí)的幾何雅克比矩陣。
將此物理碰撞模型添加到計(jì)算力矩控制系統(tǒng)中的Baxter機(jī)器人模型中構(gòu)成Baxter碰撞接觸物理建模模塊;計(jì)算力矩控制器部分保持不變;軌跡規(guī)劃模塊中添加碰撞檢測(cè)與軌跡縮放模塊構(gòu)成期望軌跡與軌跡安全跟蹤模塊。這樣構(gòu)成最終的安全交互仿真系統(tǒng),如圖7所示。
圖7 安全交互仿真系統(tǒng)
運(yùn)行此安全交互仿真系統(tǒng),在仿真可視化窗口獲得的4個(gè)時(shí)間戳對(duì)應(yīng)的機(jī)器人與人體模型之間的狀態(tài)如圖8所示。如圖8a所示,Baxter機(jī)器人左臂還未與人發(fā)生碰撞時(shí),機(jī)器人左臂正常運(yùn)動(dòng);如圖8b所示,當(dāng)機(jī)器人與人手部發(fā)生碰撞后左臂離開(kāi)停止運(yùn)動(dòng);如圖8c所示,當(dāng)用手將Baxter機(jī)器人左臂進(jìn)行反方向推動(dòng)時(shí),Baxter機(jī)器人左臂跟隨改變做出位置調(diào)整,表現(xiàn)出一定的柔順性能;如圖8d所示,當(dāng)人手不與Baxter機(jī)器人接觸時(shí),機(jī)器人恢復(fù)運(yùn)動(dòng)狀態(tài)。這樣在一定程度上可以保持人機(jī)協(xié)作時(shí)機(jī)器人與人和環(huán)境的物理交互安全性,也能根據(jù)人的交互意圖調(diào)整機(jī)器人的運(yùn)動(dòng)。
(a)未碰撞 (b)碰撞時(shí) (c)向移動(dòng)反方向推 (d)不接觸
如圖9所示為一次仿真過(guò)程中記錄下的部分仿真數(shù)據(jù)。機(jī)器人在運(yùn)行過(guò)程中與障礙物發(fā)生碰撞后,接觸力迅速增大,經(jīng)過(guò)微小的震蕩后保持穩(wěn)定的接觸力;同時(shí)外力矩發(fā)生突變,一定震蕩之后也保持穩(wěn)定的外力矩;碰撞后的時(shí)間采樣保持為碰撞時(shí)的時(shí)間戳。
(a)碰撞力仿真數(shù)據(jù)
仿真結(jié)果表明,安全軌跡跟蹤控制的表現(xiàn)比安全級(jí)監(jiān)控運(yùn)動(dòng)停止要好很多,在運(yùn)動(dòng)停止之后不會(huì)反復(fù)地再次嘗試運(yùn)動(dòng),在一些人機(jī)協(xié)作場(chǎng)合可以采用此安全物理交互方法,如人機(jī)協(xié)作實(shí)現(xiàn)裝配任務(wù)過(guò)程中,人類用戶配合時(shí)可以不用擔(dān)心在機(jī)器人的運(yùn)動(dòng)路徑中臨時(shí)放置物體,機(jī)器人也可以在人接觸交互時(shí)做出動(dòng)作調(diào)整。
利用仿真的先驗(yàn)知識(shí)在實(shí)際環(huán)境中能夠快速地實(shí)現(xiàn)同一任務(wù)。為了進(jìn)一步驗(yàn)證Baxter機(jī)器人在安全軌跡跟蹤控制下的物理安全交互能力,利用ROS Toolbox工具箱將Baxter機(jī)器人本體與實(shí)際障礙物和人加入到物理交互過(guò)程中。系統(tǒng)硬件連接圖如圖10所示。
圖10 系統(tǒng)硬件連接
在MATLAB端運(yùn)行安全交互算法,通過(guò)ROS Network將實(shí)際Baxter機(jī)器人端的關(guān)節(jié)運(yùn)動(dòng)狀態(tài)作為反饋信息訂閱到Simulink模型中,再通過(guò)Simulink安全交互算法將關(guān)節(jié)命令發(fā)布到Baxter機(jī)器人端的ROS節(jié)點(diǎn)上,驅(qū)動(dòng)機(jī)器人運(yùn)動(dòng)實(shí)現(xiàn)安全的軌跡跟蹤。
圖11 Simulink物理安全交互控制系統(tǒng)
Baxter機(jī)器人未加入安全軌跡跟蹤時(shí)與環(huán)境障礙物發(fā)生碰撞的運(yùn)動(dòng)現(xiàn)場(chǎng)圖和加入安全軌跡跟蹤控制進(jìn)行物理交互的機(jī)器人運(yùn)動(dòng)現(xiàn)場(chǎng)圖如圖12所示。
(a)未加安全軌跡跟蹤時(shí)的物理交互運(yùn)動(dòng)現(xiàn)場(chǎng)圖
由圖12a可知,未加安全軌跡跟蹤控制時(shí),Baxter機(jī)器人在運(yùn)動(dòng)中與環(huán)境中的障礙物發(fā)生碰撞并未及時(shí)的停止運(yùn)動(dòng),而是繼續(xù)運(yùn)動(dòng)以至于將障礙物推倒;由圖12b所示,加入改進(jìn)后的碰撞檢測(cè)和安全控制后,Baxter機(jī)器人在運(yùn)動(dòng)過(guò)程中檢測(cè)到碰撞發(fā)生后會(huì)及時(shí)停止,并且障礙物并未被推倒。這時(shí)候由人干預(yù)反向推動(dòng)Baxter機(jī)器人的左臂,其左臂也隨之做出調(diào)整,表現(xiàn)出很好的順應(yīng)性。
在兩種情況下進(jìn)行Baxter機(jī)器人物理交互過(guò)程中分別記錄下的兩種關(guān)節(jié)力矩變化如圖13所示。
(a)未加安全軌跡跟蹤左臂關(guān)節(jié)力矩變化
由圖13a所示,機(jī)器人在3.3 s左右時(shí)與障礙物發(fā)生碰撞。以關(guān)節(jié)S0為例,由關(guān)節(jié)傳感器采集到的關(guān)節(jié)力矩逐漸上升;在3.7 s左右關(guān)節(jié)力矩值呈現(xiàn)出下降的趨勢(shì),這是因?yàn)殡S著關(guān)節(jié)力矩的逐漸增大,障礙物在力的推動(dòng)下發(fā)生運(yùn)動(dòng)并使其重心偏離平衡狀態(tài),最終導(dǎo)致障礙物被推倒;在4.2 s左右關(guān)節(jié)力矩表現(xiàn)出急劇下降的趨勢(shì);由于障礙物倒下后的慣性趨勢(shì)使機(jī)器人與障礙物在4.5 s~6.3 s左右未發(fā)生碰撞,關(guān)節(jié)力矩值表現(xiàn)出一定的平穩(wěn)性;在6.3 s之后機(jī)器人再次與倒下的障礙物發(fā)生碰撞使得關(guān)節(jié)力矩值呈現(xiàn)上升的趨勢(shì)。這種類型的物理交互過(guò)程往往會(huì)對(duì)機(jī)器人或環(huán)境造成極大的傷害,在使用機(jī)器人的過(guò)程中應(yīng)避免發(fā)生。由圖13b可以看出,在加入改進(jìn)算法——軌跡安全跟蹤的情況下,機(jī)器人與障礙物在3.8 s左右發(fā)生碰撞。以關(guān)節(jié)S0為例,機(jī)器人關(guān)節(jié)力矩雖然上升,但并未將障礙物推倒;4.8 s左右人為干預(yù)機(jī)器人運(yùn)動(dòng),在安全軌跡跟蹤控制的情況下,由于機(jī)器人的關(guān)節(jié)柔性和人為干預(yù)力的非線性變化,關(guān)節(jié)力矩值表現(xiàn)出非線性的波動(dòng),但機(jī)器人表現(xiàn)出更好的順應(yīng)性。
安全軌跡跟蹤控制在物理碰撞及人為干預(yù)時(shí)采樣時(shí)間戳的變化如圖14所示??梢钥闯觯瑱C(jī)器人在3.8 s左右與障礙物發(fā)生了碰撞后,軌跡采樣時(shí)間戳保持不變,因此機(jī)器人處于停止運(yùn)動(dòng)的狀態(tài)中;4.8 s之后,人為干預(yù)反向推動(dòng)機(jī)器人運(yùn)動(dòng),軌跡采樣時(shí)間戳反向采樣,使得機(jī)器人方向運(yùn)動(dòng)做出調(diào)整。在5.3 s之后使機(jī)器人保持當(dāng)前位置;在6.1 s之后撤回人對(duì)機(jī)器人的干預(yù),軌跡采樣時(shí)間恢復(fù)使得機(jī)器人正常運(yùn)動(dòng)。
圖14 人為干預(yù)時(shí)采樣時(shí)間戳
機(jī)器人安全物理交互是開(kāi)展機(jī)器人對(duì)復(fù)雜動(dòng)態(tài)環(huán)境和任務(wù)的主動(dòng)感知、理解與自主學(xué)習(xí)等相關(guān)研究的一部分。使機(jī)器人能實(shí)時(shí)理解人的行為意圖,實(shí)現(xiàn)機(jī)器人融入人的正常生產(chǎn)、生活環(huán)境以及與人合作交互,具備人類移動(dòng)能力與靈巧作業(yè)以及智能決策能力,是解決機(jī)器人與人、環(huán)境共融的主要途徑。本文提出在進(jìn)行機(jī)器人的物理安全交互研究時(shí),通過(guò)Simscape工具箱在仿真環(huán)境中構(gòu)建物理交互模型,并設(shè)計(jì)安全交互控制算法進(jìn)行物理交互仿真研究,最后在仿真驗(yàn)證的基礎(chǔ)上通過(guò)ROS Toolbox工具箱進(jìn)行算法部署、測(cè)試驗(yàn)證。實(shí)驗(yàn)結(jié)果表明基于仿真環(huán)境實(shí)現(xiàn)機(jī)器人與人進(jìn)行物理安全交互研究的可行性,利用ROS Toolbox可以在實(shí)際環(huán)境中快速實(shí)現(xiàn)相同任務(wù),大大提高研究開(kāi)發(fā)效率。