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