人形机器人越做越像人,但有个问题一直被忽略:机器人的胳膊多长、腿多长、重心多高,到底是谁说了算?
很多时候,答案是"工程师拍脑袋",或者"照着上一代改改"。至于这台机器人将来要跟人一起抬箱子、会不会把人的腰累坏——那是控制算法该操心的事。
现在,意大利技术研究院(IIT)联合意大利国家工伤保险局(INAIL)给出了另一种答案:把"人类的腰"直接写进机器人的硬件优化目标里。
他们提出了一套叫做共享具身智能(shared embodied intelligence)的架构,并造出了一台真机——人形机器人ergoCub。名字里的"ergo"就是人体工程学(ergonomics),"Cub"则来自IIT自家的iCub。
![]()
近期,该研究成果已登上Nature旗下机器智能领域顶级期刊Nature Machine Intelligence。
![]()
01.
让机器人的"身材",从人类的肌肉骨骼里算出来
先说这个概念是怎么来的。
该研究的出发点其实很朴素:协作在自然界无处不在,狼群靠社会分工生存,人类乐团能奏出个体无法完成的声音,甚至跨物种也能协作——搜救犬的嗅觉配上人类的规划能力。这种能力被称为共享智能,核心是协调动作 + 相互感知。
另一条线是具身认知:智能不只在脑子里,也长在身体上。研究人员举了个很有意思的例子——啄牛鸟的喙,是为了精准清理宿主身上的寄生虫而演化出来的。为了协作,身体本身就会被改造。
把这两件事合起来,就是这项研究想干的:在设计机器人硬件的时候,就把"未来要跟它协作的那个人"考虑进去。
具体怎么做?研究团队搭了一套模块化架构,关键有两点。
第一,可微分的参数化浮动基座模型。机器人的每个连杆都被简化成球、圆柱、方块这类基本几何体,质量、惯量、质心全部写成"连杆长度"和"密度"的函数。这样一来,改变机器人的肢体尺寸,整机动力学会跟着自动变化,可以直接拿去做优化。
第二,把人也建成模型,而且和机器人用同一套结构。人体骨骼被建成34个关节的多刚体系统(每条手臂6个、每条腿9个、背部4个),肌肉群的作用被简化为关节力矩。更有意思的是人的"控制系统":中枢神经系统对应整机层面的轨迹规划与全身控制,外周神经系统对应关节级的局部控制和肌肉反射。
换句话说,人和机器人在这套架构里被写成了对称的两个智能体——都有轨迹规划层、轨迹调整层、轨迹控制层,都有传感器/感知系统,都有执行器/肌肉。这种对称性让人体模型可以被无缝塞进机器人的控制架构里。
最后,人、机器人、负载三者被写成一套耦合参数化动力学,接触力、内力互作用全都在里面。
![]()
02.
从iCub3长到1米5,身高体重都是优化出来的
有了模型,接下来是两轮优化。
![]()
第一轮优化硬件,变量是各个连杆的长度。
由于非线性优化对初值极其敏感,团队直接拿开源人形机器人iCub3当起点,保留其运动学结构、电子件和电机类型,只优化连杆几何,并对最大身高设了约束,保证造得出来。
优化目标有两个:
一是人机协作抬举时的人体工效,量化成人和机器人在多个静态抬举构型下的关节力矩之和;二是行走性能,通过抬高机器人质心来提升系统带宽和抗扰鲁棒性。三个任务项的权重分别是 W1=10⁵、W2=10¹⁰、W3=1。
结果如下图。红色是iCub3简化模型,蓝色是按0.8–1.2米负载高度范围优化的结果,绿色是按0.8–1.5米优化的结果。
![]()
看表里的数字:蓝色模型在所有高度上都降低了人的腰背负荷,在L5–S1(腰骶关节)这个抬举时最容易受伤的位置改善最明显。绿色模型进一步降低了几乎所有高度上的力矩(0.8米除外),而且独家解锁了1.5米高度的抬举任务。
于是绿色方案胜出。它给出的答案是:身高1.44米、体重70公斤、质心高0.70米、手臂0.39米、腿0.69米、躯干0.47米。
而最终造出来的 ergoCub 是:身高1.50米、体重56.7公斤、质心高0.72米、36个自由度。
为什么和优化结果对不上?论文写得很清楚:头更大是因为加装了一块柔性LCD屏幕做表情交互;体重轻了13公斤多,是因为优化时假设连杆密度均匀,而实际制造复用了iCub3的电子件和电机、用金属延长件加长肢体,再加上一轮制造端优化;腿和躯干各短了1厘米,则来自简化几何忽略了外壳、走线、装配细节带来的累计误差。
最终 ergoCub 比 iCub3 高了约25厘米,却只重了约4公斤。
顺带一提,这台机器人的外观还做了850人规模的接受度调研(来自工业和医疗领域),结果ergoCub的评价高于Baxter和R1,其简化面部表情也被一致偏好。
03.
真机实测:人类腰上的力矩,最多砍掉近一半
第二轮优化针对物理智能——硬件锁定为最优值,再去调控制架构里的增益、权重等参数。
协作实验是这样的:人和ergoCub一起搬运空箱、1公斤、2公斤三种负载,机器人跟随人的上下运动,同时实时监测人的工效状态。
人体模型先离线初始化(测身高体重),协作过程中通过非侵入式可穿戴传感器持续更新——运动学用逆运动学估计,关节力矩用最大后验估计法算出,再过一个窗口为2的滑动平均滤波。这意味着换个人也能用:个体差异通过离线初始化和在线更新来吸收。
机器人一边跟随,一边根据L5–S1的力矩水平,用头上的LCD屏"做表情",告诉人现在腰的压力是高还是低。
![]()
跟随精度:平均误差0.0084米,三次实验平均最大误差0.0339米。论文也指出,机器人动作相对人有延迟,因为架构里目前没有对人类运动做预测,是纯反应式的。
但效果很明显。人类腰骶关节(L5–S1)的峰值力矩:
空载时,从43.95 Nm降到24.88 Nm;1公斤负载,从50.66 Nm降到25.77 Nm;2公斤负载,从约44 Nm降到31.82 Nm。最大降幅接近一半。
行走这边同样受益于那次抬高质心的优化。同样的行走指令和控制架构下,ergoCub最大步长0.35米(iCub3为0.28米),最小步态周期0.5秒(iCub3为0.8秒)。
控制架构上,轨迹生成与调整层跑在50Hz,轨迹控制层求解stack-of-tasks二次规划跑在500Hz,计算平台是塞在躯干里的2.4GHz Intel Core i7 Ubuntu主机。
抗扰测试里,机器人一边扛着额定6公斤负载直线行走,一边被人推搡右上臂(冲击力估计在60–100N),它会自动调整落脚点来避免摔倒。
![]()
04.
局限也写得很清楚
![]()
论文对自身边界写得很清楚。首先,优化针对的是生物力学风险指标(关节力矩、肌骨负荷),它不等同于主观的舒适感或疲劳感。长期交互流畅度、多人群主观舒适度、临床工效学验证,都不在本文结论范围内。
其次,硬件优化为了让问题可解,只考虑了多个静态构型,动态过程中的工效交给物理智能层处理;非线性优化的局部极小问题,靠"从iCub3起步"来规避。
再次,当前协作是反应式的。作者给出的改进方向是在轨迹规划层引入短时程人体运动预测,用预测状态估算未来的工效代价,再让规划层去最小化它——而且这只影响物理智能层,不改动硬件优化那一环。
最后,团队也列了缩小sim-to-real差距的路子:把连杆拆成电机、电子件、结构件、外壳等子部件建模;把材料相关的密度分布也变成设计变量;以及在样机做出来之后引入标定回路,把实测的惯量参数和关节驱动特性反馈回优化模型。
相关架构、控制器和可微分模型都已开源(adam 与 shared-controllers 两个Python库),数据和代码也放在了GitHub上。
一句话总结这项工作:以前我们让机器人去适应人,现在,人被写进了机器人的设计图纸。
论文链接:
https://www.nature.com/articles/s42256-026-01272-2
