跳到主要内容

架构

本页介绍 Teleopit 的整体架构设计、核心模块边界及技术规格。

运行主线 Pipeline

Teleopit 的运行主线是一条线性数据流管线:

输入源 (Input)
→ 重定向 (Retarget)
→ 观测构建 (Observation)
→ 策略推理 (Policy)
→ PD 控制 (Controller)
→ 仿真/实机执行 (Sim / Real)

每个环节职责单一,通过明确定义的接口相互连接。

代码结构

teleopit/
├── app.py # 应用入口
├── interfaces.py # 核心接口定义
├── runtime/ # 运行时配置装配与启动逻辑
├── pipeline/ # 数据流管线
├── sim2real/ # 实机部署适配层
├── observation/ # 观测构建
├── rl_policy/ # 强化学习策略推理
├── task/ # 任务配置
└── dataset_builder/ # 数据集构建工具

核心模块边界

模块文件/目录职责
接口层interfaces.py定义所有核心抽象接口,模块间仅通过接口通信
运行时runtime/Hydra 配置加载、对象组装、依赖注入
Pipelinepipeline/数据流编排,驱动每一帧的采样-推理-执行循环
Sim2Realsim2real/实机通信适配(DDS 桥接、状态同步)
观测observation/从仿真/实机状态构建策略所需的观测向量
策略rl_policy/ONNX 模型加载与推理,action 后处理
入口app.py命令行入口,调用 runtime 装配并启动 pipeline
任务配置task/Hydra 配置文件(YAML)
数据集dataset_builder/动捕数据转换、NPZ 打包、数据集分片

技术规格

项目规格
仿真引擎MuJoCo
策略推理ONNX Runtime
配置系统Hydra
实机通信DDS(Cyclone DDS)
支持的机器人宇树 G1
输入源BVH 文件、Pico 4 VR 头显

约束

  • 单机器人:当前架构假设同一时刻只控制一台机器人。
  • 固定观测格式:观测构建器的输出维度在初始化时确定,运行时不可变。
  • 同步 pipeline:pipeline 各阶段串行执行,策略推理频率即为 pipeline 的帧率。
  • ONNX 模型:策略必须导出为 ONNX 格式,不直接支持 PyTorch checkpoint。

公共接口

以下接口构成 Teleopit 的公共 API 面,外部扩展应仅依赖这些接口:

  • interfaces.py 中定义的抽象基类(InputProvider、ObsBuilder、Controller 等)
  • runtime/ 提供的工厂注册机制
  • Hydra 配置 schema

内部实现细节(如 pipeline 的具体调度逻辑)不属于公共 API,可能在版本迭代中变更。