FastSim 库 API
FastSim 的 Python SDK 按功能划分为以下几个子包,每个包职责独立、可单独引用。
包结构概览
fastsim.configs
配置系统。提供 ConfigManager(加载/校验/导出 YAML·JSON 配置)以及各配置块对应的数据类:GeneralConfig、SimulationConfig、SceneConfig、TaskConfig、ExtensionConfig。
fastsim.unisim
场景与仿真器抽象层。SceneManager 管理所有实体的生命周期(构建、访问、更新节奏);UniSim 定义后端无关的仿真器接口(step / reset / is_running);UniSimFactory 根据配置实例化对应后端。
fastsim.simulators
各仿真后端的具体实现。目前内置 isaaclab 后端(IsaacLab(UniSim)),可通过继承 UniSim 并注册 stereotype 接入新后端。
fastsim.controllers
控制层。ControllerManager 维护 Command 队列并在每帧调度执行;四个高层控制器封装常用操作:
SpawnableController:线程安全的实体反射调用与运行时 spawnRobotController:关节轨迹执行与无碰撞检测 IKMotionPlanController:规划器接口(IK、运动规划、物体附着)ActionController:从配置字典执行单个 Action
所有控制器方法均返回 Result(success, msg, data)。
fastsim.extensions
可插拔扩展层。ExtensionManager 按配置启用扩展,各扩展通过 enable(sim) 向仿真生命周期注册回调。内置扩展包括:data_collect(观测采集)、record(录制与 HDF5 导出)、replay(轨迹回放)、server(REST API 服务化)、benchmark(episode 评估)。
fastsim.planner
运动规划器抽象层。Planner 定义规划器接口(solve_ik / solve_fk / gen_motion_plan / attach_objects);PlannerFactory 根据配置实例化规划器;目前内置 curobo 规划器实现。
fastsim.utils
通用工具库,供其他模块内部调用,也可在用户代码中直接引用:
Pose:位姿数据类,封装位置与四元数(wxyz),提供坐标变换、插值等操作Asset:资产路径解析(root_key://协议、远端下载缓存等)Log:统一日志工具kinematics:运动学辅助计算
fastsim.cli
命令行与 TUI 工具。main_cmd() 对应 fastsim 命令入口;main_cli() 对应 fastsim_cli TUI 入口;COMMANDS 字典定义所有可用命令(launch_simulation、validate_configuration、show_config 等)。