我的订单|我的收藏|我的商城|帮助中心|返回首页
虚拟现实新闻>VR>行业资讯>行业知识

基于DI—GUY的某型导弹虚拟操作训练环境设计

文章来源:第三维度 作者: 发布时间:2011年12月23日 点击数: 字号:

    来源:第三维度
    作者:谢建华 马立元 张睿 侯雷

    摘要:对主要应用于士兵战术训练的DI—GUY人体仿真软件进行了介绍,并详细介绍了如何将重点应用于战术训练的DI—GUY软件应用于虚拟操作训练,给出了DI—GUY中虚拟人的具体修改方案,并给出了虚拟操作训练环境的实现方案以及主要解决的问题;给出了综合运用DI—GuY人体仿真软件和数据手套、空间球、立体眼镜等虚拟现实硬件设备所组成训练环境的具体实现方法;阐述了用于控制虚拟人运动的具体思路与方法,以及如何进行训练动作规划,并给出了训练任务实施的整体的程序框架。

    1 引言

    虚拟人技术是虚拟世界中产生真实沉浸感的关键技术之一。虚拟人从本质上讲也是仿真系统。采用虚拟现实技术构建人体模型,虚拟人的空间交互、虚拟人的行为控制、社会化行为的仿真、多虚拟人任务分配等是目前虚拟人技术新的发展方向,对虚拟人手势模型的技术研究也是虚拟人技术中的重要方面,对手部动作的研究以及手势的识别在沉浸式虚拟训练系统中有着重要的作用。

    某型导弹武器系统是我军用以打击敌战役纵深目标的重要武器系统。由于其结构比较复杂。如果在实装上进行操作、维修训练,耗资太大。因此,采用仿真和虚拟现实技术,尤其是虚拟人技术,研制该系统的沉浸式虚拟训练环境,通过控制虚拟人的运动,更加逼真地让训练人员接受培训,更真实地沉浸在某型导弹虚拟训练系统之中,对于提高广大训练人员的训练质量,节省训练时间。达到与实际装备尽可能相近的训练效果有着重要的作用,而且能大幅度地降低成本,提高效率,加快对武器系统人员的培训,并能为进一步研究提供依据。

    2 DI—GUY软件介绍

    DI—GUY是由美国Boston Dynamic8公司于上个世纪九十年代初开发的人体交互仿真软件,被美国陆军、海军及支持开发工作的特种部队在模拟训练中使用。DI—GUY最常用的应用可分为两个部分,依据参与者与虚拟环境的交互方式不同,分别是步兵沉浸式训练、相互协同训练。

    DI—GUY通过本身提供的API函数,可以产生不同的人体模型,并且赋予其不同的特征,甚至在人物间的转换中,可以提供自然的运动和无缝转化。DI—GUY包括一套描绘士兵特征的选项。它基于真实士兵训练的特征,具有士兵的七级细节等级的全纹理模型、多种制服、武器和多种附属装备。它可以定义多种行为,包括:站、跪、匍匐前进、走、跳、弯腰、潜行以及其他活动。

    3 虚拟操作训练环境的实现方案

    针对某大型导弹结构复杂、操作繁琐、多操作手完成操作动作的特点,并且由于操作训练的主要动作集中在手部,因此基于课题要完成的任务和简化考虑,制定如下的某型导弹虚拟操作训练环境的总体实现框图(见图1)。

基于DI—GUY的某型导弹虚拟操作训练环境设计
图1 虚拟操作训练环境整体实现框图

    3.1 DI—GUY虚拟人模型的改造

    DI—GUY人体仿真软件是主要应用于士兵战术训练的人体仿真软件,许多动作设计主要用来描述战术动作,尤其是DI—GUY 人体模型的手臂只能控制到腕部,不能控制手部动作,而作为一个虚拟操作训练环境,对于手部动作的要求是非常高的,因为大部分操作训练动作是靠手来完成的。因此首先要对DI—GUY 的人体模型做一定的修改,将用Multi.Gen Creator建模软件建好的适合本操作训练系统的,拥有二十四个自由度的手模型移植到DI—GUY 人体模型上。以便更好地控制DI—GUY 人体模型完成操作训练任务,这项工作在作者的课题进展中已基本完成。

    图2为要移植到DI—GUY 人体仿真软件的人体模型中的手模型,展示了加上自由度控制而形成的各种角度的手势模型。

基于DI—GUY的某型导弹虚拟操作训练环境设计
图2 具有二十四个自由度的虚拟手模型

    3.2 虚拟人运动控制的实现

    在本虚拟操作训练环境中,虚拟人的运动控制(手部动作除外),用空间球控制虚拟人体模型在虚拟场景中运动。空间球(SpaceBaⅡ)是一种依靠先进的光电子传感器测量系统感知外部压力的三维交互设备,它通过USB口或串口将数据传人计算机。我们根据本虚拟操作训练环境中控制虚拟人操作训练的需要,设计空间球中控制球操作、可编程按钮操作以及组合操作,利用视景仿真软件Vega的函数库和、空间球输入的数据信息,在VC++集成开发环境下,实现与DI—GUY 人体控制函数的数据交互,控制DI—GUY 虚拟人体模型的运动与空间球的操作同步。

    目前,针对虚拟人体的运动控制,基于键盘的消息捕获,通过键盘的输入触发DI—GUY 的运动控制函数,下面是控制其运动动作的总体程序:

    #include <vg.h>

    #include<vgdiguy.h>

    void main(void){

    vginitSys();

    vginitDIGuy();

    vgDefineAdf ("mydiguyapp.adI");

    vgConfigSys();

    while(1)

    {

    运动控制函数//由键盘消息触发

    vgSyncFrame();

    vgFrame();

    }

    }

    我们已经实现了用键盘控制DI—GUY虚拟人体模型在虚拟场景中随意漫游的控制,现在只需编制针对空间球控制的相关类,实现空间球和虚拟人体模型之间的消息发送即可。

    3.3 虚拟手势的运动规划

    虚拟手的控制,主要通过数据手套(D啦Glove)来控制。首先根据虚拟操作训练系统的训练任务,归纳总结出基本动作及其实现方法,如:拉,旋,扳等,表l给出了手部几种简单动作的规划。

基于DI—GUY的某型导弹虚拟操作训练环境设计
表1 手部简单动作规划

    并由几种简单操作训练动作组合成复杂的操作训练动作,从而规划出整个训练操作动作的详细实现。

    3.4 基于逆向运动学算法和数据手套的虚拟手动作控制

    逆向运动学是已知末端操作杆在笛卡尔空间中的位置,反向确定关节空间的结构参数要应用逆向运动学算法,首先定义如下图所示的用于运动控制的各种坐标系:

    包括世界坐标系、人体基坐标系和手臂的各个关节的局部坐标系。并计算出控制所需坐标系之间的坐标变换矩阵。

    根据数据手套实施返回的腕部的六自由度信息,应用逆向运动学算法,计算出由腕关节的运动所引起的肩和肘关节在三个自由度方向上所需旋转的欧拉角的大小,通过对手部和腕部以及手臂的自由度控制,开发手形的形成算法,形成操作训练所需要的手势,如:抓,握,捏等。

    数据手套有六个自由度的位置信息,还有若干的关节夹角信息,通过消息机制,使虚拟手接收数据手套的信息,触发虚拟手动作,并和数据手套的动作同步(在视觉上)运动,使虚拟手实现平滑的姿势转换。

    应用DI—GUY软件和视景仿真软件VEGA,在VC++集成开发环境中,开发控制虚拟手操作训练动作的算法及其具体实现。对于控制算法的研究,目前已基本完成。

    3.5 操作训练任务的分解和整体实现

    依据DI—GUY软件对于人体动作的控制方式,以及人机工程中的作业与动作研究方法将训练任务分解到最底层的动作。

基于DI—GUY的某型导弹虚拟操作训练环境设计
图3 框图以虚拟人打开车门为例进行训练任务的分解

基于DI—GUY的某型导弹虚拟操作训练环境设计
图4的框图为训练任务的整体程序实现框图。

    4 结束语

    本文详细阐述了基于DI—GUY的某型导弹虚拟操作训练环境的总体设计与实现步骤,并给出了空间球对虚拟人运动控制,基于逆向运动学算法的虚拟手势的生成与同步,操纵动作训练规划,训练任务的分解与整体实现框图的具体实现方法,从而为类似的虚拟操作训练环境总体设计提供借鉴。

    [作者简介]

    谢建华(1979.9一),男(汉族),河北唐山人,硕士生,研究方向为虚拟人技术、HLA分布式虚拟现实技术;

    马立元(1962.9一),男(汉族),山东临煦人,教授,研究方向为虚拟人技术、IRA分布式虚拟现实技术;

    张睿(1980. 5- ),女(汉族),四川成都人,硕士生,研究方向为虚拟人技术、HLA分布式虚拟现实技术

    侯 雷(1979·6一),男(汉族),吉林九台人,助工,研究方向为虚拟现实技术、自动控制技术。

  • 暂无资料
  • 暂无资料
  • 暂无资料
  • 暂无资料
  • 暂无资料