4. 硬件选型与连接

在 LeRobot 实机部署中,硬件选型与连接决定了后续数据采集质量、策略训练上限以及闭环迭代的稳定性。很多团队在算法层面投入大量精力,却因为相机帧率不稳、夹爪延迟过大或通信总线带宽不足,导致示教数据不可用、策略无法复现。本节从系统视角出发,梳理机械臂、夹爪、相机、传感器、控制板与通信接口的选型原则与接线方法,帮助读者搭建一套可复现、可扩展的实机平台。

一、核心原理:硬件链路决定数据闭环上限

LeRobot 的闭环迭代依赖“感知—决策—执行—反馈”四个环节。硬件链路中任何一个环节的延迟、噪声或精度不足,都会在数据中被放大。例如,相机曝光时间过长会导致运动模糊,夹爪力控缺失会导致抓取状态不可观测,控制板通信周期抖动会导致动作序列时间戳错位。因此,选型的核心不是追求单件性能最高,而是保证整条链路的时间同步性、可观测性与可重复性。

选型三原则:① 接口协议统一,减少转换层;② 采样频率匹配,避免瓶颈;③ 机械与电气余量充足,便于后续扩展。

二、机械臂与夹爪选型

机械臂是执行主体,选型时重点关注自由度、负载、重复定位精度、工作半径与控制接口。对于 LeRobot 常见的桌面级操作任务,6 自由度协作臂或 5 自由度机械臂即可满足。若使用 SO-100/SO-101 等低成本舵机臂,需注意舵机扭矩与回程差,建议在关节处加装轴承以减少虚位。

夹爪分为平行夹爪、自适应夹爪与软体夹爪。平行夹爪适合规则物体,自适应夹爪适合多形状抓取,软体夹爪适合易损物品。若需要力控或抓取状态反馈,应选择带电流检测或力传感器的夹爪,并在 LeRobot 配置中启用对应反馈通道。

部件关键参数推荐范围注意事项
机械臂自由度/负载/重复精度5~6 DOF,负载≥500g,精度≤1mm避免舵机虚位过大
夹爪行程/力控/反馈行程≥50mm,支持电流反馈确认与臂端法兰匹配
相机分辨率/帧率/接口640×480@30fps 或 1280×720@30fps全局快门优先,避免卷帘畸变
传感器类型/量程/输出力/触觉/IMU,I2C 或 USB注意采样率与时间戳
控制板MCU/接口/实时性STM32/ESP32/RPi,支持 USB/CAN保证控制周期稳定

三、相机与传感器配置

视觉是 LeRobot 策略学习的主要输入。建议至少配置一路全局快门相机用于主视角,必要时增加腕部相机提供局部细节。相机安装位置应避免遮挡机械臂运动,同时保证视野覆盖操作区域。若使用 USB 相机,注意带宽分配,避免多路相机共用同一 USB 控制器导致掉帧。

传感器方面,力/触觉传感器可提供抓取成功与否的物理反馈,IMU 可用于监测机械臂姿态。所有传感器应尽量统一时间基准,推荐使用 ROS 2 的 message_filters 或 LeRobot 内置的时间同步机制。

# 查看相机设备与带宽
v4l2-ctl --list-devices
lsusb -t

# 测试相机帧率
ffmpeg -f v4l2 -i /dev/video0 -f null -

四、控制板与通信接口接线

控制板是连接上位机与执行器的桥梁。常见方案包括:树莓派/ Jetson 作为上位机,STM32/ESP32 作为下位机,通过 USB 串口或 CAN 总线通信。接线时需注意电源隔离、共地处理与信号电平匹配。舵机供电应与控制板供电分离,避免大电流导致控制板复位。

通信接口选型建议:USB 适合短距离、低延迟设备;CAN 适合多节点、抗干扰场景;I2C 适合低速传感器;UART 适合点对点控制。若使用 LeRobot 的 FeetechMotorsBus 或 DynamixelMotorsBus,需确认波特率与协议版本一致。

LeRobot 实机硬件连接拓扑 上位机 Jetson / 树莓派 LeRobot 运行环境 控制板 STM32 / ESP32 实时控制周期 机械臂 舵机 / 伺服电机 夹爪 力控 / 电流反馈 相机 全局快门 / USB 传感器 力 / 触觉 / IMU 电源模块 舵机独立供电 USB / UART CAN / PWM PWM / 串口 USB I2C / USB 供电 接线要点: ① 舵机电源与逻辑电源分离;② 所有设备共地;③ 相机避免共用 USB 控制器;④ CAN 总线两端加 120Ω 终端电阻。

五、案例场景:桌面抓取平台搭建

以桌面抓取任务为例,典型配置为:6 自由度机械臂 + 平行夹爪 + 主视角相机 + 腕部相机 + 力传感器 + STM32 控制板 + Jetson 上位机。接线顺序建议:先固定机械臂与相机,再连接控制板与电源,最后接入传感器并逐一测试。测试时先用 LeRobot 的 teleoperate 脚本验证遥操作,再运行 record 采集数据。

# 示例:LeRobot 遥操作与数据采集
python -m lerobot.teleoperate \
  --robot.type=so100 \
  --robot.port=/dev/ttyUSB0 \
  --teleop.type=so100_leader \
  --teleop.port=/dev/ttyUSB1

python -m lerobot.record \
  --robot.type=so100 \
  --robot.port=/dev/ttyUSB0 \
  --dataset.repo_id=user/pick_place \
  --dataset.num_episodes=50

六、误区与复盘

常见误区:① 只关注相机分辨率,忽略帧率与曝光时间;② 舵机与控制器共用电源,导致复位;③ 多路 USB 相机未分配带宽,采集时掉帧;④ 忽略时间戳同步,训练时动作与观测错位。

复盘时建议检查:所有设备是否共地、通信波特率是否一致、控制周期是否稳定、相机时间戳是否对齐。若发现策略在实机上表现远差于仿真,优先排查硬件链路中的延迟与噪声,而不是直接调整算法超参数。

建议在正式采集前,用示波器或逻辑分析仪检查控制信号时序,并记录各设备的时间戳偏差。稳定的硬件链路是闭环迭代成功的前提。