?

面向虛擬維修的多點碰撞虛擬手研究

2019-07-17 01:56姚壽文胡子然張家豪劉智濛常富祥
關鍵詞:手型碰撞檢測手掌

姚壽文,胡子然,王 瑀,張家豪,劉智濛,丁 佳,常富祥

(北京理工大學 機械與車輛學院, 北京 100081)

1 背景

在傳統的裝備維修工作中,維修工具、維修場地、維修器材以及維修人員等都需要大量的成本。隨著裝備的復雜程度及精密程度的逐步提高,維修難度也隨之加大。為保證高效的維修效率,對維修人員技術水平的要求也越來越高。虛擬維修(virtual maintenance,VM)是虛擬現實技術應用在維修性工程中的新興技術手段[1],不僅可以保證維修的真實感,還能極大地節約成本,使維修人員在虛擬的環境中更好地進行維修訓練,并提升操作技能[2]。

隨著虛擬現實技術[3]的發展,出現了數據手套[4]、Kinect 3D體感攝影機[5]等交互設備,可以跟蹤并采集人的肢體數據,提高交互的逼真程度。其中,手是人體最靈活的器官,在裝備維修中,離不開單手以及雙手對不同種類零部件的拆卸安裝[6],以及用手抓取工具進行維修操作。將虛擬手引入虛擬維修中進行維修拆裝[7],可以使維修人員高效地熟悉裝備維修流程,更好地認知維修操作中的具體動作,完成復雜的維修操作[8]。其中,準確獲取人手信息以及提升手與零件的交互性能是目前的研究難點。諸如數據手套并不能直接獲取人手的姿態參數,Kinect雖能對人肢體進行跟蹤,但體感交互性能較差。美國 LEAP 公司研發的 Leap Motion 體感控制器為解決該問題提供了可能。Leap Motion體感控制器可以專門捕獲手部運動從而直接獲取人手的姿態參數[9]。

快速而精確的碰撞檢測[10]對提升虛擬維修的沉浸感[11]和交互的逼真感[12]起著至關重要的作用。虛擬環境中的碰撞檢測問題有著較長的研究歷史,目前已有很多較成熟的碰撞檢測算法,例如基于包圍盒的碰撞檢測算法、基于距離計算的碰撞檢測算法、基于圖像處理的碰撞檢測算法[13]、基于幾何約束和軸向包圍盒的方法[14]。這些碰撞檢測算法多是基于層次包圍盒法[15],適用于剛性物體間的碰撞[16],沒有對手進行幾何分割,無法根據掌骨、指骨的物理特點對虛擬手與零件和工具的碰撞檢測做有針對性的研究。

在裝備(例如軍用裝甲車輛[17]綜合傳動裝置)維修中,存在零部件數量繁多、型號規格類似、空間布局緊湊、零件特征復雜等情況,在實際維修過程中需要采用不同的手勢對不同的零件和工具進行操作。因此,在虛擬維修中,需要虛擬手采取不同的手勢拾取不同的零件。而目前虛擬手[18]與零件的交互手勢[19]多為虛擬手抓取規則[20]方面的研究,如基于點接觸平面的法矢的抓取規則、基于有效閾值角度的抓取規則,以及這些規則的變形[21]。這些抓取規則使虛擬手的抓取動作過于單一,不能結合手掌實現對零件的抓握,也不能實現雙手協同操作搬動較大零件。在利用骨骼動畫技術驅動虛擬手運動[22]時,由于虛擬手的手掌和手指是剛體模型,無法實現虛擬手與模型的緊密貼合而抓穩零件,更不能通過碰撞檢測技術提升維修操作的沉浸感[23]。這些都造成虛擬手不夠靈巧且手勢單一,虛擬維修操作不夠真實穩定。為了完善虛擬手功能,使虛擬手在虛擬維修操作中更加貼近實際情況,需要研究一種適應虛擬維修的虛擬手模型的新方法,并運用此方法實現虛擬手拾取零部件和工具進行虛擬維修操作。

本文以Leap Motion獲取的手部數據為基礎,在對虛擬維修中的手勢分類的基礎上,建立了多種虛擬手型模型,基于凸體最短距離研究了虛擬手與被抓對象的多點碰撞檢測方法。在Unity3D平臺中開發了相應模塊,以某綜合傳動裝置為維修對象進行了零件拾取實驗,結果表明:該虛擬手可以更加真實地在虛擬環境中拾取零件,豐富了虛擬維修的人機交互性能,滿足了虛擬維修中對虛擬手的需求。

2 虛擬手建模

人手是一個靈活而復雜的多肢節系統,由手掌、手腕和手指組成。手骨共有27塊,包括8塊腕骨、5塊掌骨和14塊指骨。骨之間由不同的關節連接,關節具有移動自由度或轉動自由度,可以做屈伸、收展或旋轉運動。結合人手實際的維修操作過程,對拾取零件或工具的動作進行分解,分析了虛擬手建模、碰撞檢測、拾取零件或工具所需的手部數據。本文采用Leap Motion設備提取人手數據進行建模,具體數據如下:① 手掌坐標(palm position)數據:手掌中心到Leap設備原點的距離;② 手掌法線方向(palm normal)數據:與手掌所形成的平面的垂直向量,其方向指向手掌內側;③ 手掌寬度(palm width)數據:手掌的寬度;④ 手掌掌骨位置坐標(palm bone position)數據:手掌掌骨到Leap設備原點的距離;⑤ 手掌方向(palm direction)數據:手掌中心指向手指的向量;⑥ 手指尖端坐標(tip position)數據:手指尖端的位置;⑦ 手指尖端長度(bone length)數據:手指尖端骨頭的可視長度;⑧ 手指尖端寬度(bone width)數據:手指尖端骨頭的平均寬度;⑨ 手指尖端方向(bone direction)數據:一個方向與指尖指向相同的單位向量。

2.1 適應虛擬維修的手勢分類

在裝備維修中,維修人員的維修方式一般分為兩類:① 徒手維修,包括單手操作零件和雙手協同操作零件;② 使用工具輔助維修。實際維修操作中,根據零件或工具(以下簡稱被抓對象)的幾何和質量特征的不同,維修人員采用不同的手勢抓取物體:① 捏手勢:大拇指和食指與零件接觸進行捏??;② 抓手勢:大拇指、食指、中指與零件接觸抓起零件;③ 雙手搬手勢:左右手協同操作將零件搬起;④ 握手勢:手指與手掌協同操作拾取零件。虛擬維修手勢分類如圖1所示。

圖1 虛擬維修手勢分類

2.2 虛擬手型模型

為使虛擬手的維修動作與人手的維修動作匹配,需將人手關鍵點姿態數據實時傳遞給虛擬手模型,實現虛擬手與人手關鍵點姿態的一一對應,驅動虛擬手模型進行相應的維修動作,實現虛擬維修動作與人手維修動作的實時同步。為使虛擬手更加真實地拾取物體,避免穿透,根據虛擬維修手勢分類,本文建立了4種虛擬手型模型。

|L1-Lb|≤ε

(1)

圖2 捏手勢(點線模型)

|L2-Lb|≤ε

(2)

圖3 抓手勢(點面模型)

|L3-Lb|≤ε

(3)

圖4 雙手搬手勢(點體模型)

4) 握手勢(球模型)

采用握手勢拾取零件,此時,手掌的一部分與零件貼合,可以近似認為手型近似球的一部分,手型半徑與零件徑向距離的一半相等,中心坐標在零件或工具軸線上,且平行于手掌的方向與零件或工具軸線方向平行?;诖竽粗钢讣馕恢米鴺薚1、食指指尖位置坐標T2、中指指尖位置坐標T3、無名指指尖位置坐標T4以及手掌中心坐標P的數據,建立過指尖和掌心的虛擬手型球模型,如圖5所示。該球模型的數據結構為球心O和半徑r。圖5中零件(用線框表示)的徑向距離為Lb,則虛擬手與零件接觸需滿足r與Lb的一半之差的絕對值小于等于ε,即

(4)

圖5 握手勢(球模型)

2.3 虛擬手碰撞檢測

碰撞檢測是對兩個物體的位置關系進行計算,判斷它們在空間上是否存在交集,避免虛擬手和虛擬零件穿透。在二維空間中,由于物體都處于同一平面,碰撞檢測難度較低。在三維空間,多數進行碰撞檢測的物體的幾何形狀較為復雜,若直接進行碰撞檢測,會產生較大的計算量,大大降低了效率。包圍盒方法[23]用簡單凸體(即包圍盒)代替復雜的被檢測物體,雖然無法達到直接對被檢測物體進行碰撞檢測時的精確,但大大降低了計算量,提高了效率,因此是目前主要的研究方法。

包圍盒決定碰撞發生時的邊界條件。根據手指和手掌的幾何特點,以手掌坐標數據、手掌方向數據、手掌寬度數據以及手掌掌骨位置坐標數據為基礎,建立包含整個手掌模型且體積最小的AABB包圍盒,并根據手指模型的輪廓特征建立膠囊包圍盒。根據被抓對象的幾何特征的不同,本文構建了AABB包圍盒和膠囊包圍盒。

虛擬手與被抓對象的碰撞檢測可視為包圍盒之間的碰撞。對于捏、抓手勢以及雙手搬手勢,僅有手指與被抓對象的接觸碰撞,即手指膠囊包圍盒與被抓對象包圍盒的碰撞。對于握手勢,手指和手掌都與被抓對象進行接觸碰撞,即手掌包圍盒與手指膠囊包圍盒同時與被抓對象包圍盒的碰撞。本文中虛擬手與被抓對象的碰撞檢測算法采用實時計算手掌包圍盒與被抓對象包圍盒之間的最短距離,或對手指包圍盒與被抓對象包圍盒之間的最短距離進行檢測?;诖?,碰撞檢測可以分解為以下兩種基本問題:

1) AABB包圍盒與膠囊包圍盒的距離計算。如圖6所示的膠囊包圍盒半徑為rc,軸段為MN,分析計算過程如下:

當膠囊包圍盒與AABB包圍盒發生碰撞時,可以簡化為AABB包圍盒上的一些點進入膠囊包圍盒的內部,并且這些點與膠囊包圍盒軸段MN之間的距離小于半徑rc,所以相交測試相當于測試AABB包圍盒到膠囊包圍盒軸段MN的最短距離。設最短距離為d,若d≤rc,則兩個物體之間發生碰撞;若d>rc,則兩個物體不相交。

圖6 膠囊包圍盒與AABB包圍盒的碰撞檢測

2) 膠囊包圍盒與膠囊包圍盒的距離計算。如圖7所示,兩個膠囊包圍盒的半徑分別為rc和rc1,軸段分別為MN和M1N1。兩個膠囊包圍盒發生碰撞時,可以簡化為第1個膠囊包圍盒上的一些點進入第2個膠囊包圍盒的內部,并且這些點中的每一個與兩個膠囊包圍盒軸段MN和軸段M1N1之間的距離之和小于這兩個膠囊包圍盒的半徑之和rc1+rc。因此,相交測試相當于測試軸段MN和軸段M1N1的最短距離。設最短距離為d′,兩個膠囊包圍盒的半徑之和rc1+rc為r′,將距離d′與兩個膠囊包圍盒半徑之和r′做比較,d′與r′的關系代表著兩個膠囊包圍盒之間的位置關系:若d′≤r′,兩個膠囊包圍盒之間發生碰撞;若d′>r′,兩個膠囊包圍盒不相交。

圖7 兩個膠囊包圍盒之間的距離計算

結合虛擬手型模型,本文提出虛擬手與被抓對象的多點碰撞檢測流程,如圖8所示。對于捏、抓手勢,以及雙手搬動零件,僅有虛擬手的手指與零件發生碰撞。若手指包圍盒與被抓對象包圍盒相交測試成功,則碰撞檢測成功。對于握手勢,則需要依賴手指與手掌的協同操作,因此握手勢抓取需要進行手掌AABB包圍盒、手指膠囊包圍盒與被抓對象包圍盒的相交測試。若手掌、手指包圍盒與被抓對象包圍盒的相交測試都成功,則碰撞檢測成功。

圖8 虛擬手與被抓對象的多點碰撞檢測流程

2.4 虛擬手拾取零件流程

在虛擬維修環境中,維修人員確定有可抓握的目標對象后,根據被抓對象的幾何、質量特點,決定采用單手還是雙手操作目標零件;然后調整手勢,通過本文2.2節所建立的虛擬手型和被抓對象進行多點碰撞檢測,若碰撞檢測成功,則虛擬手抓取物體,否則維修人員調整手勢。虛擬手拾取零件或工具方法如圖9所示。

圖9 虛擬手拾取零件或工具方法

3 虛擬手拾取零件或工具試驗

基于Leap Motion設備,在Unity3D平臺中進行虛擬手建模及功能開發,實現虛擬手拾取零件和工具功能,虛擬手抓取與釋放零件流程如圖10所示。

圖10 虛擬手抓取與釋放零件流程

以某綜合傳動裝置為例,其零件種類如表1所示。該虛擬手模型對同一個零件可采用不同手勢進行拾取,操作人員能根據零件的不同采用自己習慣且科學合理的手勢拾取零件,滿足維修中人手操作零件的要求。

表1 某綜合傳動裝置零件種類

綜合傳動裝置中質量小、軸向尺寸短、外徑較小的零件(如擋圈、螺釘、螺母、墊片、隔環等零件),維修人員可采用捏手勢和抓手勢進行拾取。圖11、12分別為虛擬手采用捏/抓手勢拾取擋圈。

圖11 虛擬手采用捏手勢拾取擋圈

圖12 虛擬手采用抓手勢拾取擋圈

對于質量較大、軸向尺寸較小且外徑不大的零件(如軸承),維修人員可采用抓手勢和握手勢進行拾取,如圖13、14所示。

圖13 虛擬手采用抓手勢拾取軸承

圖14 虛擬手采用握手勢拾取軸承

對于被動齒輪等零件,其質量較大,維修人員可采用握手勢和雙手搬手勢進行拾取,如圖15、16所示。

圖15 虛擬手采用握手勢拾取被動齒輪

圖16 虛擬手采用雙手搬手勢搬動被動齒輪

對于質量更大且外徑較大的零件(如離合器被動齒輪),維修人員采用雙手搬手勢進行拾取,如圖17所示。

對于傳動軸零件以及帶有手柄的工具(如扳手),虛擬手使用手指與手掌協同操作的握手勢拾取零件或扳手,如圖18所示。

圖17 雙手協同操作搬起離合器被動齒輪

圖18 虛擬手采用握手勢拾取零件或工具

上述試驗結果表明:虛擬手可以對同一零件和工具采用不同手勢拾取,滿足了維修人員采用符合自身習慣且合理的手勢拾取零件或工具的需求,提升了虛擬維修中的人機交互性能,可更好地進行人員的維修訓練,提升操作技能。

4 結束語

在虛擬維修人機交互中,虛擬手需要滿足虛擬維修對手的功能需求,使其貼近于實際維修效果,增強虛擬維修的沉浸感。本文以手掌和手指數據為基礎,結合虛擬維修手勢分類,建立了虛擬手型模型,采用計算兩個凸體之間最短距離的相交測試方法,研究了虛擬手與零件或工具的多點碰撞檢測方法。在此基礎上,制定了虛擬手拾取零件或工具的流程,以Unity3D為開發平臺,實現了虛擬手拾取和釋放零件的功能,以某綜合傳動裝置零件作為維修對象,進行了不同手勢拾取零件或工具的試驗。試驗結果表明:該虛擬手可以滿足虛擬維修中對虛擬手拾取零件的需求,更加貼近于實際維修情況,豐富了虛擬維修及培訓中的人機交互功能,可以更好地鍛煉維修人員的操作技能。

猜你喜歡
手型碰撞檢測手掌
基于動力學補償的機器人電機力矩誤差碰撞檢測
全新預測碰撞檢測系統
白石塔
一個電話耳邊響
基于BIM的鐵路信號室外設備布置與碰撞檢測方法
攤開手掌
手掌上的童話
二胡演奏中左手固定手型的三個階段
把手掌放在畫紙上描一描,畫出一只考拉吧
BIM技術下的某辦公樓項目管線碰撞檢測
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合