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

代码结构
LeRobot 的代码结构清晰,便于开发者理解和扩展。目录组织如下:
.
├── examples # 示例和教程,从这里开始学习 LeRobot
│ └── 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 # 将数据集转换为 LeRobot 数据集格式并上传到 Hugging Face hub
│ └── visualize_dataset.py # 加载数据集并渲染其演示
├── outputs # 包含脚本执行结果:日志、视频、模型检查点
└── tests # 包含用于持续集成的 pytest 工具
这种结构使得开发者可以轻松地找到所需的组件,并理解它们之间的关系。
主要组件
策略系统
LeRobot 通过统一的工厂接口实现多种最先进的策略架构。make_policy() 工厂函数为创建不同类型的策略提供了统一的接口。训练(train.py)和评估(eval.py)脚本通过这个工厂与策略交互。所有策略都实现了 PreTrainedPolicy 接口,其中包括动作选择和模型训练的方法。
数据集管理
数据集系统处理机器人数据集的加载、处理和可视化,重点关注多模态数据。 类是核心组件,提供了加载和管理机器人数据集的功能。数据集可以从 Hugging Face Hub 或本地存储访问。 工厂根据配置创建数据集实例。该系统处理片段、视频处理和图像转换,通过 Rerun 或 HTML/Flask 接口进行可视化。








