ODE,也就是open dynamics engine,为开源动力学求解引擎,其网址为:
ODE主要包含两部分内容,一部分是动力学仿真(主要是刚体),另一部分是碰撞检测。
接下来,将对ode的碰撞检测进行解析。这里资料来源也都来源于ode的手册和网上其它公开的资料。
要了解本文所述的内容,需要具有力学方面和几何方面的知识,并对仿真过程有个大致了解。
碰撞 是指物体(object)间或物体与静止环境(static environment)之间因为接触力而导致物体运动变化的瞬间过程。
碰撞由于是物体与物体、物体与环境接触产生的,因此碰撞的发生与当时物体的形状、位置,以及环境形状都有很大关系。
ode典型的仿真过程:
1. 生成一个动力学世界(dynamics world)
2. 在该world中创建物体(bodies)
3. 设置各body的状态(如质心位置、姿态等)
4. 在上面的world中创建约束(joints)
5. 将约束关联到物体上
6. 为各约束设置参数值
7. 生成碰撞世界(collision world),并为需要作碰撞检测的物体生成碰撞几何体
8. 生成用于容纳接触约束(contact joint)的约束组(joint group)
9. 循环过程
10. 销毁dynamics world和collision world。