1. 先把“年终奖”翻译成技术账
1.1 对外叫发布会,对内叫验收单
每年到了年底,机器人圈的“年终奖”总会被翻出来说一轮。外界看到的优必选,可能是展会上的Walker又走了几步,也可能是某条产线上的一段演示视频。但如果你真的在这个行业里干过工程,就会明白那些光鲜镜头和真正算数的“年终奖”根本不是一回事。
我认识不少做人形机器人的朋友,大家年底坐在一起复盘时,嘴里聊的从来不是“我们发布了什么”,而是“这一周产线上连续运行了多少小时”“平均多久报一次警”“客户签没签下一步的合同”。对工程师来说,年终奖不是一个红包,而是一张验收单。机器人从演示环境走进工厂车间,那才算把这一年的技术债还了一部分。
优必选在国内人形机器人公司里,属于被市场重点关注的那一梯队。这家公司从消费级机器人起步,慢慢做到了双足人形,近两年又往工业场景里扎。这个路径很有意思,因为它把“会走路”和“能干活”这两件难度完全不同的事情捆在了一起,而绝大多数人形机器人公司,恰恰会卡在第二件事上。
所以这篇文章我不想做发布会复读,也不做投资分析,我想从一个跟过项目的工程师视角,把“优必选的年终奖”拆开来看:技术账、落地账、以及最后团队真正拿到手的那点成就感,到底是什么。
1.2 为什么这一年的年终盘点格外热闹
2024年的人形机器人赛道,和往年有个很明显的变化:大模型开始往具身智能里渗透了。过去我们说人形机器人,重点在运控,在步态,在能不能站稳;今年大家都在聊另一层东西,怎么让机器人听懂指令、看懂环境、自己拆解任务。
这种变化的底层逻辑不难理解。语言模型和视觉模型让“任务理解”这件事变得便宜了,但把理解变成物理动作,仍然是人形机器人的硬骨头。这就像你给一个新人发了一本厚厚的操作手册,他读得懂,但真正上手干活的熟练度,还得靠大量练习。优必选这样的整机厂商,优势就在于能拿到真实物理环境的练习数据,而不是只在PPT里练。
另外一个推力来自供应链。无框力矩电机、谐波减速器、六维力传感器这几类核心部件,最近几年成本降得比较快,国产替代的选项也多了。硬件不像前几年那样想买都买不到,所以大家比拼的重心,自然从“能不能造出来”转移到了“能不能稳定跑起来”。
再加上制造业确实存在用工缺口,产线搬运、上下料、质量抽检这类重复性高、环境相对固定的岗位,最容易被拿出来当人形机器人的第一个落脚点。年底一盘点,你会发现但凡稍微有点量产苗头的公司,都在讲汽车工厂的故事,优必选也是这条路径上的主力选手之一。
1.3 一份工程人眼里的年度成绩单
外行看热闹,内行看验收单。下面这张表是我自己做项目复盘时习惯用的对照方式,放在优必选这个案例上也成立。
| 行业关注点 | 工程真正看的指标 |
|---|---|
| 发布会站台次数 | 连续无故障运行小时数 |
| 融资信息与估值 | 关节平均无故障时间和散热表现 |
| 自由度数 | 每个自由度的控制带宽和带载能力 |
| 大模型演示效果 | 任务成功率与泛化边界 |
| 单次demo的惊艳程度 | 同一动作可重复执行的精度 |
拿这张表去看任何一家做人形机器人的公司,都会发现同一件事:真正值钱的年终奖,是那些不常出现在新闻稿里的数字。
2. 拆开一台人形机器人,钱和时间都花在哪
2.1 硬件:自由度不白给,每个关节都在烧钱
人形机器人看着有手有脚,好像和“人的形态”对上了就行,但真正做起来,硬件层面的坑一个比一个深。一条腿从髋到脚踝,至少要6个自由度,两条腿就是12个;再加腰部的3个,两条胳膊的14个,灵巧手如果做全又能加上十几个。自由度越多,控制难度和成本并不是线性增长,而是指数级往上翻。
我一个做整机的朋友说过一句大实话:“人形机器人最大的成本,就是让它看起来像人的那个部分。”关节电机要轻、要扭矩大、要响应快,谐波减速器要背隙小、寿命长,编码器要分辨率高、抗冲击,随便一样拿出来都是精密制造的钱。
这里列一个硬件模块的对照表,方便新人理解每个部件在整机里的价值。
| 核心模块 | 关键指标 | 常见问题 |
|---|---|---|
| 无框力矩电机 | 扭矩密度、齿槽转矩 | 齿槽力矩大会导致低速抖动 |
| 谐波减速器 | 传动比、背隙、寿命 | 背隙影响高精度位置跟踪 |
| 绝对值编码器 | 分辨率、抗冲击能力 | 零点漂移会导致左右不对称 |
| 六维力传感器 | 精度、温漂 | 温度变化后力读数失真 |
| 实时控制系统 | 控制频率、延迟 | 延迟超过几毫秒,全身控制就容易发散 |
硬件选型这件事,最忌讳只看单个零件参数。电机扭矩再大,减速器瓶颈卡在那里也是白搭;编码器分辨率再高,关节装配公差控制不好,角度读出来也会偏。所以优必选这类整机厂最大的门槛,其实不是某一个部件多牛,而是把这么多部件装在一起还能稳定协调。
2.2 软件:运控是地基,大模型是包装
很多人一提到人形机器人,脑子里第一个画面就是“机器人听懂了人的话”,但那一层只是最上面的交互。往下面看,软件栈是分层的。
最底层是状态估计,靠IMU、关节编码器、力传感器和视觉,综合算出机器人当前到底处于什么姿态。这一层的误差会直接传导到上层,如果状态估计偏了,后面全白算。很多真机上“走着走着莫名其妙倒下去”的问题,根源往往不是控制算法不行,而是状态估算在某个瞬间飞掉了。
中间层是运动规划和控制。经典一点的做法是走ZMP轨迹加全身PID整定,激进一点的做法是上MPC,也就是模型预测控制,在滚动时域里实时优化未来一小段时间的动作。MPC效果好,但对计算资源和模型精度要求都很高。多数团队会走到MPC这条路,然后被真实模型的误差折磨得够呛。
最上层才是大模型交互。语言模型理解任务,视觉模型找目标,然后把这些高层意图翻译成可执行的技能序列。这一层现在确实发展很快,但它有个前提:底层运控得先把“稳”字撑住。否则会出现一个很尴尬的场面,机器人口头上答应你“好的,我这就去拿杯子”,然后在离杯子半米的地方摔了个五体投地。
我的经验里有一条值得写进项目复盘:任何“智能”炫技,都不要在产品不稳定时上线。先让机器人站得住、走得直、抓得稳,再谈大模型。不然你看到的只会是一个摔得很有礼貌的机器人。
2.3 从账本看行业瓶颈
整个行业现在卡在哪里?不是算法概念不够新,也不是硬件参数不够高,而是“可靠性与持久性”完全跟不上实验室的想象力。单次demo运行20秒,成功率99%,很多团队都能做;但要在产线上连续跑8小时,故障率低于千分之一,这中间差的不是一点半点。
从成本结构看,硬件仍然占大块头,尤其是关节模组和传感器。软件本身以研发人力成本为主,但研发周期长,一个运控算法想在真机上验证,前期仿真加后期实测,折腾几个月很正常。时间也是一种成本,而且是更容易被低估的那种。
散热也是被低估的大问题。人形机器人腿部关节长时间高负荷输出,电机和驱动器产生的热量如果不及时散掉,轻则性能下降,重则触发过温保护直接停机。很多做底层控制的人都会发现,算法在仿真里怎么跑都行,一到真机连跑半小时,热保护就把你打断了。这个问题没有捷径,只能通过整机结构设计、材料选择和功耗策略一起解决。
所以行业现在的瓶颈不是单点技术,而是把一个实验室原型变成一台能连续稳定工作的产品,这个工程化能力才是各家年终盘点时真正的胜负手。
3. 从一张验收单看落地:工业场景到底要什么
3.1 为什么先选汽车工厂
如果你问十个做机器人的公司,未来落地场景做哪,九个会提到汽车工厂。原因很直接:汽车工厂环境相对结构化,地面平整,光线可控,工位固定,路径基本不变,这对现阶段的人形机器人来说是最友好的温床。
优必选以及不少同行把实训场放在汽车工厂,是因为这里既有明确的重复性岗位,又有成熟的自动化基础设施。机器人进厂之后,可以和现有的MES、PLC系统对接,任务下发、状态上报都有现成的标准接口。和完全非结构的家庭环境相比,工厂里每少一个不确定性,机器人的成功率就能往上拉一大截。
但工厂也不是慈善场。客户愿意给你一个工位试点,前提是你真能顶上一个岗位上的人。哪怕一开始效率低一点,至少不能频繁撂挑子。所以汽车工厂选的往往是搬运、上下料、检测辅助这类环节,这些岗位看起来简单,但缺人情况最严重,也最适合机器人先以“辅助工”的身份入场。
3.2 可靠性比“聪明”重要
在工业现场,客户最关心三件事:安全、节拍、稼动率。安全不用多说,人形机器人身边是要站人的,碰撞检测、急停逻辑、力矩限制这些环节一个都不能省。节拍是指机器人每个动作能不能压着产线的节奏来,不是越快越好,而是稳定地不快不慢。稼动率更直白,设备能不能持续运转,别三天两头报警停机。
这时候,前面聊的“连续运行小时数”“关节寿命”“热管理”这些指标就全都派上用场了。一台机器人在实验室里表演抓取,旁边围一圈人,失败了可以重来,没人会催你。但在产线上,机器人需要对同一批次零件做重复动作,放到目标位置的精度必须达到毫米级,而且每一下都要一样。
我见过很多人形机器人项目死在从POC到爬产这一步,原因不是demo不惊艳,而是客户看完demo之后问了一句:“能连续跑多久?出故障了你们多久能到现场?”这个问题如果答不上来,前面再漂亮的动作演示都白搭。
3.3 从POC到爬产的“最后一公里”
从试点到真正进产线,中间隔着一条巨大的鸿沟。交付的不只是机器人本体,还有工装夹具、通讯协议、安全围栏、运维SOP、备件清单、远程诊断工具以及现场服务人员。
这里有一个容易忽略的点:客户并不想替你研发,也不想成为你的试验场。他们希望的是你拿出一套接近成品的方案,让他们看到明确的生产效益。所以最终打动客户的,不是“我们的机器人很聪明”,而是“这个工位的人力成本可以降低这么多,投资回报周期是这么久”。
项目推进过程中,变更管理也很关键。客户说今天要换一个物料规格,明天要调整一下工位尺寸,这些看起来很小的变化,对机器人来说可能就是整套动作和感知参数的重来。所以项目制的人形机器人落地,本质上是开放性问题,谁的项目管理能力强,谁才敢说自己真正完成了交付。
4. 实操复盘:一条人形机器人调试链路的完整记录
4.1 仿真环境搭建:先在电脑里摔够
真机调试的成本太高了,摔一次就可能坏一个关节,所以成熟的流程一定是先在仿真里把坑踩掉大半。我这里以最常见的组合为例:MuJoCo做物理仿真,ROS 2做通信,再加一块自己的运控代码框架。
pip install mujoco python -c "import mujoco; print(mujoco.__version__)"装好之后,第一步不是急着写控制器,而是先检查模型文件。导入机器人URDF或者MJCF模型时,一定要确认几件事:碰撞网格是否简化过、关节限位是否和真机一致、惯性参数是不是供应商给的实测值。这些细节直接决定仿真结果有没有参考价值。
仿真环境里摔几百次不心疼,这是最大的优势。你会在里面发现很多奇怪的失稳模式,比如起步瞬间姿态偏移、上下坡时质心没有跟上、大力摆动后底座漂移,等等。每发现一个,就在调试记录里记一条,然后去调控制参数。等仿真里成功率做到95%以上,再开始考虑碰真机。
4.2 步态参数:ZMP、MPC和PID这三套东西怎么配合
人形机器人的步态控制,经常被简化成“别摔倒”,但工程上要拆的东西非常多。我用三个拼图来理解这件事:ZMP负责判断稳不稳,MPC负责规划怎么走,底层PID负责把规划执行出来。
ZMP是零力矩点的缩写,可以把它理解成地面反作用力的作用点。这个点必须落在双脚形成的支撑多边形内部,机器人才能保持稳定。所以调步态时,最直观的调整就是看ZMP有没有超出支撑范围,超了就意味着距离失控已经不远了。
MPC是在短时间内反复优化动作序列,每一步都会推演未来一小段时间,根据当前状态不断修正。MPC效果上限高,但计算量大,而且对模型精度敏感。真机调试时,我通常会把MPC预测时域设得短一点,先保证实时性,再慢慢加长。
底层PID更像是执行力。MPC说下一步腿要抬到多高、踩到哪,PID负责让关节电机老老实实跟上去。如果跟不准,上位规划再优秀也体现不出来。
下面给一个简化的控制器相位切换示意,很多双足机器人的步态框架就是围绕这个核心逻辑展开的。
if phase == "single_support": swing_foot_traj = plan_swing_foot(step_length, clearance, phase_progress) zmp_ref = current_com_projected_2d() + offset elif phase == "double_support": zmp_ref = midpoint(left_foot, right_foot) controller_output = wbc_track(zmp_ref, swing_foot_traj, measured_state)真机调参时,我最常动的几个参数是:步频、步幅、质心高度和脚踝关节刚度。步频太低容易失去动平衡,太高则抬腿时间不够;质心高度直接影响稳定裕度,矮一点更稳但更费电;脚踝刚度是个需要反复试的值,太硬动作生硬容易顿挫,太软又控制不住姿态。
| 参数 | 调整方向 | 主要影响 |
|---|---|---|
| 步频 | 先低后高 | 稳定性与能耗 |
| 步幅 | 从小到大 | 速度与转弯能力 |
| 质心高度 | 保持适中 | 稳定裕度与关节负载 |
| 脚踝刚度 | 反复试 | 抗扰动能力与动作平滑度 |
4.3 Sim2Real:为什么仿真里一跑就跑偏
辛辛苦苦在仿真里调到99%成功率的步态,一上真机就变了一个机器人,这种情况我见过太多次了。核心原因不是代码搬错了,而是仿真和真机的“物理差异”没有被处理干净。
第一个差异是摩擦。仿真里地面摩擦系数设置得再贴近现实,也不可能完全复现产线地面的磨损状态。解决思路是做域随机化,也就是在仿真里把摩擦、质量、甚至关节阻尼都设成在一定范围内随机变化,让控制器学到的是一个“鲁棒策略”,而不是只适配某一组参数。
第二个差异是延迟。仿真里传感器数据是同步到位的,真机里IMU读数、关节编码器、力传感器来自不同线程,延迟天然不一致。控制器如果对这个延迟没有余量,一个迟到的读数就可能让估计状态跳一截,系统马上发散。我的习惯是在状态估计环节加低通滤波,同时把控制周期的影响显式地建模进状态方程里。
第三个差异是关节本身。减速器背隙、电机齿槽力矩、线缆拖拽产生的非线性阻尼,这些在仿真里很难精确建模。所以真机调试第一步一定是做系统辨识,把每个关节的惯量、阻尼、摩擦这些参数测一遍,再回填到仿真模型里。这一步不做,后面所有算法都是空中楼阁。
5. 常见问题与排查技巧实录
5.1 为什么机器人走几步就倒
这是双足机器人最经典的故障。排查顺序我一般是这样:先看状态估计算出来的姿态有没有突变,如果IMU数据出现跳变,优先怀疑减震没处理好;再看ZMP参考点有没有超出双脚支撑范围,超了就要调质心补偿;最后看脚踝关节的跟踪误差,如果命令角度和实际角度差很多,说明PID刚度不够,或者关节存在明显背隙。
先测数据再动手改代码,是我在项目里反复强调的原则。很多新人一看到机器人倒了,第一反应是去调PID参数,结果越调越乱。正确做法是先跑一轮回放数据,把倒之前500毫秒的状态、命令、力反馈全打出来,找到第一个偏离预期的点,那才是真正的故障起点。
5.2 仿真里能跑,真机却不行
这个问题有一个固定的解决路线:第一步检查模型参数,把真机实测的关节阻尼、摩擦系数、质量分布替换进去,重新跑仿真看是否复现真机异常;第二步缩小动作幅度,把步幅和质心高度都往保守方向调,排除控制策略过度依赖“完美模型”的可能;第三步加鲁棒性训练,在仿真里加入更多随机扰动,让策略适应比真机更恶劣的条件。
如果以上三步走完仍然不行,那就需要怀疑真机的装配问题、传感器一致性,或者接线松动带来的偶发异常。这些不是算法问题,却比算法问题更隐蔽,只能靠逐项硬件排查。
5.3 跑一会儿就过热停机
人形机器人连续运动时的发热问题,几乎每个团队都会遇到。高效解决方式不是一味加大散热器,而是先分析功耗都去哪了。通常两个大头:关节频繁加减速带来的峰值电流,以及电机持续堵转产生的大电流。
实际经验里,第一步是降低步频和摆动幅度,减少不必要的频繁启停;第二步是调整控制器的增益,如果PID参数过激进,电机会由于频繁修正而持续输出大电流;第三步才是结构层面加散热片、改进风道,或者换用更高导热系数的外壳材料。顺序调换的话,很容易辛辛苦苦改了结构,问题却依然存在。
5.4 团队协作与项目节奏
项目组最大的坑是“demo完成即项目成功”的心态。演示成功只是阶段性节点,后面的长时间运行测试,才是发现真问题的关键期。我们做测试时会把每一轮实验打上标签,记录仿真或真机参数版本、运行时长、失败原因。这样过了一个月再回来看,能很清楚知道那段时间的改进线是往上走的还是原地打转。
研发节奏上,我自己比较认可“仿真快速迭代、真机两周一次大版本”的节奏。仿真阶段可以一天改几十版参数,但真机测试成本高、时间窗口少,必须确保每一次真机测试都带着明确的问题和假设去验证。盲目上真机,只会浪费团队的时间和客户耐心。
而且一个容易被低估的事情是,项目里的每一份测试记录都是下一笔预算的敲门砖。客户见到你拿出的不是一句“我们很努力”,而是连续三个月的故障统计和改进曲线时,信任感是完全不同的。
最后再分享一点个人体会。做机器人项目的这些年,我最大的感受是:真正让人踏实的“年终奖”,不是在镜头前多走了两步,而是翻开整年跑测数据,看到故障间隔从半小时一次拉长到几十小时一次,看到那个天天摔跤的机器人,终于能连续干完一个班次的活。对于优必选,或者说对任何一家想在人形机器人赛道走到最后的企业来说,道理都是一样的:年底的聚光灯可以照亮发布会,但真正能支撑一个公司走过寒冬的,永远是那些写在一行行代码和测试记录里的进步。希望所有在这条路上赶路的人,今年也能拿到属于自己的那份“进度条式”年终奖。