CN108958479B - 基于数据手套的通用三维虚拟场景实时交互方法 - Google Patents

基于数据手套的通用三维虚拟场景实时交互方法 Download PDF

Info

Publication number
CN108958479B
CN108958479B CN201810612664.1A CN201810612664A CN108958479B CN 108958479 B CN108958479 B CN 108958479B CN 201810612664 A CN201810612664 A CN 201810612664A CN 108958479 B CN108958479 B CN 108958479B
Authority
CN
China
Prior art keywords
data
glove
state
mapping
mouse
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810612664.1A
Other languages
English (en)
Other versions
CN108958479A (zh
Inventor
周良辰
姚奕杰
林冰仙
闾国年
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Normal University
Original Assignee
Nanjing Normal University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Normal University filed Critical Nanjing Normal University
Priority to CN201810612664.1A priority Critical patent/CN108958479B/zh
Publication of CN108958479A publication Critical patent/CN108958479A/zh
Application granted granted Critical
Publication of CN108958479B publication Critical patent/CN108958479B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/014Hand-worn input/output arrangements, e.g. data gloves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/01Indexing scheme relating to G06F3/01
    • G06F2203/012Walk-in-place systems for allowing a user to walk in a virtual environment while constraining him to a given position in the physical environment

Abstract

本发明公开了一种基于数据手套的通用三维虚拟场景实时交互方法:利用数据手套中的传感器获取手指关节的弯曲度以及手指之间的张合度,利用与数据手套配合的定位装置获得手套的空间位置、方位角参数,根据三维虚拟场景软件交互配置定义,将所获得的手套的空间位置、方位角参数、传感器参数与三维虚拟场景中视点等参数结合,转化为模拟鼠标/键盘输入,调用操作系统应用程序编程接口,将模拟鼠标/键盘输入状态信息转化为真实交互设备信息,驱动三维虚拟场景的实时交互。以此实现基于数据手套控制三维可视化软件中的虚拟场景实时旋转、漫游等交互。基于该方法,可将数据手套与其它三维可视化软件相集成,提高软件的三维交互能力。

Description

基于数据手套的通用三维虚拟场景实时交互方法
技术领域
本发明属于计算机领域,尤其涉及一种基于数据手套的通用三维虚拟场景实时交互方法。
背景技术
人机交互技术是计算机图形学和虚拟现实领域中不可或缺的组成部分,是属于用户接口管理系统(User Interface Management System,UIMS)的一项重要技术。而交互设备是完成交互任务的重要基础,其主要实现定位、选择、取值,拾取等五种交互任务。目前的三维可视化软件如3d Max、Maya等主要通过鼠标和键盘进行场景的定位和变换,在三维游戏中则除了鼠标键盘外,还可以采用游戏杆进行交互。这些设备的交互能力有限,在软件中被人为地映射为场景平移、旋转、缩放等操作,交互方式不够自然、灵活。使得更加复杂的交互难以实现。
虚拟现实技术最早出现在上世纪60年代,在航空航天、建筑、医疗、教育、艺术等领域有着广泛的应用。其中数据手套直接佩戴在使用者手部,可以根据用户手部的运动控制场景的变换,极大的增强了三维交互式虚拟现实的自由感和沉浸感。但数据手套的使用需要虚拟现实系统等专门软件的支持,而一般的三维可视化软件均不支持数据手套。
发明内容
本发明的目的在于解决目前数据手套需要专门软件系统支持,不能运用于大多数三维可视化软件系统中的局限性,实现一种基于数据手套的通用三维虚拟场景实时交互方法,将使用者佩戴的数据手套的运动状态映射为标准输入设备键盘、鼠标的状态消息传送给三维可视化系统,以实现用数据手套控制三维可视化系统中的三维交互。
本发明的技术方案是:
基于数据手套的通用三维虚拟场景实时交互方法,具体包含如下步骤:
步骤1,利用与数据手套集成的传感器获取手指关节的弯曲度以及手指之间的张合度,利用与数据手套集成的定位装置获得数据手套的空间位置和方位角参数;
步骤2,将从步骤1中获得的手指关节数据映射为标准交互设备输入状态信息;
步骤3,将步骤2中得到的模拟标准交互设备输入状态信息转化为真实交互设备信息,驱动三维虚拟场景的实时交互。
作为本发明基于数据手套的通用三维虚拟场景实时交互方法的进一步优选方案,所述步骤1具体包含以下步骤:
步骤1.1,将数据手套与计算机通过串口或并口或USB接口连接;
步骤1.2,从数据手套中的传感器获取手指关节的弯曲度以及手指之间的张合度,利用安装与数据手套集成的定位装置获得手套的空间位置、方位角参数;
步骤1.3,从获取的数据中解析出数据手套的手势以及相对于基坐标系的位移矢量和方位角度。
作为本发明基于数据手套的通用三维虚拟场景实时交互方法的进一步优选方案,所述步骤2具体包括:
步骤2.1,将步骤1中所获得的数据手套的手势以及相对于基坐标系的位移矢量和方位角度映射为特定的输入设备状态信息;
步骤2.2,输入设备状态信息包括鼠标移动方向、移动量、按键状态以及键盘的按键状态;
步骤2.3,根据具体三维可视化软件交互方式,定义相应的交互映射关系。
作为本发明基于数据手套的通用三维虚拟场景实时交互方法的进一步优选方案,所述步骤3具体包括:将步骤2所获得特定输入设备状态信息转化为真实交互设备信息发送给计算机,计算机系统自动将获得的真实交互设备信息发送给目标三维可视化软件,并进行场景的交互。
作为本发明基于数据手套的通用三维虚拟场景实时交互方法的进一步优选方案,步骤1中,利用数据手套供应商提供的硬件接口规范及数据协议,调用操作系统API,从计算机硬件接口中获取数据手套状态信息。
作为本发明基于数据手套的通用三维虚拟场景实时交互方法的进一步优选方案,在步骤1中,调用数据手套供应商提供的软件开发包,利用开发包中提供的方法获取数据手套状态信息,其中,数据手套状态信息包括数据手套空间位置数据、数据手套方位角数据、数据手套传感器数据。
作为本发明基于数据手套的通用三维虚拟场景实时交互方法的进一步优选方案,所述步骤2中的交互方式映射是指建立数据手套运动状态信息与标准输入设备鼠标、键盘输入信息间的映射关系;数据手套运动信息包括手套位移分量、手套方位角、手套的手势;键盘信息包括按键及按键状态;鼠标信息包括鼠标位置与鼠标状态;根据三维可视化目标系统的交互行为定义,将数据手套的连续运动信息映射为键盘与鼠标的连续信息组合。
作为本发明基于数据手套的通用三维虚拟场景实时交互方法的进一步优选方案,在步骤2中,
交互方式映射中的位移映射是将数据手套位移状态映射到单位立方体,再映射到三维可视化软件的交互窗口中;
交互方式映射中的旋转映射是将数据手套旋转状态映射到单位球体,再映射到三维可视化软件的交互窗口中;
交互方式映射中的手势映射是将数据手套的姿态映射到预定的手势,再映射到三维可视化软件的交互窗口中。
本发明采用以上技术方案与现有技术相比,具有以下技术效果:
将使用者佩戴的数据手套的运动状态映射为标准输入设备键盘、鼠标的状态消息传送给三维可视化系统,以实现用数据手套控制三维可视化系统中的三维交互。与传统的交互设备鼠标键盘相比,数据手套不但提供了更加丰富的空间信息,而且具有灵活、直观等特点,具有传统交互方式无法比拟的优点。数据手套还可以配合数字头盔、VR眼睛一起使用,给用户带来更好的沉浸感以及交互体验。
附图说明
图1是本发明实施例1的流程图;
图2a是本发明实施例1平移映射规范空间;
图2b是本发明实施例1旋转映射规范空间;
图2c是本发明实施例1手势映射规范格式。
具体实施方法
下面结合附图和实施例做进一步详细说明。
实施例1
如图1所示,基于数据手套的通用三维虚拟场景实时交互方法,该方法包括以下三个步骤:
步骤1利用数据手套中的传感器获取手指关节的弯曲度以及手指之间的张合度(弯曲度和张合度统称为传感器参数),利用与数据手套集成的定位装置获得手套的空间位置、方位角参数;
步骤2根据三维虚拟场景软件交互配置定义,将从步骤1中获得的数据映射为标准交互设备(鼠标、键盘)输入状态信息;
步骤3调用操作系统API,将步骤2中得到的模拟标准交互设备输入状态信息转化为真实交互设备信息,驱动三维虚拟场景的实时交互。
所述步骤1中从计算机硬件接口中获取数据手套状态信息的方法有两种:(1)利用数据手套供应商提供的硬件接口规范及数据协议,调用操作系统API,从计算机硬件接口中获取数据手套状态信息;(2)调用数据手套供应商提供的软件开发包,利用开发包中提供的方法获取数据手套状态信息。本方法所需要获得的数据手套状态信息包括数据手套空间位置数据、数据手套方位角数据和数据手套传感器数据。
所述步骤2中的交互方式映射是指建立数据手套运动状态信息与标准输入设备鼠标、键盘输入信息间的映射关系。数据手套运动信息包括手套位移分量、手套方位角及手套的手势;键盘信息包括按键(vk)及按键状态;鼠标信息包括鼠标位置与鼠标状态(左键按下、左键释放、右键按下、右键释放、滚轮向前、滚轮向后、鼠标移动)。根据三维可视化系统的交互定义,将数据手套的连续运动信息映射为键盘与鼠标的连续信息组合。将数据手套位移状态映射到单位立方体,将数据手套旋转状态映射到单位球体,将数据手套姿态映射手势库,然后再映射到三维可视化软件的交互窗口中。
所述步骤3中将步骤2所获得特定输入设备状态信息转化为真实交互设备信息发送给计算机,是通过操作系统自带的应用程序编程接口,将自定义的鼠标、键盘消息插入到系统消息队列中,并被三维可视化软件所接受处理,以实现对三维可视化软件的交互控制。
本实例以Windows 7为操作系统环境,Visual Studio 2010为开发环境,C++和C#为开发语言,以Immersion公司的CyberGloveⅢ数据手套控制AutoDesk公司的3D Max软件进行三维场景交互。
如图1所示,基于数据手套的通用三维虚拟场景交互方法,按照如下步骤建立数据手套交互配置程序VRHI.exe:
步骤1利用数据手套中的传感器获取手指关节的弯曲度以及手指之间的张合度(弯曲度和张合度统称为传感器参数),利用与数据手套集成的定位装置获得手套的空间位置、方位角参数;
步骤2根据三维虚拟场景软件交互配置定义,将从步骤1中获得的数据映射为鼠标、键盘的输入状态信息;
步骤3调用Microsoft Windows操作系统应用程序编程接口SendInput(),将步骤2中得到的模拟标准交互设备输入状态信息转化为真实交互设备信息,驱动三维虚拟场景的实时交互。
完成VRHI.exe之后,启动三维软件,以3DMAX为例,明确其三维观察窗口的鼠标和键盘映射方式;启动VRHI.exe后,进入到用户配置界面,按照3DMAX的三维交互相关的鼠标和键盘映射,设置界面平移和旋转选项;启动手套交互模式,利用数据手套控制3D Max三维场景变换;最后结束手套交互模式并退出数据手套交互配置程序。
具体实施步骤如下:
步骤1利用数据手套中的传感器获取手指关节的弯曲度以及手指之间的张合度(弯曲度和张合度统称为传感器参数),利用安装与数据手套集成的定位装置获得手套的空间位置、方位角参数。
CyberGlove通过VHT(Virtual Hand ToolKit)组件给用户提供了统一的编程接口,它包含了开发中所需的完整的类集合和库文件。为了保证程序的可移植性和通用性,VHT为应用程序的开发者提供了以下几个主要的开发接口来获取数据:
(1)vhtIOConn类
VHT是基于C/S架构的,即用户应用程序作为客户端,而数据手套等连接的主机作为服务器端,调用vhtIOConn类中的构造函数来获得指定的设备的地址vhtIOConn(constchar*aDeviceClass,const char*aHost,const char*aPort,const char*aDevice,constchar*aRate);也可以通过vhtIOConn*gloveDict=vhtIOConn::getDefault(vhtIOConn::glove)来获得默认的地址。
(2)vhtCyberGlove类
设备所在的服务器的地址确定后,可以通过vhtCyberGlove*glove=newvhtCyberGlove(gloveDict)方法创建设备代理建立连接。通过vhtCyberGlove类中的getData(GHM::Fingers aFinger,GHM::Joints aJoint)方法可以获得数据手套传感器的输出值,getData函数中aFinger变量代表某个手指,aJoint变量代表手指上的某个关节,通过此函数就可以获得各个手指的关节的弯曲度以及手指与手指之间的张角。
具体数据获取的步骤如下
a.和数据手套建立连接:
vhtIOConn*gloveAddress=new vhtIOConn("cyberglove","localhost",
"12345","serial4","115200");
b.获得一个数据手套对象:
vhtCyberGlove*glove=new vhtCyberGlove(gloveAddress);
c.更新设备:
glove->update();
d.获得手套传感器的数据:
for(int finger=0;finger<GHM::nbrFingers;finger++)
{
for(int joint=0;joint<GHM::nbrJoints;joint++)
{glove->getData((GHM::Fingers)finger,(GHM::Joints)joint))}
}
通过a、b、c、d这几步可以获取手套22个传感器的数据。
e.和手套上鸟群位置跟踪器建立连接
birdRS232WakeUp(int nGroupID,BOOL bStandAlone,int nNumDevices,
WORD*pwComport,DWORD dwBaudRate,DWORD dwReadTimeout,
DWORD dwWriteTimeout,int nGroupMode=GMS_GROUP_MODE_ALWAYS);
f.读取鸟群位置跟踪器数据
Figure BDA0001695892180000071
g.关闭鸟群位置跟踪器
birdStopFrameStream(GROUP_ID);
birdShutDown(GROUP_ID);
通过e、f、g这几步可以获取手套的位置x,y,z和方位角度alpha、beta、gama等重要数据。
步骤2根据三维虚拟场景软件交互配置定义,将从步骤1中获得的数据映射为鼠标、键盘的输入状态信息。
(1)手套、鼠标和键盘等设备状态的数据结构。
a.定义HS为手套状态:HS
HS定义为结构体:
Figure BDA0001695892180000072
其中x,y,z分别表示手套的位移分量,a,b,r分别表示手套的方位角,fingerData表示手套的手势数据。
b.定义键盘状态:KS
KS定义为结构体:
Figure BDA0001695892180000081
其中state表示按键状态:“1”表示是释放状态,“2”表示按下状态;vk表示虚拟键。一般只需要考虑功能键如"CTRL SHIFT SPACE"和字符键"A...Z;0,1,...,9,-,+"以及光标键"上下左右"。
c.定义鼠标状态:MS
MS定义为结构体:
Figure BDA0001695892180000082
其中state的取值范围可以为:
Figure BDA0001695892180000083
分别表示鼠标的左右键状态、滚轮状态、移动状态等。
(2)定义两种映射:
H1:手套的手势→连续的按键组合;
H2:手套的连续运动→连续的鼠标运动。
其中H1视具体的交互情景而定,由用户自定义手势和按键之间的对应关
系,得到手势按键映射表,并把映射表保存到txt文件中。
(3)平移映射的计算
如图2a,本发明实施例1平移映射规范空间;
图2b是本发明实施例1旋转映射规范空间;
图2c是本发明实施例1手势映射规范格式。
给定手套的移动范围:[0,HX],[0,HY],[0,HZ];以及三维场景的范围:
[0,SX],[0,SY],[0,SZ]。
由手套的位移分量(hx,hy,hz),计算屏幕上鼠标的位移分量(mx,my)。
手套位移规范化:(中心对称)
uhx=hx/HX-0.5;
uhy=hy/HY-0.5;
uhz=hz/HZ-0.5;
虚拟场景移动量:
sx=uhx*SX+sx0
sy=uhy*SY+sy0
sz=uhz*SZ+sz0
其中平移分量(sx0,sy0,sz0)为预先定义的参考基点,相当于观察者在虚拟三维场景中的初始位置。
鼠标移动量计算:
Mx=sx*kx;
My=sy*ky;
其中系数kx,ky分别为三维软件自定义的放缩系数,也可由用户自己任意设置.需要注意的是移动分量sz并没有被鼠标利用。
(4)旋转映射的计算
手套的方位角度活动范围给为:[-A/2,A/2],[-B/2,B/2],[-R/2,R/2];
虚拟场景的旋转角度一般为:[0,2*Pi],[0,2*Pi],[0,2*Pi],分别表示绕x,y,z轴的旋转角度.
给定手套的方位角度a,b,r,产生鼠标移动消息和相应的移动量.这意味着对空间球体的连续旋转变换.而要从已知的空间旋转变换得到平面鼠标的移动往往没有唯一解.为简单起见,可将手套的方位角视为连续实时的欧拉角度,从中任选两个角度分别映射到鼠标的移动分量上即可。
规范化手套旋转量:
ha=2*a/A;
hb=2*b/B;
hr=2*r/R;
映射鼠标移动分量:
mx=ha*Pi*radius;
my=hb*Pi*radius;
其中radius为空间操纵球的半径,可以根据需要进行设置.
(5)手势映射的计算
手套中的传感器记录了每个手指关节的弯曲度以及手指与手指之间的张合度,根据每根手指上传感器传回来的数据判断手指的状态,通过设置合适的阈值,将每根手指的状态分成三类:全弯、笔直、半弯,将手指与手指之间的状态分为两类:张开、闭合。
传感器数据转成状态值的规则:
If a<α then stateValue=0
If a>β then stateValue=1
If α<a<β then stateValue=2
If b<γ then stateValue=3
If b>γ then stateValue=4
其中a是传感器获取的关节弯曲度数据,α、β为人为设置的弯曲度阈值;b是传感器获取的指间张合度数据,γ为人为设置的张合度阈值。0、1、2、3、4这五种状态值分别表示全弯、笔直、半弯、闭合、张开这五种状态。
正常人一只手有五个手指,除了大拇指有两个关节外其他手指都有三个关节,每个关节都会有一个弯曲传感器测量其弯曲度,所以测量手指关节弯曲度的传感器一共有14个。手指与手指之间会有张角传感器,所以测量手指间张角的传感器一共有4个,利用这18传感器便可以准确记录手势信息。将传感器的数据按照转换规则转换成相应的状态值保存到fingerData数组中,每一个fingerData数组对应着一个手势,并由用户自定义该手势的名称以及对应的按键消息,这样便实现了从传感器数据到手势然后到按键消息的映射。
步骤3调用操作系统API,将步骤2中得到的模拟标准交互设备输入状态信息转化为真实交互设备信息,驱动三维虚拟场景的实时交互。模拟传统输入设备的方法是:调用系统API。下面给出在本实施例中使用的关键数据结构。
(1)API定义以及参数说明.
UINT SendInput(UINT nInput,LPINPUT pInput,int cbsize)
该函数能够将自定义的鼠标,键盘、以及其他硬件消息插入到系统的消息队列中.当这些消息被三维软件所处理时,则能模拟三维软本身的交互行为.函数的参数意义如下:
nInput:一起发送的消息数目
LPINPUT:输入消息数组指针
Cbsize:单个消息结构体的的大小
LPINPUT定义:
Figure BDA0001695892180000111
结构体中type字段可取值为:INPUT_MOUSE,INPUT_KEYBOARD,INPUT_HARDWARE.
结构体中mi字段为鼠标输入结构体,定义为:
Figure BDA0001695892180000112
Figure BDA0001695892180000121
其中dx、dy分别表示鼠标的绝对位置或者相对位置,这取决于字段dwFlags的设定:MOUSEEVENTF_ABSOLUTE.
结构体中字段ki为键盘输入结构体,定义为:
Figure BDA0001695892180000122
(2)将鼠标键盘状态转换为实际输入消息
对每一个被映射的设备状态,定义一个与之对应的INPUT结构体对象,然后调用SendInput()将所有INPUT对象发送到当前消息队列中去.下面给出该函数调用的方法。
a.模拟键盘输入的系统API方法.
定义原型函数:
void Simu_keyboard(KS*pKS,int nks);
其中参数pKS表示按键状态列表,nks表示列表长度.该函数的简要实现方法如下:
Figure BDA0001695892180000123
Figure BDA0001695892180000131
b.模拟鼠标输入的系统API方法.
定义原型函数:
void Simu_mouse(MS*pMS,int nms);
其中参数pMS表示按键状态列表,nms表示列表长度.该函数的简要实现方法如下:
Figure BDA0001695892180000132
Figure BDA0001695892180000141
综上所述,将使用者佩戴的数据手套的运动状态映射为标准输入设备键盘、鼠标的状态消息传送给三维可视化系统,以实现用数据手套控制三维可视化系统中的三维交互。与传统的交互设备鼠标键盘相比,数据手套不但提供了更加丰富的空间信息,而且具有灵活、直观等特点,具有传统交互方式无法比拟的优点。数据手套还可以配合数字头盔、VR眼睛一起使用,给用户带来更好的沉浸感以及交互体验。

Claims (5)

1.基于数据手套的通用三维虚拟场景实时交互方法,其特征在于,具体包含如下步骤:
步骤1,利用与数据手套集成的传感器获取手指关节的弯曲度以及手指之间的张合度,利用与数据手套集成的定位装置获得数据手套的空间位置和方位角参数;
步骤2,将从步骤1中获得的手指关节数据映射为标准交互设备输入状态信息;
步骤3,将步骤2中得到的模拟标准交互设备输入状态信息转化为真实交互设备信息,驱动三维虚拟场景的实时交互;
所述步骤1包含以下步骤:
步骤1.1,将数据手套与计算机通过串口或并口或USB接口连接;
步骤1.2,从数据手套中的传感器获取手指关节的弯曲度以及手指之间的张合度,弯曲度和张合度统称为传感器参数,利用安装与数据手套集成的定位装置获得手套的空间位置、方位角参数;
步骤1.3,从获取的数据中解析出数据手套的手势以及相对于基坐标系的位移矢量和方位角度;
步骤2包括:
步骤2.1,将步骤1中所获得的数据手套的手势以及相对于基坐标系的位移矢量和方位角度映射为特定的输入设备状态信息;
步骤2.2,输入设备状态信息包括鼠标移动方向、移动量、按键状态以及键盘的按键状态;
步骤2.3,根据具体三维可视化软件交互方式,定义相应的交互映射关系;
步骤2中的交互方式映射是指建立数据手套运动状态信息与标准输入设备鼠标、键盘输入信息间的映射关系;数据手套运动信息包括手套位移分量、手套方位角、手套的手势;键盘信息包括按键及按键状态;鼠标信息包括鼠标位置与鼠标状态;根据三维可视化目标系统的交互行为定义,将数据手套的连续运动信息映射为键盘与鼠标的连续信息组合;
交互方式映射中的手势映射是将数据手套的姿态映射到预定的手势,再映射到三维可视化软件的交互窗口中;
数据手套的每个关节都会有一个弯曲传感器测量其弯曲度,手指与手指之间会有张
角传感器,手套中的传感器记录了每个手指关节的弯曲度以及手指与手指之间的张合度,根据每根手指上传感器传回来的数据判断手指的状态,通过设置合适的阈值,将每根手指的状态分成三类:全弯、笔直、半弯,将手指与手指之间的状态分为两类:张开、闭合;将传感器的数据按照转换规则转换成相应的状态值保存到fingerData数组中,每一个fingerData数组对应着一个手势,并由用户自定义该手势的名称以及对应的按键消息;
根据三维虚拟场景软件交互配置定义,将获得的各个手指的关节的弯曲度数据以及手指与手指之间的张角数据映射为鼠标、键盘的输入状态信息的过程包括:
步骤A,定义包括手套、鼠标和键盘在内的各设备状态的数据结构;
所述手套状态包括手套的位移分量、手套的方位角、手套的手势数据;
键盘状态包括释放状态、按下状态、虚拟键;
鼠标状态包括左右键状态、滚轮状态、移动状态、鼠标位置;
步骤B,定义两种映射:
H1:手套的手势—>连续的按键组合;
H2:手套的连续运动—>连续的鼠标运动;
其中H1视具体的交互情景而定,由用户自定义手势和按键之间的对应关系,得到手势按键映射表,并把映射表保存到txt文件中;
步骤C,计算平移映射
给定手套的移动范围:[0,HX],[0,HY],[0,HZ];以及三维场景的范围:[0,SX],[0,SY],[0,SZ];
由手套的位移分量(hx,hy,hz),计算屏幕上鼠标的位移分量(mx,my);
规范化手套位移:
uhx=hx/HX-0.5;
uhy=hy/HY-0.5;
uhz=hz/HZ-0.5;
计算虚拟场景移动量:
sx=uhx*SX+sx0;
sy=uhy*SY+sy0;
sz=uhz*SZ+sz0;
其中平移分量(sx0,sy0,sz0)为预先定义的参考基点,相当于观察者在虚拟三维场景中的初始位置;
根据下述公式计算鼠标移动量:Mx=sx*kx;My=sy*ky;其中系数kx,ky分别为三维软件自定义的放缩系数;
步骤D,计算旋转映射
给定手套的方位角度活动范围为:[-A/2,A/2],[-B/2,B/2],[-R/2,R/2];
给定虚拟场景的旋转角度为:[0,2*Pi],[0,2*Pi],[0,2*Pi],分别表示绕x,y,z轴的旋转角度;
给定手套的方位角度a,b,r,产生鼠标移动消息和相应的移动量;将手套的方位角视为连续实时的欧拉角度,从中任选两个角度分别映射到鼠标的移动分量上;
规范化手套旋转量:
ha=2*a/A;
hb=2*b/B;
hr=2*r/R;
映射鼠标移动分量:
mx=ha*Pi*radius;
my=hb*Pi*radius;
其中radius为空间操纵球的半径,可以根据需要进行设置;
步骤E,计算手势映射
手套中的传感器记录了每个手指关节的弯曲度以及手指与手指之间的张合度,根据每根手指上传感器传回来的数据判断手指的状态,通过设置合适的阈值,将每根手指的状态分成三类:全弯、笔直、半弯,将手指与手指之间的状态分为两类:
张开、闭合;
将传感器数据转成状态值。
2.根据权利要求1所述的基于数据手套的通用三维虚拟场景实时交互方法,其特征是:所述步骤3具体包括:将步骤2所获得特定输入设备状态信息转化为真实交互设备信息发送给计算机,计算机系统自动将获得的真实交互设备信息发送给目标三维可视化软件,并进行场景的交互。
3.根据权利要求1所述的基于数据手套的通用三维虚拟场景实时交互方法,其特征是:步骤1中,利用数据手套供应商提供的硬件接口规范及数据协议,调用操作系统API,从计算机硬件接口中获取数据手套状态信息。
4.根据权利要求1所述的基于数据手套的通用三维虚拟场景实时交互方法,其特征是:在步骤1中,调用数据手套供应商提供的软件开发包,利用开发包中提供的方法获取数据手套状态信息,其中,数据手套状态信息包括数据手套空间位置数据、数据手套方位角数据、数据手套传感器数据。
5.根据权利要求2所述的基于数据手套的通用三维虚拟场景实时交互方法,其特征是:在步骤2中,
交互方式映射中的位移映射是将数据手套位移状态映射到单位立方体,再映射到三维可视化软件的交互窗口中;
交互方式映射中的旋转映射是将数据手套旋转状态映射到单位球体,再映射到三维可视化软件的交互窗口中。
CN201810612664.1A 2018-06-14 2018-06-14 基于数据手套的通用三维虚拟场景实时交互方法 Active CN108958479B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810612664.1A CN108958479B (zh) 2018-06-14 2018-06-14 基于数据手套的通用三维虚拟场景实时交互方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810612664.1A CN108958479B (zh) 2018-06-14 2018-06-14 基于数据手套的通用三维虚拟场景实时交互方法

Publications (2)

Publication Number Publication Date
CN108958479A CN108958479A (zh) 2018-12-07
CN108958479B true CN108958479B (zh) 2021-11-02

Family

ID=64488666

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810612664.1A Active CN108958479B (zh) 2018-06-14 2018-06-14 基于数据手套的通用三维虚拟场景实时交互方法

Country Status (1)

Country Link
CN (1) CN108958479B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113625875A (zh) * 2021-08-09 2021-11-09 沈阳工业大学 一种可同时反馈的综合性系统手套
CN114035677A (zh) * 2021-10-25 2022-02-11 中冶智诚(武汉)工程技术有限公司 一种用于双手与虚拟手套外设交互的通用接口实现方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101644989A (zh) * 2009-09-08 2010-02-10 南京师范大学 基于数字头盔的通用三维虚拟场景实时交互方法
US20120274546A1 (en) * 2011-04-30 2012-11-01 Dilip Dalton Data input glove with instantaneous chord detection
CN204765652U (zh) * 2015-04-30 2015-11-18 牛留栓 一种全面检测手指运动功能的数据手套
CN105404390A (zh) * 2015-10-29 2016-03-16 华侨大学 一种无线数据手套建模及手势动作识别方法
CN105818129A (zh) * 2016-04-12 2016-08-03 华南理工大学 一种基于数据手套的仿人机械手控制系统
CN106896796A (zh) * 2017-02-13 2017-06-27 上海交通大学 基于数据手套的工业机器人主从式示教编程方法
CN107506038A (zh) * 2017-08-28 2017-12-22 荆门程远电子科技有限公司 一种基于移动终端的三维虚拟地球交互方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101644989A (zh) * 2009-09-08 2010-02-10 南京师范大学 基于数字头盔的通用三维虚拟场景实时交互方法
US20120274546A1 (en) * 2011-04-30 2012-11-01 Dilip Dalton Data input glove with instantaneous chord detection
CN204765652U (zh) * 2015-04-30 2015-11-18 牛留栓 一种全面检测手指运动功能的数据手套
CN105404390A (zh) * 2015-10-29 2016-03-16 华侨大学 一种无线数据手套建模及手势动作识别方法
CN105818129A (zh) * 2016-04-12 2016-08-03 华南理工大学 一种基于数据手套的仿人机械手控制系统
CN106896796A (zh) * 2017-02-13 2017-06-27 上海交通大学 基于数据手套的工业机器人主从式示教编程方法
CN107506038A (zh) * 2017-08-28 2017-12-22 荆门程远电子科技有限公司 一种基于移动终端的三维虚拟地球交互方法

Also Published As

Publication number Publication date
CN108958479A (zh) 2018-12-07

Similar Documents

Publication Publication Date Title
CN101644989B (zh) 基于数字头盔的通用三维虚拟场景实时交互方法
CN108564643B (zh) 基于ue引擎的表演捕捉系统
JP2022550555A (ja) 画像処理方法、装置、電子機器及びコンピュータプログラム
CN109732593B (zh) 一种机器人的远端控制方法、装置及终端设备
CN108958479B (zh) 基于数据手套的通用三维虚拟场景实时交互方法
CN108693958B (zh) 一种手势识别方法、装置及系统
CN111251305B (zh) 机器人力控制方法、装置、系统、机器人及存储介质
CN111665933A (zh) 虚拟或者增强现实中的对象操作方法及装置
Tsai et al. Unity game engine: Interactive software design using digital glove for virtual reality baseball pitch training
CN111338287A (zh) 机器人运动控制方法、装置、系统、机器人及存储介质
CN108020223B (zh) 一种基于惯性测量装置的力反馈设备手柄的姿态测量方法
Fiorentino et al. Improving bi-manual 3D input in CAD modelling by part rotation optimisation
Devi et al. Low cost tangible glove for translating sign gestures to speech and text in Hindi language
Tanjung et al. The use of virtual reality controllers and comparison between vive, leap motion and senso gloves applied in the anatomy learning system
Mihaľov et al. Potential of low cost motion sensors compared to programming environments
CN110457227B (zh) 辅助开发人员或学生进行vr应用开发的系统及开发方法
Katusin Glove for Augmented and Virtual Reality
Besnea et al. Experiments regarding implementation of a virtual training environment for automotive industry
Ji et al. Motion trajectory of human arms based on the dual quaternion with motion tracker
KR100221335B1 (ko) 가상 현실 시스템에서 글러브 센서값 전송 시스템 및 그 방법
CN110209270A (zh) 一种数据手套、数据手套系统、校正方法及存储介质
Liu et al. COMTIS: Customizable touchless interaction system for large screen visualization
CN109816756A (zh) 一种虚拟仿生模型的动作设计方法
Reitmayr et al. iorb-unifying command and 3d input for mobile augmented reality
CN114756130A (zh) 一种手部虚实交互系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant