下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ODE物理引擎在Space操作系统中的应用摘要:Space是计算机科学联合研究院自立研发的三维操作系统。碰撞检测子系统是三维桌面环境中最主要的模块,是系统中所有对象处理经过的基础。必需到达真实、实时。ODE开源物理引擎,是一个专为模仿刚性物体高质量免费函数库,由于其快速、强健已经被很多开源游戏引擎使用。所以将其移植到Space中是一个非常有意义的工作,能够知足系统对碰撞检测的要求。本文关键词语:物理引擎;碰撞检测;ODE操作系统简介Space三维操作系统是基于虚拟现实提出的提出设计理念。以房间〔room〕为分割单位,使得用户凭仗日常生活常识即可轻松操控计算机。例如,用户假如想看书,能够进入“图书馆房间〞去浏览书籍;假如想写文档,能够进入〞办公室房间“,使用Office等各种软件;假如想上网查资料,能够进入〞网络房间〞,使用IE,FireFox等浏览器。如此图1所示,碰撞检测模块是Space三维桌面环境中最主要的模块,是系统中所有对象处理经过的基础,大部分的人机交互经过都要依靠此模块。所以它必需到达真实、实时,能力使整个系统更能吸引用户使用。图1Space中的碰撞检测模块物理引擎的特点ODE是由RusselSmith开发的一款开源物理引擎,擅于模仿带铰链关节的刚性体构造。该引擎是快速、强健和稳定的,能够进行交互式或者实时模仿,尤其擅于模仿运动的物体。该引擎使用了高度稳定的积分器,使得模仿毛病不会变得失控。下面通过一些详细概念来详细说明:1)刚性体〔RigidBody〕的属性从模仿的观点来看,刚性体有多种属性,一些随时间可变:*物体引用点的位置矢量(x,y,z)。通常,引用点对应着物体的质心。*参考引用点的线速度矢量(vx,vy,vz)。*物体的朝向。使用四元数(qs,qx,qy,qz)或者一个3x3旋转矩阵来表示。*角速度矢量(wx,wy,wz),它是用来描绘叙述物体随时间旋转的物理量。其他属性不随时间变化:*物体的质量。*质心相对于参考引用点的位置。*惯性矩阵。一个3x3矩阵,它描绘叙述了物体的质量是怎样围绕着质心分布的。2)岛屿和失效体物体之间使用“关节〞互相连接,一个“岛屿〞就是一组不能分离的物体。在模仿时,单独处理每个中的每个岛屿会提升效率。每个物体可能处于有效状况或者失效状况。在模仿时,能够关掉失效体,不做更新,这样就能够节省计算时间。要使物体的岛屿失效,必需让其上的所有物体失效。假如一个失效的岛屿与另一个有效体接触,则整个岛屿变为有效,同时一个接触关节被参加到岛屿中。3)积分器模仿刚性体系统随时间变化的经过称之为“积分器〞:随着时间的移动,调整所有刚性体的状况。其中,有两个重点考虑的问题:*精度怎样?即模仿系统应该在多大水平上接近真实生活?*稳定性怎样?即计算毛病会不会模仿系统产生完全的非物理行为〔如引起系统“爆炸〞〕。如今ODE的积分器非常稳定,但是只是在步长非常小的情况下才十分精到准确。4)蓄力器在积分经过的每一步中能够调用函数给刚性体施加力。这些力被增长到“蓄力器〞中。当进入下一步时,所有的力施加到物体上。每一步之后,蓄力器中的力归零。5)关节和约束“关节〞是类似于铰链,用来连接两个物体,这样两个物体之间有相对的位置和方向。这种关系可以称之为“约束〞。每次积分器应用约束力到所有关节和物体上。每个关节有一些参数来控制它的几何体。6)关节组.关节组是一种特殊的约束,能控制一个世界中的多个关节。关节能够添加到一个组中,而且当这些关节都不再需要的时候能够快速销毁一个组中的所有关节。但是,在整个组变为空之前不能销毁单个关节。7)关节毛病和误差降低参数(ERP)当用一个关节连接两个物体的时候,这些物体要求有确定的位置和相对朝向。然而,对某些物体有可能处于关节约束不知足的位置。有一种机制可降低关节毛病:在仿真的每一步每个关节使用一个力将物体矫正回正确的位置。这个力由误差降低系数(ERP)来控制。误差降低系数的取值在0到1之间。ERP声明了鄙人一步的仿真中要修正关节毛病的比例数。假如ERP为0,不使用矫正力而且物体最终会漂移开。假如ERP为1,仿真在进行下一步之前会矫正所有的关节毛病。然而,不推荐将ERP设置为1,由于各种内部的近似处理,关节毛病不会被完全修正。通常设为0.1到0.8之间〔默以为0.2〕。一个全局的ERP值能够影响大多数关节。然而很多关节有部分的ERP值控制该关节。3.在Space中使用ODE如前所述,在Space中是以房间(room)为空间分割单位,由于两个房间内的物体不会发生碰撞,所以我们能够分别模仿。每个房间能够构成一个世界(world),在其中建立一个空间(space),里面能够包括许多物体(body)。这样物体与物体之间或者物体与场景(不可移动的物体)之间就会发生碰撞,我们做如下处理:1)在每一个模仿开始前,调用碰撞检测函数来决定能否发生碰撞。这些函数返回一个接触点(contact)的列表。每个接触点都声明一个在空间中的位置,一个外表法线矢量,一个传统深度。2)为每一个接触点开创建立一个特定的接触关节,这个关节给出了接触点的额外信息,例如接触面的摩擦系数,弹性或者柔软水平,还有其它的属性。3)将所有接触关节放到一个关节组里面。接触点太多,模仿速度会下降。能够使用不同的策略来限制接触点的数量。4)进行一步模仿。5)从系统中移除所有的接触点关节。下面以办公室(officeroom)为例说明代码的构造。其余房间类似。简化需求:场景:一个桌子和六个墙壁。物体:四台笔记本电脑。初始时:电脑都置于桌子上,只于桌面发生碰撞不至于下落。能够使用鼠标选中某台电脑横向拖动使其与其余电脑发生碰撞。这样电脑会与桌面发生摩擦,或者移开位置,或者掉落至墙面(包含地面)发生反弹。模仿代码如下:1)开创建立一个动态的世界〔world〕dWorldIDofficeWorld=dWorldCreate();2)开创建立动态世界中的物体〔bodies〕//以开创建立桌子为例,其余物体类似dBodyIDdeskBody=dBodyCreate(officeWorld);3)设置所有物体的状况〔质量,位置,受力等〕//以桌子为例,其余物体类似dBodySetPosition(deskBody,x,y,z);4)开创建立关节组包容关节。dJointGroupIDcontactgroup=dJointGroupCreate(0);5)进入循环,履行如下操作a)给物体施加力b)调整关节参数c)调用碰撞检测函数d)为每一个碰撞点开创建立一个接触关节,并放置到接触关节组中。e)进行一步仿真f)移除在接触关节组中的关节详细示例代码如下://注册回调函数:nearCallbackdSpaceCollide(officeSpace,0,nearCallback);//设置模仿步长,进行模仿dWorldQuickStep(officeWorld,0.01);//每次模仿后都要清空关节组dJointGroupEmpty(contactgroup);在模仿经过中,当两个物体存在潜在碰撞时,履行回调函数处理碰撞检测:voidnearCallback(void*data,dGeomIDo1,dGeomIDo2){inti;//获得可能发生碰撞的两个物体dBodyIDb1=dGeomGetBody(o1);dBodyIDb2=dGeomGetBody(o2);//假如这两个物件已经通过关节相连,则不再处理if(b1b2dAreConnectedExcluding(b1,b2,dJoint
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度养老产业园区承包经营合同典范3篇
- 二零二五年度船舶动力系统份额转让及维护协议4篇
- 2025年度水电装修工程监理合同范本3篇
- 2025年度医院儿科病房托管服务承包协议4篇
- 二零二五年度餐饮行业厨师技能认证与劳动合同3篇
- 2025年度外墙水管安装与建筑保温隔热安全合同
- 二零二五年度合伙经营协议-风险共担利益共享标
- 二零二五年度餐饮行业智能化升级改造合同2篇
- 2025年度二手铲车转让协议书4篇
- 2025年中国缝口拉力钳市场调查研究报告
- 诊所校验现场审核表
- 泵站运行管理现状改善措施
- 2024届武汉市部分学校中考一模数学试题含解析
- SYT 0447-2014《 埋地钢制管道环氧煤沥青防腐层技术标准》
- 第19章 一次函数 单元整体教学设计 【 学情分析指导 】 人教版八年级数学下册
- 浙教版七年级下册科学全册课件
- 弧度制及弧度制与角度制的换算
- 瓦楞纸箱计算公式测量方法
- 江苏省中等职业学校学业水平考试商务营销类(营销方向)技能考试测试题
- DB32-T 4004-2021水质 17种全氟化合物的测定 高效液相色谱串联质谱法-(高清现行)
- DB15T 2724-2022 羊粪污收集处理技术规范
评论
0/150
提交评论