趙建敏,趙忠鑫,許曉偉
(內(nèi)蒙古科技大學(xué)信息工程學(xué)院,內(nèi)蒙古 包頭 014010)
基于Kinect的拳擊虛擬訓(xùn)練系統(tǒng)*
趙建敏,趙忠鑫,許曉偉
(內(nèi)蒙古科技大學(xué)信息工程學(xué)院,內(nèi)蒙古 包頭 014010)
沙袋擊打訓(xùn)練是拳擊訓(xùn)練的有效手段,應(yīng)用體感交互技術(shù)和虛擬現(xiàn)實(shí),設(shè)計(jì)并實(shí)現(xiàn)了虛擬的沙袋擊打仿真系統(tǒng)。該系統(tǒng)主要包含虛擬場景搭建、體感交互和訓(xùn)練信息系統(tǒng)。拳擊場景建立了拳臺、沙袋、拳擊手套和背景模型,并通過Direct 3D接口加載到虛擬系統(tǒng)中。交互系統(tǒng)通過Kinect體感傳感器追蹤并獲取訓(xùn)練者骨骼關(guān)節(jié)點(diǎn)坐標(biāo),從中提取肘、腕關(guān)節(jié)建立空間向量并計(jì)算擊打速度和擊打力,控制虛擬拳頭擊打虛擬沙袋,通過體感交互的方式虛擬真實(shí)訓(xùn)練過程,并在信息系統(tǒng)中記錄訓(xùn)練信息。實(shí)驗(yàn)和測試表明,此系統(tǒng)能夠?qū)崿F(xiàn)模擬訓(xùn)練的功能,為拳擊游戲與教學(xué)提供了新的手段。
體感交互;Kinect傳感器;拳擊訓(xùn)練;虛擬現(xiàn)實(shí)
體感交互技術(shù)直接借助肢體動作與周邊的裝置或環(huán)境進(jìn)行互動,是人機(jī)交互的新方法,并逐步應(yīng)用在游戲、體育訓(xùn)練、醫(yī)學(xué)理療、3D建模、模式識別等領(lǐng)域。在游戲領(lǐng)域,微軟公司XBOX360體感游戲機(jī)通過肢體控制游戲,帶給玩家全新體驗(yàn);湖南大學(xué)李波進(jìn)行了健身單車體感游戲項(xiàng)目的設(shè)計(jì)與研發(fā)[1]。在體育訓(xùn)練領(lǐng)域,國內(nèi)浙江大學(xué)計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)(CAD&CG)國家重點(diǎn)實(shí)驗(yàn)室開發(fā)了自行車虛擬綜合訓(xùn)練系統(tǒng),通過體感技術(shù)監(jiān)測運(yùn)動員運(yùn)動和做功狀況[2]。醫(yī)學(xué)領(lǐng)域,González-Ortega D等人[3]在運(yùn)動感缺失康復(fù)訓(xùn)練研究中采用了體感交互技術(shù),設(shè)計(jì)了輔助治療系統(tǒng);我國國家信息無障礙工程研發(fā)中心羅元等人[4]設(shè)計(jì)了智能輪椅控制系統(tǒng),通過體感交互控制控制輪椅。在教學(xué)設(shè)施領(lǐng)域,顧容等人[5]研究了基于Kinect骨骼追蹤技術(shù)的智能教學(xué)控制系統(tǒng)。此外,在SD建模和模式識別領(lǐng)域,Chattopadhyay P等人[6]通過Kinect的RGB-D數(shù)據(jù)流進(jìn)行步態(tài)識別、As’ari M A等人[7]利用Kinect深度信息對三維物體形狀進(jìn)行描述,進(jìn)而對其識別并分類。
本文首次將體感技術(shù)應(yīng)用于拳擊沙袋訓(xùn)練仿真系統(tǒng),虛擬了拳擊訓(xùn)練中最為常用的沙袋擊打練習(xí),為拳擊愛好者在受環(huán)境所限無法懸掛真實(shí)沙袋的條件下開展訓(xùn)練提供了新的方法;同時(shí),系統(tǒng)中設(shè)計(jì)的基于圖像的擊打力量計(jì)算算法可以為拳擊訓(xùn)練提供新的輔助手段。
本文基于VS2012,參照拳擊訓(xùn)練,搭建了虛擬環(huán)境,軟件整體結(jié)構(gòu)如圖1所示。其中,采用3DMax建立3D訓(xùn)練場景、沙袋和拳擊手套模型,通過Direct 3D接口加載并進(jìn)行渲染。采用微軟Kinect傳感器獲取人體骨骼圖像,追蹤左右手、肘坐標(biāo),進(jìn)行體感交互,控制虛擬系統(tǒng)中的拳頭擊打沙袋。根據(jù)近似碰撞模型,計(jì)算擊打力并通過Direct 3D接口渲染擊打效果,仿真真實(shí)訓(xùn)練過程。此外,增加了檔案管理系統(tǒng),記錄訓(xùn)練者的檔案和訓(xùn)練信息。
Figure 1 System structure
本文軟件結(jié)構(gòu)分驅(qū)動層和應(yīng)用層,框架如圖2所示。
Figure 2 Framework of the software structure
驅(qū)動層包括KinectSDK、DirectX、SQL Server數(shù)據(jù)庫,應(yīng)用層包括運(yùn)動追蹤、目標(biāo)命中判定、擊打力計(jì)算、虛擬擊打渲染、訓(xùn)練檔案和信息管理等。
本文參照拳擊沙袋訓(xùn)練過程,設(shè)計(jì)了虛擬場景,包括虛擬背景、虛擬沙袋、虛擬拳擊手套。其中,虛擬背景包括三維拳臺和地面。拳臺渲染采用天空盒(Sky Box)技術(shù),流程如圖3所示。
Figure 3 Flow chart of the background rendering process
拳臺渲染完畢后,本文采用紋理映射的方式實(shí)現(xiàn)地面渲染,流程如圖4所示。
Figure 4 Flow chart of the ground rendering process
拳擊背景創(chuàng)建完畢后,本文使用3DMax設(shè)計(jì)了虛擬沙袋、虛擬拳擊手套模型,采用Direct3D加載模型進(jìn)行世界變換,為系統(tǒng)提供模型的平移和旋轉(zhuǎn)接口函數(shù)[5],虛擬系統(tǒng)搭建基本效果如圖5所示。
Figure 5 Working sketch of the virtual training scene
此外,為了渲染效果,本文利用DirectX的Direct Sound模塊加載背景音樂,創(chuàng)建了多媒體的訓(xùn)練場景。
體感交互是實(shí)現(xiàn)虛擬拳擊訓(xùn)練的主要部分,建立了練習(xí)者和虛擬系統(tǒng)的交互,使練習(xí)者通過Kinect傳感器操控虛擬系統(tǒng)中的拳擊手套擊打虛擬沙袋,系統(tǒng)整體軟件流程圖如圖6所示。
Figure 6 Flow chart of system software
系統(tǒng)在Direct 3D和Kinect初始化之后響應(yīng)請求,進(jìn)入訓(xùn)練環(huán)節(jié)后,創(chuàng)建虛擬場景,通過運(yùn)動追蹤捕獲訓(xùn)練者關(guān)節(jié)點(diǎn),控制虛擬拳頭擊打沙袋。其他請求包括訓(xùn)練檔案管理、數(shù)據(jù)管理及參數(shù)設(shè)置等,均通過體感操作完成。
4.1 運(yùn)動追蹤
運(yùn)動追蹤是本文實(shí)現(xiàn)體感交互的關(guān)鍵技術(shù),本文采用微軟Kinect體感傳感器獲取骨骼圖像,通過骨骼幀平滑處理、宣泄者左右手、手腕關(guān)節(jié)點(diǎn)坐標(biāo)獲取、坐標(biāo)轉(zhuǎn)換等步驟,進(jìn)而控制虛擬拳頭的姿態(tài)。其中,關(guān)節(jié)點(diǎn)坐標(biāo)獲取流程如圖7所示。
Figure 7 Flow chart of obtaining the coordinates of hands and elbow joints
骨骼獲取過程中,定義的變量見表1。Kinect初始化時(shí),調(diào)用NuiGetSensorCount(),獲取連接到計(jì)算機(jī)的Kinect設(shè)備數(shù)量并分配索引號,之后調(diào)用NuiCreateSensorByIndex()為pSensor賦值,之后調(diào)用NuiStatus函數(shù)獲取設(shè)備狀態(tài),當(dāng)返回S_OK時(shí),初始化完成[5]。此外,進(jìn)行調(diào)用NuiInitialize()初始化NUI,本文需要從骨骼圖像中獲取關(guān)節(jié)點(diǎn)坐標(biāo),因此初始化參數(shù)設(shè)置為NUI_INITIALIZE_FLAG_USES_SKELETON。
Table 1 Main variables used in the skeleton tracking process表1 骨骼追蹤過程主要變量表
完成Kinect初始化后,調(diào)用CreatEventW()和NuiSkeletonTrackingenable()創(chuàng)建并使能骨骼幀事件,新的骨骼幀觸發(fā)骨骼幀事件,調(diào)用NuiSkeletonGetNextFrame()獲取幀數(shù)據(jù)并存儲到NUI_SKELETON_FRAME結(jié)構(gòu)體中,其中參數(shù)liTimeStamp和dwFrameNumber分別記錄了Kinect運(yùn)行的時(shí)間和當(dāng)前骨骼幀的編號,用于平滑骨骼幀。SkeletonData[NUI_SKELETON_COUNT]是一個(gè)骨骼數(shù)據(jù)結(jié)構(gòu)體數(shù)組,由于Kinect最多能追蹤6個(gè)用戶,故該數(shù)組的元素個(gè)數(shù)為6,每個(gè)元素對應(yīng)一個(gè)用戶且保存了該用戶的骨骼數(shù)據(jù)信息[8]。
4.2 平滑處理和坐標(biāo)轉(zhuǎn)換
Kinect和計(jì)算機(jī)的性能不穩(wěn)定、人體的動作不連貫等因素可能會導(dǎo)致相鄰幀的骨骼關(guān)節(jié)點(diǎn)坐標(biāo)發(fā)生跳躍式變化,因此在獲取關(guān)節(jié)點(diǎn)坐標(biāo)之前需進(jìn)行骨骼幀平滑處理。本文調(diào)用NuiTransformSmooth()執(zhí)行平滑算法,實(shí)現(xiàn)骨骼幀平滑。函數(shù)的首個(gè)參數(shù)是預(yù)平滑處理骨骼幀,第二個(gè)參數(shù)為NUI_TRANSFORM_SMOOTH_PARAMETERS結(jié)構(gòu)體[5]。根據(jù)本文應(yīng)用要求,平滑結(jié)構(gòu)體參數(shù)值為:SmoothValue.fSmoothing=0.8f,SmoothValue.fCorrection=0.2f,SmoothValue.fPrediction=0.4f,SmoothValue.fJitterRadius=0.3f,SmoothValue.fMaxDeviationRadius=0.5f。
平滑處理后,查詢NUI_SKELETON_FRAME結(jié)構(gòu)體的成員eSkeletonPositionTrackingState,其表明各個(gè)關(guān)節(jié)點(diǎn)的跟蹤狀態(tài),骨骼數(shù)據(jù)信息存儲在NUI_SKELETON_FRAME結(jié)構(gòu)體的NUI_SKELETON_DATA成員中[5]。當(dāng)狀態(tài)為NUI_SKELETON_POSITION_INFERRED或NUI_SKEL-ETON_POSITION_TRACKED(即可被推測或被追蹤到)時(shí),則從NUI_SKELETON_DATA的人體20個(gè)關(guān)節(jié)骨骼坐標(biāo)成員數(shù)組SkeletonPositions[20]中讀取左右手、肘的關(guān)節(jié)點(diǎn)坐標(biāo),賦值給關(guān)節(jié)點(diǎn)坐標(biāo)變量v3SkeHandR、v3SkeHandL、v3SkeElbR、v3SkeElbL。
Kinect SDK中提供了骨骼坐標(biāo)到深度坐標(biāo)的轉(zhuǎn)換,深度坐標(biāo)系是紅外攝像機(jī)拍攝圖片的像素坐標(biāo)。本文首先調(diào)用NuiTransformSkeletonToDepthImage()將骨骼空間坐標(biāo)系中的v3SkeHandR、v3SkeHandL、v3SkeElbR、v3SkeElbL坐標(biāo)轉(zhuǎn)換為深度圖像坐標(biāo)系[9],之后,再進(jìn)行紅外攝像機(jī)圖像坐標(biāo)到屏幕圖像坐標(biāo)的轉(zhuǎn)換。默認(rèn)情況下,Kinect紅外攝像機(jī)的分辨率為320*240,設(shè)關(guān)節(jié)點(diǎn)在深度坐標(biāo)系統(tǒng)中的值為xdepth、ydepth,則其屏幕坐標(biāo)xscreen、yscreen的計(jì)算見式(1)和式(2)。
(1)
(2)
其中,wscreen*lscreen為虛擬場景視圖的分辨率。
4.3 虛擬拳頭姿態(tài)跟隨
訓(xùn)練者的出拳姿態(tài)變化可以分為:手部關(guān)節(jié)點(diǎn)的位置移動和前臂的旋轉(zhuǎn),故虛擬拳頭的姿態(tài)跟隨包括位置移動跟隨和旋轉(zhuǎn)跟隨。
將左、右手坐標(biāo)平滑處理后的值賦給虛擬拳中心坐標(biāo),控制虛擬拳套的位置,使其跟隨手關(guān)節(jié)坐標(biāo),控制擊打方向。
虛擬拳頭的旋轉(zhuǎn)可以分解為三大基本旋轉(zhuǎn):繞X軸旋轉(zhuǎn)、繞Y軸旋轉(zhuǎn)和繞Z軸旋轉(zhuǎn)[11],本文通過計(jì)算骨骼空間坐標(biāo)系中前臂和坐標(biāo)軸的夾角,并將夾角賦值給虛擬拳頭的世界變換的旋轉(zhuǎn)變換來實(shí)現(xiàn)。
以左拳為例,獲取左手的坐標(biāo)為(x0,y0,z0),左肘的坐標(biāo)為(x1,y1,z1),則左前臂向量的坐標(biāo)為(x0-x1,y0-y1,z0-z1),將此向量投影到三平面上,夾角θXaxis、θYaxis、θZaxis就決定了虛擬拳頭繞拳頭中心點(diǎn)左、右方向旋轉(zhuǎn)的角度。其中,θXaxis的計(jì)算如式(3)所示:
(3)
同理可求解θYaxis、θZaxis,并賦值給世界變換的繞Z軸、Y軸和X軸旋轉(zhuǎn)變換角度,就可以實(shí)現(xiàn)虛擬拳頭隨著前臂姿態(tài)變化進(jìn)行自身旋轉(zhuǎn)。
4.4 目標(biāo)命中判定
本文將沙袋簡化為矩形作為擊打目標(biāo)區(qū)域,并隨著擊打圍繞懸掛點(diǎn)擺動,如圖8所示。
在宣泄時(shí),擊打目標(biāo)區(qū)域會隨著擊打?qū)ο蟮臄[動而發(fā)生變化,因此,目標(biāo)命中判定算法的關(guān)鍵就在于確定擊打目標(biāo)區(qū)域。其具體的計(jì)算方法如下:
假設(shè)沙袋矩形區(qū)域高、寬分別為h、w,沙袋中心點(diǎn)距離懸掛點(diǎn)距離為l,沙袋中心點(diǎn)靜止時(shí)屏幕坐標(biāo)為(x0,y0),當(dāng)相對于中軸線偏移角度為θ時(shí)(向右為正,左為負(fù)),四個(gè)頂點(diǎn)(左上角、右上角、左下角、右下角)坐標(biāo)分別為:
當(dāng)虛擬拳擊手套屏幕坐標(biāo)VL(xls,yls)、VR(xrs,yrs)落入該區(qū)域時(shí),認(rèn)為有效命中。
4.5 擊打力和速度計(jì)算
為了滿足拳擊訓(xùn)練要求,并且根據(jù)碰撞理論計(jì)算沙袋擺角,本文計(jì)算了出拳速度和擊打力。
(1)出拳速度計(jì)算。拳速計(jì)算根據(jù)前后幀手坐標(biāo)位移和前后幀時(shí)間價(jià)格進(jìn)行計(jì)算,計(jì)算公式如式(4)所示:
(4)
其中,Pcurrent(x,y,z)和Plast(x,y,z)是擊中目標(biāo)的那只手在當(dāng)前幀和前一幀中經(jīng)過單位轉(zhuǎn)換后的關(guān)節(jié)點(diǎn)坐標(biāo);Δt為前后幀采樣間隔時(shí)間,用time-GetTime()獲取。
(2)擊打力計(jì)算。拳擊運(yùn)動在擊打的瞬間,等效為拳頭與沙袋碰撞拳速減為零,則拳頭的擊打力F為:
(5)
其中,m為拳臂的等效質(zhì)量,v和vt是拳頭在碰撞時(shí)的初速度和末速度,t為碰撞時(shí)間。設(shè)m為10 kg,沙袋質(zhì)量為25 kg,根據(jù)動量定理,由于拳臂與沙袋質(zhì)量相差不大,拳臂vt因拳頭與沙袋碰撞后速度急劇減小,為方便計(jì)算近似為0。則碰撞時(shí)間t計(jì)算如下:
擊打過程等效為兩個(gè)質(zhì)量不等的彈性球體碰撞,碰撞時(shí)間與兩球半徑之和成正比,與初速度之和成反比,而與兩球質(zhì)量無關(guān)[10]。
(6)
其中,設(shè)手的半徑R1為0.05 m,初速度v1為vm/s;沙袋的半徑R2為0.3 m,初速度v2為0 m/s。則將m=10 kg,vt=0以及式(6)代入式(5)可得:
(7)
在上面的公式中,v為三維空間中的矢量,則力的大小如下:
(8)
(9)
為了驗(yàn)證上述出拳力F的計(jì)算方法,進(jìn)行了多次實(shí)驗(yàn),實(shí)驗(yàn)數(shù)據(jù)和計(jì)算結(jié)果如表2所示。
Table 2 Data of impact force表2 出拳力的實(shí)驗(yàn)數(shù)據(jù)
表2中,vx、vy、vz和|v|的單位是m/s,t的單位是ms,F(xiàn)的單位是N。實(shí)際中,普通人的擊打力量為1 000 ~1 500 N。實(shí)驗(yàn)結(jié)果顯示,虛擬系統(tǒng)中,擊打力量在此范圍內(nèi),符合實(shí)際情況。
4.6 沙袋擺動響應(yīng)
本文根據(jù)拳速和擊打力量的大小,計(jì)算沙袋擺動角度。根據(jù)動量守恒定律計(jì)算碰撞后,人偶擺動初速度,如式(10)所示:
(10)
(11)
根據(jù)能量守恒定律,沙袋偏轉(zhuǎn)角度θ如下計(jì)算:
(12)
其中,v為拳速,l如圖(8)所示。根據(jù)實(shí)際效果,角度每周期大約衰減10%,若再無擊打則當(dāng)擺角小于0.05°時(shí),停止擺動。
沙袋擺動效果通過Direct 3D中世界變換的旋轉(zhuǎn)變換來實(shí)現(xiàn)。沙袋運(yùn)動方向?yàn)樗膫€(gè)原子方向即左、右、前、后方向。其中,左、右方向繞Z軸旋轉(zhuǎn),前、后方向繞X軸旋轉(zhuǎn)。若實(shí)現(xiàn)模型倒下效果,則給繞X軸或者Z軸的旋轉(zhuǎn)變換函數(shù)賦值π/2或者-π/2;若實(shí)現(xiàn)模型繞X軸或者Z軸旋轉(zhuǎn)fAngleX或fAngleY角度的效果,則給繞X軸或者Z軸的旋轉(zhuǎn)變換函數(shù)賦值fAngleX、fAngleY[11]。代碼實(shí)現(xiàn)如下所示:
D3DXMATRIXRx,Rz;
D3DXMatrixRotationX(&Rx,fAngle);
D3DXMatrixRotationZ(&Rz,fAngle);
g_matModelWorld=Rx*Rz*g_matModelWorld;
g_pd3dDevice→SetTransform(D3DTS_WORLD,&g_matModelWorld);
上述代碼中,首先定義了兩個(gè)繞X軸和Z軸旋轉(zhuǎn)的旋轉(zhuǎn)矩陣Rx和Rz,再將旋轉(zhuǎn)角度fAngleX和fAngleZ分別設(shè)進(jìn)矩陣Rx和Rz中。將人偶的世界矩陣和兩個(gè)旋轉(zhuǎn)矩陣相乘,并寫進(jìn)世界變換中,實(shí)現(xiàn)相應(yīng)效果[11]。
4.7 系統(tǒng)測試
為了驗(yàn)證虛擬打擊效果,結(jié)合實(shí)際,以左勾拳、右勾拳為例,訓(xùn)練者出拳擊打。圖9給出了出拳圖像、骨骼圖像和虛擬擊打效果圖,拳速和擊打力見表3。從圖9中可以看出,虛擬擊打效果圖中較為準(zhǔn)確地展示了出拳方式,并做出了正確的命中響應(yīng)。
Figure 9 System actual-test
從拳速記錄表3中可以看出,通過前后幀骨骼坐標(biāo)位移向量計(jì)算出的拳速向量,能夠正確反映出出拳方向。
Table 3 Table of velocity and impact表3 拳速和擊打力記錄表
注:速度v(vx,vy,vz)
本文采用Kinect體感傳感器和Direct 3D技術(shù),基于體感交互方式設(shè)計(jì)了拳擊沙袋模擬訓(xùn)練系統(tǒng),擺脫了拳擊教學(xué)與拳擊游戲?qū)龅匾蟮南拗?。在?shí)測中能夠迅速、準(zhǔn)確地響應(yīng)訓(xùn)練者所做出的打擊動作,并且能夠根據(jù)訓(xùn)練者出拳速度計(jì)算出相應(yīng)打擊力量,為拳擊教學(xué)提供了一種全新的方式,拓展了體感交互技術(shù)在體育訓(xùn)練中的新領(lǐng)域。
[1] Li Bo. Design and implementation of spining proprioceptive game[D]. Changsha: Hunan University,2010.(in Chinese)
[2] Xia Xin-hua, Li Xiang-chen, Pan Zhi-geng. Bicycle virtual synthesized training smiulation[J].Computer Simulation,2005(4):290-293.(in Chinese)
[3] González-Ortega D,Díaz-Pernas F J,Martínez-Zarzuela M,et al. A Kinect-based system for cognitive rehabilitation exercises monitoring[J]. Computer Methods and Programs in Biomedicine,2014,113(2):620-631.
[4] Luo Yuan,Xie Yu,Zhang Yi. Design and implementation of a gesture-driven system for intelligent wheelchairs based on the Kinect sensor[J]. Robot,2012(1):110-113.(in Chinese)
[5] Gu Rong,He Yi-ming,Jin Li-yan. Design and implementation of Kinect skeletal tracking technology-based intelligent teaching control system[J]. Computer Applications and Software,2013(6):276-280.(in Chinese)
[6] Chattopadhyay P,Roy A,Sural S,et al. Pose depth volume extraction from RGB-D stream for frontal gait recognition[J].Journal of Visual Communication and Image Representation, 2014,25(1):53-63.
[7] As’ari M A,Sheikh U U,Supriyanto E. 3D shape descriptor for object recognition based on Kinect-like depth image[J]. Image and Vision Computing, 2014(32):260-269.
[8] Yu Tao. Kinect application development combat:The most natural way dialogue with the machine[M]. Beijing: Machinery Industry Press,2012.(in Chinese)
[9] Du G,Zhang P.Markerless human-robot interface for dual robot manipulators using Kinect sensor[J].Robotics and Computer Integrated Manufacturing,2014,30(2):150-159.
[10] Zhen Huan-wu.The quantitative calculation of collision time[J]. Journal of Sichuan Normal University(Natural Science),2001,24(5):23-25.(in Chinese)
[11] Han Yuan-li,Wang Han-dong. Advanced DirectX 11 graphics development technical practices[M]. Beijing: Science Press,2013.(in Chinese)
附中文參考文獻(xiàn)
[1] 李波. 健身單車體感游戲設(shè)計(jì)與實(shí)現(xiàn)[D].長沙:湖南大學(xué),2010.
[2] 夏新華,李祥晨,潘志庚. 自行車虛擬綜合訓(xùn)練仿真器[J]. 計(jì)算機(jī)仿真,2005(4):290-293.
[4] 羅元,謝彧,張毅. 基于Kinect傳感器的智能輪椅手勢控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 機(jī)器人,2012(1):110-113.
[5] 顧容,何益明,金麗燕. 基于Kinect骨骼追蹤技術(shù)的智能教學(xué)控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)應(yīng)用與軟件,2013(6):276-280.
[8] 余濤.Kinect應(yīng)用開發(fā)實(shí)戰(zhàn):用最自然的方式與機(jī)器對話[M]. 北京: 機(jī)械工業(yè)出版社,2012.
[10] 鄭煥武.碰撞時(shí)間的定量計(jì)算[J].四川師范大學(xué)學(xué)報(bào),2001,24(5):23-25.
[11] 韓元利,王漢東. DirectX 11高級圖形開發(fā)技術(shù)實(shí)踐[M].北京: 科學(xué)出版社,2013.
趙建敏(1982-),男,內(nèi)蒙古包頭人,碩士,講師,研究方向?yàn)槿藱C(jī)交互和模式識別。E-mail:zhao_jm@imust.cn
ZHAO Jian-min,born in 1982,MS,lecturer,his research interests include human-computer interaction, and pattern recognition.
A design of a virtual boxing training system based on Kinect somatosensory sensor
ZHAO Jian-min,ZHAO Zhong-xin,XU Xiao-wei
(School of Information Engineering,Inner Mongolia University of Science and Technology,Baotou 014010,China)
Heavy-bag practice is an effective means for boxing training. Based on Kinect somatosensory interaction technology and virtual reality, we design and implement a virtual heavy-bag boxing training system, which consists of virtual scenes, somatosensory interaction and file management. Virtual scenes are established by loading the square ring model, heavy-bag, boxing gloves and boxing background using Direct 3D interface. The system uses Kinect somatosensory sensors to simulate the real process of boxing training, including tracking and getting the coordinates of the joints of human body, calculating the impact force and speed, and controlling the virtual fists to beat the sandbag. Experimental results show that the proposed design can not only achieve good heavy-bag training effect, but also provide a new method for boxing teaching and playing boxing games.
somatosensory;Kinect sensor;boxing;virtual reality
1007-130X(2015)09-1736-06
2014-12-08;
2015-01-13基金項(xiàng)目:內(nèi)蒙古科技大學(xué)創(chuàng)新基金資助項(xiàng)目(2012NCL027)
TP391.4
A
10.3969/j.issn.1007-130X.2015.09.023
通信地址:014010 內(nèi)蒙古包頭市阿爾丁大街7號內(nèi)蒙古科技大學(xué)信息工程學(xué)院
Address:School of Information Engineering,Inner Mongolia University of Science and Technology,7 Aerding St,Baotou 014010,Inner Mongolia,P.R.China