1. 拆解Optimus之前,先搞清楚它到底想干什么
特斯拉Optimus第一次公开亮相的时候,很多人第一反应是“这不就是个穿紧身衣的舞者吗”。但如果你像我一样,从2015年开始折腾舵机、机械臂、四足机器人,一路踩坑踩过来,你会意识到:Optimus真正值得看的不是它能跳舞,而是它背后那套硬件设计思路——用造车的逻辑去造机器人。
这个思路的核心就一句话:把成本打下来,把可靠性拉上去,把量产可能性做出来。传统人形机器人,比如波士顿动力的Atlas,一台造价够买一套房,液压系统复杂到每次维护都像做外科手术。Optimus走的是另一条路——电驱动、模块化、大量复用汽车供应链的成熟部件。28个关节、空心杯电机、谐波减速器、行星滚柱丝杠,这些词听起来很硬核,但拆开看,每一个选择背后都有非常务实的工程考量。
这篇文章适合谁看?如果你是对人形机器人硬件架构好奇的工程师,或者正在做机械臂、外骨骼、仿生机器人相关项目,再或者你只是想知道“为什么特斯拉敢说要把Optimus做到两万美元以内”,那接下来的内容应该能给你一些实在的参考。我会从整体设计逻辑讲到具体关节拆解,再到空心杯电机的选型逻辑,最后聊一些实际做硬件时容易踩的坑。不堆术语,尽量说人话。
2. 整体硬件架构:28个关节是怎么分配的
2.1 关节数量背后的自由度逻辑
Optimus的28个关节不是随便定的。人形机器人要完成“像人一样活动”这个目标,自由度分配必须遵循一个基本原则:核心动作优先,冗余动作砍掉。
具体来看,这28个关节大致分布是这样的:
| 身体部位 | 关节数量 | 主要功能 |
|---|---|---|
| 肩部 | 6个(每侧3个) | 大臂抬放、旋转、小臂屈伸 |
| 肘部 | 2个 | 前臂旋转与弯曲 |
| 腕部 | 4个(每侧2个) | 手掌翻转与摆动 |
| 手指 | 6个(每侧3个,简化版) | 抓握与捏取 |
| 髋部 | 6个(每侧3个) | 大腿前后摆、侧摆、旋转 |
| 膝部 | 2个 | 小腿屈伸 |
| 踝部 | 2个 | 脚掌俯仰与侧倾 |
注意,这里说的是早期公开版本的简化配置。特斯拉后来展示的迭代版本在手指关节上做了调整,但整体架构逻辑没变——上肢追求灵活度,下肢追求承载与平衡。
为什么手指只给3个关节?因为人手有21个自由度,如果完全复刻,光一只手就要21个电机,成本和控制复杂度直接爆炸。Optimus选择的是“够用就好”:大拇指两个关节负责对掌,其余四指各一个关节负责弯曲。这样能完成抓杯子、拧瓶盖、提袋子这些日常动作,但弹钢琴就别想了。
2.2 为什么选电驱动而不是液压
这是很多人问过我的问题。液压系统的功率密度确实高,Atlas能后空翻靠的就是液压。但液压有三个致命问题:漏油、响应慢、维护贵。
漏油是液压系统的宿命,密封件老化、油温变化、管路振动,任何一个环节出问题就是地上一滩油。响应慢是因为液压油从泵到执行器需要时间,虽然很快,但跟电信号直接驱动电机比起来还是差一个量级。维护贵就更不用说了,液压油要定期换,管路要定期查,一套液压系统的维护成本能占到总使用成本的三成以上。
电驱动的好处是干净、响应快、控制精度高。特斯拉在Model 3上积累的电机控制经验可以直接迁移过来。而且电驱动系统可以做到每个关节独立控制,坏了哪个换哪个,不像液压系统一坏就是一整条回路。
当然电驱动也有短板——功率密度不如液压。同样输出扭矩,电机加减速器的体积和重量会比液压缸大。但特斯拉的解法是:用更好的电机和更紧凑的减速器来弥补。这就引出了下一个话题。
2.3 模块化设计:每个关节都是一个独立单元
Optimus的关节设计有一个非常明显的特征:高度模块化。每个关节基本上就是一个“电机+减速器+编码器+驱动器”的独立包。这样做的好处太多了。
首先是装配效率。传统机器人关节要把电机、减速器、传感器一个个装到骨架上,走线、调试、标定,一个关节搞半天。模块化之后,关节可以在产线上单独组装、单独测试,最后像拼乐高一样装到机器人身上。
其次是维修效率。哪个关节坏了,直接拆下来换新的,不需要把整条手臂拆开。这对于量产产品来说太重要了——你不可能让用户把机器人寄回工厂修三个月。
第三是迭代效率。特斯拉可以单独升级某个关节的电机或减速器,而不需要重新设计整条手臂。这种“小步快跑”的迭代方式,是互联网思维在硬件上的典型应用。
3. 关节核心部件拆解:从电机到减速器
3.1 空心杯电机:为什么是它
空心杯电机是Optimus关节里最值得说的部件之一。很多人第一次听到“空心杯”这个词会懵——杯子是空的?跟电机有什么关系?
简单说,空心杯电机是一种转子没有铁芯的直流电机。传统电机的转子是硅钢片叠成的铁芯,上面绕铜线。空心杯电机的转子就是一个空心的杯状线圈,没有铁芯。
这个结构带来几个关键好处:
- 无齿槽效应:传统电机因为铁芯的存在,转动时会有“一顿一顿”的感觉,这叫齿槽效应。空心杯电机没有铁芯,转动极其平滑,低速时也不会抖动。这对机器人关节来说太重要了——你总不希望机器人走路的时候手臂一抖一抖的吧。
- 响应极快:转子惯量小,加减速几乎无延迟。特斯拉展示Optimus手部动作的时候,那种流畅感很大程度上归功于空心杯电机的快速响应。
- 效率高:没有铁芯就没有铁损,能量转换效率比传统电机高出一截。对于靠电池供电的人形机器人来说,每一瓦时都很宝贵。
- 体积小:同样功率下,空心杯电机可以做得更扁更小,适合塞进手指、手腕这些空间极其有限的地方。
但空心杯电机也不是没有缺点。成本高是最大的问题。绕线工艺复杂,良率低,同样功率的空心杯电机价格可能是普通有刷电机的五到十倍。另外散热差,因为没有铁芯帮助导热,持续大扭矩输出时容易过热。
特斯拉的解法是:只在需要精细控制的地方用空心杯电机,比如手指、手腕。大关节比如髋部、膝部,用的是定制的大扭矩无刷电机配合行星减速器。这种“好钢用在刀刃上”的思路,值得每一个做硬件的人学习。
3.2 减速器选型:谐波还是行星
电机输出的是高转速低扭矩,关节需要的是低转速高扭矩,中间必须加减速器。Optimus用的减速器主要有两种:谐波减速器和行星减速器。
谐波减速器的原理我尽量说人话:它有一个柔轮(薄壁金属杯)、一个刚轮(内齿圈)、一个波发生器(椭圆凸轮)。波发生器转一圈,柔轮被撑开又收回来,齿就一齿一齿地啮合过去。因为柔轮齿数比刚轮少两个,所以波发生器转很多圈,输出轴才转一圈,从而实现大减速比。
谐波减速器的优点是减速比大、精度高、体积小、重量轻。缺点是柔轮容易疲劳损坏、成本高、不耐冲击。所以Optimus在肩部、肘部这些需要精密控制但负载不大的关节用了谐波减速器。
行星减速器就是大家比较熟悉的齿轮减速了,太阳轮带动行星轮,行星轮带动齿圈。优点是结构简单、承载能力强、耐冲击。缺点是减速比做不大、精度不如谐波。所以Optimus在髋部、膝部这些承重关节用了行星减速器。
这里有一个工程上的取舍:如果你要做一个关节,先问自己三个问题——需要多大减速比?需要多高精度?承受多大冲击?答案决定了你选谐波还是行星。我见过太多项目一上来就选谐波,结果成本超支、交期拖长,最后发现行星减速器完全够用。
3.3 编码器与力传感器:让机器人有“感觉”
电机和减速器决定了关节能不能动,编码器和力传感器决定了关节动得准不准、有没有“手感”。
Optimus每个关节至少有两个编码器:一个在电机端,测电机转了多少;一个在输出端,测关节实际转了多少。为什么要两个?因为减速器有背隙,电机转10度,关节可能只转了9.8度。双编码器可以精确计算出背隙,然后在控制算法里补偿掉。
力传感器方面,Optimus在手腕和脚踝处装了六维力传感器,可以同时测量三个方向的力和三个方向的力矩。这个数据用来做阻抗控制——简单说就是让机器人“知道”自己用了多大力。比如抓鸡蛋的时候,力传感器检测到力超过阈值就停止收紧,鸡蛋就不会碎。
这里有一个很多新手会忽略的点:力传感器的标定比安装更重要。我见过一个项目,六维力传感器装了半年,数据一直飘,最后发现是标定的时候没有做温度补偿。机器人运行一段时间后电机发热,传感器温漂导致零点偏移,力控直接失效。所以如果你要做力控,标定流程一定要包含温度循环测试。
4. 从硬件设计到实际装配:几个关键实操环节
4.1 关节装配的先后顺序
装配一个关节模块,顺序很重要。我自己的经验是:先装减速器,再装电机,最后装编码器和驱动器。
为什么?因为减速器最重、最难装,如果先把电机装上了,减速器对位的时候容易磕碰到电机线。而且减速器装好之后,可以用手转动输出轴检查是否顺畅,确认没问题再装电机。
装电机的时候要注意预紧力。电机轴和减速器输入端的连接通常用紧定螺钉或者夹紧环。预紧力太小会打滑,太大可能压坏轴承。我的做法是:先用小力矩拧紧,手动转一下看有没有打滑,再逐步加力。一般M3的紧定螺钉拧到0.6-0.8牛米就够了,具体看厂家规格书。
编码器的安装更讲究。磁编码器的磁铁和芯片之间的间隙必须严格控制,通常要求在0.5到1.5毫米之间。间隙太大会信号弱,太小可能摩擦。我一般用塞尺来保证间隙,装好之后用手转一圈,看示波器上的波形是否干净。
4.2 走线与接插件选择
机器人关节里的空间极其有限,走线是个大问题。Optimus的关节里用的是**柔性电路板(FPC)**而不是普通导线,因为FPC可以弯折、可以叠层、可以做得极薄。
如果你自己做项目,不一定非要用FPC,但有几个原则要遵守:
- 线束要固定:用扎带或者胶水把线束固定在关节壳体上,不要让线悬空。关节运动的时候线会跟着动,悬空的线容易疲劳断裂。
- 留够余量:线束长度要留出关节全范围运动所需的余量,但也不能太长,太长会堆积在关节里被夹住。
- 接插件要带锁扣:普通的杜邦线在振动环境下会松脱,一定要用带锁扣的接插件,比如JST的GH系列或者Molex的PicoBlade系列。
注意:接插件选型的时候一定要看额定电流和接触电阻。电机驱动线的电流可能达到几安培,普通信号接插件扛不住,会发热甚至烧毁。
4.3 散热设计:容易被忽略的隐形杀手
关节模块的散热经常被忽略,直到电机过热降频才发现问题。Optimus的关节壳体是铝合金的,本身就是一个散热器。电机和驱动器产生的热量通过导热垫传到壳体,再散到空气中。
自己做项目的时候,如果关节空间允许,尽量把电机和驱动器贴在金属壳体上,中间涂导热硅脂或者加导热垫。如果空间不允许,至少要在壳体上开散热孔,形成空气对流。
还有一个技巧:用温度传感器监控电机温度。很多电机驱动器自带温度检测,没有的话可以自己贴一个NTC热敏电阻。设定一个阈值,比如80度降功率,100度停机。这个保护逻辑一定要有,否则烧电机是分分钟的事。
5. 常见问题与排查技巧实录
5.1 关节抖动、异响、发热的排查思路
做机器人硬件,最常遇到的问题就是关节抖动、异响、发热。这三个问题往往互相关联,排查的时候要系统性地看。
| 现象 | 可能原因 | 排查方法 | 解决方案 |
|---|---|---|---|
| 低速抖动 | 编码器分辨率不够 | 看编码器线数,计算最小分辨角 | 换高分辨率编码器或加谐波减速器 |
| 高速异响 | 减速器齿轮磨损 | 拆开看齿面是否有划痕 | 换减速器,检查润滑脂 |
| 持续发热 | 电机过载或散热不良 | 测电流,摸壳体温度 | 降负载,加散热片,检查导热垫 |
| 位置漂移 | 编码器松动或温漂 | 打表看重复定位精度 | 重新标定,加温度补偿 |
| 力控失效 | 力传感器零点偏移 | 空载看输出是否为零 | 重新标定,做温度循环 |
这个表是我自己踩坑总结出来的,不一定全面,但覆盖了八成以上的常见问题。
5.2 空心杯电机的驱动要点
空心杯电机是有刷电机,驱动比无刷电机简单,但有几个坑要注意。
第一,不能直接用PWM调速。有刷电机的转速和电压成正比,PWM调压确实可以调速,但低频PWM会导致电机发热和噪音。建议PWM频率至少在20kHz以上,超出人耳听觉范围。
第二,必须加续流二极管。电机是感性负载,断电瞬间会产生反向电动势,不加续流二极管会打坏驱动MOS管。我见过不止一个项目因为省了这几个二极管而烧驱动板。
第三,电流采样电阻要选对。空心杯电机的堵转电流可能是额定电流的五到十倍,采样电阻的功率要留够余量。比如额定电流1A,堵转可能到8A,采样电阻用0.1欧姆的话,瞬时功率就是6.4瓦,普通0805封装扛不住,要用2512甚至更大。
5.3 通信总线的选择:CAN还是EtherCAT
Optimus的关节之间用的是CAN总线,不是EtherCAT。这个选择很有意思。
EtherCAT速度快、实时性好,但成本高、布线复杂,每个从站都要专用芯片。CAN总线速度慢一些,但成本低、抗干扰强、布线简单,一根双绞线串起来就行。
对于人形机器人来说,关节控制频率不需要太高,1kHz足够了。CAN总线在1Mbps速率下,传8字节数据,周期可以做到1ms以内,完全够用。而且CAN的差分信号抗干扰能力强,机器人身上电机多、干扰大,CAN比单端信号靠谱得多。
如果你自己做项目,CAN总线是性价比最高的选择。STM32、ESP32这些常用MCU都自带CAN控制器,加一个CAN收发器就能用。注意终端电阻要接,120欧姆,接在总线两端。
6. 从Optimus看人形机器人硬件的未来走向
拆完Optimus的硬件,我有一个很深的感受:人形机器人的硬件设计正在从“性能优先”转向“成本优先”。
Atlas那个时代,工程师想的是“怎么让机器人后空翻”,不惜代价用最好的液压系统、最精密的传感器。Optimus这个时代,工程师想的是“怎么让机器人便宜到普通人买得起”,所以用空心杯电机替代昂贵的无框力矩电机,用CAN总线替代EtherCAT,用模块化设计降低装配和维修成本。
这个转向对整个行业的影响是深远的。以前做人形机器人是实验室里的事,现在变成了供应链上的事。谁能把成本控制住,谁就能先量产。特斯拉的优势不在于它有多少黑科技,而在于它有一个年产能百万辆的汽车工厂,可以把电机、减速器、传感器的成本压到别人做不到的水平。
我自己在做项目的时候,也越来越多地考虑供应链成熟度而不是性能极限。一个零件性能再好,如果只有一家供应商、交期三个月、价格是同类产品的五倍,那它就不适合量产项目。相反,一个性能中上但到处都能买到、价格透明的零件,往往是更好的选择。
最后分享一个我在实际装配中总结的小技巧:每个关节模块装配完成后,先单独跑24小时老化测试。不要急着装到机器人身上。老化测试可以发现九成以上的早期失效问题——虚焊、接触不良、润滑不足、编码器松动。这些问题如果在整机上才发现,拆装成本会高十倍。我吃过这个亏,一个手腕关节的编码器磁铁没粘牢,整机装好之后跑了三天才出问题,拆下来重装花了整整一个下午。从那以后,每个关节模块我都单独老化,再也没出过类似的问题。