仿真性能优化#
仿真性能可能受多种因素影响,包括场景中的物体数量、物理仿真的复杂度以及所使用的硬件设备。以下是一些提升性能的建议:
使用无头模式: 在不需要渲染时启用无头模式可显著提升性能。可通过运行模拟器时添加
--headless
参数来启用。减少非必要碰撞: 尽可能减少物体重叠以降低仿真开销。过多的接触和碰撞会在仿真碰撞阶段产生较大计算负担。
简化物理模型: 考虑使用简化的碰撞几何体或降低仿真精度来提升性能。可通过修改资产和调整仿真配置中的物理参数实现。
合理选择CPU/GPU仿真: 对于少量关节或刚体的场景,CPU仿真可能更高效;大规模场景则建议使用GPU仿真以获得显著性能提升。
碰撞几何体优化#
碰撞几何体用于定义仿真中物体的碰撞检测形状。使用简化后的碰撞几何体可提升性能并降低仿真复杂度。
例如对于复杂网格,可创建近似其形状的简化碰撞几何体。在Isaac Sim中可通过界面修改碰撞网格和近似方法实现。
此外,通常可移除机器人非关键训练部位的碰撞几何体。以Anymal-C机器人为例,我们保留膝盖和足部的碰撞几何体,但移除腿部其他部位的碰撞几何体以优化性能。
球体等基本几何形状比复杂网格具有更好的性能表现。例如SDF网格碰撞器的计算开销就远高于简单球体。
注意圆柱体和圆锥体碰撞几何体具有特殊的三角网格平滑碰撞支持,可优化轮式仿真行为,但会牺牲性能。可通过设置场景参数 --/physics/collisionApproximateCylinders=true
和 --/physics/collisionApproximateCones=true
来禁用此功能。
在GPU强化学习任务中需注意 凸包
近似网格碰撞体的GPU兼容性警告。当输入网格具有高长宽比(如细长形状)时,凸包近似可能导致GPU仿真不兼容,触发CPU回退从而显著影响性能。
CPU回退警告形如: [Warning] [omni.physx.cooking.plugin] ConvexMeshCookingTask: failed to cook GPU-compatible mesh, collision detection will fall back to CPU. Collisions with particles and deformables will not work with this mesh.
. 解决方案包括切换为边界立方体近似,或对非动态刚体的几何体使用静态三角网格碰撞器。