洪 磊,嵇保健,王玉国
(1.南京工程学院汽车与轨道交通学院,南京 211167;2.南京工业大学自动化与电气工程学院,南京 211800)
基于VC平台的虚拟人运动分析软件
洪 磊1,嵇保健2,王玉国1
(1.南京工程学院汽车与轨道交通学院,南京 211167;2.南京工业大学自动化与电气工程学院,南京 211800)
常用Jack分析软件在失重状态下无法实现对动作的复杂动力学分析和计算。针对该问题,提出一种虚拟人运动分析软件设计方法。依据人体的基本结构和动态特征,结合刚体运动学和机器人学技术,将虚拟人划分成15个体段,使各体段简化为匀质刚体,并建立多刚体动力学模型,应用机器人Denavit-Hartenberg分析方法进行虚拟人的建模和分析,在此基础上,采用标准C语言形式编写虚拟人的运动学和动力学分析算法,利用OpenGL工具开发可视化仿真界面建立虚拟人的三维仿真场景。通过虚拟人飘浮出舱动作的运动仿真验证了平台的可行性和较好的人机交互性。
虚拟人;舱外活动;VC平台;可视化;失重状态
载人航天活动离不开航天员进行舱外活动(Extra-vehicular Activity,EVA)。空间飞行器的在轨组装与维护、卫星回收、空间维修、空间科学实验等工作,必须由航天员通过出舱活动来完成[1-2]。为了使航天员在太空微重力环境下能进行精确地操作,需在地面进行长时间的微重力模拟训练。目前,模拟微重力环境的方法有物理方法和计算机方法,物理方法都有一定的局限性,为了弥补这些不足,产生了计算机动态仿真EVA的方法。计算机仿真EVA具有周期短、投资少等优点,在载人航天中得到了越来越广泛的应用。在计算机仿真EVA时,需要对失重状态下虚拟人体进行分析,通过运动学建模和动力学分析,为太空失重环境的航天员的各种模拟训练提供数据服务[3-5]。
目前,国内外已经开发了一些关于人体运动的可视化计算机仿真软件,这些成果大多用于宇航与工效评估领域。运动人体软件(DynamicMan,DYNMAN)[6]由美国电子安全协会开发,主要用于人机工程和人体模型的运动学仿真,可进行零重力和正常重力下宇航员的运动以及对航天机舱的工作环境评估,并提供不同形态特征的宇航员的三维图象模型,具有较强的可视性,但没有考虑人体的动力学特性和人体受力问题。美国宾夕法尼亚大学人体建模与仿真中心开发的Jack软件是一种人体行为仿真分析软件[7-8],能够按照设计者的要求模拟人体姿态并生成连续的动作仿真。是目前应用最广泛的一种人体运动仿真软件,但它无法实现对失重状态下航天员动作的动力学分析和计算,不利于掌握人体各关节的受力情况。同时,该软件价格比较昂贵,非Jack软件的用户无法使用其人机交互功能,因此,应用上有一定的局限性。针对上述问题,有必要建立一种易于普及且有一定交互能力的虚拟人运动分析软件,实现对失重状态下航天员动作分析与仿真。虽然航天员舱外作业动力学具有特殊的物理背景,但究其本质,仍然符合普遍意义下的运动学和动力学规律,虚拟人可划分为多个体段,视为多刚体的动力学模型,其动力学问题的研究符合多刚体机器人动力学的研究条件,可应用机器人Denavit-Hartenberg(DH)分析方法进行虚拟人的建模和分析[9],相比于Matlab,Maple等工程语言,机器人相关运动学和动力学分析算法更适宜采用标准C语言进行开发,其执行速度快,代码移植性好,因此,本文提出一种基于Visual C++(VC)平台的虚拟人运动分析软件设计方法,该方法采用C语言编写虚拟人运动分析算法,同时集成OpenGL图形库开发可视化仿真界面,建立虚拟人的三维仿真场景。
本文所开发的VC软件以失重状态下虚拟人体运动分析和仿真研究为目标,通过设定各种输入条件(包括人体测量参数、运动轨迹上的关键点、外力参数、各体段及关节的速度等),解算出沿该轨迹运动时的详细路径,以及在完成该运动过程中人体各关节的力矩。运动仿真结果以三维模型的形式显示,数据以文本形式保存。
2.1 设计方案结构
软件系统以人体运动分析为核心,结合航天员舱外活动中漂浮出舱、开舱门、爬梯3个典型动作展开研究,完成了软件的整体方案设计,方案包括3个基本的功能模块:(1)虚拟人体建模;(2)受力运动分析;(3)运动学和动力学解算。
整体设计方案结构如图1所示。
图1 系统整体设计方案结构
主要模块具体如下:
(1)虚拟人体的建模模块
建模模块主要完成虚拟人体模型体段划分,进行虚拟人体整体坐标系与各体段坐标系的定义,确定各坐标系之间的变化关系。
(2)受力运动分析模块
受力运动分析模块主要完成虚拟人在运动中各体段质心位姿的计算、外力/力矩对人体位姿影响的解算及计算给定人体运动所需的外力/力矩。
(3)运动学和动力学解算模块
运动学和动力学解算模块主要完成运动约束条件分析、给定路径关键点的轨迹规划和沿给定运动轨迹的各体段关节力和力矩解算。
2.2 软件程序设计流程
根据软件整体设计方案,虚拟人体运动分析解算的C语言程序流程如图2所示。
图2 虚拟人体运动分析C语言流程
为避免错误发生,程序设计时考虑了异常情况处理。异常情况主要包括接口数据文本输入格式错
误、文本输入数据显失真、数据保存错误等。对于如上错误形式,可根据程序提示核对文本输入数据,给出正确的数据形式。
虚拟人的建模需要考虑人体的基本结构也要考虑人体运动的动态特征。在本文软件设计中的人体建模结合了机器人学和刚体运动学相关技术,将虚拟人体进行必要的体段划分,并将各体段简化为不同形状的匀质刚体来进行处理,在不影响结果的情况下,使分析计算量大大简化。
3.1 虚拟人体建模
本文软件所采用的虚拟人体建模参数按中国成年男子(170 cm)的平均体段数据做为参考标准[10-12]。 根据设计需求,建模需要人体各体段质量、尺寸、回转半径、转动惯量参数数据,作为输入参数,实际应用可根据宇航员的真实情况进行相应调整。
借鉴机器人学的相关技术,将虚拟人体简化为空间多臂机器人模型,分成5个分支共15个体段来分析。躯干作为载体部分,5个分支分别是左臂分支、右臂分支、左腿分支、右腿分支、头颈分支。15个体段分别是躯干、左上臂、左前臂、左手部、右上臂、右前臂、右手部、左大腿、左小腿、左脚部、右大腿、右小腿、右脚部、颈部、头部。 其中,左臂、右臂分支各7个自由度,左腿、右腿分支各4个自由度,头颈分支2个自由度[13-14],15个体段共包括24自由度。
图3为系统整体坐标系,i=1,2,3,4,5分别代表左臂分支、右臂分支、左腿分支、右腿分支和头颈分支。
图3 系统整体坐标系
变量定义如下:
(1)ΣI:惯性坐标系;
(2)ΣO:躯干坐标系;
(3)ΣiB:i臂基座坐标系;
(4)Σik:i臂第k杆坐标系(k=0,1,…,n);
(5)Cik:i臂第k杆质心(k=0,1,…,n);
(6)Jik:连接i臂第k-1杆和第k杆之间的关节(k=0,1,…,n);
(7)bi0:躯干质心到i臂第一关节的向量;
(8)rIO:惯性坐标原点到躯干质心的向量;
(9)rik:i臂第k杆质心位置向量(k=0,1,…,n);
(10)rie:i臂末端位置向量。
虚拟人体各体段分支采用机器人运动学DH方法建立连杆坐标系,以左臂分支为例,其各体段连杆坐标系如图4所示。
图4 左臂分支连杆坐标系
在图4中,Lua,Lfa和Lhd分别表示左上臂、左前臂和左手的长度;Cua,Cfa和Chd分别表示各自的质心。
根据左臂分支各关节连杆的DH参数可以写出各个关节连杆之间以及左上臂、左前臂、左手到相应的关节连杆的变换矩阵。2个相邻坐标系之间的DH参数变换矩阵为:
其中,a,α,d和θ为DH参数,可由图4坐标系得到。同理可建立其他分支局部坐标系各体段之间的变换矩阵。
3.2 虚拟人体受力运动分析
与地面情况不同,在空间环境下,人体处于失重状态,系统受到的外力主要来自于人体与外部环境(操作物或舱体)的接触力。作用力的作用点主要在四肢部位(手部及脚部)。因此,对于虚拟人受力分析主要考虑2点:四肢受力和接触外力。其正问题是考虑虚拟人受力后对人体位姿的影响。反问题是
考虑人体要达到某种位姿,反推需要作用的外力。下面着重说明受力对人体位姿的影响。
在空间环境下,人体受力主要作用在四肢部位,以手部受力为例,一般力的作用点选取在左手或右手的质心位置。为简化运算,对于推力动作,力的作用方向垂直手心向内,而对于拉力动作,力的作用方向垂直手心向外。
图5 虚拟人体受力分析
对人体位姿将产生较大影响,其分析步骤如下:
(1)确定人体受力时刻的状态。一般由躯干质心位姿和各体段关节角来确定。由于人体受力后会相对其质心绕χ,y和z轴反转,因此受力状态还包括确定质心位置和人体相对于质心转轴的转动惯量。
(2)为在力坐标系即系统质心系下分析,求力在系统质心系χ-y-z 3个方向的投影。
(3)计算系统产生了平动速度向量 V和位移d向量。
由于手部受力作用实际较短,可以视为人体受到了冲量的作用。设冲量作用的时间为tf,人体受力的飘浮时间为tm。人体总质量设为Ma,则根据冲量定理得:
(4)计算绕系统质心χ,y,z方向的力臂和力矩。
作用力相对于系统质心的力臂向量 L,即手部质心相对系统质心系的位置向量h在3个方向的值为手部质心与系统质心坐标差如下:
进而结合3个方向上的受力,求出绕系统质心系χ,y,z轴力矩向量M的大小:
(5)计算运动角速度向量 ω和绕系统质心角位移向量θ。
根据已经求得的力矩和转动惯量,由动量矩定理可得到虚拟人体绕质心系 χ,y,z轴的角速度向量ω:
在受力后的漂浮阶段可以视其角速度不变,因此,绕质心三方向的角位移向量θ:
(6)计算末点躯干位姿。由于本文计算以躯干质心位姿为基准,因此需要根据系统质心反算躯干质心。
至此,得出终点处躯干位姿坐标,由于各体段关节角在此过程中保持不变,则终点处人体系统状态
确定,根据躯干坐标系与各体段坐标系的变换关系,各体段位姿坐标可求。
4.1 虚拟人三维模型的建立
本文应用机器人学技术,将虚拟人体简化为空间多臂机器人模型来分析,虚拟人的三维模型可参考一般机器人的三维模型的建立过程[15-16],这里将单臂机器人扩展为五臂机器人,在Visual C++开发环境下,构建虚拟人OpenGL三维模型,基于VC平台的虚拟人运动分析软件界面如图6所示。
图6 基于VC平台的虚拟人运动分析软件界面
该软件界面中左边为仿真视景区,右边为操作面板区,进行运动学和动力学分析等多项操作。
4.2 虚拟人飘浮动作运动仿真
图7给出了一组虚拟人自由漂浮动作的仿真,其中,图7(a)~图7(f)分别表示了0 s~15 s中6个关键帧的图像。
图7 虚拟人自由漂浮动作关键帧仿真
它模拟了宇航员出舱的运动。这一组漂浮动作仿真的6个关键帧位姿数据可由Jack软件提供,输出txt文件。VC软件读入这些初始数据后,利用3次条样插值算法完成这个路径规划并输出仿真动作结果,计算给出该路径下各关节的力矩在不同时刻t时对应的计算结果如表1和表2所示。
表1 左、右臂分支7个关节的力矩 (N·m)
表2 左、右腿分支4个关节的力矩 (N·m)
计算数据的准确性目前由于各种条件限制无法进行验证,在现阶段可以通过国外航天员舱内活动的数据加以定性的验证。将来预想可以通过采集我国航天员在失重水槽以及太空中的活动数据进行验证。
为完成航天员舱外动作仿真和动力学分析的任务,本文提出一种基于VC平台的虚拟人运动分析软件设计方法,该方法将虚拟人简化为空间五臂机器人,在VC平台下构建虚拟人的OpenGL三维仿真模型,结合导入的Jack人体位姿数据,应用机器人动力学分析方法解算出失重状态下的虚拟人出舱运动轨迹及该路径轨迹下各关节的力矩。仿真结果表明,多臂机器人技术可应用于虚拟人运动分析和研究,据此设计开发的虚拟人VC平台能为太空环境下的航天员各种模拟训练提供数据服务,具有一定的应用价值。然而本文未考虑航天员身着航天服的条件,因此,今后可进一步研究着航天服条件下虚拟人的运动分析与仿真问题,使该软件平台具有更好的使用和推广意义。
[1] 孙海鹏,王永生.俄罗斯航天员舱外活动地面模拟训练方法与设备[J].国际太空,2012,25(10):26-32.
[2] Mousavi M,Appendino S,Battezzato A,et al.A New Method of Measuring the Stiffness of Astronauts’EVA Gloves[J].Acta Astronautica,2014,91(1):130-137.
[3] 李静文,丁 立,杨爱萍.航天员舱外活动生物力学仿真及验证[J].医用生物力学,2012,27(4):438-443.
[4] 李 昊,李东旭,陈善广.航天员舱外作业动力学建模与仿真方法研究[J].载人航天,2012,18(6):54-60.
[5] Liu Shuliang,Liu Qianyun.Numerical Simulation of EVA in Thermal Power Plants Based on System Dynamics[J].Chemical and Pharmaceutical Research,2014,6(5):368-373.
[6] 唐 毅,葛运建,江建举,等.人体力学行为的计算机仿真的发展及其展望[J].系统仿真学报,2004,16(5):863-867.
[7] 刘社明,王小平,陈登凯,等.基于JACK的驾驶舱仿真及人机工效分析[J].计算机与现代化,2013,(8):106-110.
[8] 王 华,陈永科,杨艾军,等.基于JACK的虚拟人维修动作生成设计[J].兵工自动化,2014,33(9):33-37.
[9] 韩建海.工业机器人[M].武汉:华中科技大学出版社,2012.
[10] 周前祥,柳忠起,丁松涛,等.中国青年男性人体特征体段几何尺寸的相关性分析[C]//2011年空间生命与生命起源暨航天医学工程学术研讨会论文集.西安:中国空间科学学会,2011:50-56.
[11] 杨 敏,刘国联.南北方青年男体体型差异性分析[J].北京服装学院学报,2014,34(1):53-57.
[12] 戚福洲.基于国际人体测量学数据的虚拟人建模技术研究[D].成都:西南交通大学,2014.
[13] 罗 冠,郝重阳,张 雯,等.虚拟人技术研究综述[J].计算机工程,2005,31(18):7-9.
[14] 庄运杰,马 麟,高 杰.虚拟人运动仿真的VRML重构研究[J].系统仿真学报,2009,21(11):3321-3324.
[15] 董天平,马 燕,刘伦鹏.基于OpenGL的工业化机器人仿真研究[J].重庆师范大学学报:自然科学版,2013,30(2):60-64.
[16] 李素芳,谷 林.基于3DS与OpenGL的三维人体模型构建方法[J].软件导刊,2013,12(12):156-160.
编辑 刘 冰
Virtual Human Motion Analysis Software Based on VC Platform
HONG Lei1,JI Baojian2,WANG Yuguo1
(1.School of Automotive&Rail Transit,Nanjing Institute of Technology,Nanjing 211167,China;2.College of Automation and Electrical Engineering,Nanjing University of Technology,Nanjing 211800,China)
Jack software can not realize the dynamic solution for Virtual Human(VH)motion at the state of weightlessness.Based on relative robotics and rigid body kinematics,a new concept of VH motion analysis software is presented in this paper to solve the above problems.According to the basic structure of human body and its dynamic characteristic,the VH is divided into a model of 15 rigid segments with even density and rigid kinematics model can be established,the algorithms for VH kinematics and dynamics analysis are implemented by standard C programs based on Denavit-Hartenberg method of robotic kinematic,and the visualization simulation interface is developed by OpenGL.Its feasibility is verified by the cabin floating action simulation for virtual human,and the software platform has good humancomputer interaction.
Virtual Human(VH);Extra-vehicular Activity(EVA);VC platform;visualization;gravity free condition
洪 磊,嵇保健,王玉国,等.基于VC平台的虚拟人运动分析软件[J].计算机工程,2015,41(10):71-75,82.
英文引用格式:Hong Lei,Ji Baojian,Wang Yuguo,et al.Virtual Human Motion Analysis Software Based on VC Platform[J].Computer Engineering,2015,41(10):71-75,82.
1000-3428(2015)10-0071-05
A
TP391.9
10.3969/j.issn.1000-3428.2015.10.014
江苏省科技计划产学研联合创新资金前瞻性联合研究基金资助项目(BY2014005-09);南京工程学院校级科研基金资助项目(YKJ201333)。
洪 磊(1982-),男,讲师、博士,主研方向:参数化人体建模,虚拟现实,机器人技术;嵇保健,讲师、博士;王玉国,副教授、博士。
2014-10-17
2014-12-10E-m ail:njithl@163.com