NEE's Blog

用不到1500美元造一台四足机器人:CARA 2.0 开发全纪录

May 06, 2026

本文翻译自 CARA 2.0 — Aaed Musa,原载于 Hacker News。

序言:从”绞盘驱动器小哥”到毕业设计

2024年5月31日,Aaed Musa 上传了一期名为《用绳索制作高精度减速器》的视频,展示了一种叫做 capstan drive(绞盘驱动器)的特殊减速机构。没想到这期视频直接爆了,他也因此被网友冠以”绞盘驱动器小哥”的称号。直到今天,这仍是他播放量最高的视频,每天还有大量邮件和私信询问绞盘驱动器的事情。

大约一年后,他创建了 CARA——一台使用绞盘驱动的四足机器人。又过了一年,CARA 2.0 诞生了。这个项目特别之处在于,它是 Aaed 的本科毕业设计(Senior Design Project)。考虑到他从高中起就痴迷于制造四足机器人,用自己最拿手的项目来结束大学生涯,再合适不过了。

他和团队的目标很明确:打造一台低成本(<$1000)、轻量(<20 lbs)且耐用的四足机器人,让爱好者和研究人员都能负担得起。

低成本动态执行器:机器人设计的第一块基石

执行器(Actuator)是机器人最基础也最核心的机电组件,同时也是成本和性能的主要决定因素。要在 $1000 以内造出一台四足机器人,从执行器入手是必然的选择。

好消息是,低成本动态执行器的蓝图已经在线上有大量文档了。Ben Katz 在开发 MIT Mini Cheetah 时开创了先河,他在论文《A Low Cost Modular Actuator for Dynamic Robots》中详细记录了设计思路。Katz 推广了 Quasi Direct Drive (QDD,准直驱) 执行器的概念——将高扭矩无刷电机(通常具有大气隙半径)、低减速比变速箱(通常低于 10:1)和 FOC(磁场定向控制)控制器结合在一起,实现位置、速度和扭矩控制。

QDD 的名字来源于低减速比能够保留直驱执行器的诸多优势:高效率、高透明度和可反向驱动性(backdriveability)。

QDD执行器组件

从左到右:高扭矩 BLDC 电机、9:1 行星齿轮箱、FOC 控制器

执行器硬件选型

CARA 1.0 的每个执行器成本约 $250,其中 BLDC 电机占 32%,FOC 控制器占 60%。要把成本压到 $50-$60,难度相当大。经过大量调研,团队找到了合适的方案:

CARA 1.0 方案(昂贵):

  • Eagle Power 8308 BLDC 电机:$80,340g,KV 90,实测堵转扭矩 1.67 Nm
  • ODrive S1 FOC 控制器:$150,支持 12-48V,持续电流 40A

CARA 2.0 方案(便宜):

  • TYI 5008 BLDC 电机:仅 $18!160g,KV 335,实测堵转扭矩 0.421 Nm
  • MKS XDrive Mini FOC 控制器:$41,支持 12-56V,持续电流 60A

TYI 5008 是一款极为便宜的中国产无刷电机,价格仅为 CARA 1.0 所用电机的 1/4。令人惊喜的是,它的质量还不错——使用了弧形磁铁和平衡胶。XDrive 控制器性价比更高,同样是 ODrive S1 的 1/4 价格,但额定电压和电流反而更高!

不过便宜也有便宜的代价,后面会讲到。

重新绕线:一场”关节炎速通”

TYI 电机最大的问题是 KV 值太高(即扭矩常数 Kt 太低,单位电流产生的扭矩小)。最简单的解决办法是使用高减速比齿轮箱,但 QDD 执行器必须用低减速比。

于是团队决定重新绕线(rewinding)来降低 KV 值。Aaed 在拆解电机后发现,原厂绕线留有大量空间。这些电机最初是为无人机设计的,低绕线密度意味着高 KV 值和高转速。

原厂绕线参数:

  • Delta(三角形)接线方式
  • 22 匝/槽
  • 单股 22 AWG 漆包线

目标是将 KV 从 335 降到 100。具体方案:

  1. 改用 Star(星形)接线——相同绕线下,星形接线的 KV 是三角形接线的 1/√3
  2. 使用单股 24 AWG 漆包线——太粗塞不下足够的匝数,太细需要多股并联同样占空间
  3. 通过公式计算目标匝数:

目标匝数 = (原厂KV / 目标KV) × (1/√3) × 原厂匝数 = (335/100) × 0.577 × 22 ≈ 39 匝/槽

实际取 40 匝/槽(便于均匀分布)。

重绕后的结果令人满意:

参数 原厂 重绕后
KV 335 90
重量 160g 160g
堵转扭矩 0.421 Nm 1.274 Nm

一个有趣的发现:重绕后的电机重量与原厂完全一样。这说明你可以在不改变铜量的情况下,彻底改变电机的特性。

个人感悟: 电机重绕是一个被低估的技能。对于做机器人硬件的朋友来说,理解电机绕线原理(星形 vs 三角形、匝数与 KV 的关系)可以帮助你用极低成本获得高性能的定制电机。这也是中国制造的电机特别适合 DIY 改造的原因——便宜、可修改空间大。

便宜控制器的问题排查

XDrive Mini 控制器虽然便宜又强大,但问题也一堆。Aaed 坦言:当你花 $150 买 ODrive S1 时,你不仅仅在买硬件,还在买 UI、文档和持续的技术支持。便宜的替代品?这些统统没有。

XDrive 本质上是 ODrive 3.6 的单轴克隆版,外形模仿 ODrive S1。核心问题是通信——UART 模式一切正常,但 CAN bus 不行。

对于高自由度机器人来说,UART 是不够用的。Teensy 4.1 MCU 只有 8 个 UART 端口,最多控制 8 个电机,而四足机器人需要 12 个。CAN bus 才是机器人领域首选的通信协议。

经过大量排查——更换循环频率、降低心跳和消息速率以减轻总线拥堵、尝试 ODrive 开源固件的各个版本——都没有解决通信不稳定的问题(电机有时运行一分钟就断连,有时能跑一小时)。

最终,Aaed 在网上找到了 Mohammad Marshid,他为 XDrive 创建了自定义固件,能够发送编码器反馈。Aaed 联系了他,Mohammad 还帮忙添加了电流反馈功能。问题终于解决——这些板子只能使用其原生固件才能正常工作

教训: 在机器人项目中,通信问题的排查往往是耗时最多的环节。选择硬件时,不仅要看参数和价格,还要考虑社区支持、文档质量和固件稳定性。

绞盘驱动器关节测试

电机和控制器的问题解决后,下一步是制造单个关节测试台。

驱动器设计类似之前的绞盘驱动器:一个小鼓轮通过张紧绳索带动大鼓轮旋转。参数如下:

  • 重量:470g (1 lb)
  • 减速比:9.6:1
  • 峰值扭矩:12 Nm
  • 运动范围(ROM):120°

关于绞盘驱动器的设计,Aaed 分享了一个重要心得:追求精确的减速比是徒劳的。他曾花了大量时间推导方程来精确计算鼓轮直径,但公式总是不能通用。正确的方法是:确定目标减速比,用数学估算鼓轮直径,然后通过实际测量计算实际减速比(Δ输出轴位置 / Δ电机轴位置)。

绳索使用了 Dyneema DM20(最低蠕变的绳索),具体是 1mm Mastrant-M 双编绳,抗拉强度 100 kg,工作载荷 30 kg。这次还增加了预拉伸步骤,帮助消除松弛,减少安装后的张紧调整量。

单关节总成本约 $80,略高于目标范围,但仍然相当实惠。

单腿设计

有了单个关节,接下来自然是设计一条完整的腿。

CARA 1.0 的经验告诉团队,同轴五连杆(coaxial 5-bar linkage) 设计是最理想的,因为相比标准四足腿部设计,每个连杆承受的载荷更小。而且大多数四足机器人不使用这种设计,让 CARA 独树一帜。同轴五连杆与绞盘驱动器堪称绝配——Aaed 认为这是用绞盘驱动器制造 3-DOF(三自由度)腿部最紧凑的方式。

设计优化方向:

  1. 减少镜像零件:CARA 1.0 用了大量镜像零件,组装时容易混淆。这次团队决定让所有腿完全相同。(后来证明这个决定带来了问题,后文详述)
  2. 减少螺丝数量:能用 2 个螺丝固定的地方就不用 4 个。螺丝增加成本、重量和组装时间
  3. 去掉冗余约束:过度约束(overconstraining)看似无害,实则不然。就像四条腿的桌子——其实只需三条腿就能完全约束,第四条腿反而可能在桌面不平整时导致晃动
  4. 使用更薄的轴承:腿部有很多径向约束的零件,轻量轴承对减重效果显著

单腿总重量:1.47 kg (3.24 lbs)

五连杆比例的学问

CARA 1.0 的上下连杆比是 1:2,当时只是凭感觉选的。这次团队用 MATLAB 仿真分析了理想比例,发现 1:1 的比例能提供最大的运动范围。但 1:1 看起来有点怪,最终选择了 2:3 的比例,兼顾运动范围和美观。

从 TPU 脚到壁球脚

CARA 2.0 腿部最大的性能改进是用壁球(squash ball)取代了 TPU 材质的脚垫。TPU 脚垫只是柔性塑料,缺乏弹性和抓地力。壁球则兼具弹性和抓地力,而且超级便宜。MIT Mini Cheetah 和 Stanley 等高性能四足机器人也使用了壁球。

壁球有四种硬度等级:蓝点(入门)、红点(进阶)、单黄点(比赛)、双黄点(职业)。团队选择了最硬、弹性最小的双黄点壁球。

由于壁球脚无法放在五连杆枢轴的中心(像 TPU 脚那样),需要重新推导逆运动学(IK)方程。关于学习推导 IK 方程,Aaed 的建议是:

看起来很难,其实不然。只是很繁琐,容易出错。我从没用过超过初中几何的知识来推导 IK 或 FK 方程。任何复杂的机器人结构都可以分解成一系列三角形。我只看过 James Bruton 关于 IK 的视频就学会了基本原理。

整机组装

机器人结构设计

基于 CARA 1.0 的经验,2.0 版本做了多项改进:

  1. 电子设备集中化:CARA 1.0 的电子设备分置前后两个舱,需要大量长线缆连接。2.0 版本改为顶部电子箱(e-box),大大简化了布线。e-box 还让电池能放置在机器人重心位置
  2. 瘦身:1.0 被网友吐槽像”哈巴狗”或”奶牛”(Aaed 表示他讨厌哈巴狗),将电子设备从中间移到顶部显著减小了宽度
  3. 3D 打印替代碳纤维管:CARA 1.0 的框架使用碳纤维管,成本很高。2.0 版本改用全 3D 打印结构

重量对比:

  • CARA 1.0:31.41 lbs (14.25 kg),尺寸 630 × 457 × 428 mm
  • CARA 2.0:18.2 lbs (8.26 kg),尺寸 521 × 353 × 425 mm

重量几乎减半!CARA 2.0 全部使用 PLA 材料,在 Bambu Lab A1 和 X1C 上打印。

电子系统

CARA 2.0 的电路原理图出奇地简单——所有电子元件都可以直接购买,在万用板上组装,不需要定制 PCB。

一个重要发现是 CAN bus 的正确接线方式:设备必须以总线方式连接(每个设备连接前后设备),两端各需要 120Ω 终端电阻(CAN H 和 CAN L 之间),总电阻 60Ω。

机器人领域的”幽灵问题”出了名的多,所以尽量减少潜在故障点至关重要。正确接线虽然看起来繁琐,但在关键时刻能帮你省去大量调试时间。

CARA 2.0 电子系统原理图

步态编程

机器人采用 trot(对角步态)——对角线上的两条腿同时迈步,始终保持至少两条腿着地以维持稳定。

步态序列分为四个阶段:

  1. Pre-loop:机器人收到行走指令后,先调整腿部位置准备进入循环
  2. Loop:持续运行的核心循环,直到收到停止指令
  3. Continuous loop:循环内的子序列,除非收到停止指令否则一直运行
  4. Post-loop:退出循环后完成当前步伐的收尾动作

步态轨迹使用摆线(cycloid)曲线——Aaed 在 CARA 1.0 上试验了多种轨迹后,发现摆线的步态最自然。

步态序列图

一个令人头疼的设计缺陷

初步行走测试中发现了一个奇怪的问题:机器人每次直线行走时都会向左偏转。CARA 1.0 从没出现过这个问题。

团队尝试了各种软件补偿方案(让两侧腿迈出不同步幅),但问题依旧。最终根因分析揭示了一个物理层面的缺陷:

还记得前面提到的”让所有腿完全相同”的设计决策吗?问题就在这里。当左右腿完全相同时,脚实际上并不是垂直朝下的——总是有一个微小的角度偏移。这导致左右两侧产生不对称的力,从而造成步态偏转。

想象一下你的左腿朝后而不是朝前,你大概也很难走直线。

修复方案:重新设计前后腿和左右腿,使其对称。值得注意的是,如果使用强化学习(Reinforcement Learning)来训练步态,理论上可以让机器人在不对称的腿部结构下学会走直线(迪士尼的 Olaf 机器人就是这么做的),但最好还是从设计上保证平衡。

转向优化

CARA 1.0 的转向速度慢得离谱。一位粉丝指出原因:转向时脚的步进方向是直接侧向,而不是 45° 角方向。正确的方法是——转向时机器人实际上是在一个圆上旋转,每只脚应该沿着圆的切线方向迈步。

动态稳定性改进

CARA 1.0 的动态稳定性方案有一个致命的逻辑缺陷:使用 IMU 测量倾斜角度,然后让机器人旋转一个等大反向的角度。问题在于,当机器人旋转后,IMU 测量变为 0°,机器人又回到原位,如此循环——实际上机器人根本没动。

正确的方法是让机器人移动重心,使其始终保持在支撑腿之间。就像人类走斜坡时会自然前倾以避免后仰一样。CARA 2.0 通过三角学计算确定重心偏移量,实现了有效的动态稳定性。

最终规格

参数 数值
总成本 $1,450
重量 18.2 lbs (8.26 kg)
尺寸(站立) 521 × 353 × 425 mm
行走速度 1.8 ft/s (0.55 m/s)
有效载荷 15 lbs (6.8 kg)
电池电压 24V
电池容量 3 Ah
续航时间 约 1 小时

总结

CARA 2.0 虽然没有完全达成 $1,000 的成本目标,但 $1,450 对于一台功能完整的四足机器人来说仍然非常出色。成本比 CARA 1.0 砍了一半,同时保留了动态功能并在多个方面有所提升。

Aaed 坦诚地指出了一些未完成的工作,最主要的是基于强化学习的步态训练——手动编写步态序列的时代已经过去,现在的趋势是在仿真中训练后部署到硬件上。不过他已经决定结束这个项目,转向新的挑战。

关于未来,Aaed 表示他几乎不会再使用绞盘驱动器了。为什么?因为绞盘驱动器虽然在很多方面表现出色,但组装友好性太差,需要极高的精度才能制造。这也解释了为什么绞盘驱动器没有在工业界广泛应用——”我已经做过了,体验过了,接下来的机器人将使用市售执行器。”

关键收获:

  • 低成本机器人不是梦——通过精心的选型和改造(如电机重绕),可以大幅降低成本
  • 硬件设计中的”对称性”比”一致性”更重要——有时候看似简化设计的决定(让所有零件相同)反而会引入问题
  • 通信协议的选择和调试在机器人项目中至关重要,不要低估
  • 绞盘驱动器是一个有趣的技术方向,但工业应用仍面临组装精度的挑战
  • 对于爱好者和研究者来说,$1,500 以下的四足机器人已经可以实现相当不错的动态性能
comments powered by Disqus