人体骨架模型的建立及ik问题的一种解决方式

上传人:kms****20 文档编号:45923858 上传时间:2018-06-20 格式:PDF 页数:4 大小:294.97KB
返回 下载 相关 举报
人体骨架模型的建立及ik问题的一种解决方式_第1页
第1页 / 共4页
人体骨架模型的建立及ik问题的一种解决方式_第2页
第2页 / 共4页
人体骨架模型的建立及ik问题的一种解决方式_第3页
第3页 / 共4页
人体骨架模型的建立及ik问题的一种解决方式_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《人体骨架模型的建立及ik问题的一种解决方式》由会员分享,可在线阅读,更多相关《人体骨架模型的建立及ik问题的一种解决方式(4页珍藏版)》请在金锄头文库上搜索。

1、第27卷 第6期 2003年12月武 汉 理 工 大 学 学 报(交通科学与工程版) Journal ofW uhan U niversity of Technology (T ransportation Science 同时讨论了人体的关节模型和关节约束,把关节分为一个自由度的关节、 两个自由度的关节和三个自由度的关节.并在此人体分层结构上,提出了解决IK问题的指向线算法,这个算法和国外学者提出的CCD算法思想不谋而合,讨论了CCD针对解决人体IK问题的优势和不足之处,提出了相应的改进方法.关键词:骨架建模;关节模型;反向运动学;指向线算法; CCD中图法分类号: TP391. 410 引

2、言图形学和网络技术的迅速发展促进了虚拟现 实技术的发展.在虚拟环境中用虚拟人作为参与者的表示,反映了用户在虚拟世界中的活动,提高 了用户在虚拟世界中的沉浸感.虚拟人是完全由 计算机生成的,看起来像真人的图形实体.它作为V E中有特色的群体,历来受到研究者们的格外 重视.在动画、 机械工程、 医学、 军事和空间探索等虚拟环境中,对虚拟人行为的模拟及其性能的评 估变得越来越重要,其应用包括工业环境改造学、 军事训练、 体育医学、 空间任务仿真、 虚拟角色设 计和机械虚拟造型等.在对虚拟人研究中,运动控 制的研究是其中的一个重要方面1.运动控制的方式有正向运动学、 反向运动学、 动力学等方式. 文中

3、讨论的是骨架模型的构造,以及在此模 型基础上,结合指向线算法和CCD算法,进行加 工和改进,实现运动控制的一种方式:反向运动学 方式.1 人体骨架模型的建立1. 1 人体分层结构 人体是个非常复杂的系统.人体是由200多个旋转关节组成的复杂形体,要模拟真实的人体 运动,需要提供所有的关节数据.所以人体运动的 仿真要远复杂于一般的刚体.对于人体运动的仿 真,首先建立逼真的三维人体模型,再是要产生人体模型各关节运动的驱动数据.对于人体可以从3个层次上进行构造:骨架、 肌肉和皮肤1.由于 运动控制和骨架模型紧密相连,所以这里只讨论 骨架层次上的建模. 由于人体结构的复杂性,有必要对人体进行抽象和简化

4、;为了更好地描述运动,把人体构造成 层次结构.人体骨架模型主要由关节和骨骼构成. 有些关节结构比较复杂,比如肩关节,它实际上由 很多组织构成,但这里只把它当作一个类似铰链 的关节;有些关节并不存在,只是从结构上给它一个名字,比如肩胸关节.对于骨骼也作了简化,比 如前臂本来是由尺骨和桡骨组成的,这里把尺骨 和桡骨合并为一个骨骼.把骨骼看作不可形变的 刚体. 人体模型中各肢体之间存在一定的运动连带关系,将关节看成点,将关节之间的骨骼看成是 链,就可以按照运动关系将各肢体链接起来1.人 体分层结构其实就是树形结构.每个节点只有一 个父亲,根节点无父亲;关节的父亲和儿子是骨 骼,每个关节只有一个儿子;

5、骨骼的父亲和儿子是收稿日期: 20030829李春霞:女, 27岁,硕士生,主要研究领域为计算机图形学、 虚拟现实及计算机仿真3国家自然科学基金项目资助(批准号: 60073057)关节;每块骨骼可能有多个子关节,比如臀骨骼就 有左股关节、 右股关节和腰关节等3个关节;总共 定义了23个关节23块骨骼;根骨骼是臀部(hip),臀部父关节是JRoot,是面向世界坐标的, 是树的总根.人体树的层次结构,如图1所示.图1 人体树层次结构图1. 2 关节模型 关节是连结人体各部位的环节,也是人体运动的枢纽,是传递力和力矩,使人体能作正常运动 的重要器官.它结构复杂.人体关节通常被模拟为 球铰,但人体关

6、节实际活动范围并非有铰链那样 的自由度,它受到人体运动生理上的限制,所以必 须明确人体各关节运动的约束条件3.把关节转动分为自转(tw ist)和摆动(sw ing).假设沿着骨 骼生长方向的是Y轴,也即自转轴.X轴和Z轴 是摆动轴.下面提到的自由度都是指转动自由度.1)一个自由度的关节(one DOF),比如手 指,只能上下弯曲,没有自转,也没有如图2所示4.图2 一个自由度的关节2)两个自由度的关节(two DOF),比如手 腕,肘.手腕的两个自由度是除自转外的其他两个 旋转自由度.肘关节的两个旋转自由度的其中一 个是自转.所以两自由度的关节有两种形式.3)三个自由度的关节(three D

7、OF),比如肩关节,既有自转(tw ist),又有摆动(sw ing).三个 自由度的关节可以用铰链来模拟,但是转动具有 一定的约束.1. 3 关节约束 这里的约束只给出生理约束,有旋转约束(sw ing lim it)和自转约束(tw ist lim it),给出旋转 和自转的范围.2 人体IK的一种实现方式2. 1 IK的概念IK(inverse kinametics),是反向运动学的意 思.在人体分层结构中,关节和骨骼实际构成了运 动链,肩关节、 肘关节、 腕关节及其子骨骼就是运 动链上的一条分支.利用运动链对运动进行控制.运动分为正向运动和反向运动.已知链上各个关 节旋转角,求各关节的

8、位置信息和末端效应器 (end effector)的位置信息,这是正向运动学的问题;若已知末端效应器的位置信息,反求其祖先关 节的旋转角,这是逆运动学的问题1.如图3.图3 IK问题2. 2 求解IK的方法求解IK问题的方法有很多,大致可以分为 如下两大类. 分析法(analytical solutions) 可以求得所 有的解,对于自由度较少的IK链,求解速度较快,比如Korein提出了一种解决7自由度的带有关节约束的手臂IK问题的方法4.但随着关节数量的增加,分析法求解方程的复杂度也急剧增加5;并且分析法不适合分层结构4.所以分析法只适合自由度比较少的链,不适合复杂的IK链.数值法(num

9、erial solutions) 数值法的优势在于通用性和灵活性,能处理自由度较多的比较复杂的具有分层结构的IK链,能较容易地加入新的约束条件到IK链中4.实际上是一种反复逼近,不断迭代的办法.比如N ew ton2Raphson方法, W hitney提 出 的the resolved motion2ratecontrol方法, W elman提出的Jacobian transpose 方法,以及各种优化算法等.由于IK问题的复杂618武汉理工大学学报(交通科学与工程版)2003年 第27卷性,数值法的不足之处在于高计算量,由于是反复 迭代进行求解,所以所求结果未必准确.2. 3 指向线算法

10、及CCD(cyclic2coordinate de2scent)算法 指向线算法是本实验室在人体分层模型基础上提出来的用来解决IK问题的一种方法,它的 基本思想是作指向线进行旋转,逐级释放关节,不 断逼近目标.它的思想和国外学者ChrisW elman 提出的解决复杂IK问题的方法cyclic2coordinatedescent(CCD)2不谋而合. CCD是一种反复迭代地启发式方法4,它沿着运动链依次改变一个 关节的旋转角度,使得end effector逐步逼近目 标,实际上就是一种数值法. 下面所说的旋转既可理解为关节的转动,也 可理解为骨骼绕其父关节的转动,或者称为摆动.末端效应器E达到

11、目标点D是指E,D之间的距 离小于一个事先给定的足够小的精度.Jeff L ander实现CCD的方法是:从运动链 的末端开始,逐步改变每个关节的旋转角度.先是 改变最末端的关节J0,从J0到末端效应器E作向量V1,从J0到目标点D作向量V2,求出两个 向量的夹角 及其旋转轴V R,让J0下的子链绕 旋转轴V R转 角度,如图4(本例图中无JTmp2Root节点),则末端效应器E达到一个新位置,若E没有达到D.接着取J0的父节点J1,同样从J1 到E作向量V1,从J1到D作向量V2,求出向量V1和V2的夹角 及其旋转轴V R,让S下的子链绕旋转轴V R 转 角度,如图5 (本例图中无JTmpR

12、oot节点),则末端效应器E又达到一个新 位置,若E没有达到D,则继续取J1的父节点,改 变其旋转角度,直到根节点JRoot.若E还没有达到D,则又从末端关节J0开始新一轮运动,直到E和D之间的距离足够小或者到达了给定的循 环次数.由以上描述可以看出,CCD算法容易控制, 便于在链中加入新的节点,是简单有效的.图4 处理关节J0图5 处理关节J12. 4 改进算法CCD描述人体运动的不合适之处: (1)CCD 每一次内循环都最终回溯到根节点,而人体运动 比较复杂,对于一些比较近的目标,可能不需要运动到根节点,通过前端几个关节的旋转就可以达到目标点.比如手去拿一个离得很近的杯子,可能 只需要肩关

13、节、 肘关节、 腕关节的相应旋转就可以 达到,而不需要让胸、 腰、 根关节参与运动.对于比 较远的目标,才可能要回溯到根,甚至使用根的其他分支来配合.比如,手够一个较远的东西,可能需要脚来配合; (2)CCD中骨骼绕其父关节的转 动只是摆动,而骨骼没有自转,不符合人的生理习 惯.人体运动过程中,很多情况下是骨骼自转在同 时发生.比如手的初始状态是手心朝上,而目标在手背下方,这时进行IK运动时,在手向目标点的逼近过程中,同时有肘关节和肩关节的自转,使手 心朝向目标点. 针对CCD算法的不足之处,改进算法如下. 在描述摆动时,把骨骼看作一个向量,在描述自转时,把骨骼看作一个实体,这个实体具有一个

14、正方向.为了描述自转,每个关节都规定一个朝向O(其实也是定义其子骨骼的正方向),比如规定 腕关节的朝向是垂直手掌朝外的方向.目标点不 一定是可以达到的,在目标点不可达到的情况下, 整个运动链只向目标有运动趋势.步骤:1)根据一定的策略(如图4所示),先预测一 下运动到哪个关节JTmpRoot为止.一个简单的 预测办法是计算某一关节J到E之间所有骨骼 的长度之和L en,看L en是否大于j到D的长度,是的话就把JTmpRoot定位在J.2)从J0开始,向末端效应器E作向量V1, 向目标点D做向量V2,计算V1和V2的夹角 以及从V1旋转到V2的旋转轴V R.J0进行自转,在J0的自转范围内,使

15、朝向O尽量指向目标点,同时V1绕旋转轴V R转向V2,转动的角度应该在J0的旋转范围内,若转动到达了J0的极限范围,718 第6期李春霞等:人体骨架模型的建立及IK问题的一种解决方式则为J0设置一个到达极限的标志. 此时E转到了一个新位置;若E没有达到D,接着取J0关节的上一节关节J1,重复在J0所 做的工作(如图5所示);若E没有达到D,继续 取J1的上一节关节,直到JTmpRoot关节,重复在J0所做的工作;若E还没达到目标点D,则看JTmpRoot到J0之间的关节旋转是否都到达了 它们的极限范围,若不是的话,则又从J0开始重 复本过程;若是的话,则把JTmpRoot定位为JTmpRoot

16、的父关节,再从J0开始重复本过程. 根据改进算法所得到的运动结果见图6, 7, 目标位置相对于根的位置是(0. 6, - 0. 1, 0. 3).图6 运动前位置状态(左手被选中)图7 运动后位置状态(左手被选中)3 结 束 语文中探讨了人体骨骼分层模型的建立,结合指向线算法和CCD算法实现的IK的一种解决 方法,但是这种方法仍有许多不足之处:没有考虑 平衡控制,没有考虑动力学因素,这是今后要研究 的重点.参 考 文 献1 洪炳熔,贺怀清.虚拟人的步行和跑步运动控制方法的研究.高技术通讯, 2001(3): 91952 Jeff L ander. M aking kine more flexible. Game Devel2oper, 1998(11): 15223 忻鼎亮.运动生物力学.上海:东华大学出版社, 2002.87904 BoulicD r R.Inverse kinematics techniques for the in2teractive posture control of art

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号