YAML: extensionclassExtensionConfig

扩展功能配置

通过 extension_cfg_dict 声明需要启用的扩展实例,键名即运行时访问该扩展的唯一标识。按声明顺序依次启用,data_collect 必须在 record/benchmark 之前。

源码fastsim/configs/extension_cfg.py

顶层字段1

字段类型必填默认值说明 / 约束
extension_cfg_dictdict[str, ExtensionBaseConfig]可选{}扩展配置字典,键名为实例名(同时是运行时检索的唯一标识),值为各扩展的配置对象
按键声明顺序依次启用;data_collect 须在 record 和 benchmark 之前声明

ExtensionBaseConfig:通用基础字段(所有扩展)

classExtensionBaseConfigfastsim/extensions/extension_cfg.py
字段类型必填默认值说明 / 约束
stereotypestring必填扩展类型标识(data_collect / record / replay / server / benchmark)
enablebool可选true是否在仿真启动时自动调用 enable(sim),设为 false 可延迟手动启用

DataCollectorConfig:观测采集 (stereotype: data_collect)

按配置注册多个 observer,每个 observer 负责从场景中采集特定类型的数据。观测结果供 record / benchmark 扩展使用。

classDataCollectorConfigstereotypedata_collectfastsim/extensions/data_collect/data_collector_cfg.py
字段类型必填默认值说明 / 约束
observer_cfgslist[ObserverConfig]可选[]要注册的 observer 列表,每项通过 stereotype 指定采集类型
classRobotObserverConfigstereotyperobot_observerfastsim/extensions/data_collect/observer_cfg.py
字段类型必填默认值说明 / 约束
stereotypestring必填"robot_observer"
namestring必填机器人实例名(对应 scene.robot_cfg_dict 中的 key)
observe_joint_positionsbool可选false采集各关节位置
observe_ee_posebool可选false采集末端执行器位姿
observe_gripper_statebool可选false采集夹爪状态(开合程度)
classSensorObserverConfigstereotypesensor_observerfastsim/extensions/data_collect/observer_cfg.py
字段类型必填默认值说明 / 约束
stereotypestring必填"sensor_observer"
namestring必填传感器实例名(对应 scene.sensor_cfg_dict 中的 key)
observe_rgbbool可选false采集 RGB 图像
observe_depthbool可选false采集深度图
observe_intrinsic_matrixbool可选false采集相机内参矩阵
observe_extrinsic_matrixbool可选false采集相机外参矩阵
classObjectObserverConfigstereotypeobject_observerfastsim/extensions/data_collect/observer_cfg.py
字段类型必填默认值说明 / 约束
stereotypestring必填"object_observer"
namestring必填物体实例名(对应 scene.object_cfg_dict 中的 key)
observe_positionbool可选false采集物体位置
observe_rotationbool可选false采集物体旋转
observe_scalebool可选false采集物体缩放比例
classTaskObserverConfigstereotypetask_observerfastsim/extensions/data_collect/observer_cfg.py
字段类型必填默认值说明 / 约束
stereotypestring必填"task_observer"
namestring必填任务实例名

RecorderConfig:录制与导出 (stereotype: record)

依赖 data_collect 扩展,将每帧 Observation 异步写入文件系统,仿真终止时执行后处理(生成 HDF5、视频等)。

classRecorderConfigstereotyperecordfastsim/extensions/record/recorder_cfg.py
字段类型必填默认值说明 / 约束
backend_root_pathstring必填录制文件写入根目录(支持 root_key:// 路径)
record_backendstring可选lfs存储后端类型
record_fpsint可选30录制帧率(帧节流依据)
postprocess_listlist[str]可选[]终止后执行的后处理类型
hdf5 / video / png_depth / preview_video
use_recorder_stepbool可选false使用 recorder 自己的步进计数,而非全局仿真步
data_collector_namestring可选data_collectDataCollector 扩展实例名(须与 extension_cfg_dict 中的键名一致)
record_observer_nameslist[str]可选[]限定录制的 observer 名称,空则录制全部
record_task_summarybool可选false终止时导出 task_summary.json

ReplayConfig:轨迹回放 (stereotype: replay)

从 record.h5 读取录制轨迹,在仿真中驱动实体按轨迹运动,用于可视化验证或生成对比视频。可附加额外相机(ReplayCameraConfig)进行多视角录制。

classReplayConfigstereotypereplayfastsim/extensions/replay/replay_cfg.py
字段类型必填默认值说明 / 约束
hdf5_pathstring必填record.h5 文件路径(支持 root_key:// 路径)
scene_cfg_pathstring可选回放时使用的场景配置文件路径
spawnable_nameslist[str]可选[]限定加载的实体名称,空则加载全部
replay_camera_cfgslist[ReplayCameraConfig]可选[]回放附加相机列表,见 ReplayCameraConfig
classReplayCameraConfigfastsim/extensions/replay/replay_cfg.py
字段类型必填默认值说明 / 约束
widthint必填图像宽度(像素)
heightint必填图像高度(像素)
positionlist[3]必填相机位置 [x, y, z](米)
rotationlist[4]必填相机旋转,四元数 [w, x, y, z]
data_typeslist[str]可选["rgb"]采集数据类型(与 CameraConfig 相同)

ServerConfig:REST API 服务化 (stereotype: server)

启动 Flask HTTP 服务,将所有标注 @apiclass 的控制器方法自动注册为 POST /{class}/{method} 路由。

classServerConfigstereotypeserverfastsim/extensions/servitize/server_cfg.py
字段类型必填默认值说明 / 约束
hoststring可选0.0.0.0监听地址
portint可选8080监听端口
1024–65535
debugbool可选falseFlask debug 模式(生产环境请关闭)

BenchmarkConfig:Episode 评估 (stereotype: benchmark)

在独立控制线程中以 episode 为单位循环运行用户自定义策略,每个 episode 结束后评估 goal 条件,输出成功率等统计指标。策略类需继承 Policy 并实现规定接口。

classBenchmarkConfigstereotypebenchmarkfastsim/extensions/benchmark/benchmark_cfg.py
字段类型必填默认值说明 / 约束
episode_numint必填总 episode 数
action_frequencyfloat可选10.0策略控制频率(Hz)
timeout_per_episodefloat | null可选null单 episode 超时时间(秒),null 则不超时
goalslist[GoalConfig]可选[]每个 episode 结束后评估的目标条件集合
policyPolicyConfig必填策略配置,stereotype 指定用户自定义策略类型
data_collector_namestring可选data_collectDataCollector 扩展实例名
required_observer_nameslist[str]可选[]benchmark 运行所需的 observer 名称列表
terminate_sim_when_finishedbool可选false全部 episodes 完成后是否终止仿真
classPolicyConfigfastsim/extensions/benchmark/policy.py
字段类型必填默认值说明 / 约束
stereotypestring必填策略类型,与 @stereotype.register_config 注册的 key 对应
...any可选用户在自定义 PolicyConfig 子类中定义的任意字段,由 @configclass 解析

配置示例

extension 配置块YAML
extension:
  extension_cfg_dict:
    my_data_collect:            # ← 键名即运行时实例名
      stereotype: data_collect
      enable: true
      observer_cfgs:
        - stereotype: robot_observer
          name: arm
          observe_joint_positions: true
          observe_ee_pose: true
        - stereotype: sensor_observer
          name: wrist_cam
          observe_rgb: true
          observe_depth: true

    record:
      stereotype: record
      enable: true
      backend_root_path: datasets://runs/run001
      record_fps: 30
      postprocess_list: [hdf5, video]
      data_collector_name: my_data_collect

    server:
      stereotype: server
      enable: false
      host: 0.0.0.0
      port: 8080
      debug: false