1 引言
我們生活的世界是三維世界,所見、所用、所接觸的物體都是以三維形式存在的。以往,我們只能將三維的物體,以不同視角作平面投影,用二維方式表達(dá),從而得到二維的設(shè)計(jì)圖紙;隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,出現(xiàn)了計(jì)算機(jī)輔助二維設(shè)計(jì):然而工藝部門必須要對(duì)其作規(guī)劃,以便加工者按指令用某個(gè)設(shè)備將其實(shí)現(xiàn)為實(shí)物。然后我們還需要將成千上萬(wàn)個(gè)零件裝配成部件、產(chǎn)品。
要實(shí)現(xiàn)實(shí)際的裝配,我們還須描述各零部件的裝配關(guān)系、裝配順序、可視性、可達(dá)性及用何種工具、工裝、或借助何種設(shè)備,這樣才能為生產(chǎn)制造部門提供所需的指令。
當(dāng)今全球制造企業(yè)之間的競(jìng)爭(zhēng)越來(lái)越激烈,各企業(yè)不斷將各種先進(jìn)的設(shè)計(jì)、制造手段應(yīng)用于產(chǎn)品的開發(fā)制造。隨著計(jì)算機(jī)網(wǎng)絡(luò)和虛擬現(xiàn)實(shí)等先進(jìn)技術(shù)的出現(xiàn),虛擬制造(VM,Virtual Manufacturing)應(yīng)運(yùn)而生,它是現(xiàn)代制造技術(shù)與系統(tǒng)發(fā)展的趨勢(shì)。
達(dá)索公司作為“數(shù)字工程”解決方案的技術(shù)領(lǐng)導(dǎo)者,在產(chǎn)品設(shè)計(jì)階段并行考慮產(chǎn)品全生命周期中的各種因素,在產(chǎn)品設(shè)計(jì)階段考慮產(chǎn)品的可加工性、可裝配性和可服務(wù)性,在滿足產(chǎn)品性能與功能的條件下改進(jìn)產(chǎn)品的結(jié)構(gòu),為制造業(yè)提供了世界最先進(jìn)的數(shù)字工程模型。
但是其在操作程度上還是依賴鼠標(biāo),鍵盤等二維操作手段,不能直接將人在日常生活中獲得的經(jīng)驗(yàn)技能直接運(yùn)用到人機(jī)交互中,同時(shí)也限制了計(jì)算機(jī)去完成更加復(fù)雜的任務(wù)。
本實(shí)驗(yàn)就是計(jì)劃在虛擬世界中生成虛擬手,配合數(shù)據(jù)手套采集自然狀態(tài)下人手的各種動(dòng)作數(shù)據(jù),將這些數(shù)據(jù)映射到虛擬手使其模擬數(shù)據(jù)手套佩戴者的手部動(dòng)作,對(duì)虛擬環(huán)境中的操作對(duì)象進(jìn)行直接操縱。
這種方法與傳統(tǒng)方法中人手通過(guò)鍵盤、鼠標(biāo)進(jìn)行驅(qū)動(dòng)的間接操縱相比更加符合人類的認(rèn)知習(xí)慣,大大提高了人機(jī)交互的自然性和高效性,同時(shí)也使計(jì)算機(jī)能夠完成更加復(fù)雜的任務(wù),真正意義上去操作虛擬零件進(jìn)行設(shè)計(jì)、裝配、制造及生產(chǎn)。
2 虛擬手幾何模型
人手的運(yùn)動(dòng)過(guò)程中只有微小的形狀變化,因此在手模型中我們將其簡(jiǎn)化成剛體。除拇指僅有兩節(jié)指骨外,其余各指都有三節(jié)指骨,分別稱為近指骨、中指骨和遠(yuǎn)指骨(如圖1所示)。
圖1 人手的結(jié)構(gòu)圖
根據(jù)對(duì)人手的運(yùn)動(dòng)特點(diǎn)以及外形特征,本模型每個(gè)手指關(guān)節(jié)以及手掌都采用橢球形單元合成(如圖2所示)。
圖2 虛擬手幾何模型
這種模型結(jié)構(gòu)模型表面相對(duì)光滑,可伸展性強(qiáng),適用于虛擬手的實(shí)時(shí)變化.一個(gè)橢球形單元由三條軸線控制,表面光滑,尤其對(duì)于手掌不規(guī)則的弧形表面。虛擬手運(yùn)動(dòng)的時(shí)候只需要改變相應(yīng)橢球形單元的三條軸線的位置和方向即可。
每個(gè)橢球形單元的構(gòu)造方程可表示為:
●a,b和c分別為相應(yīng)二次曲面對(duì)應(yīng)X,Y,Z坐標(biāo)軸的軸線,也是控制橢球形單元位置形狀的主要參數(shù),決定橢球形單元的邊界;
●n是一個(gè)常數(shù),隨著n的增減,橢球形單元的形狀也發(fā)生變化,n增大則形狀趨于圓角立方體,反之則趨于球形。
虛擬手的幾何模型設(shè)計(jì)是一種典型的對(duì)象設(shè)計(jì)范例,可以將數(shù)據(jù)以及對(duì)數(shù)據(jù)的操作放在一起處理。對(duì)應(yīng)虛擬手的類設(shè)計(jì)如下:
通過(guò)對(duì)這些橢球形單元的合理布置,調(diào)整它們的形狀和方向就能很容易的構(gòu)造出封閉的,表面光滑的虛擬手模型。
3 虛擬手運(yùn)動(dòng)模型
3.1 數(shù)據(jù)手套數(shù)據(jù)采集
本實(shí)驗(yàn)采用的數(shù)據(jù)手套為5DT公司開發(fā)的第二代高端數(shù)據(jù)手套5DT Data Glove 14 Ultra。該款數(shù)據(jù)手套采用光電彎曲傳感器,可以檢測(cè)手指關(guān)節(jié)彎曲角度和指縫間延展角度。每只手套有14個(gè)光電傳感器,可測(cè)量手指的近指骨和掌骨間關(guān)節(jié)之間的彎曲角度,中指骨和遠(yuǎn)指骨間之間的彎曲角度以及相鄰手指間的外展角度,共計(jì)14個(gè)數(shù)據(jù)(如圖3所示)。
圖3 數(shù)據(jù)手套傳感器分布圖及編號(hào)
在手套開啟和每次更換用戶后,需要重新設(shè)置并實(shí)時(shí)更新各傳感器原始數(shù)據(jù)。通過(guò)線性的數(shù)學(xué)公式,根據(jù)原始數(shù)據(jù)的最大值和最小值,以及設(shè)定的數(shù)據(jù)取值范圍來(lái)得到獲取數(shù)據(jù)。其公式為:
其中:
●Raw(max)表示傳感器輸出原始數(shù)據(jù)的最大值:
●Raw(min)表示傳感器輸出原始數(shù)據(jù)的最小值;
●Max表示按照人體工學(xué)原理的該關(guān)節(jié)處的最大角度,即校正數(shù)據(jù)的范圍為[0,Max];
●Raw(val)表示當(dāng)前測(cè)量的傳感器輸出原始數(shù)據(jù);
●out表示經(jīng)計(jì)算之后的數(shù)據(jù)即該關(guān)節(jié)彎曲角度。
為了精確計(jì)算出手指關(guān)節(jié)的彎曲以及伸展角度,傳感器輸出數(shù)據(jù)的最大值Raw(max)和最小值Raw(min)也需要進(jìn)一步處理。每個(gè)傳感器得到的原始數(shù)據(jù)的最大值Raw(max)分別存儲(chǔ)在數(shù)組Upper[nSensor]內(nèi),對(duì)應(yīng)最小值Raw(min)存儲(chǔ)在數(shù)Lower[nSensor]內(nèi)。
例如:數(shù)據(jù)手套食指根部傳感器輸出數(shù)據(jù)為Value,其彎曲角度數(shù)據(jù):
經(jīng)過(guò)計(jì)算后,各個(gè)傳感器的輸出數(shù)據(jù)對(duì)應(yīng)的角度數(shù)據(jù)可以直接應(yīng)用于虛擬手模型。
3.2 虛擬手手勢(shì)合成
手指的運(yùn)動(dòng)可由不斷連續(xù)的、不同方向的環(huán)轉(zhuǎn)運(yùn)動(dòng)說(shuō)明,即指體的圓周運(yùn)動(dòng)。運(yùn)動(dòng)時(shí)手指形成一個(gè)底端在近指骨、尖端在遠(yuǎn)指骨的圓錐形軌跡。環(huán)轉(zhuǎn)運(yùn)動(dòng)是屈、展、伸、收依次連續(xù)的動(dòng)作。
為了清晰表示虛擬手的運(yùn)動(dòng)狀態(tài),我們需要設(shè)置合理的坐標(biāo)系。全局坐標(biāo)系原點(diǎn)固定在中指根部,X軸指向小指并排的一側(cè),Y軸與伸直狀態(tài)下食指基關(guān)節(jié)重合,Z軸由右手法則確定為垂直子手掌,并由手背指向手心(如圖4所示)。
圖4 環(huán)轉(zhuǎn)運(yùn)動(dòng)與三維坐標(biāo)系關(guān)系
●MP,PIP和DIP分別為對(duì)應(yīng)手指關(guān)節(jié)在基部、中間關(guān)節(jié)和末端關(guān)節(jié)處Z方向上測(cè)得的角度值。其中按照人體工學(xué)原理,DIP=0.67*PIP。
●P為對(duì)應(yīng)手指基部在X方向上測(cè)得的角度值。
●根據(jù)計(jì)算的各傳感器角度數(shù)據(jù),各手指的狀態(tài)可通過(guò)得出的角度數(shù)據(jù)合成(SO表示5DT數(shù)據(jù)手套第0號(hào)傳感器,以此類推)。
大拇指:
(1)繞著大拇指基關(guān)節(jié)的屈伸運(yùn)動(dòng)(S2)即繞Z軸轉(zhuǎn)動(dòng)。
(2)繞著大拇指基關(guān)節(jié)的內(nèi)折運(yùn)動(dòng)(SO)即繞X軸轉(zhuǎn)動(dòng)。
(3)繞著指中關(guān)節(jié)的的屈伸運(yùn)動(dòng)(S1)即繞Z軸轉(zhuǎn)動(dòng)。其余四指的運(yùn)動(dòng)十分相似,所以我們可以建立同一種運(yùn)動(dòng)模型,以食指為例:
(1)繞著指根關(guān)節(jié)的外展運(yùn)動(dòng)(S5)即繞Z軸轉(zhuǎn)動(dòng)。
(2)繞著指根關(guān)節(jié)的屈伸運(yùn)動(dòng)(S3)即繞X軸轉(zhuǎn)動(dòng)。
(3)繞著指中關(guān)節(jié)的屈伸運(yùn)動(dòng)(S4)即繞X軸轉(zhuǎn)動(dòng)。
本虛擬手運(yùn)動(dòng)模型不涉及坐標(biāo)軸變換,只是移動(dòng)虛擬手的手指關(guān)節(jié),得到在世界坐標(biāo)系中的各個(gè)關(guān)節(jié)關(guān)鍵點(diǎn)坐標(biāo),為虛擬制造過(guò)程中的碰撞檢測(cè)奠定基礎(chǔ)。其實(shí)現(xiàn)過(guò)程為:
①移動(dòng)該關(guān)節(jié)底端至新定位位置origin。
②得到X方向上測(cè)得的角度值P,利用旋轉(zhuǎn)變換函數(shù)計(jì)算該關(guān)節(jié)在X方向旋轉(zhuǎn)后的空間位置。
③在②中得到的空間位置基礎(chǔ)上,得到Z方向上測(cè)得的角度值MP,利用旋轉(zhuǎn)變換函數(shù)計(jì)算該關(guān)節(jié)在Z方向旋轉(zhuǎn)后的空間位置。
④記錄③中得到的該關(guān)節(jié)頂端位置重,作為向上關(guān)節(jié)的底端位置origin。
4 虛擬手的包圍盒模型
層次包圍盒算法(Bounding Volume Hierarchy)是解決碰撞檢測(cè)問(wèn)題固有時(shí)間復(fù)雜性的一種有效的方法。在進(jìn)行碰撞檢測(cè)時(shí)首先進(jìn)行包圍盒之間的相交測(cè)試;如果包圍盒相交,需要不斷地對(duì)每個(gè)節(jié)點(diǎn)中的幾何元素集合進(jìn)行劃分,再進(jìn)行劃分對(duì)象之間的碰撞檢測(cè)。
如果上述條件不滿足,則作為第二步:對(duì)被檢測(cè)幾何模型的包圍盒進(jìn)行劃分,再做如上判斷。直到對(duì)包圍盒的劃分到達(dá)某一精度要求時(shí)候,確認(rèn)是否發(fā)生碰撞。
層次包圍盒樹的建立過(guò)程中,對(duì)幾何模型進(jìn)行劃分最常見的是采取二分的策略,以縮小并確定碰撞范圍或者碰撞點(diǎn)。以下是四面體在某一方向上的包圍盒劃分(如圖5所示)。
圖5 包圍盒的分割
虛擬手與虛擬物體的碰撞多發(fā)生在手指部位,所以只對(duì)各個(gè)手指關(guān)節(jié)生成包圍盒。在空間圖形實(shí)時(shí)變換的同時(shí)根據(jù)手指關(guān)節(jié)生成包圍盒,再進(jìn)行碰撞檢測(cè)。空間圖形變換實(shí)現(xiàn)手勢(shì)合成的同時(shí),每個(gè)關(guān)節(jié)的矩形包圍盒也按照相應(yīng)規(guī)則實(shí)時(shí)更形變換,始終圍繞在手指關(guān)節(jié)周圍(如圖6所示)。
圖6 虛擬手的包圍盒模型
虛擬手模型與虛擬物體利用包圍盒方法碰撞檢測(cè)的具體步驟如下:
①根據(jù)數(shù)據(jù)手套狀態(tài),確定虛擬手和檢測(cè)對(duì)象的狀態(tài);
②求出第i個(gè)手指的第j個(gè)指節(jié),確定它的坐標(biāo);
③計(jì)算當(dāng)前區(qū)域的邊界框,生成包圍盒;
④與虛擬物體進(jìn)行矩形包圍盒比較算法判斷,對(duì)虛擬物體的包圍盒進(jìn)行分割。
5 結(jié)束語(yǔ)
本文設(shè)計(jì)了一種面向虛擬制造的虛擬手交互控制模塊,并給出了虛擬手勢(shì)合成和碰撞檢測(cè)的實(shí)現(xiàn)方法。
我們用虛擬手去抓取虛擬物體,當(dāng)發(fā)生接觸時(shí),可以看到手指的包圍盒顏色發(fā)生了變化(如圖7所示),起到了較好的提示效果。
圖7 虛擬手與虛擬物體的碰撞檢測(cè)效果圖
本文的主要工作如下:研究了人手的解剖結(jié)構(gòu)和運(yùn)動(dòng)特點(diǎn),結(jié)合虛擬制造的需求,在Windows環(huán)境下,采用面向?qū)ο蠹夹g(shù),運(yùn)用C++語(yǔ)言構(gòu)建了基于數(shù)據(jù)手套的虛擬手模型,建立了從人手到虛擬手的動(dòng)作映射,實(shí)現(xiàn)了用戶對(duì)虛擬手運(yùn)動(dòng)的控制;研究了碰撞檢測(cè)的理論和方法,運(yùn)用層次包圍盒方法實(shí)現(xiàn)了虛擬場(chǎng)景中虛擬手與虛擬物體的碰撞檢測(cè),以此為基礎(chǔ),對(duì)進(jìn)一步進(jìn)行實(shí)際虛擬操作奠定基礎(chǔ)。
目前的虛擬手模型是經(jīng)過(guò)簡(jiǎn)化的,基于簡(jiǎn)單的幾何形體,與真實(shí)的人手存在一定的差異,在運(yùn)動(dòng)的跟蹤和映射方面不可能做到完全對(duì)應(yīng),因此對(duì)虛擬操作的準(zhǔn)確性和靈活性構(gòu)成了一定的障礙。
如何使其操作進(jìn)程盡可能地與現(xiàn)實(shí)生活中的動(dòng)作相接近,是我們進(jìn)一步研究的目標(biāo)。我們將考慮建立更加自然逼真的虛擬手模型以代替日前的基于簡(jiǎn)單幾何形體的虛擬手模型,使其能更好地模擬手的運(yùn)動(dòng)規(guī)律,進(jìn)行更多更精確的虛擬操作,取得更好的效果,廣泛應(yīng)用于虛擬裝配、仿真模擬等虛擬制造領(lǐng)域。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://m.hanmeixuan.com/
本文標(biāo)題:一種面向虛擬制造的虛擬手設(shè)計(jì)與應(yīng)用
本文網(wǎng)址:http://m.hanmeixuan.com/html/support/1112157909.html