通用仿真开发框架

FastSim:无代码构建仿真应用

通过 UniSim 的统一抽象接口兼容多种仿真器后端;以统一配置定义场景与任务,实现更快迭代与更高复用。

核心亮点

多层级开发支持

提交配置文件即可定义仿真场景与要执行的功能模块;FastSim 负责解析、构建与验证。

无代码:配置驱动仿真
按 simulation / scene / task / extension 分块书写;scene 含机器人与物体,task 编排动作与目标,extension 可挂录制与 HTTP 服务等。
YAML
yaml
simulation
simulation:
  stereotype: isaaclab
  launch_config:
    device: cuda
    enable_cameras: true
    headless: false
    livestream: 0
  # 物理步长、初始化步数等可按后端支持项补充 …
  dt: 1/120
  intiailize_steps: 30
scene
scene:
  name: lab_pick_place
  position: [0, 0, 0]
  rotation: [1, 0, 0, 0]
  base_config:
    name: ground
    stereotype: ground_plane
    source: primitive
    ground_size: [24, 24]
  object_cfg_dict:
    work_table:
      stereotype: rigid
      source: primitive
      primitive_type: cuboid
      primitive_size: [0.8, 1.2, 0.05]
      position: [0.5, 0.0, 0.4]
      mass: 5e3
    # … 更多物体与传感器可按需追加
  robot_cfg_dict:
    franka_panda:
      name: franka_panda
      stereotype: general_robot
      source: local
      asset_path: asset://Franka/franka_panda.usd
      position: [0, 0, 0]
      init_joint_position:
        panda_joint2: -0.52
        panda_joint4: -1.57
      actuator_cfg_dict:
        arm:
          joint_names_expr: ["panda_joint1", "panda_joint2", "…"]
          stiffness: 8000.0
          damping: 800.0
      use_planner: true
      planner_cfg:
        stereotype: curobo
        lazy_init: true
        # …
task
task:
  name: pick_and_place_demo
  description: 抓取—放置示例任务
  goal_config:
    stereotype: sequential_goals
    # …
  actions:
    - name: open_gripper
      stereotype: release
      robot_name: franka_panda
      ee_type: gripper
    - name: pick_object
      stereotype: pick
      robot_name: franka_panda
      target_name: target_box
      pick_up_distance: 0.05
      ee_type: gripper
      pose_source: local
      pose_data: ./grasp_pose.json
    - name: place_object
      stereotype: place
      robot_name: franka_panda
      target_name: work_table
      pose_frame: world
      ee_type: gripper
    # …
extension
extension:
  extension_cfg_dict:
    session_recorder:
      extension_type: record
      stereotype: record
      enable: true
      # … 录制路径、话题等
    http_api:
      extension_type: server
      stereotype: server
      enable: true
      host: 0.0.0.0
      port: 5000
      debug: false

统一配置系统

用统一配置系统管理并校验仿真元素与功能,支持 UI / 代码 / 配置文件。

管理与校验

统一管理仿真元素与功能开关,并进行结构化校验,保证一致性与可复现。

支持方式

支持 UI、代码与配置文件三种入口,适配不同团队协作与工程形态。

覆盖范围 & 可扩展性

覆盖从场景、实体到任务与扩展;并支持用户自定义配置与扩展注册。

全局配置

项目扫描、路径与资源解析规则等全局设置,作为所有运行的基座。

仿真器配置

仿真器后端选择、关键参数与兼容字段,统一接入不同底层仿真器。

场景配置

地图/几何/环境元素等场景结构配置,沉淀可复用的场景模板。

任务行为与目标配置

任务流程、actions/goals 与校验规则,保证任务可组合与可回放。

可生成元素配置

用类型化配置生成实体与组件(机器人/传感器/物体等),支持扩展与注册。

规划器配置

规划/控制链路的模块选择与参数装配,便于替换、复用与对比评测。

高级扩展功能配置

录制回放、Benchmark、ROS 通信、服务化等能力按需启用并可编排。

用户自定义配置

通过扩展点引入自定义字段与校验,配置可随业务演进而不破坏兼容。

高扩展性架构

可自定义仿真器、规划器、生成元素、行为目标与功能模块,并自动注册扩展。

可扩展架构

注册机制与自动装配

扩展能力在统一配置定义下注册到框架;运行时由配置驱动完成装配,业务模块可独立演进,并与仿真内核、任务编排保持清晰边界。

注册机制

扩展类型通过注解声明并纳入框架注册表,由运行时统一发现与校验。新扩展类型可与既有实现并存,便于团队协作、版本兼容与能力迭代。

自动装配

在配置解析之后,由各Manager自动完成实例化与依赖绑定,将仿真管线、任务编排与扩展模块串联为一致运行时,降低重复的显式装配与集成代码量。

可扩展接入类型

UniSimunisim · 统一仿真抽象(仿真器后端)
Basebase · 场景类型
Objectobject · 物体类型(如刚体、铰接体、柔体等)
Lightlight · 光源类型(如点光源、方向光、环境光等)
Sensorsensor · 传感器类型(如相机、激光雷达等)
Robotrobot · 机器人类型
Plannerplanner · 规划器类型
Actionaction · 动作类型(如Pick、Place、Insert等)
Goalgoal · 目标类型(如OnTop、Inside等)
Observerobserver · 观测器类型
Policypolicy · 算法策略类型
Extensionextension · 扩展功能类型

开箱即用高级功能

任务执行与评估、数据录制回放、ROS通信、云服务化,强化学习与遥操作等。

任务执行与评估

自动执行任务流程,并对成功率、性能与稳定性进行评估。

  • 可配置的任务执行链路
  • 统一评测指标与结果沉淀
  • 支持 Benchmark 批量对比

跨仿真器通用性

UniSim 抽象接口层让同一配置与代码可在多种底层仿真器上直接运行。

FastSim 上层能力

场景、任务、控制器与扩展等业务逻辑只依赖 UniSim 的稳定接口,与具体仿真器实现解耦。

ConfigSceneControllerExtension
UniSim 统一仿真层

步进、重置、实体生命周期与全局能力:在业务与后端之间建立稳定边界。

UniSim Adapter各后端通过适配器实现同一套接口,对接到 UniSim 中枢。

仿真后端

Isaac LabNVIDIA(英伟达)
MuJoCoGoogle DeepMind
PyBulletBullet Physics
更多后端包含用户自定义仿真器

快速开始

选择偏好并复制安装命令,与本地环境一致后即可运行示例与自有场景。