实体#
实体是 Genesis World 场景中的单个仿真对象:机器人、刚体、一块布料、一团流体或一个可变形固体。它是你添加、配置、查询和控制的单位。
调用 scene.add_entity 即可创建实体,它由三部分组成:
Morph: 几何形状与位姿:基础形状、网格,或从 URDF、MJCF 或 USD 加载的机器人描述。参见 Morph。
材质: 决定由哪个求解器仿真该实体以及它如何响应力的物理模型。参见 材质。
表面: 渲染时使用的视觉外观:颜色、纹理和可视化模式。参见 Surface。
关于添加实体并推进场景的完整示例,参见 你好,Genesis World。
add_entity 返回实体对象。其具体类型取决于材质对应的求解器:刚体材质返回 RigidEntity,MPM 材质返回 MPMEntity,依此类推。你通过实体自身的方法与其交互,这些方法返回的张量遵循批量可选的形状约定;参见 约定。
实体类型#
每种物理求解器都有自己的实体类型。选择材质即选择求解器,因而也决定了返回实体的类型。
RigidEntity: 由刚体求解器仿真的关节刚体和机器人。它是最常用于操作与运动任务的类型,暴露连杆、关节和自由度。DroneEntity:RigidEntity的子类,为四旋翼仿真增加了螺旋桨与推力控制。TerrainEntity: 由gs.morphs.Terrain构建的RigidEntity子类,可查询任意位置的地表高度。MPMEntity: 用物质点法(MPM)求解器仿真的弹性与塑性固体、沙、雪及类似连续介质。FEMEntity: 用有限元法(FEM)求解器仿真的可变形固体。PBD 实体: 由基于位置的动力学(PBD)求解器仿真的布料、绳索和基于粒子的流体。材质决定具体类型:例如布料对应
PBD2DEntity,弹性体积对应PBD3DEntity。SPHEntity: 用光滑粒子流体动力学(SPH)求解器仿真的液体和气体。SFParticleEntity: 用稳定流体(SF)求解器仿真的烟雾和气态介质。ToolEntity: 一种按运动学脚本驱动的碰撞体,与软体和基于粒子的实体进行单向耦合,以推动或使其变形。HybridEntity: 同时由刚性和软性组件构成的实体,用于例如将软体耦合到刚性骨架上。Emitter: 一种辅助对象,在仿真过程中持续向基于粒子的实体注入粒子,用于喷溅和流动效果。
构建模块#
传给 add_entity 的 morph(几何与位姿)和表面(外观,纹理为其提供逐点的表面值)各自有下方的参考文档。材质(物理模型与求解器)位于 材质 下。