配置系统
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
配置加载与校验
ConfigManager 在 FastSim.__init__() 中被调用,依次完成:
- 读取:从文件路径加载 YAML/JSON
- 合并:支持多文件分拆与 include 机制
- 校验:每个配置块对应各自的
*Config数据类,字段类型与约束在此阶段报错 - 项目扫描:若
general.scan_project: true,ProjectLoader扫描用户代码,收集可用的 stereotype 注册表
校验与查看命令:
bash
fastsim validate_configuration --config <config_file>
fastsim show_config --config <config_file>
fastsim show-registry # 查看已注册的所有 stereotype