IB-Robot 架构文档

IB-Robot (Intelligence Boom Robot): 融合 LeRobot 机器学习生态与 ROS 2 的具身智能机器人开发框架

目录


什么是 IB-Robot?

IB-Robot 架构图

LeRobot 是 Hugging Face 开源的机器人学习框架,专注于用机器学习让机器人学会执行任务(比如抓东西、叠衣服)。

ROS 2(Robot Operating System 2)是机器人领域最常用的中间件,提供通信、硬件抽象、工具链等基础设施。

IB-Robot (Intelligence Boom Robot) 是两者的枢纽与桥梁

  • 把 LeRobot 训练好的 AI 策略模型无缝部署到真实机器人或仿真环境中。
  • 利用 ROS 2 强大的感知、导航和控制能力,为具身智能决策提供支撑。
  • 提供从数据采集、策略训练到分布式部署的端到端完整工作流。
┌─────────────────┐         ┌──────────────────┐
│  LeRobot (AI)   │ ◄─────► │   ROS 2 (Infra)  │
│  - 训练策略      │         │  - 硬件控制       │
│  - 推理引擎      │         │  - 通信总线       │
│  - 数据规范      │         │  - 感知/导航      │
└─────────────────┘         └──────────────────┘
         │                            │
         └──────────┬─────────────────┘
                    ▼
         ┌──────────────────┐
         │     IB-Robot     │  ◄── 本项目
         │  (Intelligence)  │
         └──────────────────┘

本架构解决了什么问题?

问题 1:机器学习与机器人控制的"世界观"差异

维度 LeRobot (ML 世界) ROS 2 (控制世界)
数据单位 Episode(回合) Topic(话题)
时间观念 离散时间步 (Steps) 连续时间流 (Real-time)
硬件抽象 直接电机控制 通过 ros2_control
部署形态 Python 脚本/Tensor 分布式节点/ROS Msg

解决:通过核心组件 tensormsg 实现契约驱动的协议转换,让两者"共用一种语言"。

问题 2:从科研实验室到工业级部署的鸿沟

传统的机器人学习部署往往缺乏工程化支撑:

  • 传感器数据缺乏统一标准
  • 多个 AI 模型(如 VLA 决策 + GraspNet 抓取)难以高效协同
  • 缺乏自动化的数据记录与回流机制

解决:提供分层架构设计,各层职责解耦,支持模块化扩展。

问题 3:具身智能的数据闭环

要实现机器人能力的持续进化,需要解决:

  1. 专家示范数据的高效采集
  2. 原始数据向训练格式的快速转化
  3. 部署后的在线评估与数据回流

解决:建立统一的数据管道(MCAP/rosbag2 ↔ LeRobot Dataset)。


架构全景

整体架构图

graph TB
    subgraph "应用层 Application Layer"
        A1["具身智能体<br/>Embodied Agent"]
        A2["任务编排<br/>Task Orchestrator"]
        A3["运动规划<br/>MoveIt 2"]
    end

    subgraph "规划与分发层 Planning & Dispatching"
        N1["SLAM/导航<br/>ledog_slam"]
        N2["统一动作执行器<br/>action_dispatch"]
    end

    subgraph "推理与研发层 Inference & Development"
        I1["协议转换枢纽<br/>tensormsg"]
        I2["多模型推理服务<br/>inference_service"]
        I3["训练节点<br/>Training Node"]
        I4["遥操作采集<br/>Teleoperation"]
        I5["可视化调试<br/>Debug Tools"]
    end

    subgraph "感知层 Perception"
        S1["多模态采集<br/>Data Collection"]
        S2["空间语义感知<br/>Spatial Perception"]
    end

    subgraph "验证层 Validation"
        V1["配置与校准验证<br/>Configuration Check"]
    end

    subgraph "控制层 Control"
        C1["控制框架<br/>ros2_control"]
        C2["硬件接口<br/>so101_hardware"]
        C3["模型描述<br/>robot_description"]
    end

    subgraph "执行层 Execution"
        E1["真实机器人<br/>Real Robot"]
        E2["仿真环境<br/>Simulation"]
    end

    subgraph "全局管理 Global"
        G1["配置中心<br/>robot_config"]
        G2["接口标准定义<br/>ibrobot_msgs"]
    end

    %% 数据流
    A1 --> A2
    A2 --> N2
    A1 -.-> A3
    
    N1 --> N2
    N2 --> I2
    N2 --> I4
    I4 --> N2
    
    I2 --> I1
    I3 -.-> I1
    I5 -.-> I1
    
    S1 --> S2
    S2 --> N2
    S2 -.-> V1
    V1 -.-> C1
    
    I1 --> C1
    A3 -.-> C1
    
    C1 --> C2
    C1 -.-> E2
    
    C3 --> C1
    C3 -.-> A3
    
    G1 -.-> A1
    G1 -.-> N2
    G1 -.-> I1
    G1 -.-> I2
    G1 -.-> C1
    G1 -.-> C2
    G1 -.-> C3
    
    G2 -.-> I1
    G2 -.-> I2
    G2 -.-> N2

    style G1 fill:#fff3e0,stroke:#ff9800,stroke-width:3px
    style G2 fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
    style I1 fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
    style I2 fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
    style N2 fill:#fff3e0,stroke:#ff9800,stroke-width:2px

架构设计原则

  1. 分层解耦:每一层只与相邻层通过标准接口通信,屏蔽底层复杂性。
  2. 配置驱动 (Spec-Driven):所有本体规格、控制模式、关节定义均由 robot_config 统筹,实现"一处定义,全局生效"。
  3. 仿真/实机对齐:通过抽象硬件接口,确保同一套 AI 逻辑在仿真与实机间无缝平移。
  4. 数据生命周期管理:原生支持从采集、训练到部署的全生命周期数据闭环。

核心概念解释

1. 具身智能(Embodied AI)

传统 AI 侧重于数字世界的交互,IB-Robot 关注的具身 AI 则强调物理实体的反馈闭环:

  • 感知 (Sensation):多模态数据输入(视觉、力觉、关节状态)。
  • 决策 (Cognition):AI 模型(Policy/VLA)生成动作指令。
  • 执行 (Action):驱动物理电机并根据反馈调整。

2. 策略(Policy)

在 IB-Robot 中,策略是连接观察与动作的核心函数: Action = Policy(Observation, Prompt) LeRobot 生态提供了丰富的 Policy 实现(如 ACT, Diffusion, VLA 等),IB-Robot 负责将其具身化。

3. 数据契约与 tensormsg

为了打破 ML 与控制系统的壁垒,我们引入了 tensormsg

  • 转换:将 ROS 2 连续话题流转化为机器学习所需的张量快照。
  • 契约:通过合约文件(Contract)严格定义输入输出映射,确保模型部署的类型安全。

4. ros2_control 与双模架构

IB-Robot 深度集成 ROS 2 Control,并在此基础上实现了:

  • ACT 模式:高频流式位置控制,适合端到端模仿学习。
  • MoveIt 模式:轨迹规划控制,适合基于几何或视觉语言的目标导向任务。

分层设计详解

第 1 层:应用层(Application Layer)

职责:理解复杂意图,执行高层逻辑。

组件 状态 功能描述
具身智能体 (Embodied Agent) 规划中 集成 ASR/VLM,将自然语言转化为机器人可理解的任务序列。
任务编排 (Task Orchestrator) 规划中 使用行为树 (BT) 或逻辑状态机管理子任务流程。
MoveIt 2 已集成 负责路径规划、碰撞检测及逆运动学求解。

第 2 层:规划与分发层(Planning & Dispatching)

职责:充当机器人的"小脑",进行动作仲裁与状态反馈。

组件 状态 功能描述
action_dispatch 已实现 统一动作执行器。支持双模切换(Topic/Action),负责指令平滑、保护及状态上报。
robot_teleop 已实现 遥操作控制。提供 Leader-Follower 控制逻辑及外设接入能力。
ledog_slam 已实现 提供基础的 SLAM 定位与 Nav2 导航能力。

第 3 层:推理与研发层(Inference & Development)

职责:运行 AI 模型,支持研发工作流。

组件 状态 功能描述
tensormsg 已实现 转换枢纽。连接 ROS 2 环境与 LeRobot 模型,负责数据双向转换。
inference_service 已实现 多模型推理框架,支持 VLA/SmolVLA/YOLO 等模型的容器化部署。
dataset_tools 已实现 数据集工具箱。负责 Episode 录制、MCAP 数据导出及 LeRobot 格式转换。

第 6 层:控制层(Control)

职责:屏蔽硬件差异,提供稳健的底层控制。

组件 状态 功能描述
robot_config 已实现 配置中心。管理全系统的规格文件(YAML),作为唯一真相来源。
robot_description 已实现 统一管理机器人 URDF/SRDF 及相关 Mesh 资产。
so101_hardware 已实现 SO-101 舵机臂的实机驱动实现。

路线图 (Roadmap)

Phase 1: 核心引擎架构 ✅

  • 基于 tensormsg 的协议转换枢纽
  • 配置驱动的 robot_config 体系
  • 统一动作执行器 action_dispatch (双模支持)
  • SO-101 仿真与实机驱动对齐

Phase 2: 感知增强与验证 🔧

  • 基础视觉传感器接入 (USB/RealSense)
  • 接口定义统一化 (ibrobot_msgs)
  • 自动化配置一致性验证脚本 (validate_config)
  • 传感器外参在线标定工具

Phase 3: 高级智能与采集 ✅

  • 数据闭环:从演示采集到自动导出数据集 (dataset_tools)
  • 多源遥操作接口 (robot_teleop)
  • 交互式调试工具:Attention 热力图可视化

最后更新:2026-03-09

1. 初始化环境

./scripts/setup.sh
./scripts/build.sh

2. 启动机器人系统 (以仿真为例)

ros2 launch robot_config robot.launch.py \
    robot_config:=so101_single_arm \
    use_sim:=true

3. 运行 AI 推理策略

ros2 run tensormsg policy_runner --ros-args -p policy_path:=/path/to/model.pt

最后更新:2026-02-14 维护者:IB-Robot (Intelligence Boom Robot) 核心团队 项目地址https://gitcode.com/BreezeWu/IB_Robot