基于WiseGlove数据手套的维修手势仿真研究与实现(2)
2维修手势仿真方法
本节根据手指运动模型,提出了基于数据手套测量数据实时驱动的维修手势仿真过程方法。但是仿真效果欠佳,主要有两个原因:一是数据手套测量数据不准,导致仿真效果不佳。二是根据第二关节弯曲角度近似计算第三关节弯曲角度,误差大,导致维修手势仿真不准确,甚至严重失真。基于此,提出了维修手势模糊匹配方法,对维修手势进行匹配,取得了很好的效果。
2.1相关定义
装备维修过程包含很多维修手势,每个维修手势有一组与手指关节一一对应的角度,针对不同个人的生理特点,每个维修手势角度有一个很小的范围。为了提高维修手势仿真的连续性与逼真度,提出了维修手势仿真过程方法与维修手势模糊匹配方法,引入如下定义:
2.2维修手势模糊处理方法
当数据手套捕捉到一组维修手势角度测量数据D时,按照手指运动特性,采用这组数据进行维修手势仿真,受数据手套测量角度精度与数量的制约,导致维修手势仿真效果不佳且
出现严重失真问题,基于此提出了维修手势模糊匹配方法。主要步骤如下:
第一步:建立维修手势库,或称预设手势。根据文献[5]中对维修手势的分类,定义了这些维修手势的关节角度,形成预设维修手势集合G和每个维修手势对应的关节角度矩阵Amx₂₀;
第二步: 生成手势匹配矩阵A'mx₂₀;分析每个维修手势关节角度变化趋势,确定每个预设手势与数据手套测量值对应的14个关节角度范围;
第三步:数据手套测量角度集合D隶属度判断。D中所有元素与所有预设维修手势角度范围矩阵A'mx14每一行对应元素一一匹配,即计算14个关节角度A'mx14中有多少个在A'mx14范围内。如果有j个成立,则记集合D对A'mx14的隶属度为j。
第四步:测量手势与预设维修手势匹配。对隶属度j进行排序,最大j值对应的预设维修手势为当前维修手势。
2.3维修手势仿真过程方法
在维修手势仿真过程中,当在两个手势gi和gj之间进行切换时,若直接按照匹配手势角度仿真,需对虚拟手型恢复到初始姿势,再进行维修手势仿真,这严重影响了虚拟维修手势
仿真的连续性。基于此提出了基于数据手套测量数据实时驱动的维修手势仿真过程方法, 主要步骤如下:
第一步:初始化;数据手套初始化,获取预定义初始化手势关节角度,记做g1(A)
第二步: 维修手势模糊处理;读人数据手套测量值D,进行维修手势匹配, 配置维修手势关节角度记做gi(A)。
第三步:计算手指每个关节旋转角度。维修手势gi(A)中每个角度减去初始手势g1(A)中对应的角度,得到手指关节旋转的相对角度。
第四步:维修手势模糊处理;读入下一组数据手套测量值D,进行维修手势匹配,配置维修手势关节角度记做gj(A)。
第五步:计算手指每个关节旋转角度。维修手势gj(A)中每个角度减去初始手势gj(A)中对应的角度,得到手指关节旋转的相对角度。
依次不断重复,计算每个维修手势相对于上一个手势,每个关节旋转的相对角度,最终实现虚拟维修手势的联系与逼真仿真。
3基于Virtools的维修手势实现
3.1仿真流程
Virtools虽然提供了丰富的行为交互模块BB,但是现有BB不能实现维修手势仿真。Virtools脚本语言VSL功能强大,通过对VirtoolsSDK脚本级的访问,开发更多功能。本文利用Virtools提供的VSL脚本语言开发维修手势模糊匹配脚本模块(Gesture)和维修手势仿真过程控制脚本模块(HandOrientationControl),实现维系手势联系逼真仿真,仿真主要流程如图5所示。
第一步:实时角度测量数据采集。调用数据手套提供的API函数,读取测量的14个角度值, 保存成.txt文件,并以一定的频率把数据发送给Virtools。
第二步:实时接收角度数据。利用Virtool交互行为模块WaitMessage,实时接收传输数据消息。
第三步:清除前一角度测量值。利用Virtool交互行为模块ClearArray,清除前一手势角度测量值。
第四步:保存当前测量角度值。利用Virtool交互行为模块,读取.txt文件中的前维修手势角度测量值,并保存到Array中。并把测量值发送给手势模糊匹配脚本模块Gesture。
第五步:维修手势模糊匹配。接收当前角度测量值,利用开发的Gesture脚本模块进行维修手势模糊匹配。
第六步: 维修手势仿真过程计算;利用仿真过程控制脚本模块HandOrientationControl进行计算。
第七步:设置旋转角度;利用Virtool交互行为模块SetEulerOrientation设置手指20个关节旋转角度。
3.2仿真效果验证
本文随机获取如表3所示十组数据,验证仿真效果。每组数据得到的维修手势仿真效果如图7所示。通过仿真,十组维修手势的匹配全都成功,取得了良好的效果。
4结论
本文针对数据手套测量数据实时驱动虚拟手,维修手势仿真过程失真严重现象,提出了基于数据手套测量数据实时驱动的维修手势仿真过程方法和维修手势模糊匹配方法。通过预定
义维修手势,在用测量数据与之进行匹配,一方面解决了数据手套测量值少,不能完全反应手指运动问题;另一方面,解决了维修手势仿真过程失真现象。通过本文提出的维修仿真过程方法,解决了维修手势仿真过程的连续性问题。此外,本文仿真方法的好处在于,能够扩展预定义维修手势,实现更多维修手势的仿真。但是随着预定义手势的增加,将制约维修手势模糊匹配的正确性。下一步的工作是研究预定义手势的增加与手势模糊匹配正确率之间的关系,更好地实现虚拟维修手势仿真的多元化以及提高仿真过程的逼真性。
参考文献:
[1]付玉锦,原魁,朱海兵,等.CAS-Glove型数据手套运动建模与软件系统开发[].系统仿真学报,2004,16(4):660-662.
[2]刘颖真.万刚,游雄.基于数据手套和跟踪器的虚拟手臂建模[J]. 测绘学院学报。
2005,22(4):272-274.
[3]孙立博,刘艳,孙济洲等,面向人机工程学测试的虚拟手仿真模型[J]. 计算机工程,
2009,35(19):10-12.
[4]潘燕彬.基于数据手套的虚拟手术训练系统交互技术的研究[D].广东工业大学,2008.05.
[5]柳辉.李星新.基于Jack的虚拟人抓握过程的设计及实现[J].计算机工程,2007,33(3):213-217.
[6]李琴.黄德所,汪文革等.基于数据手套的虚拟手建模与驱动[J]. 计算机与现代化2010,04:57-60
[7]张玉祥,沙寒.虚拟操作训练系统中的人机交互技术[J]. 计算机工程
[8]安明.陈善广,刘玉庆.基于数据手套的虚拟手精确建模的研究与实现[J].计算机仿真,2010,27(1):241-243.
[9]殷磊,韩静。王烨等.虚拟现实环境下虚拟手控制技术研究[J].系统仿真学报.2009, 21(2):448-451.
[10]罗迎,Quest3D虚拟人机交互系统中5DT数据手套的应用[J].科学技术与工程
[11]王振中,王松山,江劲勇.基于Jack的虚拟维修样机交互行为建模方法研究[J].计算机测量与控制,2007,15(5):651-653.
声明:文章内容整理来源于网络,版权属于原作者,如有问题,请联系我们!
- 上一篇:虚拟现实让生活更精彩 2020/12/26
- 下一篇:基于WiseGlove数据手套的维修手势仿真研究与实现 2020/12/26