YAML: sceneclassSceneConfig

场景配置

以声明式方式描述仿真世界的组成:地基、机器人、物体、传感器和光源。SceneManager 在运行时负责实例化并将实体注入仿真器。

源码fastsim/configs/scene_cfg.py

顶层字段8

字段类型必填默认值说明 / 约束
namestring可选场景名称
positionlist[3]可选[0.0, 0.0, 0.0]场景基准位置 [x, y, z](米)
rotationlist[4]可选[1.0, 0.0, 0.0, 0.0]场景基准旋转,四元数 [w, x, y, z]
须为单位四元数(归一化),即 w²+x²+y²+z²=1
base_configBaseConfig可选地基 / 环境配置,通过 stereotype 指定类型
robot_cfg_dictdict[str, RobotConfig]可选{}机器人配置字典,key 为实例名(运行时通过 SceneManager.get_robot(name) 访问)
object_cfg_dictdict[str, ObjectConfig]可选{}场景物体配置字典,key 为实例名
sensor_cfg_dictdict[str, SensorConfig]可选{}传感器配置字典,key 为实例名
light_cfg_dictdict[str, LightConfig]可选{}光源配置字典,key 为实例名

BaseConfig:地基与环境 (base_config)

每个场景只有一个 Base,定义物理地面或加载完整环境 USD。通过 stereotype 决定具体子类。

classGroundPlaneBaseConfigstereotypeground_planeextendsBaseConfig, SpawnableConfigfastsim/unisim/bases/models/ground_plane_base.py
字段类型必填默认值说明 / 约束
ground_plane_sizelist[2]可选[10.0, 10.0]地面视觉尺寸 [x, y](米),物理上无限延伸
每个值须 > 0
继承自SpawnableConfig5
字段类型必填默认值说明 / 约束
stereotypestring必填"ground_plane"
namestring必填实体名称
1-100 字符,不可含 / 或 \
prim_pathstring可选USD prim 路径
须以 / 开头
positionlist[3]可选[0.0, 0.0, 0.0]位置 [x, y, z](米)
rotationlist[4]可选[1.0, 0.0, 0.0, 0.0]旋转(四元数 [w, x, y, z])
classUsdBaseConfigstereotypeusdextendsBaseConfig, SpawnableConfigfastsim/unisim/bases/models/usd_base.py
字段类型必填默认值说明 / 约束
asset_pathstring必填环境 USD 文件路径(支持 root_key:// 协议)
sourcestring必填local资产来源
local / remote
继承自SpawnableConfig5
字段类型必填默认值说明 / 约束
stereotypestring必填"usd"
namestring必填实体名称
prim_pathstring可选USD prim 路径
positionlist[3]可选[0.0, 0.0, 0.0]位置 [x, y, z]
rotationlist[4]可选[1.0, 0.0, 0.0, 0.0]旋转(四元数)
classEmptyBaseConfigstereotypeemptyextendsBaseConfig, SpawnableConfigfastsim/unisim/bases/models/empty_base.py
继承自SpawnableConfig4
字段类型必填默认值说明 / 约束
stereotypestring必填"empty",适合完全自定义物理场景
namestring必填实体名称
positionlist[3]可选[0.0, 0.0, 0.0]位置
rotationlist[4]可选[1.0, 0.0, 0.0, 0.0]旋转

ObjectConfig:场景物体 (object_cfg_dict)

classRigidObjectConfigstereotyperigidextendsObjectConfig, SpawnableConfigfastsim/unisim/objects/models/rigid_object.py
字段类型必填默认值说明 / 约束
massfloat必填1.0物体质量(kg)
densityfloat必填1000物体密度(kg/m³)
disable_gravitybool必填false是否禁用重力
kinematic_enabledbool可选false是否启用运动学模式(不受力学影响)
disable_rigid_bodybool可选false是否禁用刚体属性
enable_collisionbool必填true是否启用碰撞
primitive_typeenum可选几何体类型(不使用 USD 时)
box / sphere / cylinder / cone / disk
primitive_radiusfloat可选几何体半径(sphere / cylinder / cone / disk)
primitive_sizelist[3]可选几何体尺寸 [x, y, z](box)
primitive_heightfloat可选几何体高度(cylinder / cone)
继承自ObjectConfig4
字段类型必填默认值说明 / 约束
sourcestring必填primitive资产来源
local / remote / primitive
asset_pathstring可选USD 资产路径(source 为 local/remote 时必填)
scalelist[3]可选[1, 1, 1]缩放比例 [x, y, z]
axis_y_upbool可选false资产是否为 Y 轴朝上
继承自SpawnableConfig5
字段类型必填默认值说明 / 约束
stereotypestring必填"rigid"
namestring必填实体名称
prim_pathstring可选USD prim 路径
positionlist[3]可选[0.0, 0.0, 0.0]位置 [x, y, z]
rotationlist[4]可选[1.0, 0.0, 0.0, 0.0]旋转(四元数)
classArticulatedObjectConfigstereotypearticulatedextendsObjectConfig, ArticulationConfig, SpawnableConfigfastsim/unisim/objects/models/articulated_object.py
继承自ArticulationConfig3
字段类型必填默认值说明 / 约束
actuator_cfg_dictdict[str, ActuatorConfig]必填{}执行器配置字典(关节驱动组)
init_joint_positiondict[str, float]可选{}初始关节位置
init_joint_velocitydict[str, float]可选{}初始关节速度
继承自ObjectConfig3
字段类型必填默认值说明 / 约束
sourcestring必填local资产来源
local / remote
asset_pathstring必填USD 资产路径
scalelist[3]可选[1, 1, 1]缩放比例
继承自SpawnableConfig4
字段类型必填默认值说明 / 约束
stereotypestring必填"articulated"
namestring必填实体名称
positionlist[3]可选[0.0, 0.0, 0.0]位置
rotationlist[4]可选[1.0, 0.0, 0.0, 0.0]旋转
classSoftObjectConfigstereotypesoftextendsObjectConfig, SpawnableConfigfastsim/unisim/objects/models/soft_object.py
字段类型必填默认值说明 / 约束
massfloat必填0.1物体总质量(kg)
densityfloat必填1000物体密度(kg/m³)
youngs_modulusfloat可选10000杨氏模量(Pa),控制体积柔性体的刚度
poissons_ratiofloat可选0.3泊松比,控制横向与纵向变形的比例
须在 [0, 0.5) 范围内
dampingfloat可选0.01全局阻尼系数
dynamic_frictionfloat可选0.5动摩擦系数
static_frictionfloat可选0.5静摩擦系数
stretch_stiffnessfloat可选10000拉伸刚度(N/m),仅布料类型生效
shear_stiffnessfloat可选1000剪切刚度(N/m),仅布料类型生效
bending_stiffnessfloat可选10.0弯曲刚度(N·m),仅布料类型生效
pressurefloat可选0.0内部压力(Pa),用于充气柔性体,0 表示禁用
soft_body_typeenum可选volumetric柔性体类型,提示仿真器使用何种模型
cloth / volumetric / inflatable
simulation_hex_meshbool可选false是否使用六面体网格进行体积 FEM(默认四面体)
particle_contact_offsetfloat可选0.02粒子接触检测半径(米)
solver_position_iterationsint可选16每步位置投影迭代次数
>= 1
enable_collisionbool必填true是否启用碰撞
self_collisionbool可选false是否启用自碰撞
disable_gravitybool可选false是否禁用重力
继承自ObjectConfig4
字段类型必填默认值说明 / 约束
sourcestring必填primitive资产来源
local / remote / primitive
asset_pathstring可选USD 资产路径
scalelist[3]可选[1, 1, 1]缩放比例
axis_y_upbool可选false资产是否 Y 轴朝上
继承自SpawnableConfig5
字段类型必填默认值说明 / 约束
stereotypestring必填"soft"
namestring必填实体名称
prim_pathstring可选USD prim 路径
positionlist[3]可选[0.0, 0.0, 0.0]位置
rotationlist[4]可选[1.0, 0.0, 0.0, 0.0]旋转

RobotConfig:机器人 (robot_cfg_dict)

PlannerConfig 为嵌套配置,由用户自定义规划器扩展;机器人基础字段在 RobotConfig 中定义,具体子类通过 stereotype 选择。

classGeneralRobotConfigstereotypegeneral_robotextendsRobotConfig, ArticulationConfig, SpawnableConfigfastsim/unisim/robots/models/general_robot.py
继承自RobotConfig4
字段类型必填默认值说明 / 约束
ee_link_namestring可选末端执行器 link 名称
ik_joint_nameslist[str]可选参与 IK 计算的关节名称子集(不设则使用全部可动关节)
use_plannerbool可选false是否挂载运动规划器(如 Curobo)
planner_cfgPlannerConfig可选规划器详细配置,use_planner 为 true 时生效
继承自ArticulationConfig6
字段类型必填默认值说明 / 约束
asset_pathstring必填机器人 USD 资产路径
sourcestring必填local资产来源
local / remote
actuator_cfg_dictdict[str, ActuatorConfig]必填{}执行器配置字典(关节驱动组)
init_joint_positiondict[str, float]可选{}初始关节位置
init_joint_velocitydict[str, float]可选{}初始关节速度
scalelist[3]可选[1, 1, 1]缩放比例
继承自SpawnableConfig4
字段类型必填默认值说明 / 约束
stereotypestring必填"general_robot"
namestring必填实体名称
positionlist[3]可选[0.0, 0.0, 0.0]位置
rotationlist[4]可选[1.0, 0.0, 0.0, 0.0]旋转
classSingleGripperArmRobotConfigstereotypesingle_gripper_arm_robotextendsRobotConfig, ArticulationConfig, SpawnableConfigfastsim/unisim/robots/models/single_gripper_arm_robot.py
字段类型必填默认值说明 / 约束
arm_actuator_namestring必填机械臂 actuator group 名称(须与 USD 中定义一致)
gripper_actuator_namestring必填夹爪 actuator group 名称
继承自RobotConfig4
字段类型必填默认值说明 / 约束
ee_link_namestring可选末端执行器 link 名称
ik_joint_nameslist[str]可选IK 关节名称子集
use_plannerbool可选false是否挂载运动规划器
planner_cfgPlannerConfig可选规划器配置
继承自ArticulationConfig6
字段类型必填默认值说明 / 约束
asset_pathstring必填机器人 USD 资产路径
sourcestring必填local资产来源
actuator_cfg_dictdict[str, ActuatorConfig]必填{}执行器配置字典
init_joint_positiondict[str, float]可选{}初始关节位置
init_joint_velocitydict[str, float]可选{}初始关节速度
scalelist[3]可选[1, 1, 1]缩放
继承自SpawnableConfig4
字段类型必填默认值说明 / 约束
stereotypestring必填"single_gripper_arm_robot"
namestring必填实体名称
positionlist[3]可选[0.0, 0.0, 0.0]位置
rotationlist[4]可选[1.0, 0.0, 0.0, 0.0]旋转
classPlannerConfigfastsim/configs/scene_cfg.py
字段类型必填默认值说明 / 约束
stereotypestring必填规划器类型(由所接入的规划器插件定义)
extra_parametersdict可选{}规划器插件的扩展参数,由具体实现解释

SensorConfig:传感器 (sensor_cfg_dict)

classCameraConfigstereotypecameraextendsSensorConfig, SpawnableConfigfastsim/unisim/sensors/models/camera.py
字段类型必填默认值说明 / 约束
widthint必填图像宽度(像素)
heightint必填图像高度(像素)
data_typeslist[str]必填采集数据类型列表
rgb / depth / semantic_segmentation / instance_segmentation / normals
clip_rangelist[2]可选深度裁剪范围 [near, far](米)
attach_toAttachToConfig可选挂载配置(挂到某实体或 link 上)
look_atLookAtConfig可选朝向配置(朝向目标实体或坐标)
conventionenum可选world坐标系约定
world / opengl / ros
继承自SpawnableConfig5
字段类型必填默认值说明 / 约束
stereotypestring必填"camera"
namestring必填传感器名称
prim_pathstring可选USD prim 路径
positionlist[3]可选[0.0, 0.0, 0.0]位置 [x, y, z]
rotationlist[4]可选[1.0, 0.0, 0.0, 0.0]旋转(四元数)

LightConfig:光源 (light_cfg_dict)

classGeneralLightConfigstereotypegeneral_lightextendsLightConfig, SpawnableConfigfastsim/unisim/lights/models/general_light.py
字段类型必填默认值说明 / 约束
light_typeenum必填光源类型
distant(平行光)/ sphere(点光源)/ disk(面光源)
intensityfloat可选1.0光照强度
>= 0
exposurefloat可选0.0曝光值
colorlist[3]可选[1.0, 1.0, 1.0]颜色 [r, g, b],值域 0–1
visiblebool可选true光源自身网格是否在渲染中可见
enable_color_temperaturebool可选false是否启用色温(启用后 color 字段被覆盖)
color_temperaturefloat可选6500色温(开尔文 K)
normalizebool可选false是否对光照强度做归一化
radiusfloat可选光源半径(sphere 类型)
> 0
anglefloat可选光源角度(distant 类型)
texture_filestring可选纹理贴图文件路径
继承自SpawnableConfig4
字段类型必填默认值说明 / 约束
stereotypestring必填"general_light"
namestring必填光源名称
positionlist[3]可选[0.0, 0.0, 0.0]位置
rotationlist[4]可选[1.0, 0.0, 0.0, 0.0]旋转

配置示例

scene 配置块YAML
scene:
  name: pick_and_place_scene
  position: [0.0, 0.0, 0.0]
  rotation: [1.0, 0.0, 0.0, 0.0]

  base_config:
    stereotype: ground_plane
    ground_plane_size: [10.0, 10.0]

  robot_cfg_dict:
    arm:
      stereotype: single_gripper_arm_robot
      asset_path: assets://robots/ur5_with_gripper.usd
      ee_link_name: tool0
      use_planner: true
      arm_actuator_name: arm
      gripper_actuator_name: gripper

  object_cfg_dict:
    cube:
      stereotype: rigid
      asset_path: assets://objects/cube_red.usd
      mass: 0.2
      enable_gravity: true
    cloth:
      stereotype: soft
      asset_path: assets://objects/cloth.usd
      soft_body_type: cloth
      mass: 0.05
      stretch_stiffness: 8000
      bending_stiffness: 5.0

  sensor_cfg_dict:
    wrist_cam:
      stereotype: camera
      width: 640
      height: 480
      data_types: [rgb, depth]
      attach_to: arm
      convention: ros

  light_cfg_dict:
    main_light:
      stereotype: general_light
      light_type: distant
      intensity: 3000
      color: [1.0, 1.0, 1.0]