ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

人形机器人腿部动力系统模块化设计:从关节选型到调试实战

人形机器人腿部动力系统模块化设计:从关节选型到调试实战 腿是整台人形机器人的“生死线”。如果只看上半身人形机器人和一只带机械臂的移动底盘区别不大真正拉开差距的全在两条腿上。腿部动力系统——髋、膝、踝三组关节的电机、减速器、编码器、驱动器加上腿管结构件——几乎决定了这台机器人能不能站得稳、走得顺、扛得住外力冲击。这也是宇树这类整机厂商把“腿部动力系统”单独拿出来做模块化设计的核心原因腿不是一堆零件的堆叠而是一套可以被复用、迭代、快速维修的动力总成。这篇拆解适合想搞懂人形机器人腿部原理的技术爱好者、做机电一体化选型的工程师以及正在评估机器人方案的产品经理。我会按“整体架构 → 核心部件选型 → 结构与材料 → 控制与遥操作 → 现场调试避坑”这条主线展开把模块化腿部动力系统从设计逻辑到落地细节一次讲透。1. 为什么腿部动力系统是整台人形机器人的“基座”1.1 拓扑结构与自由度分配每条腿该有几个“关节”人形机器人腿部拓扑在业界已经有比较收敛的共识以6自由度腿部结构为绝对主流髋关节3个自由度髋屈伸、髋外展内收、髋内外旋膝关节1个自由度屈伸踝关节2个自由度跖屈背屈、内翻外翻。宇树腿部方案沿用的就是这类仿人拓扑只是在小腿和足端形态上做了差异化。髋关节给3个自由度原因是髋部承担了绝大部分空间姿态调整需求。人走路时骨盆会侧倾、旋转髋关节必须同时响应这三个方向的力矩。如果髋关节自由度不够膝关节和踝关节就得额外“代偿”姿态控制会变得非常别扭功耗也会直线上升。膝关节只给1个自由度从工程角度看是最划算的设计取舍。膝关节在摆动相主要做屈伸在支撑相主要做等长收缩来缓冲冲击不需要内外翻、内外旋这种复杂运动。少两个自由度整条腿就少两组电机、减速器、驱动器重量和成本都能压下来。踝关节的2个自由度则直接关系到着地稳定性。脚落地瞬间地面反作用力会从足端往上传踝关节如果能主动调整两个方向的角度就能在触地瞬间更柔和地吸收冲击给髋关节和上半身争取调整时间。这里有一个容易被忽略的设计权衡自由度越多运动学反解越灵活但控制难度和整腿惯量也会同步上升。模块化的意义就在这里——每个关节都是一个独立的机电模组拓扑结构变了只需要替换对应模组不需要把整条腿推翻重做。1.2 模块化的设计边界把动力系统拆成什么、不拆什么模块化不是简单地把腿拆成几段而是要找到“高内聚、低耦合”的拆分边界。以我对市面上主流腿部方案的观察宇树的模块化边界大致划在四个层面第一是关节模组层。电机、减速器、编码器、驱动器、抱闸如果有集成为一个标准关节模组对外只留动力线、通讯线、编码器线和一个机械安装法兰。换关节就像换灯泡拧下四颗螺丝拔掉航插装上新模组即可。第二是结构件层。大腿杆、小腿杆、足端作为独立结构件不嵌入电子元件。这样结构件可以用碳纤维或铝合金单独开模批量生产成本低而且结构件损坏时不需要动电气部分。第三是线束与热管理层的边界。动力线、CAN/以太网线、温度传感器线做成一个完整的腿部线束总成散热管路部分关节采用液冷也独立成系统。这个边界看起来不起眼但实际维修时最花时间的就是线束——不把它模块化换关节模组时还得一根根重新接线效率极低。第四是控制接口层。每个关节模块在软件层面都暴露统一接口目标角度、目标速度、目标力矩、刚度系数、阻尼系数。上层算法只需要和这个接口打交道不需要关心底层用的什么电机、什么减速器。这个边界特别重要因为它让运动控制算法和硬件解耦硬件升级时软件不需要大改。不拆什么同样值得说。电机和减速器不建议拆成单独模块。电机轴和减速器输入轴之间如果有联轴器会引入额外的间隙和柔性对腿部这种需要高带宽力矩控制的场景是灾难。所以一体化关节模组通常把电机转子直接套在减速器输入轴上省掉联轴器。2. 腿部动力四件套电机、减速器、编码器、驱动器的工程选型2.1 无框力矩电机扭矩密度就是生命线腿部关节用的电机行业内基本都奔着无框力矩电机Frameless Torque Motor去了。无框电机没有外壳、没有轴承只提供定子和转子直接集成到关节壳体里。这样做最大的好处是结构紧凑、扭矩密度高。选型时有一个核心指标扭矩密度单位是Nm/kg或者Nm/L。腿部对电机的要求非常苛刻要在极小的体积里输出足够大的峰值扭矩同时还要承受频繁的正反转和冲击载荷。扭矩密度不够电机就只能做大腿就会变粗变重惯量上来之后动态响应性能断崖式下跌。群里经常有人问我“为什么不用伺服电机加减速机”不是不能用而是传统伺服电机的转子惯量偏大响应速度不够。腿部运动是高度动态的步态频率通常在1到2Hz但力矩波动频率要高得多电机需要频繁地在正负峰值之间切换。无框电机的转子细长、惯量小配合低减速比的传动方案能提供更“跟手”的力矩输出。无框电机另外一个好处是热管理更灵活。定子直接贴在关节壳体内壁上壳体就是散热器热量传递路径更短。腿部长时间行走时髋关节和膝关节的持续发热非常可观没有好的导热路径电机温度会快速飙升然后就是退磁、烧毁。2.2 减速方案行星、谐波、准直驱怎么选腿部减速器的选型业界经历了比较明显的演变。早期人形机器人直接用高减速比谐波减速器扭矩放大能力强但谐波减速器有一个天生的缺陷柔轮变形带来非线性弹性和摩擦反向驱动back-drivability性能差。通俗讲就是电机可以轻松带动腿但腿被外力踢一下这个力很难反向传回电机关节就成了“刚性锁死”状态对冲击的吸收能力非常差而且标定和换谐波的成本都不低。后来大家开始往低减速比方向走形成了几种主流方案行星减速器方案减速比通常在20:1到50:1之间。结构强度高抗冲击能力强成本相对友好同轴度高适合髋关节这种需要大扭矩且经常承受冲击的关节。缺点是噪音和背隙比谐波略大但对腿部运动场景背隙可以通过控制算法部分补偿。准直驱方案Quasi-Direct DriveQDD更激进减速比压到10:1以内甚至接近1:1。这种方案下的电机需要极高的扭矩密度否则没法提供足够的关节力矩。准直驱最大的优势是反向驱动性极好腿部着地时冲击力可以直接透过减速器传回电机由电机作为发电机来吸收能量天然地提供柔顺性。代价是控制算法压力大对电流环带宽要求很高。从我实际接触的项目来看宇树的产品线里不同定位的机器人会采用不同减速策略。偏动态性能的机器人会倾向低减速比方案牺牲一部分峰值扭矩换取更好的力控带宽偏负载能力的产品会保留更高的减速比确保能扛住重载和长时间高负荷运转。选减速比有一个经验公式可以估算减速比约等于电机峰值扭矩乘以效率再除以关节目标峰值扭矩。举例来说某髋关节电机峰值扭矩是5Nm目标关节峰值扭矩是120Nm行星减速器效率按85%算那么减速比大致是120除以5乘以0.85约等于28。实际选型还会在这个基础上留20%到30%的余量用来覆盖动态冲击和温度变化带来的性能衰减。2.3 编码器腿的“本体感觉”从哪来腿部关节必须知道自己的绝对角度否则整个运动学的反解就是空中楼阁。编码器选型是所有环节里最容易被低估的一项但它决定了力控能不能闭环得起来。当前腿部关节的主流配置是磁编码器加多圈计数方案。磁编码器抗污染能力强油脂、灰尘、金属屑对它影响小非常适合关节内部这种密闭但又充满润滑油气的环境。而且磁编码器允许一定的安装偏心和轴向跳动对装配容错率友好。为什么强调多圈绝对值因为腿部关节在机器人上电前可能已经被外力转动了好几圈如果编码器只能记录单圈绝对位置系统上电时必须先执行“找零”动作到极限位置撞一下才能确定零点。这个动作对工业机器人没问题但对需要立刻响应的人形机器人来说是不能接受的。多圈绝对值编码器能做到上电即知绝对位置直接进入控制状态。编码器分辨率也是关键参数。一般腿部关节的分辨率至少要做到单圈17位以上也就是131072线这样在低速微调时才有足够的角分辨率。分辨率不够低速行走时会出现肉眼可见的“步进感”关节抖动非常明显。还要注意编码器安装位置。很多方案会把编码器放在电机后端后置编码器而不是减速器输出端。这样做的优点是编码器不用承受减速器的输出力矩磨损小缺点是无法直接测量输出端的弹性变形和背隙。如果控制算法对关节末端位置精度要求高就需要在输出端再加一个编码器做双编码器融合或者用算法估算负载侧的偏差。2.4 驱动器与电流环最后1ms的响应差距腿部动力系统的最后一块拼图是伺服驱动器。很多团队在选型时只看电机参数结果买到手发现驱动器的电流环带宽跟不上整个腿的力控响应像“面条一样软”这就是典型的“好电机配了烂驱动器”。电流环带宽直接决定了力矩输出的响应速度。腿部行走时关节力矩指令变化的频率可能高达几十赫兹电流环带宽至少要跑到1kHz以上也就是说驱动器要能在1毫秒内完成一次电流环更新才能保证力矩输出的实时性。如果电流环带宽不够关节就会出现明显的相位滞后轻则步态拖沓重则系统失稳。另一个关键是FOC矢量控制算法的质量。同样是2804无框电机不同驱动器跑出来的效果天差地别问题就出在FOC的电流采样同步、死区补偿、谐波抑制这些细节上。好的驱动器能把这些误差补偿到位电流波形干净力矩输出平稳差的驱动器电流纹波大电机噪声大关节温度也高。腿部驱动器还必须有良好的过流和过温保护逻辑。腿部关节在行走过程中会遇到堵转、急停、被人为掰停等各种异常工况如果驱动器没有快速的过流限制瞬间大电流会把MOS管直接击穿。有些方案还会在驱动器里写满温度降额曲线让关节在接近热极限时自动降低输出而不是直接过温保护停机——这个细节对连续长距离行走特别重要。3. 腿管结构件与材料工艺少一克就多一步续航3.1 拓扑优化与3D打印一体化从“拼装腿”到“整体腿”结构件是腿部动力系统里最“看得见摸得着”的部分。因为动力系统本身重量不小结构件每减掉一克都是在给续航和动态性能做加法。传统机械结构设计是“拼装式”多个零件通过螺丝、销钉连接在一起每个零件承担一个简单功能。但腿部结构件形状复杂、受力方向多变这种设计会导致零件数量多、连接面多、应力集中点多。现在主流做法是把腿管结构件做拓扑优化。先把整个腿部空间离散成网格输入负载工况比如支撑相时足端受到的垂向力和切向力然后让优化算法在满足应力约束的前提下把材料分布往“力流路径”上集中最终生成一个极度镂空、像骨骼一样的结构。这个结构用传统CNC几乎加工不出来必须配合金属3D打印。3D打印一体化成型带来的好处不只是减重。腿管可以和关节安装法兰、走线过孔、传感器安装座一次打印出来省掉大量加工和装配工时同时也消除了连接面的累积公差。我见过的一个典型案例是传统拼装式小腿的重量是1.2公斤拓扑优化加3D打印后降到0.8公斤减重超过30%。对腿部这种末端结构来说减掉的重量能让膝关节和髋关节所需扭矩明显下降形成正向循环。3D打印也不是没有代价。目前常用的钛合金、铝合金打印件材料成本远高于锻件或机加工件而且打印件需要做后处理去应力退火、热等静压、机加工配合面时间周期长。所以实际方案通常混合使用批量稳定的结构用碳纤维或开模铝合金关键受力复杂的连接节点用3D打印钛合金。3.2 材料取舍碳纤维、铝合金、钛合金的账单材料选型背后是刚度、强度、重量、成本、韧性的五角博弈。碳纤维复合材料是腿管结构件的首选。它的比刚度刚度除以重量极高而且可以通过铺层方向设计来“定制”力学性能——比如小腿管主要承受沿管轴方向的压缩和弯曲就可以把碳纤维主要铺设在轴向。碳纤维的减重效果非常可观但有两个明显的坑一是脆性问题层间剪切强度差遭受尖锐冲击容易分层需要做防冲击包边二是成本高碳纤维腿管从模具到铺层到固化单件成本通常是铝合金件的数倍。铝合金6061或7075则是最务实的平衡选择。6061综合性能适中焊接性好阳极氧化后外观也不错7075强度更高但焊接性差一般只能做机加工件。腿部关节的壳体、法兰这类受力复杂的零件用7075-T6机加工是非常成熟的方案成本可控性能也够用。钛合金TC4即Ti-6Al-4V是“不计代价求性能”时的选择。它的比强度比铝合金高耐疲劳性能好而且生物相容性虽然这里不太需要但在机器人腿上主要是看中它的强度和韧性兼顾。代价是加工成本极高无论是机加工还是3D打印钛合金的刀具损耗和粉末成本都让人肉疼。我的建议很直白大腿、小腿这类长杆件优先考虑碳纤维关节壳体、法兰、足端这类受力集中且形状复杂的零件用铝合金或钛合金尽量不用碳纤维做复杂的立体连接结构。4. 从模块到运动控制算法与遥操作的配合4.1 力矩模式下的关节参数刚度、阻尼、目标角度腿部关节控制的基础是力矩模式。很多从工业机器人转过来的工程师习惯用位置模式但人形机器人腿部几乎不做插补运动它做的是“主动变刚度”的动态平衡本质上必须从力矩层面入手。最常见的关节层控制是PD加前馈τ Kp × (θ_desired - θ) Kd × (ω_desired - ω) τ_feedforward其中Kp是关节刚度Kd是关节阻尼θ和ω是当前角度与角速度θ_desired和ω_desired是期望角度与角速度τ_feedforward是重力补偿和科氏力补偿项。这套公式看着简单真正调试时会发现两个教训。第一Kp和Kd不能分开调。很多人先固定Kd只调Kp结果关节要么“软绵绵”要么“像弹簧一样震荡”。正确做法是同时调Kp和Kd阻尼系数随刚度的增加而增加两者比例通常要满足临界阻尼条件否则系统在负载变化时容易振荡。第二重力补偿必须做准。腿部支撑相时关节要对抗机器人自重如果重力补偿不准静态站立就会漂移。比较好的做法是每台机器人出厂时做一次重力辨识记录每个关节在多个姿态下的力矩值拟合出质心参数然后实时计算重力前馈。模块化在这里的价值体现得非常明显因为每个关节模块的通讯接口和控制接口都统一上层步态算法不需要知道这台机器人腿部的具体质量和质心只需要下发统一的关节指令。哪怕换了不同规格的关节模组用户层的参数也只需要改一个配置文件。4.2 遥操作“跟随人形”位置映射与力反馈宇树这类机器人在实际落地中经常遇到的一个场景是遥操作尤其是G1这类带力反馈的人形机器人。操作者穿上动作捕捉服或使用操作手柄机器人需要“学着”做出对应动作。遥操作的实现逻辑并不复杂上位机捕捉操作者的关节角度数据经过人体与机器人关节映射关系转换后把目标位置作为运动学目标再通过逆解算到腿部各个关节的目标角度最终由关节控制回路执行。真正难的是力反馈。操作者在做深蹲或踢腿动作时希望能感受到机器人腿部受到的阻力否则操作会非常“脱节”。这需要把机器人足端力传感器测到的力或者各关节电流换算出关节力矩再通过操作手柄或体感服反馈给操作者。这里牵扯到稳定性和延迟控制问题——反馈延迟超过50毫秒操作者就会明显感到“别扭”。遥操作对腿部动力系统的考验还在于操作者的动作频率远高于机器人自主步态。自主行走时步频在1到2Hz但遥操作时操作者可能快速踢腿关节角速度瞬间拉到每秒数弧度如果电机扭矩上不去整个腿就会“跟不上”出现很明显的位置跟踪误差。所以腿部模块化还有一个隐藏优势调试遥操作时可以把“操作者动作 → 关节指令”的映射关系做成软件模块不需要动硬件。简化映射逻辑只在几个关键关节上做力反馈就能在实时性和体验感之间取得平衡。4.3 模块化给软件带来的“翻译层”红利模块化不仅影响硬件维修还深刻改变了软件架构的组织方式。先看传统非模块化方案每一款机器人的腿部硬件都不同电机的KV值、减速比、编码器分辨率、关节限位都分散在代码里更换硬件就要改驱动层代码容易引入Bug也抬高了新人上手成本。模块化之后软件架构会自然长出一个“翻译层”。上位算法只发期望角度、期望力矩、刚度、阻尼翻译层负责把这些统一指令转换成具体电机的电流指令。这个翻译层屏蔽了硬件差异让算法工程师不需要关心底盘电机是什么型号只需要调用标准的关节接口。这个接口设计还有利于仿真和实机的无缝切换。在纯仿真环境里验证步态算法时仿真模型里的“虚拟关节”使用同样的接口切换到实机时只需要替换底层的“硬件翻译器”上层算法一行都不用改。这个能力对快速迭代至关重要否则每次从仿真到实机都要改写上层逻辑光Debug就要花掉好几周。5. 现场调试避坑与故障排查5.1 常见故障现象与排查速查表但凡接触过腿部机器人调试的人多多少少都遇到过下面这些糟心事。我整理了一份在实际调试中最常见的故障速查表按现象、可能原因、排查顺序排列故障现象可能原因排查顺序关节抖动、低速“卡顿”编码器分辨率不足、电流环带宽不够、FOC参数没对准先查编码器线是否受干扰再查电流环带宽最后看FOC的角度对齐上电后关节位置漂移多圈编码器零点丢失、电池电压波动导致掉电重新标定零点检查编码器电池或超级电容供电单关节过温报警散热路径堵塞、减速器润滑不足、持续堵转摸壳体温度听有无异响查电流曲线是否异常偏高足端着地瞬间反弹Kp过大、阻尼不足、着地速度过快降Kp加Kd同时检查踝关节是否处于饱和力矩状态整条腿“发软”站立时下沉重力补偿不准、Kp过小、母线电压不足先看母线电压再做重力辨识最后逐步增加Kp行走时异响减速器磨损、轴承间隙、结构件共振空载转动关节区分是轴系问题还是结构共振再用声学相机定位排查时有一个很实用的总原则先电气后机械先空载后加载先单关节后整腿。很多人一上来就怀疑算法参数结果折腾半天发现是编码器航插松了。先做单关节空载测试把每个关节都拉到指定角度和指定力矩确保各关节自身状态正常再组合整腿联调能省掉大量无意义的排查时间。5.2 现场调试心得从仿真到实机差的不只是参数仿真到实机之间的鸿沟是每个做腿部调试的人都要过的坎。第一个差异是延迟。仿真里控制器发一条指令关节瞬间就响应了实机上从控制器发出PWM信号到电机产生扭矩再通过减速器传到输出端每一步都有延迟。如果仿真里用的控制周期是1kHz那么实机上至少要保证指令下发和状态反馈在同一个控制周期内完成否则相位滞后会直接导致腿“站不稳”。第二个差异是摩擦力矩。仿真模型通常把关节摩擦简化成常数但实机上摩擦力矩跟负载、温度、转速都相关。尤其是低速行走时静摩擦和动摩擦的切换会造成明显的力矩非线性在高精度遥操作时特别恼人。处理办法是在控制律里加摩擦前馈补偿补偿模型可以先用离线辨识的Stribeck曲线再根据温度做修正。第三个差异是机械柔性。腿部结构件再刚也还是会有弹性形变尤其是碳纤维管在承受大扭矩时的扭转变形。仿真模型里“刚体”假设越理想实机上越容易露馅。我在调试时会把腿部频响测试写进例行流程扫一遍各个关节的机械谐振频率然后在控制算法里避开这些频点否则会引起额外抖动。这里再分享一个很实在的技巧实机调试腿部平衡时一定先在机器人的腰部系一根保护绳另一端固定在天花板或滑轨上。腿部机器人失控时往往是一瞬间的事没有保护绳一次意外摔倒就可能直接报废一条腿的动力系统。这个保护措施救了我好几次。6. 模块化腿部动力系统带来的工程连锁反应6.1 成本与供应链逻辑的转变模块化设计最直接的影响是对成本和供应链的重塑。不模块化时一条腿的物料清单可能有几十上百个SKU光是不同规格的螺丝、垫圈就能让采购头疼。库存管理更是噩梦每种规格的零件都要备安全库存任何一个零件缺货都会导致整机交付延期。模块化之后物料清单大幅收敛。关节模组是一个完整SKU腿管结构件是另一个SKU线束总成是一个SKU。库存单元从上百个降到十几个采购、质检、仓储的成本大幅下降。更重要的是关节模组可以在多个产品线之间共用——同一套关节模组既可以用在两足机器人上也可以用在四足机器狗上甚至用在机械臂上这样批采量就上去了单价自然更友好。这个逻辑和工业PLC的模块化设计思路很像CPU模块、电源模块、I/O模块都是标准件现场人员不需要理解模块内部原理只需要按照规范组合就能搭建一套完整系统。人形机器人的关节模组本质上就是机器人界的“标准PLC模块”它把复杂的机电一体化设计封装成黑盒让整机厂商可以专注于上层应用。6.2 对后市场与开发者生态的影响模块化还有一层容易被忽视的价值它让机器人的后市场服务变成了“标准件更换”模式。传统模式下如果腿部某根线束断了需要专门的售后工程师拆开整条腿按线束图纸逐根排查、重新压端子、做绝缘处理前后耗时半天到一天。模块化之后维修变成更换线束总成拧几个螺丝、插几个航插30分钟就能完成。对租赁、物流、巡检这类商用场景来说设备停机时间就是真金白银的损失快速维修带来的价值甚至比购买成本还重要。模块化同时也降低了开发者生态的参与门槛。当关节是标准模组时第三方开发者不需要深入了解电机驱动、减速器设计、编码器标定这些底层知识只需要按照官方提供的接口文档就能为自己的机器人项目开发上层应用。这意味着更多的算法工程师、产品经理、行业集成商都能参与到人形机器人的应用开发中而不是被硬件门槛挡在门外。我自己在做腿部调试时对模块化的体会是在一次“事故”里悟出来的。那台机器人在测试时被人为绊倒膝关节模组内部的减速器齿面被打崩了一块。换作非模块化方案整条腿可能都要返厂但那次我们只用了二十多分钟就把整个膝关键模组拆换下来换上备件之后除了需要重新标定一下编码器零点其余系统参数完全没变。这个经历让我真正意识到模块化设计不会显著提升某一项单点性能指标它价值的高光时刻恰恰发生在维修、迭代、多人协作、场景复用这些“系统的长尾环节”里。所以如果你正在评估一条人形机器人技术路线我的建议是除了看峰值扭矩、重量、自由度这些账面数据务必把一个维度加进考察清单——这套腿部动力系统的“可替换性”到底怎么样因为真正决定一台机器人能不能从实验室走到客户现场长期跑的往往就是这一点。
返回列表