配置系统

FastSim 通过 YAML/JSON 文件组织所有配置,由 ConfigManager 在启动时完成解析、合并与校验。整个配置系统被划分为五个相互独立又相互引用的配置块,分别描述环境、仿真器、场景、任务与扩展能力。

配置块一览

配置块顶层键职责
全局配置general项目扫描开关、资产根路径映射
仿真配置simulation仿真后端选择、时间步长、物理参数
场景配置scene实体声明:机器人、物体、传感器、光源
任务配置task动作序列与目标条件编排
扩展功能配置extension录制、回放、Benchmark、HTTP Server

完整配置结构

一个典型的 FastSim 配置文件包含以下顶层结构:

yaml
general:
  scan_project: true
  root_paths:
    assets: /path/to/assets
    datasets: /path/to/datasets

simulation:
  stereotype: isaaclab
  dt: 0.0166667
  intiailize_steps: 30

scene:
  name: my_scene
  base_config:
    stereotype: ground_plane
  robot_cfg_dict:
    arm:
      stereotype: general_robot
      asset_path: assets://robots/ur5.usd

task:
  name: pick_and_place
  actions: [...]
  goals: [...]

extension:
  extension_cfg_dict:
    data_collect:
      stereotype: data_collect
      enable: true

配置加载与校验

ConfigManagerFastSim.__init__() 中被调用,依次完成:

  1. 读取:从文件路径加载 YAML/JSON
  2. 合并:支持多文件分拆与 include 机制
  3. 校验:每个配置块对应各自的 *Config 数据类,字段类型与约束在此阶段报错
  4. 项目扫描:若 general.scan_project: trueProjectLoader 扫描用户代码,收集可用的 stereotype 注册表

校验与查看命令:

bash
fastsim validate_configuration --config <config_file>
fastsim show_config --config <config_file>
fastsim show-registry   # 查看已注册的所有 stereotype