SoftRoboSim 是建立在 Bullet 物理引擎基础上的软体机器人仿真平台。借助 Bullet 实现碰撞检测、刚体动力学仿真。
0、总体框架设计
软体形变部分的框架设计如下:
srSoftRigidDynamicWorld
用于仿真主程序
srSoftBody
用于软体对象仿真,主要用于存放软体数据
srSoftSolver
用于软体对象的仿真计算,控制总体流程步骤
srForce
用于软体对象内弹性力的计算
srConstraintSolver
用于软体约束求解
srConstraint
用于软体内的约束(碰撞约束怎么表示呢,要统一吗);感觉好像也需要一个约束求解算法矩阵表、类似于碰撞检测算法矩阵表一样
srTimeIntegrator
仿真求解器(暂时先用显式、隐式求解器,牛顿法什么的)
1、软体形变仿真
软体形变仿真的总体步骤由 srSoftSolver
类控制,主要包括以下步骤:
(1) srSoftSolver::optimize(...)
用于某类优化工作
(2) srSoftSolver::predictMotion(...)
进行无碰撞的形变求解
(3) srSoftSolver::processCollision(...)
进行碰撞检测
(中间的碰撞处理,则是由 srSoftBody::defaultCollisionHandler(..)
来完成)
(4) srSoftSolver::updateSoftBodies()
更新软体状态