目录

LeRobot 硬件集成

本页面介绍 LeRobot 的硬件集成层,包括 RobotTeleoperator 抽象、支持的硬件平台、校准流程和遥操作。

返回概述

机器人和遥操作抽象

Robot 抽象基类

Robotsrc/lerobot/robots/robot.py)是所有物理机器人的抽象基类。每个子类必须声明两个类级属性并实现所有抽象方法。

核心方法:

方法 描述
connect() 初始化与硬件的连接
disconnect() 断开与硬件的连接
getobservation() | 获取当前观测(关节位置、图像等) | | sendaction() 执行动作指令
calibrate() 执行校准程序

Teleoperator 抽象基类

Teleoperatorsrc/lerobot/teleoperators/teleoperator.py)是所有输入设备的抽象基类(引导臂、键盘、游戏手柄等)。

核心方法:

方法 描述
connect() 初始化与遥操作设备的连接
disconnect() 断开连接
get_action() 读取操作者的动作输入

工厂模式和设备创建

代码库使用工厂模式从配置对象实例化机器人和遥操作器:

支持的硬件

LeRobot 原生支持多种硬件平台:

平台 类型 特点
SO100 低成本机械臂 入门级,适合教育和研究
LeKiwi 移动机器人 两轮差速平台
Reachy2 双臂机器人 灵活的协作机器人
Unitree G1 人形机器人 全尺寸人形,全身控制
Franka 七轴机械臂 研究级精度

遥操作设备支持:

配置系统

硬件配置通过数据类实现:

校准和设置

完整的硬件设置流程包括四个阶段:

  1. 端口发现:识别 USB 串行路径或 CAN 接口
  2. 电机配置:分配唯一的 ID 和波特率到电机 EEPROM
  3. 校准:将原始编码器计数映射到物理单位(弧度)并记录零位
  4. 关节限制发现:通过 URDF 运动学确定安全操作范围和末端执行器边界

安全机制

ensuresafegoalposition 实用函数用于在发送目标位置到机器人前,基于 maxrelative_target 限制目标位置,防止高速碰撞或电机损坏。

遥操作

遥操作循环(用于 lerobot-teleoperatelerobot-record)的核心交互流程:

while recording:
    action = teleoperator.get_action()
    processed_action = processor_pipeline(action)
    robot.send_action(processed_action)
    obs = robot.get_observation()
    dataset_writer.add_frame(obs, action)

录制 episodes

使用 lerobot-record 通过遥操作录制数据:

回放和验证

使用 lerobot-replay 在机器人上回放录制的 episodes,用于验证数据质量和安全性。

相关页面