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,需确认波特率与协议版本一致。
五、案例场景:桌面抓取平台搭建
以桌面抓取任务为例,典型配置为: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
六、误区与复盘
复盘时建议检查:所有设备是否共地、通信波特率是否一致、控制周期是否稳定、相机时间戳是否对齐。若发现策略在实机上表现远差于仿真,优先排查硬件链路中的延迟与噪声,而不是直接调整算法超参数。