项目概览概述
相关源码文件
以下文件被用作生成此 wiki 页面的上下文:
IB-Robot(Intelligence Boom Robot)是一个一体化具身智能框架,旨在打通 Hugging Face LeRobot 机器学习生态与 ROS 2 机器人中间件。它为具身智能的研究与开发提供完整工具链,覆盖数据采集、模型训练与真实世界部署。该框架解决机器学习与机器人控制之间的”世界观”差异、科研与产业部署之间的鸿沟,以及具身智能对健壮数据生命周期的需求。
关于详细的安装与配置说明,请参阅入门与环境。若想深入了解系统组件及数据在其中的流转方式,参见系统架构与数据流。受支持的操作系统与硬件平台信息见支持的平台。
来源:README.md:1-3, README.en.md:1-3, docs/architecture.md:18-30
核心集成能力
IB-Robot 提供融合 LeRobot 与 ROS 2 生态的核心能力,为具身智能开发提供统一路径。它处理数据流的转换与对齐,管理不同的时间概念,支持双模控制策略,并支撑分布式边云部署。
维度 |
LeRobot 生态 |
ROS 2 生态 |
IB-Robot 解决方案 |
|---|---|---|---|
数据流 |
基于 Episode |
基于 Topic |
契约驱动的双向实时转换 |
时间 |
离散步数 |
连续实时流 |
自动对齐与高频插值 |
控制 |
端到端策略 |
分层规划 |
双模控制(ACT vs. MoveIt) |
部署 |
Python 脚本 |
ROS 2 节点 |
分布式边云协同部署 |
来源:README.md:23-29, README.en.md:23-29, docs/architecture.md:52-55
系统架构
IB-Robot 建立了覆盖感知、决策与执行的端到端闭环系统,无缝连接机器学习与机器人两个领域。该架构以分层解耦、配置驱动行为、仿真到实机对齐以及完整的数据生命周期管理为设计原则。
高层架构图
flowchart TB
subgraph application["应用层 Application"]
Hermes["Hermes / Agent"]
NaturalLanguage["ASR / VLM / 规则任务"]
PolicyRequest["策略推理任务"]
end
subgraph orchestration["编排与安全层 Orchestration and Safety"]
AgentSkill["ibrobot-control Agent Skill"]
CLI["robot-skill"]
Gateway["ROS Capability Gateway"]
Agent["embodied_agent"]
Skill["skill_library"]
Safety["safety_guard"]
Pick["manipulation_execution"]
Motion["task_dispatch / MoveIt gateway"]
MoveIt["MoveIt 2 main + IK/FK workers"]
Dispatch["action_dispatch"]
end
subgraph intelligence["感知与推理层 Perception and Inference"]
Sensor["相机 / 深度 / joint_states / 电流"]
GraspPerception["Grounded-SAM2 / GraspGen / grasp verifier"]
Tensor["tensormsg"]
Inference["inference_service"]
end
subgraph control["控制与执行层 Control and Execution"]
Controller["ros2_control"]
Hardware["so101_hardware"]
Simulation["Gazebo / Ignition"]
end
subgraph global["全局契约 Global Contracts"]
Config["robot_config<br/>SSOT"]
Interfaces["ibrobot_msgs"]
Description["robot_description"]
end
Hermes --> AgentSkill
AgentSkill --> CLI
CLI --> Gateway
Gateway -->|"SkillCommand"| Skill
Skill -.->|"feedback / result"| Gateway
Gateway -.-> CLI
CLI -.-> Hermes
NaturalLanguage --> Agent
Agent -->|"SkillCommand"| Skill
Skill -->|"ValidateSkill / ValidatePrimitive"| Safety
Skill -->|"PickObject"| Pick
Pick -->|"PlanGrasp / VerifyGrasp"| GraspPerception
GraspPerception -->|"候选、场景几何、验证证据"| Pick
Pick -->|"受限 PrimitiveCommand"| Skill
Skill -->|"已校验运动"| Motion
Pick -.->|"候选 IK/FK,无运动"| MoveIt
Motion --> MoveIt
MoveIt -->|"规划轨迹"| Controller
PolicyRequest --> Inference
Sensor --> Tensor
Tensor -->|"契约对齐 observations"| Inference
Inference -->|"动作块"| Dispatch
Dispatch -->|"高频关节指令"| Controller
Controller --> Hardware
Controller --> Simulation
Hardware -->|"状态反馈"| Sensor
Simulation -->|"状态反馈"| Sensor
Sensor --> GraspPerception
Sensor --> Pick
Config -.-> CLI
Config -.-> Gateway
Config -.-> Agent
Config -.-> Skill
Config -.-> Pick
Config -.-> Tensor
Config -.-> Inference
Config -.-> Controller
Interfaces -.-> Gateway
Interfaces -.-> Skill
Interfaces -.-> Pick
Interfaces -.-> GraspPerception
Description -.-> MoveIt
Description -.-> Controller
IB-Robot 的架构建立在以下关键组件之上:
多模态感知与采集:利用 ROS 2 驱动统一访问各类传感器(相机、LiDAR、麦克风),并支持多种数据采集方式,包括用于专家示教的 VR 手柄、Xbox 手柄和移动端 IMU README.md:48-51。
协议转换枢纽(
tensormsg):作为ros_msg与tensor数据类型之间双向转换的中央枢纽,通过契约机制保证数据一致性与类型安全 README.md:52-55。推理与研发服务(
inference_service):支持多种视觉-语言-动作(VLA)模型与端到端策略模型,并根据控制模式自动检测并启动合适的后端 README.md:56-58。统一动作分发器(
action_dispatch):充当机器人的“小脑”,在 ACT 模式下管理动作分块与高频插值,在规划模式下对接 MoveIt 2 执行受约束的轨迹 README.md:59-61。配置驱动中心(
robot_config):通过单一 YAML 文件定义机器人行为,指定关节、控制器模式与传感器参数,实现仿真与实机环境的无缝切换 README.md:62-64。
关于系统架构与数据流的详细拆解,请参阅系统架构与数据流。
来源:README.md:40-64, README.en.md:40-59, docs/architecture.md:87-177
仓库布局
IB-Robot 仓库的结构对其各组件进行了组织,包括核心 ROS 2 包、外部依赖、AI Agent 技能与文档。
IB_Robot/ # Main Workspace
├── .gitmodules # Git submodule configuration
├── README.md # Main documentation (Chinese)
├── README.en.md # Main documentation (English)
├── LICENSE # Apache 2.0 License
├── config.json # AI Agent configuration (AtomGit API tokens, etc.)
│
├── .agents/ # AI Agent configuration directory
│ └── skills/ # AI Agent skills (see .agents/skills/README.md)
│
├── libs/ # External dependencies
│ └── lerobot/ # [Submodule] LeRobot training framework
│
├── src/ # Core source packages
│ ├── robot_config/ # System master control, specs, and launch entry
│ ├── action_dispatch/ # Unified action dispatcher (Dual-mode)
│ ├── task_dispatch/ # Task scheduling and dispatch service
│ ├── tensormsg/ # LeRobot ↔ ROS 2 protocol conversion hub
│ ├── ibrobot_msgs/ # Unified system interfaces (Message/Action/Service)
│ ├── ibrobot_tracing/ # Non-intrusive tracing and offline trace analysis
│ ├── dataset_tools/ # Dataset collection & conversion (Episode Recorder)
│ ├── robot_teleop/ # Teleoperation (Leader Arm/Xbox controller)
│ ├── robot_description/ # Unified URDF/SRDF/MJCF model descriptions
│ ├── lekiwi_description/ # Lekiwi chassis URDF/Mesh model descriptions
│ ├── robot_moveit/ # MoveIt 2 motion planning integration
│ ├── robot_navigation/ # Navigation package
│ ├── inference_service/ # Multi-model inference & deployment service
│ ├── so101_hardware/ # SO-101 motor driver interface
│ ├── lekiwi_hardware/ # Lekiwi chassis hardware driver interface
│ ├── hardware_mock/ # Hardware mock interface
│ ├── omni_wheel_controller/ # Omni-wheel controller plugin
│ ├── pymoveit2/ # [Submodule] MoveIt2 Python interface
│ ├── rosclaw/ # [Submodule] OpenClaw social control integration
│ ├── sim_models/ # Simulation scene models (Gazebo/MuJoCo)
│ ├── model_utils/ # Model utility library
│ ├── torch_models/ # Self-developed PyTorch models, one directory per model
│ ├── attention_viz/ # Attention visualization tool
│ ├── voice_asr_service/ # Voice recognition service
│ ├── workflows/ # CI/CD configuration
│ │
│ ├── embodied_agent/ # Hermes Agent plan lifecycle and execution orchestration
│ ├── perception_service/ # Continuous scene understanding service (RGB-D / multi-view)
│ ├── skill_library/ # Skill execution layer (skill → primitive → MoveIt)
│ └── safety_guard/ # Explicit safety validation layer (whitelist + workspace boundary)
│
├── tools/ibrobot_tracing_web/ # Explicitly enabled Web API toolkit
├── web/ibrobot_tracing_ui/ # Vue trace performance workbench
├── docs/ # Deep architecture documentation and development guide
│ ├── pictures/ # Architecture diagrams and demo GIFs
│ └── videos/ # Demo videos (source files)
├── scripts/ # Environment configuration and validation scripts
└── build/ # Compilation output (automatically created)
关键目录及其内容
.agents/skills/:包含 AI Agent 技能。这些技能是为 IB-Robot 项目内各类开发工作流自动化而设计的插件,每个技能定义触发条件并为复杂任务提供工具。更多细节见 .agents/skills/README.md。libs/lerobot/:LeRobot 训练框架的 Git 子模块。对该子模块的修改通过third_party/patches/lerobot/中的补丁管理,不应直接提交 AGENTS.md:141-143。src/:该目录承载构成 IB-Robot 框架的核心 ROS 2 包。robot_config/:管理系统级配置、规范与 launch 入口,是机器人定义的单一事实源(SSOT)README.en.md:79。tensormsg/:LeRobot 与 ROS 2 之间的协议转换枢纽,处理ros_msg到tensor的变换 README.en.md:82。ibrobot_msgs/:定义统一的系统接口,包括自定义消息、动作与服务 README.en.md:83。inference_service/:提供多模型推理与部署服务 README.en.md:90。action_dispatch/:统一动作分发器,支持双模控制 README.en.md:80。skill_library/:机器人技能的执行层,将高层技能转译为原语与 MoveIt 指令 README.en.md:106。safety_guard/:实现显式安全校验,包括白名单与工作空间边界约束 README.en.md:107。
scripts/:包含用于环境搭建、构建与校验的各类实用脚本。例如setup.sh负责初始环境配置,build.sh用于编译项目 README.md:135-145。third_party/patches/:存放外部依赖的补丁,尤其是lerobot子模块的补丁 AGENTS.md:33。web/ibrobot_tracing_ui/:追踪性能工作台的 Vue.js 前端,用于可视化系统追踪 README.md:65。
入门与环境
开始使用 IB-Robot 前,需要完成一次性的环境搭建,随后进入一致的日常开发工作流:初始化环境、构建项目并管理 ROS 2 设置。
关于安装、环境配置与日常工作流的详细说明,请参阅入门与环境。
系统要求
操作系统:支持 Ubuntu 22.04(主机/开发机)、openEuler Embedded 24.03(边缘板)与 OpenHarmony 5.1(边缘板)README.md:33-38。
ROS 版本:ROS 2 Humble README.md:130。
Python:Python >= 3.10。务必避免在 Conda 激活环境中运行,以防动态库冲突 README.md:131。
加速器:支持 NVIDIA GPU、昇腾 310B 与昇腾 310P;未检测到加速器时默认仅用 CPU README.md:132。
初始搭建
初始搭建是克隆仓库后执行一次的过程。./scripts/setup.sh 脚本自动完成以下关键步骤:
子模块同步:初始化并更新 Git 子模块 README.md:138。
平台与硬件检测:自动识别操作系统与可用硬件加速器 README.md:139。
ROS 2 安装:若尚未安装,则安装 ROS 2 Humble 与
colconREADME.md:140。系统依赖安装:通过系统包管理器安装 C++ 编译工具与硬件驱动依赖 README.md:141。
虚拟环境(venv)创建:在根目录创建
venv目录,隔离 ML 依赖的同时复用系统rclpyREADME.md:142。ML 技术栈安装:在
venv内安装lerobot、硬件依赖以及与 ROS 2 Humble 兼容的 NumPy README.md:143。环境校验:验证
rosdepc、colcon、rclpy、lerobot与 NumPy 的兼容性 README.md:144。
开发工作流
日常开发中保持一致的工作流至关重要:
加载环境:在每个新终端中进入
IB_Robot根目录并执行source .shrc_localREADME.md:153-154。该脚本会激活venv、加载 ROS 2 环境并 source 工作区的install/setup.shREADME.md:156。分配 Domain ID:为每个会话设置唯一的
ROS_DOMAIN_ID,避免与其他 ROS 2 用户冲突 README.md:168-170。这对节点发现与通信至关重要 .agents/skills/ibrobot-build/references/troubleshooting.md:11-14。编译项目:代码修改后使用
./scripts/build.sh编译项目。该脚本保证正确的构建设置与环境激活 README.md:179-180。
关于环境搭建、构建与常见问题排查的更多细节,请参阅入门与环境。
来源:README.md:147-180, README.en.md:146-179, .agents/skills/ibrobot-build/SKILL.md:39-43, .agents/skills/ibrobot-build/references/troubleshooting.md:11-14
支持的平台
IB-Robot 设计为跨平台运行,同时支持开发与部署场景。框架主线工作流当前支持三种主要运行环境:
Ubuntu 22.04:作为主力主机与开发机,完整支持环境搭建、构建、仿真(Gazebo)、数据录制、MoveIt 集成与推理调试,是数据采集与单机推理的理想平台 README.md:34-36。
openEuler Embedded 24.03:面向边缘侧开发板,支持环境搭建、干净构建与板端运行。典型用途包括 NPU 推理、真机控制以及充当录制客户端 README.md:34-36。
OpenHarmony 5.1:同样面向边缘侧开发板,支持板端运行时工作流、HDC 调试、最小推理工作区构建与 LeRobot 补丁 profile 支持。用于 BQ3588HM 等板卡上的推理,以及通过 HDC/SSH 调试 README.md:34-38。
关于各平台的具体配置、构建流程与发布打包的详细信息,请参阅支持的平台。