拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

XLeRobot $660 低成本视觉机器人实操指南:YOLO + 逆运动学让机械臂看见并抓住目标

XLeRobot $660 低成本视觉机器人实操指南:YOLO + 逆运动学让机械臂看见并抓住目标

XLeRobot $660 低成本视觉机器人实操指南:YOLO + 逆运动学让机械臂看见并抓住目标

【免费下载链接】XLeRobotXLeRobot: Practical Dual-Arm Mobile Home Robot for $660项目地址: https://gitcode.com/GitHub_Trending/xl/XLeRobot

XLeRobot是一台约$660就能装好的低成本视觉机器人:它用消费级 USB 摄像头 + YOLO 目标检测 + 解析逆运动学,让两条机械臂在桌上找到物体、并伸手够过去。

一句话结论:它是什么,适合谁

把它理解成一台"装上眼睛"的家仆机器人:底盘是宜家 RÅSKOG 推车,手臂是开源的 SO-100/SO-101 舵机臂,摄像头甚至可以是十几美元的 USB 摄像头。整套方案搭在 LeRobot 开源生态上,部件都可以单独替换升级。

适合谁:

  • 实验室里要在真机上验证视觉伺服、强化学习或 VLA 算法的人
  • 想跑通"像素 → 坐标 → 关节角"完整链路的学习者
  • 班级或比赛团队,需要一套便宜、坏了能快速换件的双臂移动底盘
  • 想让机器人学会"找东西、抓东西"这类家用任务的创客

上手前提(最低配置):

  • 硬件:1 副 SO-101 机械臂(每条 6 个舵机)、1 个 USB 摄像头、12V 电源(支持 USB-C 快充的充电宝即可),零件合计~$660(不含 3D 打印、工具与运费)
  • 软件:会git clone和pip install,装好 LeRobot 框架;官方建议编程新手先花一天熟悉 Python 与终端操作
  • 可选:树莓派 5(+$79)让机器人脱离笔记本独立运行;RealSense D415 深度相机(+$272)进阶用

系统全景:它怎么看见、怎么抓住

整条链路分三层,数据单向流动,互不干扰。

感知层:USB 摄像头按默认640×480、30fps出画面,喂给 YOLO(示例脚本默认加载yolo11x.pt)做检测,输出是目标物体的检测框。

决策层:先算框中心相对画面中心的像素偏移,再用两个手写系数K_pan(弧度/像素)和K_y(米/像素)换算成机器人空间里的位移,得到末端目标坐标 (x, y);接着解析逆运动学(余弦定理的闭式解)把 (x, y) 换算成肩、肘两个关节角。

执行层:P 控制器(50Hz主循环,kp=0.5)每帧把关节目标发给舵机。整机共17 个舵机:12 个手臂 + 3 个底盘 + 2 个头部,都挂在 12V 总线上。

核心循环的伪代码:

while True: # 50Hz 主循环 frame = camera.read() # 1. 抓帧 box = yolo(frame) # 2. YOLO 检测目标 dx, dy = box.center - frame.center # 3. 像素偏移 target += map(dx, dy) # 4. 像素偏移 -> 末端坐标 j2, j3 = ik(target) # 5. 解析逆运动学 servo.write(p_ctrl(j2, j3)) # 6. P 控制下发关节角

图:社区玩家组装的 XLeRobot 双臂实机,正在跑键盘与视觉联合控制。

一个晚上上手:从克隆到抓住目标

第一步:把环境跑通

  • 做什么:克隆仓库,按官方文档安装 LeRobot,把仓库里的配置与示例拷进 lerobot 目录
  • 关键命令:
git clone https://gitcode.com/GitHub_Trending/xl/XLeRobot cd XLeRobot/software
  • 验证点:examples/目录下能看到 0 到 8 的编号脚本;ls /dev/ttyACM*能列出机械臂的串口

第二步:让相机"看见"目标

  • 做什么:跑 YOLO 跟踪示例,输入检测目标词(bottle、cup、mouse,默认 mouse),再选摄像头序号
  • 关键命令:
python examples/3_so100_yolo_ee_follow.py --robot.port /dev/ttyACM0
  • 验证点:弹出 "YOLO11 Live" 窗口,把目标物对着镜头挥动,画面里能实时出现检测框(缺权重时 ultralytics 会自动下载)

第三步:让机械臂"够到"目标

  • 做什么:同一个脚本默认开启视觉模式,检测到目标后,肩关节自动转向目标、末端持续逼近;键盘 w/s/e/d 可以同步手动修正方向
  • 验证点:手臂朝目标平滑运动,末端在目标前方小范围内停住,夹爪能在目标附近闭合

第四步:标定让它"准"

  • 做什么:启动时输入 y 重新标定 6 个舵机的零点;如果逼近时总差一点,手动微调脚本顶部的K_pan与K_y,匹配你的相机高度和拍摄距离
  • 验证点:目标放在画面正中央时,末端稳定停在目标前固定位置,不漂、不抖

图:社区组装单元的机械臂与夹爪细节,用于对照自己的走线检查接线。

背后的三个设计决策

1. 十几美元的 USB 摄像头 + YOLO,深度相机只做可选件

为什么:整条视觉链路只需要 2D 检测框偏移,用不到深度信息;官方 BOM 只要求两只 $13 的手持相机,RealSense D415 是 +$272 的升级项。换来了什么:视觉系统被压进百元以内,整机才可能$660起步。代价:没有深度,抓取距离只能靠手调的"像素转米"系数近似,相机高度或角度一变就要重新标定。

2. 闭式(解析)逆运动学,而不是数值迭代

为什么:SO101 的肩抬 + 肘屈本质上是一个两连杆平面问题,余弦定理直接可解。换来了什么:一次算出、结果确定、不担心迭代不收敛,笔记本上也能实时跑。代价:公式绑定这台臂的关节构型与杆长(l1=0.1159 m,l2=0.1350 m),换其他臂要重新推导。核心其实只有几行:

cos_theta2 = -(r**2 - l1**2 - l2**2) / (2 * l1 * l2) theta2 = math.pi - math.acos(cos_theta2) # 肘 beta = math.atan2(y, x) gamma = math.atan2(l2 * math.sin(theta2), l1 + l2 * math.cos(theta2)) theta1 = beta + gamma # 肩

3. 50Hz P 控制 + 视觉/键盘双通道并存

为什么:P 控制简单稳定;视觉模块只负责改目标值,键盘输入随时可以人工修正。换来了什么:视觉漂移时人立刻接管,首跑的撞机风险低。代价:纯 P 控制有稳态误差,关节零点要靠脚本顶部的JOINT_CALIBRATION表逐关节微调。

排障速查表

现象最可能原因修复
启动后连接无反应串口填错,或舵机未配置ls /dev/ttyACM*确认串口并传对--robot.port;按安装文档配置电机
标定后手臂姿态歪、零点不对舵机零点漂移启动时输入 y 重跑robot.calibrate();再微调 3_so100_yolo_ee_follow.py 顶部的JOINT_CALIBRATION
看得到目标,但伸手总差一点K_pan/K_y映射系数不匹配按你的相机高度与距离手调这两个系数
跟踪时末端抖动目标检测闪烁或 P 增益偏大调小kp;把检测类别收窄,减少误检
手臂回收到边界卡住目标点超出机械臂工作空间IK 已内置 r_min/r_max 收缩保护;检查传入的 x、y 是否合理(见 SO101Robot.py 的inverse_kinematics)

其中最常见的是串口填错。先确认端口再启动:

ls /dev/ttyACM* python examples/3_so100_yolo_ee_follow.py --robot.port /dev/ttyACM1

性能与真实体验

仓库没有公布延迟、成功率之类的基准数据,所以下表只列文档和脚本里能确认的数值:

项目数值出处 / 测试条件
控制循环频率50Hz示例脚本内control_freq=50
相机默认参数640×480 @ 30fpsSO101Robot.py 的 OpenCV 相机配置
检测模型yolo11x.pt3_so100_yolo_ee_follow.py 默认加载
手臂杆长l1=0.1159 m / l2=0.1350 m逆运动学默认参数
整机装配时间小于 4 小时官方 README 口径

现象与改进建议:

  • 官方文档明确提示"部分示例需要额外标定才能达到最佳表现",建议先跑键盘末端控制示例,再上视觉
  • 检测与 50Hz 控制共用一个进程,低配笔记本上可减少检测类别、换更轻的 YOLO 模型
  • 官方建议:先把单臂玩熟,再上第二条手臂和底盘

图:社区玩家把 XLeRobot 放进 Gazebo 仿真,先在虚拟世界里验证同一套控制逻辑。

下一步:三个可以接着做的方向

  • 分割与双臂协作:仓库里有分割版示例3_so100_yolo_ee_control_seg.py和双臂键盘示例2_dual_so100_keyboard_ee_control.py。可以先练"抓最近的那个",再练两条手臂的分工协作。
  • 先仿真后真机:simulation/MuJoCo与simulation/Maniskill目录里 URDF、网格和演示脚本齐备。把同一套控制逻辑先在虚拟场景里跑通,调试不怕烧舵机。
  • 远程与 VR 操控:web_control提供浏览器远程操控(视频流 + 控制控制台),XLeVR支持头显驱动手臂。YOLO 抓取跑通之后,都可以直接接上体验。

一句话总评:XLeRobot 证明低成本视觉机器人不需要深度相机和高算力板,"YOLO + 解析逆运动学 + P 控制"就能让 $660 的硬件看见并抓住目标。下一步就去 software/examples/ 目录跑1_so100_keyboard_ee_control.py,先让机械臂听话,再让它长眼睛。

【免费下载链接】XLeRobotXLeRobot: Practical Dual-Arm Mobile Home Robot for $660项目地址: https://gitcode.com/GitHub_Trending/xl/XLeRobot

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

返回列表