梁劍斌,何漢武 , ,吳悅明,胡兆勇,徐梓麒
(1.廣東工業(yè)大學(xué) 機(jī)電工程學(xué)院,廣州 510006;2.廣東工貿(mào)職業(yè)技術(shù)學(xué)院,廣州 510006)
虛擬裝配技術(shù)已廣泛應(yīng)用在人工機(jī)械裝配培訓(xùn)課程中[1],該技術(shù)可有效減少零部件損耗、培訓(xùn)成本[2-3]。虛擬裝配系統(tǒng)的人機(jī)交互是提升培訓(xùn)效果的關(guān)鍵,為此研究者將自然虛擬裝配操作作為研究目標(biāo)。其通用的研究方法首先采用攝像頭[4]、數(shù)據(jù)手套[5]、體感傳感器[6]等設(shè)備采集操作者的手部甚至全身姿態(tài)信息,并把該信息與虛擬環(huán)境中的虛擬替身作綁定;接著根據(jù)虛擬替身與虛擬物體之間的相互位姿、碰撞等信息識(shí)別操作者的虛擬操作;最后根據(jù)操作修改虛擬場景內(nèi)容并輸出場景畫面以完成交互。胡弘等以虛擬手指尖與虛擬物的距離為特征,實(shí)現(xiàn)單手抓取,并以此構(gòu)建適用于航天員訓(xùn)練的虛擬裝配交互模型[7]。包文運(yùn)等以虛擬手與虛擬物的接觸點(diǎn)計(jì)算為基礎(chǔ),構(gòu)建虛擬物空間位姿自適應(yīng)調(diào)整算法,實(shí)現(xiàn)三維模型抓取、推、抬等單手交互操作的精確模擬[8]。緒玉花等將機(jī)械零件進(jìn)行歸類,并為每類零件設(shè)計(jì)單獨(dú)的單手抓取手勢,實(shí)現(xiàn)虛擬裝配交互性的提高[5]。熊巍等以拇指尖與其他指尖的距離為特征,建立單手抓取手勢識(shí)別算法,并在此基礎(chǔ)上根據(jù)整個(gè)手部運(yùn)動(dòng)趨勢識(shí)別3 種裝配手勢,細(xì)化了虛擬操作表達(dá)[9]。袁偉等以虛擬手形狀與虛擬手物距離為特征,實(shí)現(xiàn)抓握、捏取、托舉等單手裝配手勢識(shí)別[10]。Ong 等將裝配操作時(shí)手部形態(tài)定義為相對固定形狀,實(shí)現(xiàn)基于拇指與食指碰撞檢測的單手虛擬抓取[4];并在此基礎(chǔ)上加入虛擬操作力反饋,使得交互更為真實(shí)[11]。
從實(shí)際執(zhí)行的角度看,人工機(jī)械裝配操作是一個(gè)基于操作者手部操作的流程化工作,其一般工作流程可用以下循環(huán)表達(dá):
1)開始階段:抓取當(dāng)前工序所需零部件或工具;
2)執(zhí)行階段:按照工藝要求執(zhí)行操作;
3)結(jié)束階段:操作達(dá)到要求,執(zhí)行下一步操作。
綜合以上內(nèi)容,現(xiàn)有自然虛擬裝配操作研究多集中裝配操作的在開始階段,所使用的交互模型仍存在以下不足:
1)對雙手協(xié)同操作關(guān)注較少,不能表達(dá)部分常見雙手裝配操作,例如雙手搬動(dòng)大型零部件、雙手使用套筒扳手等;
2)缺少單步操作工作量描述,不能完整表達(dá)需重復(fù)累積完成的操作,例如:扳手繞螺紋軸線旋轉(zhuǎn)一定累積角度以完成螺紋連接、錘頭重復(fù)多次打擊齒輪以完成過渡配合齒輪壓入等。
針對自然虛擬裝配操作研究存在不足,本文提出面向增強(qiáng)現(xiàn)實(shí)的裝配操作感知模型,實(shí)現(xiàn)人工機(jī)械裝配過程參數(shù)化描述。針對模型對虛擬物體位姿求解的需求,提出基于裝配運(yùn)動(dòng)特征的位姿計(jì)算方法。針對模型的關(guān)鍵狀態(tài)求解,給出其計(jì)算方法。以汽車變速箱為例,開發(fā)應(yīng)用案例驗(yàn)證操作感知模型有效性。
由于機(jī)械裝配是基于裝配工藝的流程化操作,因此定義增強(qiáng)現(xiàn)實(shí)裝配操作感知模型Mop由s步裝配操作mops組成。mops包含元素有:真實(shí)手部集合H、被操作的虛擬工具及零部件(以下簡稱:虛擬物體)集合VO、VO在世界坐標(biāo)系ow-xwywzw下的幾何約束集合FC、VO在ow-xwywzw下的起始與目標(biāo)位姿集合DM、操作工作量集合cv和時(shí)序組成t,Mop為
式中:t,s∈N。
H是Mop內(nèi)唯一實(shí)物元素,表達(dá)式如式(2)所示。單個(gè)手部姿態(tài)hi中包含元素有:手部坐標(biāo)系oih-xihyihzih、位姿矩陣Mih、指尖點(diǎn)集pih、手指關(guān)節(jié)彎曲角度集合αih。
式中:i為手部標(biāo)識(shí)序號(hào),i={0, 1},h0為左手,h1為右 手;pih={pihm,m={1, ···, 5}};αih={αihn,αihn∈[π∕2,π],n={1, ··· ,15}}。
以左手為例,hi中各個(gè)元素與手部的對應(yīng)關(guān)系圖1 所示。圖中,vihz為oih-xihyihzih在zih方向上的單位向量。
圖1 手部元素與真實(shí)手部的對應(yīng)關(guān)系Fig.1 Correspondence between hand elements and a real hand
VO表達(dá)式如式(3)所示,虛擬物體voj包含元素有:物體坐標(biāo)系ojvo-xjvoyjvozjvo、位姿矩陣Mjvo、包圍盒集合cbjvo。
式中:j為虛擬物體標(biāo)識(shí)序號(hào),其取值范圍不固定,當(dāng)操作所需的虛擬物體只有1 個(gè)時(shí),j={0},當(dāng)操作所需的虛擬物體有兩個(gè)時(shí),j={0,1}。
由于FC和DM包含的元素與voj是一一對應(yīng),因此FC和DM的元素個(gè)數(shù)取決于j的取值范圍。
FC表達(dá)式為
單個(gè)虛擬物體運(yùn)動(dòng)約束fcj包含元素有:固定點(diǎn)pjfc、平移軸向vjfc、旋轉(zhuǎn)狀態(tài)qjfc。
DM表達(dá)式為
單個(gè)虛擬物體位姿參數(shù)集合dmj包含元素有:目標(biāo)坐標(biāo)系ojdm-xjdmyjdmzjdm、初始位姿Mjdm0、目標(biāo)位姿Mjdm、zjdm方向的誤差范圍hjdm、ojdm-xjdmyjdm平面內(nèi)的誤差半徑rjdm、旋轉(zhuǎn)誤差角度αjdm。
cv表達(dá)式為
其包含元素有:操作所需累積次數(shù)ncv、操作所需旋轉(zhuǎn)角度αcv。
t的作用是記錄mops操作時(shí)長,設(shè)變量e為文中除t外的任意變量,則e在t時(shí)刻的取值記為et。
Mop內(nèi)各元素在ow-xwywzw內(nèi)位置關(guān)系如圖2所示。由圖2 可知,H和VO是隨著t變化而變化,需要實(shí)時(shí)求取。FC、DM和cv則是常量集合,其取值與當(dāng)前操作的工藝需求相關(guān)。除了手部和虛擬物體的運(yùn)動(dòng)感知,Mop還需要對操作進(jìn)程進(jìn)行感知。在Mop內(nèi),mops根據(jù)序號(hào)s順序執(zhí)行。而在mops內(nèi),運(yùn)行流程是隨著t的增加循環(huán)執(zhí)行,每次循環(huán)流程如圖3 所示。
圖2 裝配操作感知模型元素空間關(guān)系Fig.2 Spatial relationship among elements in the assembly operation perception model
圖3 單步操作在t 時(shí)刻工作流程Fig.3 Workflow of single operation at time t
圖3 中,qGj為voj的抓取狀態(tài),取值范圍為{0,1,2}。0 代表未被抓取,1 代表被單手抓取,2 代表被雙手抓取。
qN為所有voj的到位狀態(tài),取值范圍為{0,1}。0 代表未到位,1 代表到位。
qA為操作完成狀態(tài),取值范圍為{0,1}。0 代表未完成,1 代表完成。
由上述可知,Mop運(yùn)行關(guān)鍵是求解真實(shí)手部H、被操作的虛擬物體VO和模型的關(guān)鍵狀態(tài)qGj、qN和qA。其中,H求解的相關(guān)理論已在作者前期研究[12]中詳細(xì)闡述。因此,下文將著重闡述VO和模型關(guān)鍵狀態(tài)的求解方法。
為了簡化下文部分公式復(fù)雜度,定義以下符號(hào):
定義1 定義θ(a,b)為三維空間內(nèi)單位向量a、b的夾角[13]。
定義2 定義v⊥(a,b)為三維空間內(nèi)與單位向量a、b的向量積[13]共向的單位向量。
定義3 根據(jù)三維變換矩陣性質(zhì)[14],定義M(R|t)為三維變換矩陣M的擴(kuò)展表達(dá);其中,t為M內(nèi)含的平移向量,R為M內(nèi)含的旋轉(zhuǎn)矩陣。
定義4 定義R(v,θ)為三維空間內(nèi)任意點(diǎn)繞單位向量v按右手方向旋轉(zhuǎn)角度θ的旋轉(zhuǎn)矩陣,其計(jì)算方法可由羅德里格斯旋轉(zhuǎn)公式[15]求出。
定義5 定義Rvr(a,b)為三維空間內(nèi)單位向量a變換為b的旋轉(zhuǎn)矩陣,其計(jì)算公式為
定義6 設(shè)a1,a2和b1,b2為三維空間內(nèi)兩組互相垂直的單位向量組,定義Rcr(a1,a2,b1,b2)為a1,a2變換為b1,b2的旋轉(zhuǎn)矩陣,計(jì)算公式為
定義7 設(shè)a、b為三維空間內(nèi)單位向量,b為平面P的法向量,定義vPrj(a,b)為與a在P上的投影共向的單位向量,其計(jì)算公式為
定義8 在三維空間內(nèi),設(shè)p為任意有向線段pp'的起點(diǎn),v為與共向單位向量,α為繞v右手旋轉(zhuǎn)角度,定義MR(p,v,α)為三維空間內(nèi)任意點(diǎn)繞pp'旋轉(zhuǎn)的變換矩陣,其計(jì)算公式為
式中:E為3 × 3 單位矩陣;0=[0 0 0]T。
真實(shí)機(jī)械裝配中,工具或零部件運(yùn)動(dòng)的特點(diǎn):
1)大多需要手部直接操作,這意味著被手部操作的工具或零部件運(yùn)動(dòng)中心點(diǎn)相對自身并不固定,與手部抓取位置相關(guān);
2)在手部操作過程中,手部與被操作工具或者零部件一般保持相對靜止;
3)由于機(jī)械裝配體涉及大量基于軸向的定位與緊固,因此工具或零部件運(yùn)動(dòng)經(jīng)常受基于軸線的約束,例如:螺釘繞螺紋軸線緊固或放松、軸承沿軸頭軸向壓入等。
根據(jù)以上特點(diǎn),提出一種基于裝配運(yùn)動(dòng)特征的位姿變化計(jì)算方法以描述voj在ow-xwywzw內(nèi)的運(yùn)動(dòng)。
因此,Mjvo的求解可轉(zhuǎn)化為的求解。
從t-1 時(shí)刻到t時(shí)刻,假設(shè)在ow-xwywzw內(nèi)存在點(diǎn)phvj、單位向量vhvj,使得過phvj,方向?yàn)関hvj的直線與ojvo-xjvoyjvozjvo相對靜止,即phvj和vhvj滿足
則稱phvj、vhvj為voj在t時(shí)刻的運(yùn)動(dòng)特征點(diǎn)和運(yùn)動(dòng)特征向量。
假設(shè)ow-xwywzw內(nèi)存在繞vhvj旋轉(zhuǎn)角度αhvj滿足式(13),則稱αhvj為voj在t時(shí)刻運(yùn)動(dòng)特征角。
phvj、vhvj、αhvj合稱為voj在t時(shí)刻的裝配運(yùn)動(dòng)特征。根據(jù)裝配運(yùn)動(dòng)特征定義,表達(dá)為
在進(jìn)行計(jì)算前,需要對手部交互進(jìn)行一定限制:
1)所有虛擬物體必須由手部抓取物體后帶動(dòng);
2)在抓取物體后,手指姿態(tài)無明顯變化。
根據(jù)以上限制,只有手部整體位姿變化可引起虛擬物體位姿變化。另外,由于部分操作對虛擬物體存在幾何約束,需要根據(jù)約束類型對虛擬物體運(yùn)動(dòng)方式進(jìn)行歸類。根據(jù)fcj各個(gè)元素取值,可使voj執(zhí)行各種運(yùn)動(dòng)方式,具體對應(yīng)關(guān)系如表1 所示。下面針對各種運(yùn)動(dòng)方式,給出裝配運(yùn)動(dòng)特征計(jì)算方法。
表1 幾何約束與虛擬物體運(yùn)動(dòng)方式的對應(yīng)關(guān)系Tab.1 Correspondence between geometric constraints and virtual object movement modes
2.2.1 自由移動(dòng)
對于單手抓取物體的自由移動(dòng),裝配運(yùn)動(dòng)特征計(jì)算方法式為:
對于雙手抓取物體的自由移動(dòng),裝配運(yùn)動(dòng)特征計(jì)算方法為:
其中:β0和β1計(jì)算方法為
2.2.2 沿軸線移動(dòng)
對于沿軸線移動(dòng),phvj和vhvj可用式(18)表達(dá)。因此,只需根據(jù)qGj和pjfc計(jì)算phvj和αhvj。
式中τ為位移系數(shù),計(jì)算方法為
αhvj計(jì)算方法為
2.2.3 繞固定點(diǎn)轉(zhuǎn)動(dòng)
繞固定點(diǎn)轉(zhuǎn)動(dòng)一般用于描述螺紋緊固或放松操作時(shí)扳手的運(yùn)動(dòng)。在實(shí)際使用扳手時(shí),通常是右手主發(fā)力,所以繞固定點(diǎn)轉(zhuǎn)動(dòng)的裝配運(yùn)動(dòng)特征計(jì)算只有右手參與,其計(jì)算方法為:
由于主流三維引擎已集成成熟碰撞檢測算法,所以僅對碰撞狀態(tài)進(jìn)行定義。
在ow-xwywzw空間內(nèi),設(shè)pw為任意點(diǎn),cb為任意包圍盒集合。記q(pw,cb)為pw與cb的碰撞狀態(tài),取值范圍為{0,1}。0 代表為碰撞,1 代表碰撞。
設(shè)g(hi,voj)為hi抓取voj的狀態(tài),其計(jì)算依據(jù)是拇指指尖與任一另外指尖或掌心與任一指尖是否同時(shí)碰撞到虛擬物體,計(jì)算方法為
對于qGj的計(jì)算,需要根據(jù)兩個(gè)手部對該物體的抓取狀態(tài)判斷,其計(jì)算方法為
設(shè)voj到位狀態(tài)為qNj,其計(jì)算依據(jù)是Mjvo與Mjdm重合度。由于三維變換可分解為旋轉(zhuǎn)和平移,因此使用平移重合狀態(tài)qjND和旋轉(zhuǎn)重合狀態(tài)qjNR以計(jì)算qNj。qNj計(jì)算方法為
qjND計(jì)算依據(jù)是判斷ojvo是否進(jìn)入特定空間內(nèi)。當(dāng)hjdm有取值,這個(gè)空間為圓柱體;當(dāng)hjdm無取值,這個(gè)空間為球體。qjND計(jì)算公式為
qjNR計(jì)算依據(jù)是ojvo-xjvoyjvozjvo與ojdm-xjdmyjdmzjdm坐標(biāo)軸方向夾角小于αjdm,其計(jì)算公式為
式中:vjdmx、vjdmy、vjdmz為ojdm-xjdmyjdmzjdm坐標(biāo)軸方向上單位向量;vjvox、vjvoy、vjvoz為坐標(biāo)軸ojvo-xjvoyjvozjvo方向上單位向量。
qN的判斷依據(jù)是所有voj是否到位,其計(jì)算方法為
設(shè)VO在操作中累積有效旋轉(zhuǎn)角度為 αtr,累積有效操作次數(shù)為ntr,則qA計(jì)算方法為
ntr的本質(zhì)是記錄當(dāng)前操作qN的觸發(fā)次數(shù),計(jì)算方法不作詳述。 αtr的計(jì)算方法為:
式中:βr為voj從t-1 到t繞vjdmz旋轉(zhuǎn)角度;αr為voj旋轉(zhuǎn)方向系數(shù)。
為驗(yàn)證增強(qiáng)現(xiàn)實(shí)裝配操作感知模型的可行性,開發(fā)了以某汽車變速箱為裝配對象的維修培訓(xùn)案例,變速箱虛擬模型如圖4 所示。圖5 展示驗(yàn)證案例的交互場景。場景的正上方和正面放置了RGBD 相機(jī)和彩色攝像頭,用于采集操作者手部動(dòng)作。RGBD 相機(jī)可同時(shí)采集深度圖像和彩色圖像;深度圖像分辨率512 × 424,彩色圖像分辨率為1 920 × 1 080,采集速率皆為30 fps。彩色攝像頭采集圖像的分辨率為1 280 × 720,采集速率為30 fps。在實(shí)際使用時(shí),操作者需要佩戴光學(xué)透視式頭戴顯示器以接收系統(tǒng)反饋。頭戴顯示器的視場角為70° × 50°,投影顯示屏分辨率為1 920 × 1 080。系統(tǒng)計(jì)算機(jī)硬件配置為:CPU 為Intel i7-10700,顯卡為Nvidia RTX2070 Super,內(nèi)存容量32G。
圖4 汽車變速箱三維模型Fig.4 3D model of automobile gearbox
圖5 交互場景實(shí)景圖Fig.5 An interactive scene
該變速箱裝配所用到的裝配操作類型有:放置、錘擊、壓入、懸停以及扭動(dòng)扳手。
放置是最常用的操作類型,主要實(shí)現(xiàn)零部件和工具定位。圖6 展示了雙手放置蓋板的操作。
圖6 放置操作過程Fig.6 Process of set operation
蓋板放置操作需使用參數(shù)的設(shè)置如表2 所示。從參數(shù)取值可知,該操作僅需操作單個(gè)物體;物體運(yùn)動(dòng)無約束;物體中心到達(dá)指定位置并且姿態(tài)正確即可完成操作。
表2 放置操作參數(shù)Tab.2 Parameters of set operation
錘擊常用于過盈配合零件的裝配,實(shí)現(xiàn)操作者錘擊動(dòng)作感知。圖7 展示了使用錘擊打入齒輪。對于真實(shí)錘擊操作,操作者應(yīng)一手將墊木固定在零件上,另一手持錘子重復(fù)打擊墊木以完成零件裝配。
圖7 錘擊操作過程Fig.7 Hammering operation process
因此,錘擊打入齒輪操作需使用參數(shù)的設(shè)置如表3 所示。從參數(shù)取值可知,該操作需每個(gè)手部單獨(dú)操作一個(gè)物體(墊木或錘子);物體運(yùn)動(dòng)無約束,墊木操作要求中心到位且姿態(tài)規(guī)整;錘子操作要求每次錘擊中心落在一個(gè)圓柱空間內(nèi)且姿態(tài)規(guī)整,該圓柱空間高度h1dm取值較少與半徑r1dm取值較大,以模擬錘子對墊木的打擊面;錘擊需重復(fù)ncv次。
表3 錘擊操作參數(shù)Tab.3 Parameters of hammering operation
壓入常用于過渡或間隙配合零件的裝配,實(shí)現(xiàn)操作者手部壓入零件動(dòng)作感知。圖8 展示了手部壓入齒輪操作。
圖8 壓入操作過程Fig.8 Push-in operation process
壓入齒輪操作需使用參數(shù)的設(shè)置如表4 所示。從參數(shù)取值可知,該操作僅需操作單個(gè)物體;物體必須沿軸線運(yùn)動(dòng)且不能旋轉(zhuǎn),以模擬齒輪配合對運(yùn)動(dòng)的限制;物體中心到達(dá)指定位置并且姿態(tài)正確即可完成操作。
表4 壓入操作參數(shù)Tab.4 Parameters of push-in operation
懸停常用于垂直面零部件定位,圖9 展示了撥叉箱外手柄裝配操作。在真實(shí)裝配中,懸停與放置功能類似,兩者區(qū)別在于懸停操作的零件不受其他零部件承托,需要一手固定零件位姿,另一手放置螺釘以完成操作。
圖9 懸停操作過程Fig.9 Hover operation process
撥叉箱外手柄裝配需使用參數(shù)的設(shè)置如表5 所示。從參數(shù)取值可知,該操作需操作兩個(gè)物體(撥叉箱外手柄和螺釘);物體運(yùn)動(dòng)無約束;物體中心到達(dá)指定位置并且姿態(tài)正確即可完成操作。
表5 懸停操作參數(shù)Tab.5 Parameters of hover operation
扭動(dòng)扳手常用于螺紋連接裝拆操作,圖10 展示了使用棘輪扳手裝配蓋板螺釘。在真實(shí)螺紋連接裝拆中,扳手運(yùn)動(dòng)總是以鉗口為基點(diǎn),繞螺紋軸線作右手或左手旋轉(zhuǎn)。因此,在對扳手類工具進(jìn)行三維建模時(shí),將其模型中心設(shè)置在鉗口上以簡化后續(xù)計(jì)算。在設(shè)置目標(biāo)位姿時(shí),可調(diào)整ojdm-xjdmyjdmzjdm姿態(tài),使得zjdm朝向平行螺紋軸線,調(diào)整zjdm朝向以實(shí)現(xiàn)有效旋轉(zhuǎn)方向的控制。
圖10 扭動(dòng)扳手操作過程Fig.10 Twisting wrench operation process
使用棘輪扳手裝配蓋板螺釘?shù)膮?shù)設(shè)置如表6所示。從參數(shù)取值可知,該操作僅需操作單個(gè)物體;物體必須繞定點(diǎn)旋轉(zhuǎn),以模擬扳手繞螺釘旋轉(zhuǎn)的運(yùn)動(dòng);物體中心應(yīng)到達(dá)指定位置;物體需要累積有效旋轉(zhuǎn)角度為αcv。
表6 扭動(dòng)扳手操作參數(shù)Tab.6 Parameters of twisting wrench operation
針對現(xiàn)有自然虛擬裝配操作模型在雙手協(xié)同操作、操作工作量等操作內(nèi)容表達(dá)上存在不足,提出增強(qiáng)現(xiàn)實(shí)環(huán)境下的裝配操作感知模型。該模型可實(shí)現(xiàn)單手或雙手協(xié)同虛擬裝配操作,并且可表達(dá)單步操作所需工作量。試驗(yàn)結(jié)果證明,該方法可對表達(dá)5 種常見裝配操作,滿足增強(qiáng)現(xiàn)實(shí)環(huán)境下徒手虛擬裝配培訓(xùn)需求。
在進(jìn)一步研究中,將探索可同時(shí)識(shí)別手部和機(jī)械零部件的視覺識(shí)別算法,驗(yàn)證在操作者和裝配體都為實(shí)物的裝配環(huán)境下操作感知模型的可行性。將模型的適用場景從虛擬培訓(xùn)推廣到實(shí)際機(jī)械裝配培訓(xùn)和實(shí)時(shí)引導(dǎo),擴(kuò)大理論的適用范圍。