Koch v1.1 低成本主从机械臂:复刻与模仿学习全流程
📌 本分册目标
前三个项目(SmallRobotArm / AR4 / Dummy)解决的是「怎么造出一台机械臂」,Koch v1.1 解决的是另一件事:怎么让机械臂学会一个动作。它的做法是用两条结构一致的 6 自由度臂——你握着主臂(Leader)的手把拖动,从臂(Follower)实时复现——把「演示」直接变成可训练的数据。
之所以值得从它入门具身智能:便宜(单臂约 200 美元、主从一对约 460 美元,国内约 ¥1696 + ¥2251)、简单(结构件全 3D 打印,无逆运动学、无复杂总线)、生态好(Hugging Face LeRobot 官方支持,标定脚本、数据采集、ACT 训练与回放都是现成的)。
本分册按 选型 → 打印 → 装配 → 配置 → 标定 → 示教 → 训练 七步走。最想让你记住的一句话是:零位标定的精度,决定了后面所有工作的上限——标定不准,再多的演示数据也训不出能用的策略。
🧩 第一步:搞懂「主从同构」为什么能省事
两条臂的关节构型与连杆长度完全一致。这意味着主臂每个关节的当前角度,可以直接作为从臂的目标角度下发——不需要解逆运动学,也不需要坐标系标定。你拖动的是「关节角」本身,而不是末端坐标。
| 角色 | 作用与手感要求 |
|---|---|
| Leader 主臂 | 给你手握拖动。要求阻力小、能被轻松拖起来,所以用扭矩最小的一档舵机(XL330-M077-T)。 |
| Follower 从臂 | 负责干活、扛负载。前三个关节要撑起整条臂自重,所以换成高扭矩的 XL430-W250-T;腕部与夹爪负载小,用 XL330-M288-T。 |
这也是它比「单臂 + 编程」方案更好用的原因:示教过程天然带上了人类的力度与节奏,而这恰恰是轨迹规划最难写出来的部分。
🧾 第二步:硬件清单逐项拆解
清单以 v1.1 改进版为准。买之前请务必对着仓库 README 的两张表(Leader / Follower 各一张,含件号、数量、单价)核对一遍——官方 README 末尾还附了几条「避免多买」的说明。
| 部件 | 说明 |
|---|---|
| XL330-M077-T ×6 | 主臂专用。扭矩最小、最好拖动;不要为了「更耐用」换成大扭矩型号,否则手感会硬到拖不动。 |
| XL430-W250-T ×2 | 从臂的前两个关节(承力最大处)。 |
| XL330-M288-T ×4 | 从臂的腕部与夹爪。同一「XL330」前缀下 -M077 与 -M288 的减速比与扭矩不同,混用会导致主从手感与出力都不对。 |
| 支架 / 惰轮组件 | XL330 舵机支架与惰轮(FPX330-H101)、XL430 惰轮组件(HN11-I101)。注意 README 脚注:4 件套支架只用得上 3 个惰轮。 |
| 总线舵机驱动板 ×2 | 主从各一块,通过菊花链串联各自总线上所有舵机,再用 USB-C 接电脑。 |
| 电源 | 主臂 5V、从臂 12V(另配降压模块)。主臂必须 5V——驱动板支持 9~12.6V,但 12V 下 XL330-M077 会变得很硬、拖不动。 |
预算参考(含税/运费前的裸价):美国约 $199(主)+ $278(从);中国约 ¥1696(主)+ ¥2251(从);欧洲约 305€(主)+ 368€(从)。
🖨️ 第三步:打印件清单与参数
结构件全部 3D 打印,两臂各一套,每个零件打印 1 个(不是按「对」打印)。
| 部位 | 零件 |
|---|---|
| Leader(8 件) | Base、Shoulder_To_Elbow、Elbow_To_Wrist、Elbow_To_Wrist_Extension、Gripper_Handle、Gripper_Trigger、Platform(可选)、Robotis_FPX330_S101(可打印替代购买件) |
| Follower(7 件) | Base、Shoulder_Rotation、Shoulder_To_Elbow、Elbow_To_Wrist、Elbow_To_Wrist_Extension、Gripper_Static_Part、Gripper_Moving_Part |
- 打印参数:层高 ≥0.2mm、喷嘴 ≤0.4mm、填充约 30%(作者实测 37%);材料 PLA+ / PETG / ABS 均可。
- 机型参考:Prusa Mini+ / Bambu P1 / Ender3 都能打;备固体胶防翘边、备腻子刀铲件。
- 打印后先做配合检查:拿舵机试插打印件,过紧的孔位先用 1.5mm 钻头或螺丝轻扩。过紧比过松更常见,别硬敲舵机。v1.1 相对原版专门修过螺丝干涉与孔径,若仍装不进,先回去校准打印机再重打。
🔧 第四步:装配顺序与接线自查
1000000)。配完扫一遍总线,确认六颗全在线。🎯 第五步:零位标定(本流程最关键的一步)
把两臂摆成同一姿态(各关节机械零点对齐),记录每颗舵机的当前位置作为零点偏置(offset)。LeRobot 的 Koch 配置里有现成的标定脚本。
- 标定不准的典型症状:遥操作时从臂与主臂差一个角度;或者动作越跑越偏、末端逐渐走样。
- 标定完立刻验证:纯遥操作拖一遍主臂,从臂应几乎同步、无明显延迟感。手感异常就先回去查标定,别急着录数据。
- 标定要做两次:装配完成后一次;跑一段时间后(螺丝可能松动)再复核一次。
🎥 第六步:拖动示教与数据采集
🧠 第七步:训练 ACT 策略与回放评估
ACT(Action Chunking with Transformers)的核心思想是一次预测一整段动作块,而不是逐步预测单步动作。这一步把有效决策时域拉长,显著缓解模仿学习里「错一步、后面越来越偏」的误差累积问题。
- 输入:摄像头图像 + 关节状态;输出:一段动作序列(chunk)。
- 训练:LeRobot 里直接跑 ACT 训练脚本,消费级显卡、几百条演示通常几小时内收敛。先看 loss 曲线是否正常下降,再上真机评估成功率。
- 评估:先固定初始位置跑通,再随机化物体位置。每个配置至少跑多次,别用一次成功就下结论。
- 失败归因:先看是「没看清」(机位 / 光照 / 标定问题),再看是「动作不合」(演示覆盖不足)。每次只改一个变量,否则无法判断是谁在起作用。
🚧 避坑要点
- 主臂必须 5V:XL330-M077-T 在 12V 下手感发硬、拖不动;驱动板本身支持 9~12.6V,5V 不会损坏它。
- 主从舵机别混用型号:-M077 与 -M288 是不同扭矩档位,混用会同时破坏主臂手感与从臂出力。
- 波特率必须整条总线一致:不一致的典型现象是「部分舵机没反应」,很难一眼看出来。
- 零位标定别偷懒:这是整个方案里唯一需要「工匠式耐心」的步骤,也是最影响最终成功率的一步。
- 打印件过紧先修孔,别硬敲:硬敲会缩颈损坏舵机齿轮箱,一个舵机的钱够重打十次。
- 摄像头与关节数据时间戳要对齐:频率与时间基准不一致,策略会学得很别扭。
- 版权提醒:原版 MIT 许可,可自由修改与商用;再分发时保留原作者署名与许可声明。
🔗 官方资料直达
- low_cost_robot · 原版仓库(Alexander Koch)MIT 许可;打印件、电气文件与 Python 控制代码
- Koch v1.1 · 改进版仓库(jess-moss)完整 BOM(分主臂 / 从臂两张表)、STL 与接线图,修掉原版螺丝干涉与 DC 转换器
- 🎬 官方装配视频(SolidWorks 动画)从底座到夹爪逐步渲染,动手前先看两遍
- LeRobot 官方文档 · Koch 搭建与标定安装、串口与舵机 ID 配置、标定脚本、遥操作验证
- LeRobot · 真机上手总流程从采集到训练再到回放的完整示例
- DYNAMIXEL Wizard 2.0扫描总线、批量改 ID / 波特率、手动试转与读数
❓ 常见问题
只买一条臂可以吗?
做遥操作示教至少需要主从各一条:没有主臂就没有「拖动示教」这个输入源。如果只想先熟悉硬件,可以先买从臂 + 用键盘 / 脚本控制,但那就退回到传统编程控制了,性价比不如直接上主从一对。
没有 3D 打印机怎么办?
两条路:一是找代打(两臂合计约 1kg 耗材,成本不高,但务必要求按推荐的层高与填充打印);二是看看社区是否有套件化的成品打印件出售。无论哪条路,舵机一定要自己买正品。
Koch 和 SO-ARM100 有什么关系?
两者同属 LeRobot 生态,思路一致(主从同构 + 低成本舵机),差别在舵机品牌与具体结构:Koch 走 Dynamixel 总线舵机路线,SO-ARM100 走更便宜的另一套舵机方案。数据集格式与策略脚本可以互相参考,训练代码基本通用。
能直接做双臂精细操作吗?
Koch 更适合单臂的抓取类任务。想做穿扎带、拧瓶盖这类双臂精细操作,建议看本站项目 06 ALOHA——那是为双臂协同专门设计的方案,代价是预算高一个数量级。稳妥路径是先用 Koch 把「采集 → 训练 → 评估」跑熟,再决定要不要投钱。
训练一定要独立显卡吗?
强烈建议有。ACT 训练在消费级独显上几小时量级,纯 CPU 会慢到难以迭代。真正稀缺的其实不是算力,而是反复采数据、改数据、再评估的那几轮耐心。
✅ 下一步
回到「做自己的机器人」栏目项目 05,那里有本项目的主从示教分册入口、LeRobot 官方文档与装配视频的直达卡片。建议顺序:先读官方文档把软件环境装好 → 打印件下单 → 按视频装配 → 标定 → 采 30 条演示 → 训第一个 ACT 模型。