XLeRobot 上手指南:660 美元如何装出一台会"看"的双臂移动机器人
【免费下载链接】XLeRobotXLeRobot: Practical Dual-Arm Mobile Home Robot for $660项目地址: https://gitcode.com/GitHub_Trending/xl/XLeRobot
一台能自己跟踪并接近桌面上物体的双臂移动机器人,预算只要660 美元,总装配时间不到 4 小时——这就是 XLeRobot 给出的方案。它由 SO101 双臂、三轮麦克纳姆底盘和一个可转动的"头部"组成,接上摄像头后可以用 YOLO 视觉伺服完成物体跟踪,也支持键盘、Xbox、Switch Joy-Con 甚至 VR 远程操作。对想低成本体验具身智能的开发者、学生和教育者来说,这是一份"看得懂也能动手"的完整路线图。
为什么选它而不是更贵的方案
家用服务机器人通常有三条路:买封闭的成品(数万美元起步)、用学院派平台(Aloha 类双手机器人,成本高且工作空间配置复杂)、或自己拼一个(供电和结构往往是短板)。XLeRobot 的差异化在于把这三条路的短板都压到了最低:
- 成本结构透明:基础版约660 美元(用笔记本当主控、单个 RGB 头部摄像头),想加双目立体视觉 +30 美元,加树莓派独立运行 +79 美元,换 RealSense RGBD 相机 +220 美元。完整的物料清单(BOM)在 docs/en/source/hardware/getting_started/material.md 里逐项列到品牌链接。
- 站在成熟生态上:核心沿用 LeRobot 框架 + SO100/SO-101 机械臂,社区模型、数据集和部署工具可以直接复用;如果你有现成的 SO101 或 Lekiwi 底盘,只花约 250 美元就能升级成完整 XLeRobot,软件策略无需重写。
- 工程上"够用":17 个 STS3215 舵机(12 个手臂 + 3 个底盘 + 2 个头部)、宜家 RÅSKOG 推车作车身、便携储能电源供电。官方文档同时说清了边界:单臂负载 600~1000 克、臂展约 40 厘米、车体高度固定——不追求灵巧手和重载,只解决室内轻量操作。
从像素到关节角:视觉控制是怎么闭环的
很多项目的"视觉抓取"讲起来玄乎,XLeRobot 的实现其实是一条很短的链路,核心代码在 software/examples/3_so100_yolo_ee_follow.py,全程 50Hz 控制频率,逻辑分四步:
- 检测:YOLO(示例中用
yolo11x.pt)对头部摄像头每帧画面做目标检测,只认你指定的类别(默认mouse,可改成bottle,cup等); - 误差:取检测框中心与画面中心的像素偏差
dx / dy,这就是"目标偏离正中多少"; - 映射:像素偏差乘以两个手工调定的系数,转成肩关节转角增量和末端高度增量;
- 求解与下发:把目标末端坐标代入解析逆运动学求出肩/肘两个关节角,再用 P 控制器每帧朝目标推进一点,而不是瞬移。
映射和求解的关键代码不长,可以直接读:
results = model(frame) for box in results[0].boxes: cx, cy = 检测框中心 dx, dy = cx - w // 2, cy - h // 2 # 相对画面中心的像素偏差 target_positions['shoulder_pan'] += -K_pan * dx # 水平偏差 -> 肩关节转动 current_y += -K_y * dy # 垂直偏差 -> 末端高度 j2, j3 = inverse_kinematics(current_x, current_y) # 解析逆运动学逆运动学部分在 software/src/model/SO101Robot.py 的SO101Kinematics类里,是两段连杆(上臂 0.1159m、小臂 0.1350m)的解析解,带了两层"保护":目标点超出可达半径就等比缩到边界、cos值被钳制在 [-1,1] 防止反余弦报错,最后关节角还会限制在 URDF 允许范围内。这意味着即使你让目标"跑"出工作空间,机械臂也只是伸到最远,不会算出非法角度。
从零到跑起来:最短路径
前置假设:你会基本的 Ubuntu 终端操作。仓库对纯零基础同学的建议是先用至少一天熟悉 Python、git clone和pip install。
- 备料与打印:按 BOM 文档 采购,3D 打印件文件在 hardware/ 目录(STEP 与 STL 都有),官方口径两只 SO101 手臂装配加舵机配置约 67 分钟。
- 装软件:按 LeRobot 官方指引安装框架,然后把本仓库的
SO101Robot.py、xlerobot机器人类和示例脚本分别拷进 LeRobot 的model、robots、examples目录,具体方法见 docs/en/source/software/getting_started/install.md。 - 先跑单臂:官方明确建议先别碰整机——用 software/examples/ 里的
0_so100_keyboard_joint_control.py测关节、1_so100_keyboard_ee_control.py跑末端控制,确认单臂手感没问题再往下走。 - 整机遥操作:
4_xlerobot_teleop_keyboard.py一把键盘管双臂+底盘+头部,是验证系统完整性的最快方式。 - 开视觉:运行
3_so100_yolo_ee_follow.py,启动时会依次问你:是否重新校准、检测哪些物体、用哪个摄像头编号——之后机械臂就会开始跟踪目标,键盘仍可同步微调。
实际调试:三个高频问题与解法
现象一:目标明明在画面中心,臂还是小幅左右摆。原因是像素到关节的映射系数是"每台机器一个样"的经验值。示例代码默认K_pan = -0.006(弧度/像素)、K_y = 0.00004(米/像素),代码里也预留了死区:水平增量小于 0.1 度直接置零、垂直增量 ±0.001 米内不动作。建议先保持死区、再按实际偏差缓慢放大这两个系数,而不是一次调到位。
现象二:末端有规律性抖动。这多半是 P 控制器增益过高——示例里kp=0.5是保守值,如果你调高过请降回来;另外JOINT_CALIBRATION表里每个关节都有零位偏移和缩放系数(如shoulder_lift偏移 2°、缩放 0.97),换了一只手臂或重新装配后需要重新跑一次robot.calibrate()再更新这张表。
现象三:连接时报"need 9 motors, but 8 detected"。这是 遥操作文档 FAQ 里专门列的问题:USB 口接对但ttyACM0/ttyACM1端口名在代码里写反了,交换两个端口名即可;权限问题则先执行sudo chmod 666 /dev/ttyACM0(和 ACM1)。
进阶方向:遥操作、仿真与策略迁移
跑通视觉跟踪只是起点,仓库里真正厚的是这三条延伸线:
- 多方式遥操作:Xbox(
5_xlerobot_teleop_xbox.py)、Switch Joy-Con(7_xlerobot_teleop_joycon.py,全蓝牙零延迟)以及 XLeVR/ 目录下的 VR 遥操作——它自带 WebSocket 服务器和网页 UI,戴上头显即可抓握式控制,适合做遥操作数据采集。 - 仿真先行:simulation/ 提供 ManiSkill 与 MuJoCo 两套资产,ManiSkill 侧官方说法是"15 分钟上手",支持深度、分割等传感器和 RL 环境,先仿真调参再上真机是推荐路径;
software/src/robots/里的xlerobot_host.py/xlerobot_client.py则解决树莓派与主机间的网络通信。 - 策略训练:docs/en/source/software/index.md 收录了 ACT、SmolVLA、pi0.5 三套 VLA 教程和 RL sim2real 流程——因为软件层与 LeRobot 生态对齐,社区模型基本可以直接部署。
写在最后
XLeRobot 适合三类人:想低成本进入具身智能研发的独立开发者、需要便宜可靠教学平台的院校教师、以及想做室内服务机器人原型的团队。下一步最简单的动作,是先把单臂键盘控制跑通——它能在半小时内容错你 90% 的环境配置问题,之后再按"遥操作 → 视觉 → 仿真 → 策略"的顺序逐级解锁。
【免费下载链接】XLeRobotXLeRobot: Practical Dual-Arm Mobile Home Robot for $660项目地址: https://gitcode.com/GitHub_Trending/xl/XLeRobot
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考