LeRobot 框架架构
1.1 框架概述
LeRobot 是一个专注于实际机器人应用的开源框架,提供了一系列预训练模型、数据集和工具。它特别关注模仿学习和强化学习方法,旨在降低机器人技术的入门门槛,让研究人员和开发者能更轻松地开发和部署机器人应用。
1.2 系统架构
LeRobot 的系统架构由几个相互连接的子系统组成,核心基础设施支持算法策略、训练数据管理、模拟环境接口以及物理硬件交互。这些组件协同工作,支撑起完整的机器人学习闭环。

1.3 代码结构
代码组织清晰,便于理解和扩展。目录结构大致如下:
.
├── examples # 示例和教程,从这里开始学习
│ └── advanced # 包含更高级的示例
├── lerobot
│ ├── configs # 命令行可覆盖的配置类
│ ├── common # 核心功能类和工具
│ │ ├── datasets # 人类演示数据集(aloha, pusht, xarm)
│ │ ├── envs # 模拟环境(aloha, pusht, xarm)
│ │ ├── policies # 策略实现(act, diffusion, tdmpc 等)
│ │ ├── robot_devices# 硬件接口(dynamixel, opencv, koch)
│ │ └── utils # 工具函数
│ └── scripts # 命令行执行脚本
│ ├── eval.py # 加载策略并在环境中评估
│ ├── train.py # 通过模仿或强化学习训练策略
│ ├── control_robot.py # 远程操作、记录数据、运行策略
│ ├── push_dataset_to_hub.py # 转换数据集格式并上传 Hugging Face
│ └── visualize_dataset.py # 加载并渲染数据集演示
├── outputs # 脚本执行结果(日志、视频、模型检查点)
└── tests # pytest 持续集成工具
这种结构让开发者能快速定位所需组件,理解它们之间的依赖关系。
1.4 主要组件
1.4.1 策略系统
LeRobot 通过统一的工厂接口实现多种最先进的策略架构。make_policy() 工厂函数为创建不同类型的策略提供了统一入口。训练(train.py)和评估(eval.py)脚本通过这个工厂与策略交互。所有策略都实现了 PreTrainedPolicy 接口,包含动作选择和模型训练的核心方法。

1.4.2 数据集管理
数据集系统负责处理多模态数据的加载、处理和可视化。LeRobotDataset 是核心组件,支持从 Hugging Face Hub 或本地存储访问。make_dataset() 工厂根据配置创建实例,系统自动处理片段、视频转换及图像预处理,并支持通过 Rerun 或 HTML/Flask 接口进行可视化。
1.4.3 环境接口
基于 Gymnasium API,LeRobot 为多个模拟环境提供一致接口。make_env() 工厂根据配置创建不同环境类型(Aloha、PushT、XArm)。系统包含观察预处理(preprocess_observation())和环境特征转换(env_to_policy_features())工具,生成向量环境以实现并行模拟。







