国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于EON的數(shù)據(jù)手套交互仿真系統(tǒng)的研究

2012-04-29 00:44:03楊曦
電腦知識(shí)與技術(shù) 2012年1期
關(guān)鍵詞:系統(tǒng)仿真手勢(shì)識(shí)別虛擬現(xiàn)實(shí)

楊曦

摘要:通過分析虛擬現(xiàn)實(shí)技術(shù)的發(fā)展?fàn)顩r和趨勢(shì),提出了在虛擬現(xiàn)實(shí)生成軟件EON中,結(jié)合數(shù)據(jù)手套與虛擬場(chǎng)景中物品進(jìn)行互動(dòng)的實(shí)現(xiàn)方法。利用VC++6.0等開發(fā)工具,與EON軟件進(jìn)行數(shù)據(jù)的交換,以實(shí)現(xiàn)手勢(shì)識(shí)別,虛擬抓取等功能,并結(jié)合這些功能展望了虛擬現(xiàn)實(shí)技術(shù)的應(yīng)用前景。

關(guān)鍵詞:虛擬現(xiàn)實(shí);系統(tǒng)仿真;EON;數(shù)據(jù)手套;手勢(shì)識(shí)別

中圖分類號(hào):TP391.9文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2012)01-0084-04

Research Of Data Glove Interactive Ssimulation System Based on EON

YANG Xi

(Information and Control Engineering School, Xian University of Architecture and Technology, Xian 710055, China)

Abstract:By analyzing the trends and development of virtual reality technology , Proposed the Method of combined with data gloves to in? teract the items in the virtual scene by virtual reality software EON. In order to achieve gesture recognition, virtual crawl and other functions, using VC + +6.0 and other development tools, with EON software for data exchange and combined these functions to look into the future of virtual reality technology application.

Key words:virtual reality ; system simulation ; EON;data glove ; gesture recognition

隨著科學(xué)的進(jìn)步和社會(huì)的發(fā)展,一門結(jié)合計(jì)算機(jī)仿真技術(shù),圖像識(shí)別技術(shù),計(jì)算機(jī)圖形學(xué)等多門科學(xué)的交叉技術(shù)逐漸發(fā)展了起來,我們稱其為虛擬現(xiàn)實(shí)技術(shù)(Virtual Reality,VR)。虛擬現(xiàn)實(shí)技術(shù)是通過用戶平時(shí)就可以使用的電腦來創(chuàng)建一種令用戶可以體驗(yàn)的虛擬環(huán)境,它借助數(shù)據(jù)手套、數(shù)據(jù)頭盔等專業(yè)的外部設(shè)備,實(shí)現(xiàn)了交互式體驗(yàn)和多信息融合的立體圖像的系統(tǒng)仿真,可以讓用戶進(jìn)入到虛擬的世界之中,實(shí)時(shí)的與虛擬世界中的各種對(duì)象進(jìn)行身臨其境般的互動(dòng)

目前的虛擬現(xiàn)實(shí)系統(tǒng),根據(jù)虛擬現(xiàn)實(shí)系統(tǒng)所偏向的的方向的不同,主要分為四個(gè)方面:即桌面式、沉浸式、增強(qiáng)式和網(wǎng)絡(luò)分布式。桌面式虛擬現(xiàn)實(shí)系統(tǒng)通常只使用個(gè)人計(jì)算機(jī)就完成了交互場(chǎng)景的仿真,它缺乏能令用戶免除周邊干擾,沉浸其中的功能,但是其成本也相對(duì)較低,因而,比較普及。沉浸式虛擬現(xiàn)實(shí)系統(tǒng)是開發(fā)者追求的最理想的目標(biāo),利用頭盔顯示器、數(shù)據(jù)手套和身體部位跟蹤器等交互設(shè)備,通過聽覺、視覺、觸覺以及其他感覺,給用戶帶來一種封閉式的虛擬環(huán)境的交互體驗(yàn),其可以廣泛應(yīng)用于虛擬訓(xùn)練,虛擬手術(shù)等現(xiàn)在較為流行的應(yīng)用領(lǐng)域之中[1]。其中數(shù)據(jù)手套與虛擬開發(fā)環(huán)境的交互也是本文研究的重點(diǎn)。如果說沉浸式虛擬現(xiàn)實(shí)系統(tǒng)強(qiáng)調(diào)的是用戶在虛擬環(huán)境中的沉浸感,增強(qiáng)式虛擬現(xiàn)實(shí)系統(tǒng)則允許用戶觀察到真實(shí)世界,同時(shí)也能看到疊加在真實(shí)世界之上的虛擬對(duì)象,增強(qiáng)了用戶對(duì)真實(shí)環(huán)境的感受,但同時(shí)它對(duì)系統(tǒng)本身的實(shí)時(shí)性的要求也就更高,需要有良好的硬件和軟件進(jìn)行支持。

1系統(tǒng)設(shè)計(jì)

1.1系統(tǒng)總體構(gòu)思

近幾年,隨著虛擬現(xiàn)實(shí)技術(shù)的不斷進(jìn)步,數(shù)據(jù)手套已經(jīng)成為與計(jì)算機(jī)進(jìn)行人機(jī)交互的主要方式之一,目前被廣泛應(yīng)用于如虛擬訓(xùn)練,虛擬手術(shù),虛擬安裝等多個(gè)領(lǐng)域。數(shù)據(jù)手套作為虛擬現(xiàn)實(shí)系統(tǒng)常用的交互設(shè)備,主要通過數(shù)據(jù)手套上的傳感器系統(tǒng),可以將使用者的動(dòng)作變成傳感信號(hào)輸入到計(jì)算機(jī),計(jì)算機(jī)讀取并分析傳感器的信號(hào),以便控制虛擬手做出不同的手勢(shì)或抓取、移動(dòng)和釋放物體,完成與虛擬環(huán)境的交互[2]。本文主要研究利用數(shù)據(jù)手套和虛擬現(xiàn)實(shí)開發(fā)平臺(tái)共同完成的人機(jī)交互功能的實(shí)現(xiàn)。

1.2虛擬平臺(tái)開發(fā)軟件介紹

EON STUDIO是目前世界公認(rèn)整合性、延展性最好的虛擬展示開發(fā)系統(tǒng)。可讀取現(xiàn)有的大多數(shù)的CAD數(shù)據(jù)格式(如:*.3ds,*. dwg,*·lw,*·wrl,*·igs等),支持90%以上的外設(shè)和多種立體顯示方式(如:桌面型、單雙墻、洞穴型、環(huán)幕型)。同時(shí),EON為了滿足客戶不同的需要,提供了開放的開發(fā)環(huán)境EON SDK,通過其SDK開發(fā)包可實(shí)現(xiàn)用戶所需要的特殊的交互行功能。在視覺效果上,它還支持圖形圖像的計(jì)算機(jī)圖形(Cg)高級(jí)渲染,在滿足最新的DX9和OpenGL特效的同時(shí),帶給用戶頂級(jí)的視覺沖擊,又能配合硬件設(shè)備針對(duì)各種VR應(yīng)用需求進(jìn)行沉浸式交互漫游。

本文采用的是5DT DataGlove數(shù)據(jù)手套,它是采用光纖傳感器來進(jìn)行數(shù)據(jù)的辨別,每個(gè)手指都有一個(gè)光纖回路,允許由于手指彎曲而產(chǎn)生微小的平移。光纖被連接到手背上的光電連接器上。每個(gè)光纖回路的光線可被光敏晶體管感知到。如果光纖是直的,發(fā)射光返回時(shí)就不會(huì)衰減。如果光纖受到彎曲則光線就會(huì)有溢出。根據(jù)返回光線的強(qiáng)度來間接測(cè)量出手指的彎曲程度[3]。

在VC平臺(tái)讀取數(shù)據(jù)手套數(shù)據(jù)的部分程序如下:

BOOL CGloveSampleDlg::OnInitDialog()

{

CDialog::OnInitDialog();

SetIcon(m_hIcon, TRUE);

SetIcon(m_hIcon, FALSE);

m_ComList.AddString("USB 0");

m_ComList.AddString("USB 1");

m_ComList.AddString("COM 0");

m_ComList.AddString("COM 1");

m_pGlove = NULL;

UpdateInputs();

SetTimer(1,10,NULL);

return TRUE;

}

但在使用過程中,我們發(fā)現(xiàn),因?yàn)槲覀兊挠脩魧?duì)象是未知的,其手的大小也是各不相同的的,因此,為了能得到更加精確的輸出數(shù)據(jù),我們必須在使用數(shù)據(jù)手套之前,對(duì)手套進(jìn)行重新的標(biāo)定,即確定用戶的手指在緊握狀態(tài)和伸直狀態(tài)下數(shù)據(jù)手套傳感器所能達(dá)到的相應(yīng)極限值。這里,本文所采用的5DT DataGlove則提供了專門的校準(zhǔn)軟件用來進(jìn)行數(shù)據(jù)的橋準(zhǔn)。

5DT DataGlove數(shù)據(jù)手套使用的是一個(gè)8位,分辨率為256的模/數(shù)轉(zhuǎn)換器,即手從緊握狀態(tài)到伸平的狀態(tài)有256個(gè)中間位置。5DT DataGlove數(shù)據(jù)手套的所讀取的默認(rèn)傳感器數(shù)據(jù)為raw,每次讀取之后,就將傳感器讀出的原始值與系統(tǒng)設(shè)置的最大值和最小值(rawmax和rawmin)進(jìn)行比對(duì),如果得到的原始值超出了所設(shè)定的范圍,就將最大值和最小值進(jìn)行更新。在對(duì)數(shù)據(jù)手套重新標(biāo)定的時(shí)候,用戶需要用手連續(xù)快速地做緊握伸直運(yùn)動(dòng),不斷地更新當(dāng)前值,已得到理想的數(shù)據(jù),可以使用下面的公式進(jìn)行校準(zhǔn),其中MAX值由系統(tǒng)函數(shù)設(shè)定。

2.2基于數(shù)據(jù)手套的手勢(shì)識(shí)別

手勢(shì)識(shí)別技術(shù)是數(shù)據(jù)手套與虛擬手進(jìn)行交互的基礎(chǔ),只要在手勢(shì)識(shí)別完成的基礎(chǔ)上,才可以進(jìn)行如對(duì)虛擬物品的推動(dòng)、抓取等一系列復(fù)雜的運(yùn)動(dòng)。數(shù)據(jù)手套一般都采用富有彈性的材料制成,在相應(yīng)的關(guān)鍵位置如手指關(guān)節(jié),手腕等處放置傳感器以完成對(duì)手指緊握、外展以及手腕動(dòng)作的檢測(cè),在獲得了這些位置的運(yùn)動(dòng)信息之后,虛擬手將通過實(shí)時(shí)的接收這些數(shù)據(jù)以完成虛擬手勢(shì)的改變,從而使用戶能以一種貼近真實(shí)的感受與生成的虛擬環(huán)境進(jìn)行交互。在用戶帶上數(shù)據(jù)手套之后,將通過計(jì)算機(jī)對(duì)數(shù)據(jù)手套的各個(gè)傳感器進(jìn)行數(shù)據(jù)的采樣,再將采樣得到的信號(hào)進(jìn)行處理,再將這些包含用戶手指手腕等部位動(dòng)作的信息傳遞給計(jì)算機(jī),這就完成了基于數(shù)據(jù)手套的手勢(shì)識(shí)別。

手勢(shì)的定義是基于傳感器的預(yù)設(shè)響應(yīng)值和閾值的比較而得到的。而5DT DataGlove來獲取用戶的手部姿態(tài)信息實(shí)際是通過數(shù)據(jù)手套光纖中光通量的變化。當(dāng)傳感器的響應(yīng)低于下閾值時(shí)將會(huì)返回值1,表示對(duì)應(yīng)手指伸直;但傳感器的響應(yīng)高于上閾值時(shí)將會(huì)返回值0,表示對(duì)應(yīng)手指彎曲;當(dāng)響應(yīng)在上閾值和下閾值之間時(shí),將不返回值。對(duì)每個(gè)手指的屈伸進(jìn)行組合,便能定義不同的手勢(shì)[4-5]。

3 EON與系統(tǒng)接口的實(shí)現(xiàn)

3.1基于EON SDK的Handmove節(jié)點(diǎn)的開發(fā)

雖然EON STUDIO軟件本身提供了大量的的節(jié)點(diǎn)和原型,已經(jīng)可以滿足許多領(lǐng)域的應(yīng)用仿真,但因?yàn)椴煌脩舻奶厥庖?,因此,EON STUDIO又給廣大開發(fā)人員提供了EON SDK,用來進(jìn)行節(jié)點(diǎn)或模塊的二次開發(fā)。

EON SDK是在VC++環(huán)境下開發(fā)使用的,通過EON SDK節(jié)點(diǎn)向?qū)?,可以方便地根?jù)用戶的需要生成可供開發(fā)的類。在生成的程序之中用戶通過自行添加節(jié)點(diǎn)代碼,就能實(shí)現(xiàn)EON STUDIO本身所不包含的節(jié)點(diǎn)功能。

在開發(fā)控制虛擬手節(jié)點(diǎn)的過程中,用戶可以根據(jù)控制虛擬手的需要,自行設(shè)定Handmove節(jié)點(diǎn)。Handmove節(jié)點(diǎn)的屬性域?qū)ǜ鱾€(gè)手指關(guān)節(jié)的信息。EON SDK為節(jié)點(diǎn)增加屬性需要在節(jié)點(diǎn)的頭文件中添加自定義的屬性域,添加的位置應(yīng)在公有枚舉成員變量enum里的枚舉元素FID_FIRST與FID_LAST之間。依照EON SDK所默認(rèn)格式,所添加的屬性域都應(yīng)該是“FID_”加定義屬性域的名稱。因此Handmove節(jié)點(diǎn)的屬性域定義如下:

enum {

FID_FIRST=CEonBase::FID_LAST-1,

FID_IND,

FID_MID,

FID_THU,

.......

FID_LAST

};

在添加了屬性域后,Handmove節(jié)點(diǎn)還應(yīng)有內(nèi)部處理函數(shù)用來處理外部信息。同樣是在在節(jié)點(diǎn)開發(fā)的程序框架里,F(xiàn)ieldChanged函數(shù)是節(jié)點(diǎn)內(nèi)部處理函數(shù),其代碼如下[6]:

void handmove::FieldChanged(int ID)

{

switch (ID)

{

case FID_THU: functionl();

break;.

.......

case FID_IND:

function2();

break;

default:

CEonBase::FieldChanged(ID);

}

}

3.2 EON與VC之間的通信

EON附帶了可供開發(fā)嵌入的運(yùn)行交互式EON仿真的插件EonX。該控件允許用戶使用VB,VC++,C++ Builder等支持接口的軟件開發(fā)平臺(tái)建立自己的使用界面,并且能與EON內(nèi)部的接口進(jìn)行通訊,在軟件開發(fā)平臺(tái)就能完成對(duì)虛擬環(huán)境的控制。VC與EON通信流程如圖1所示:圖1 VC與EON通信流程圖

VC++與EON之間的一般通訊過程如下:

1)在EON中建立InEvent(事件輸入)節(jié)點(diǎn)或OutEvent(事件輸出)節(jié)點(diǎn)。

2)建立EventIn節(jié)點(diǎn)或EventOut節(jié)點(diǎn)等通信節(jié)點(diǎn)后,添加用戶設(shè)計(jì)的處理節(jié)點(diǎn)。連接通信節(jié)點(diǎn)和處理節(jié)點(diǎn)。

3) VisualC++的應(yīng)用程序可以調(diào)用控件類CEonCtrl的成員函數(shù)函數(shù),實(shí)現(xiàn)數(shù)據(jù)傳輸[6]。如SendEvent函數(shù)就能實(shí)現(xiàn)將VC的數(shù)據(jù)發(fā)送到EON的InEvent中,SetFullsize函數(shù)可以將讀入的EON圖像全屏的操作等等。部分程序如下:函數(shù)初始化

BOOL CDemoDlg::OnInitDialog(){

CDialog::OnInitDialog();

ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu* pSysMenu = GetSystemMenu(FALSE);

if (pSysMenu != NULL)

{

CString strAboutMenu;

strAboutMenu.LoadString(IDS_ABOUTBOX);

if (!strAboutMenu.IsEmpty())

{

pSysMenu->AppendMenu(MF_SEPARATOR);

pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);

}

}

SetIcon(m_hIcon, TRUE);

SetIcon(m_hIcon, FALSE);

myeon.SetSimulationFile((LPCTSTR)"han1d.eoz");

return TRUE;

}

載入文件代碼

void CDemoDlg::Onstart()

{

myeon.Start();

}

4結(jié)果與分析

實(shí)驗(yàn)結(jié)果表明,利用EON軟件和VC++軟件可以很好的實(shí)現(xiàn)虛擬現(xiàn)實(shí)仿真系統(tǒng)的交互功能,利用EON自身的節(jié)點(diǎn)功能和EON SDK的二次開發(fā)能力,可以很好的完成手勢(shì)識(shí)別虛擬抓取等功能。圖2為簡(jiǎn)易的開發(fā)界面。圖2基于VC的簡(jiǎn)易開發(fā)界面

從試驗(yàn)中我們可以看出,基于EON的數(shù)據(jù)手套交互仿真系統(tǒng)可以廣泛應(yīng)用于多個(gè)領(lǐng)域,比如虛擬手術(shù),虛擬訓(xùn)練,虛擬安裝等,利用虛擬現(xiàn)實(shí)仿真系統(tǒng),與傳統(tǒng)的培訓(xùn)方式相互結(jié)合,可以是培訓(xùn)手段更加豐富,并且在危險(xiǎn)性等方面都有所降低,同時(shí)虛擬現(xiàn)實(shí)平臺(tái)強(qiáng)大的可通用性也使其在以后的發(fā)展中可以更加快速的應(yīng)用于新的領(lǐng)域之中。

參考文獻(xiàn):

[1]李志文,韓曉玲.虛擬現(xiàn)實(shí)技術(shù)研究現(xiàn)狀及未來發(fā)展[J].信息技術(shù)與信息化,2005(3) .

[2]周曉晶,趙正旭,樓江.基于數(shù)據(jù)手套的虛擬手勢(shì)交互系統(tǒng)[J].儀表技術(shù)與傳感器,2007(10) .

[3] DT. The 5DT Data Glove Driver Reference Manual[Z] .South Africa: 5DT Technology, 2000, .

[4]章名濤,肖如鴻.電機(jī)的電磁場(chǎng)[M].北京:機(jī)械工業(yè)出版社,1988:51-65.

[5]唐任遠(yuǎn).現(xiàn)代永磁電機(jī)理論與設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,1997.

[6]潘燕彬.基于數(shù)據(jù)手套的虛擬手術(shù)訓(xùn)練系統(tǒng)交互技術(shù)的研究[D].廣州:廣東工業(yè)大學(xué), 2008.

[7] EON Reality, Inc. EON User Guide 5.0 .2004,311-314.

[8]安明,陳善廣,劉玉慶.基于數(shù)據(jù)手套的虛擬手精確建模的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)仿真, 2010(1) .

[9] EON Reality Inc. EON SDK 3.0 .Jan 2002.

猜你喜歡
系統(tǒng)仿真手勢(shì)識(shí)別虛擬現(xiàn)實(shí)
風(fēng)口上的虛擬現(xiàn)實(shí)
商周刊(2017年24期)2017-02-02 01:42:55
基于手勢(shì)識(shí)別的工業(yè)機(jī)器人操作控制方法
基于紅外的非接觸式手勢(shì)識(shí)別系統(tǒng)設(shè)計(jì)
基于嵌入式的智能手表設(shè)計(jì)
重大交通設(shè)施項(xiàng)目風(fēng)險(xiǎn)復(fù)雜動(dòng)態(tài)交互演化機(jī)理與仿真分析
虛擬現(xiàn)實(shí)技術(shù)向科幻小說借靈感
海外星云(2016年7期)2016-12-01 04:18:00
基于前饋補(bǔ)償?shù)闹鄙龣C(jī)控制律設(shè)計(jì)與仿真
航空兵器(2016年4期)2016-11-28 21:34:37
復(fù)雜背景下的手勢(shì)識(shí)別方法
基于計(jì)算機(jī)系統(tǒng)仿真的電力機(jī)車模擬駕駛裝置研究
HTC斥資千萬美元入股虛擬現(xiàn)實(shí)設(shè)備商WEVR
山西省| 孝感市| 庄浪县| 腾冲县| 安阳县| 定襄县| 普兰县| 娱乐| 蛟河市| 桂平市| 泸西县| 曲松县| 区。| 娱乐| 色达县| 九寨沟县| 雅安市| 炎陵县| 张家港市| 霍林郭勒市| 都江堰市| 澄迈县| 新建县| 铁岭市| 普洱| 松江区| 独山县| 丰县| 宁明县| 辛集市| 隆回县| 灵丘县| 东宁县| 江北区| 若羌县| 汉沽区| 儋州市| 康马县| 汶川县| 崇义县| 北安市|