项目概述LeRobot是 Hugging Face 开源的机器人学习框架基于 PyTorch 提供模型、数据集与工具链覆盖真实机器人从数据采集 → 训练 → 评估 → 部署的完整流程。核心设计目标目标说明硬件无关统一的Robot/Teleoperator抽象解耦控制逻辑与具体硬件数据标准化LeRobotDataset v3Parquet MP4格式与 Hugging Face Hub 深度集成策略即插即用模仿学习、强化学习、VLA 等多类 SOTA 策略开箱可用可扩展自定义机器人、策略、环境、Processor 均可接入同一套工具链项目目录结构lerobot/ ├── src/lerobot/ # Python 主包源码 ├── tests/ # 单元与集成测试 ├── docs/ # 文档含本文件与 HuggingFace doc-builder 源文件 ├── examples/ # 教程与端到端示例 ├── benchmarks/ # 性能基准视频编解码等 ├── docker/ # Docker 构建文件 ├── media/ # README 图片与视频资源 ├── .github/ # CI/CD 工作流 ├── pyproject.toml # 包定义、可选依赖、CLI 入口 ├── Makefile # 开发快捷命令 └── README.md # 项目总览各目录功能说明目录功能src/lerobot/框架核心实现所有可导入的 Python 模块均在此tests/覆盖 policies、datasets、processor、rl、robots、motors 等模块的测试docs/官方文档源文件source/下.mdx及本地架构文档examples/按硬件/策略/场景组织的可运行示例record、train、eval、teleopbenchmarks/视频编解码器性能对比等基准脚本docker/用户版与内部版 Dockerfilemedia/项目宣传素材不参与运行时逻辑src/lerobot/模块全景分层架构总览核心抽象模块模块路径职责robotsrobots/物理机器人抽象与具体实现teleoperatorsteleoperators/遥操作设备Leader 臂、手柄、键盘、手机等policiespolicies/策略模型IL / RL / VLAdatasetsdatasets/LeRobotDataset v3 读写、统计、流式、在线 bufferprocessorprocessor/观测/动作/策略前后处理 Pipelineenvsenvs/仿真环境工厂Gymnasium Hub 远程环境configsconfigs/draccus 配置 dataclass 与 CLI 解析scriptsscripts/官方 CLI 入口脚本基础设施模块模块职责cameras相机抽象OpenCV、RealSense、Reachy2、ZMQ 远程相机motors电机总线Feetech、Dynamixel、DamiaoCANoptim优化器与学习率调度器工厂utils训练工具、Hub 集成、常量、可视化、控制循环辅助model运动学计算transportgRPC proto 定义与序列化工具data_processingSARM 子任务标注等数据处理templatesHuggingFace Model Card 模板分布式扩展模块模块职责async_inference远程策略推理Policy Server Robot Clientrl分布式 HILSerlActor / Learner、ReplayBuffer六大核心抽象Robot机器人文件src/lerobot/robots/robot.pyRobot是所有 LeRobot 兼容机器人的抽象基类提供硬件无关的标准接口特征描述observation_features/action_featuresdict值为float或图像 shape生命周期connect()→configure()→get_observation()/send_action()→disconnect()标定持久化JSON 文件路径~/.cache/huggingface/lerobot/calibration/robots/{name}/{id}.json上下文管理器with Robot(...)自动 connect / disconnect已支持机器人子模块机器人so_followerSO-100 / SO-101 Follower我使用的这个bi_so_follower双臂 SO Followerkoch_followerKoch v1.1lekiwiLeKiwi含 ZMQ 远程 host/clienthope_jrHope Jr 手臂/手omx_followerOMXreachy2Reachy 2openarm_follower/bi_openarm_followerOpenArm 单/双臂unitree_g1Unitree G1 人形earthrover_mini_plusEarth Rover MiniTeleoperator遥操作器文件src/lerobot/teleoperators/teleoperator.py与Robot对称的遥操作设备接口get_action()→ 返回RobotActionsend_feedback()← 力反馈/状态回传action_features/feedback_features同样支持标定 JSON 持久化已支持设备so_leader、bi_so_leader、koch_leader、omx_leader、openarm_leader、bi_openarm_leader、gamepad、keyboard、phone、homunculus、reachy2_teleoperator、unitree_g1Policy策略文件src/lerobot/policies/pretrained.py、src/lerobot/policies/factory.py基类PreTrainedPolicy(nn.Module, HubMixin)—select_action()、forward()、from_pretrained()配置PreTrainedConfig(draccus.ChoiceRegistry)— 特征维度、设备、AMP 等工厂make_policy(cfg, ds_meta|env_cfg)从数据集元数据或环境推断特征Processor 配对make_pre_post_processors()为每种策略创建 pre/post pipeline策略分类类别策略模仿学习 (IL)ACT、Diffusion、VQ-BeT强化学习 (RL)SAC、TDMPC、HIL-SERL含 reward_classifier视觉-语言-动作 (VLA)Pi0、Pi0.5、Pi0-FAST、SmolVLA、GR00T N1.5、XVLA、Wall-X推理辅助RTCReal-Time ChunkingDataset数据集文件src/lerobot/datasets/lerobot_dataset.pyLeRobotDataset v3.0格式存储结构Parquet状态/动作/元数据 MP4 视频或原始图像Hub 集成repo_id可从 Hugging Face Hub 下载/上传核心类LeRobotDatasetMetadata— 元数据、统计、episode 信息LeRobotDataset(torch.utils.data.Dataset)— 训练/录制用支持delta_timestamps、视频解码、图像增强编解码h264 / hevc / libsvtav1辅助模块文件用途factory.pymake_dataset()训练用数据集构建dataset_tools.py删 episode、合并、拆分、特征编辑streaming_dataset.py流式训练数据集online_buffer.py在线 RL buffercompute_stats.py/aggregate.py归一化统计video_utils.pyMP4 编解码transforms.py图像增强v30/v2.1 → v3.0 迁移工具Processor数据处理器文件src/lerobot/processor/pipeline.py、src/lerobot/processor/core.py通用顺序数据处理框架将机器人原始数据与策略张量之间的转换标准化ProcessorStep— 单步变换注册表ProcessorStepRegistryDataProcessorPipeline— 链式组合支持 Hub 保存/加载专用 PipelineRobotProcessorPipeline— 机器人观测/动作PolicyProcessorPipeline— 策略输入/输出Transition 模型EnvTransition含observation、action、reward、done、truncated、info、complementary_data关键 Processor 步骤文件用途normalize_processor.py归一化/反归一化policy_robot_bridge.py策略张量 ↔ 机器人 dicthil_processor.pyHILSerl 干预/奖励/裁剪env_processor.pyLIBERO / IsaacLab Arena 环境处理factory.py默认 Processor 组合Simulation Environment仿真环境我使用Nvidia Issac Sim来做仿真, 通讯方式通过ROS2文件src/lerobot/envs/factory.py、src/lerobot/envs/configs.py配置EnvConfig(draccus.ChoiceRegistry)—pusht、aloha、libero、metaworld、isaaclab_arena、Hub 远程环境工厂make_env(cfg, n_envs)→{suite_name: {task_id: VectorEnv}}Hub 环境下载远程env.py中的make_env()需trust_remote_codeTrue端到端数据流主流程record → dataset → train → eval → deployProcessor 链在 record 中的位置lerobot_record.py中record_loop()的数据流
Lerobot repository解析
项目概述LeRobot是 Hugging Face 开源的机器人学习框架基于 PyTorch 提供模型、数据集与工具链覆盖真实机器人从数据采集 → 训练 → 评估 → 部署的完整流程。核心设计目标目标说明硬件无关统一的Robot/Teleoperator抽象解耦控制逻辑与具体硬件数据标准化LeRobotDataset v3Parquet MP4格式与 Hugging Face Hub 深度集成策略即插即用模仿学习、强化学习、VLA 等多类 SOTA 策略开箱可用可扩展自定义机器人、策略、环境、Processor 均可接入同一套工具链项目目录结构lerobot/ ├── src/lerobot/ # Python 主包源码 ├── tests/ # 单元与集成测试 ├── docs/ # 文档含本文件与 HuggingFace doc-builder 源文件 ├── examples/ # 教程与端到端示例 ├── benchmarks/ # 性能基准视频编解码等 ├── docker/ # Docker 构建文件 ├── media/ # README 图片与视频资源 ├── .github/ # CI/CD 工作流 ├── pyproject.toml # 包定义、可选依赖、CLI 入口 ├── Makefile # 开发快捷命令 └── README.md # 项目总览各目录功能说明目录功能src/lerobot/框架核心实现所有可导入的 Python 模块均在此tests/覆盖 policies、datasets、processor、rl、robots、motors 等模块的测试docs/官方文档源文件source/下.mdx及本地架构文档examples/按硬件/策略/场景组织的可运行示例record、train、eval、teleopbenchmarks/视频编解码器性能对比等基准脚本docker/用户版与内部版 Dockerfilemedia/项目宣传素材不参与运行时逻辑src/lerobot/模块全景分层架构总览核心抽象模块模块路径职责robotsrobots/物理机器人抽象与具体实现teleoperatorsteleoperators/遥操作设备Leader 臂、手柄、键盘、手机等policiespolicies/策略模型IL / RL / VLAdatasetsdatasets/LeRobotDataset v3 读写、统计、流式、在线 bufferprocessorprocessor/观测/动作/策略前后处理 Pipelineenvsenvs/仿真环境工厂Gymnasium Hub 远程环境configsconfigs/draccus 配置 dataclass 与 CLI 解析scriptsscripts/官方 CLI 入口脚本基础设施模块模块职责cameras相机抽象OpenCV、RealSense、Reachy2、ZMQ 远程相机motors电机总线Feetech、Dynamixel、DamiaoCANoptim优化器与学习率调度器工厂utils训练工具、Hub 集成、常量、可视化、控制循环辅助model运动学计算transportgRPC proto 定义与序列化工具data_processingSARM 子任务标注等数据处理templatesHuggingFace Model Card 模板分布式扩展模块模块职责async_inference远程策略推理Policy Server Robot Clientrl分布式 HILSerlActor / Learner、ReplayBuffer六大核心抽象Robot机器人文件src/lerobot/robots/robot.pyRobot是所有 LeRobot 兼容机器人的抽象基类提供硬件无关的标准接口特征描述observation_features/action_featuresdict值为float或图像 shape生命周期connect()→configure()→get_observation()/send_action()→disconnect()标定持久化JSON 文件路径~/.cache/huggingface/lerobot/calibration/robots/{name}/{id}.json上下文管理器with Robot(...)自动 connect / disconnect已支持机器人子模块机器人so_followerSO-100 / SO-101 Follower我使用的这个bi_so_follower双臂 SO Followerkoch_followerKoch v1.1lekiwiLeKiwi含 ZMQ 远程 host/clienthope_jrHope Jr 手臂/手omx_followerOMXreachy2Reachy 2openarm_follower/bi_openarm_followerOpenArm 单/双臂unitree_g1Unitree G1 人形earthrover_mini_plusEarth Rover MiniTeleoperator遥操作器文件src/lerobot/teleoperators/teleoperator.py与Robot对称的遥操作设备接口get_action()→ 返回RobotActionsend_feedback()← 力反馈/状态回传action_features/feedback_features同样支持标定 JSON 持久化已支持设备so_leader、bi_so_leader、koch_leader、omx_leader、openarm_leader、bi_openarm_leader、gamepad、keyboard、phone、homunculus、reachy2_teleoperator、unitree_g1Policy策略文件src/lerobot/policies/pretrained.py、src/lerobot/policies/factory.py基类PreTrainedPolicy(nn.Module, HubMixin)—select_action()、forward()、from_pretrained()配置PreTrainedConfig(draccus.ChoiceRegistry)— 特征维度、设备、AMP 等工厂make_policy(cfg, ds_meta|env_cfg)从数据集元数据或环境推断特征Processor 配对make_pre_post_processors()为每种策略创建 pre/post pipeline策略分类类别策略模仿学习 (IL)ACT、Diffusion、VQ-BeT强化学习 (RL)SAC、TDMPC、HIL-SERL含 reward_classifier视觉-语言-动作 (VLA)Pi0、Pi0.5、Pi0-FAST、SmolVLA、GR00T N1.5、XVLA、Wall-X推理辅助RTCReal-Time ChunkingDataset数据集文件src/lerobot/datasets/lerobot_dataset.pyLeRobotDataset v3.0格式存储结构Parquet状态/动作/元数据 MP4 视频或原始图像Hub 集成repo_id可从 Hugging Face Hub 下载/上传核心类LeRobotDatasetMetadata— 元数据、统计、episode 信息LeRobotDataset(torch.utils.data.Dataset)— 训练/录制用支持delta_timestamps、视频解码、图像增强编解码h264 / hevc / libsvtav1辅助模块文件用途factory.pymake_dataset()训练用数据集构建dataset_tools.py删 episode、合并、拆分、特征编辑streaming_dataset.py流式训练数据集online_buffer.py在线 RL buffercompute_stats.py/aggregate.py归一化统计video_utils.pyMP4 编解码transforms.py图像增强v30/v2.1 → v3.0 迁移工具Processor数据处理器文件src/lerobot/processor/pipeline.py、src/lerobot/processor/core.py通用顺序数据处理框架将机器人原始数据与策略张量之间的转换标准化ProcessorStep— 单步变换注册表ProcessorStepRegistryDataProcessorPipeline— 链式组合支持 Hub 保存/加载专用 PipelineRobotProcessorPipeline— 机器人观测/动作PolicyProcessorPipeline— 策略输入/输出Transition 模型EnvTransition含observation、action、reward、done、truncated、info、complementary_data关键 Processor 步骤文件用途normalize_processor.py归一化/反归一化policy_robot_bridge.py策略张量 ↔ 机器人 dicthil_processor.pyHILSerl 干预/奖励/裁剪env_processor.pyLIBERO / IsaacLab Arena 环境处理factory.py默认 Processor 组合Simulation Environment仿真环境我使用Nvidia Issac Sim来做仿真, 通讯方式通过ROS2文件src/lerobot/envs/factory.py、src/lerobot/envs/configs.py配置EnvConfig(draccus.ChoiceRegistry)—pusht、aloha、libero、metaworld、isaaclab_arena、Hub 远程环境工厂make_env(cfg, n_envs)→{suite_name: {task_id: VectorEnv}}Hub 环境下载远程env.py中的make_env()需trust_remote_codeTrue端到端数据流主流程record → dataset → train → eval → deployProcessor 链在 record 中的位置lerobot_record.py中record_loop()的数据流