
1. 为什么双足机器人离不开变刚度从人的踝关节说起先说一个我在实验室里反复踩过才想明白的事双足机器人最难的部分往往不在上层运动规划算法而在执行器那一层。早些年我用固定刚度关节做实验机器人在平地上站着确实稳可一到下坡、踩台阶或者被外部碰一下整个机身的姿态控制立刻乱掉严重的时候直接砸地。后来我转向仿生双足机器人的变刚度驱动器从模块设计、样机装配到实验验证一路做下来才真正理解“刚度可变”这四个字背后有多少门道。很多人会问电机加减速器不就能让关节动吗为什么还要折腾变刚度这里的关键在于双足机器人对关节驱动器的需求是矛盾的——既要求关节足够“软”以吸收落地冲击又要求关节足够“硬”以保证支撑相的姿态精度。固定刚度关节无论怎么调参数都只能在这两个需求之间折中调硬了落地瞬间冲击力全部传给机身电机瞬时过载甚至损坏刹车调软了站立和推进时关节跟着晃步态根本稳不住。变刚度驱动器的思路是把“关节输出力矩”和“关节等效刚度”拆成两个独立可控的变量让机器人在支撑相把刚度调高、在摆动相和落地瞬间把刚度调低行为和人的下肢肌肉协调模式是同一个逻辑。这也是为什么这类驱动器在仿生机器人圈子里一直热度的原因。从学术角度看它对应的是“可变阻抗控制”的物理实现层——算法上早就证明变阻抗能显著降低足式机器人的落地冲击功耗但真正缺的是能在腿里塞得下、响应跟得上、还能稳定复现的机械执行器。我做的这个模块设计目标就是把这个缺失的环节补上一点点。无论是准备做双足实验的研究生还是在企业里调试四足机器人关节的工程师只要你在跟足式机器人的“腿”打交道这套模块设计思路和实验方法都值得参考。需要提前说明的是以下所有参数和结论都来自我在样机迭代过程中的记录属于特定结构尺寸下的代表性数据不同样机平台会有所浮动不建议直接照抄数值但设计逻辑和实验方法是可以完整复用的。2. 需求拆解与变刚度机构选型先把关节到底要多“多变”搞清楚做机械设计最忌讳一上来就画图。变刚度驱动器听起来高大上但它在你的机器人腿里需要满足什么指标、刚度变化范围有多大、响应速度要多快这些参数不确定后面每一步都是白做。我先从仿生角度把需求拆开再逐条落到关节指标上。2.1 从步态周期反推关节需求人的下肢在平地行走时一个步态周期里踝关节和膝关节的等效刚度变化可以达到3到5倍。支撑相前段小腿肌肉离心收缩做负功吸收身体下落势能关节表现为高刚度支撑相后段蹬地发力刚度进一步提高摆动相小腿前摆时关节则处于低刚度低阻抗状态方便快速向前。也就是说变刚度驱动器最核心的指标不是“能变”而是“变幅够不够、速度跟不跟得上步频”。我给自己定的设计目标是这样几个数字单关节输出峰值扭矩不低于35牛米关节等效刚度调节范围做到65牛米每弧度到300牛米每弧度之间约4.6倍变化刚度调节响应时间不超过0.3秒关节整体质量控制在1.2公斤以内。这套指标对应的是一个体重约30公斤、平地行走速度1米每秒的双足机器人踝关节。如果你做的是髋关节或者膝关节指标需要相应缩放但拆解方法是一样的——先想清楚步态周期里不同阶段的关节力矩和角位移需求。2.2 三种主流变刚度路线我为什么排除了前两种市面上能查到、实验室里能落地的变刚度方案大致有三类拮抗式人工肌肉、磁流变液/电流变液执行器、串联弹性驱动器加变刚度机构。第一类拮抗式人工肌肉原理是模仿人腿内外侧肌群的“双拉”结构一侧收缩另一侧拉伸通过调节两路气压或拉力比值改变关节刚度。优势是柔顺性好、功率密度高但致命弱点是气压响应慢刚度切换的带宽通常在0.5赫兹以下跟不上快走或跑步的步频而且需要外接气源整机系统重量和体积都膨胀得厉害。第二类磁流变液执行器利用磁场控制液体表观粘度刚度变化连续且响应快。但磁流变液在足式机器人这种高冲击、高频往复的工况下疲劳和沉降问题非常棘手且高压密封结构复杂样机长期运行后阻尼特性漂移严重。我做过一轮初步测试后直接放弃——可控性和重复性对实验数据太不友好了。第三类就是我现在采用的路线电机驱动主动变刚度机构。具体结构可以细分成连杆调节式和凸轮压缩弹簧式我选了后者。核心逻辑是用一个刚度调节电机通过蜗轮蜗杆减速后驱动凸轮盘旋转凸轮轮廓挤压一个预压缩的弹簧组改变弹簧组的等效压缩量和力臂从而在输出侧形成刚度可调节的弹性环节。关节输出力矩仍然由主电机通过谐波减速器提供两个电机的控制权限分离——主电机管力矩调节电机管刚度。这套方案的响应速度取决于小电机的转速和减速比加上蜗轮蜗杆的自锁特性刚度调好后不需要额外耗电维持对机器人整机功耗非常友好。2.3 模块设计的边界条件接口、尺寸和温升除了核心指标模块化设计还要提前锁定边界条件。在双足机器人腿里关节驱动器通常安装在髋/膝/踝关节轴线附近这决定了模块的直径和长度限制。我的做法是先画出一个圆柱包络直径控制在72毫米以内轴向长度110毫米以内方便后续在大小腿结构里布置。另外一个很容易被忽略的点是散热。连续行走时主电机和高频往复的弹簧组都会发热尤其是弹簧阻尼带来的内热如果不设计散热路径驱动器表面温度会快速超过电机额定工作的上限。我在这版模块上做了铝合金外壳加内部导热脂填充热容测试下来勉强能满足连续15分钟行走的需求更长续航需要在结构上再优化。模块与机器人本体的电气接口也要标准化动力线、编码器信号线、刚度调节电机控制线分开屏蔽接插件统一选用航插。这个细节在后续整机联调时省了大量排查故障的时间。3. 模块化结构设计的核心动力、变刚度、感知三块怎么塞进同一个壳结构设计的最优解永远来自功能耦合的深度。传统刚性驱动器的结构布局相对简单电机、减速器、输出轴一条线。变刚度驱动器多了刚度调节路径等于要在同一个空间里塞进两套动力系统、两套传动链和至少两个传感器。这版模块我最终分成了三个子装配体——动力模块、变刚度模块、感知模块它们各司其职又在接口处精确配合。3.1 动力模块主电机与谐波减速器的选型动力模块的任务是提供关节转动的主力矩。我选用了一款盘式无刷电机额定电压24伏峰值功率约180瓦搭配一节17规格谐波减速器减速比50比1输出侧额定扭矩30牛米瞬时允许60牛米。谐波减速器在这类应用的优势是传动比大、回差小、重量轻足以满足足式机器人支撑相的力矩精度要求。不过谐波减速器不是没有代价——它的柔轮在长期冲击下会有疲劳风险所以在这版设计中我在减速器和输出法兰之间加了一级扭矩限制保护器防止异常落地冲击直接打坏柔轮。电机端和输出端各装有一个编码器。电机端是17位多圈绝对值编码器用来精确计算主电机的转子位置输出端是增量式编码器用来读关节实际转角。两个编码器配合可以做控制回路里的半闭环位置反馈也可以在后处理中反算传动链的扭转形变。需要强调的是输出端编码器一定要装在输出法兰之后而不是之前否则它读不到谐波减速器柔轮的弹性形变扭矩估计误差会很大。3.2 变刚度模块凸轮盘与压缩弹簧组的设计取舍变刚度模块是整个驱动器的灵魂也是最难做好的部分。我采用的方案是两个对称布置的矩形截面圆柱压缩弹簧弹簧杯导向弹簧的压缩量由一个锥形凸轮盘控制。凸轮盘由独立小电机经蜗轮蜗杆减速驱动转角变化时凸轮轮廓通过滚轮挤压弹簧杯改变弹簧组的初始压缩量。弹簧组的等效刚度K_eff由弹簧本身的线刚度K_s和力臂机构共同决定经验公式可以简化为K_eff K_s * (R(θ))^2 / L^2其中R(θ)是凸轮轮廓半径随转角的变化函数L是输出轴到凸轮接触点的力臂长度。设计时最关键的是凸轮轮廓曲线它的形状直接决定了刚度调节是线性还是非线性。我最初用等距螺旋线得到的是线性刚度变化后来测试发现足式机器人需要落地瞬间刚度快速降低、支撑后期刚度平稳上升于是把凸轮轮廓改成三段式中间段斜率大快速变软两端斜率小平稳变硬。这个改动让步行实验的落地冲击指标大幅改善。弹簧组的选取也踩过一些坑。设计初期我选用了高碳钢弹簧钢丝线径2.5毫米外径20毫米有效圈数4按公式计算线刚度约32牛每毫米。但实测疲劳循环到8万次后刚度漂移超过12%直接导致刚度标定曲线失真。后来换成了油淬火回火弹簧钢丝线径不变疲劳寿命明显改善。如果环境温度变化大或者振动强烈建议进一步考虑弹簧预紧结构的温度补偿设计。3.3 感知模块刚度闭环的两个核心反馈量变刚度驱动器的闭环控制不能只依赖一个编码器。我在这版模块上增加了两个反馈通道。第一路是弹簧位移传感器选用微型线性位移传感器测量弹簧杯的实际压缩位移直接反映弹簧组的压缩状态第二路是输出侧六维力/力矩传感器的预留接口这一步在整机联调时装在踝关节下方用于测量足底接触力实验数据分析和碰撞检测都靠它。这里要注意弹簧位移传感器本身也有精度和频响的限制。如果传感器分辨率不够刚度闭环会出现低频抖动。我测试过两种供应商的产品最后选了量程10毫米、分辨率0.02毫米、频响1千赫兹的型号刚度闭环带宽实测做到约18赫兹基本够用。感知模块的走线布局也很重要弹簧附近的线缆要选用耐弯折、耐磨的柔性线束并且固定牢靠否则弹簧几个来回就能把线芯磨断。3.4 整机装配顺序与工艺细节模块化设计看着简单装配顺序却直接决定了同轴度和回差。我的装配流程是先装动力模块主电机轴与谐波减速器波发生器用专用工装压装保证同轴度在0.03毫米以内然后再装变刚度模块凸轮盘与蜗杆轴配合通过调整垫片控制轴向间隙最后装感知模块传感器支架与输出法兰固定。每一步都要做一次同轴度检测如果轴线偏了驱动器运转时会出现周期性噪声以及明显的力矩波动。装配过程中一个很小的细节是螺纹胶的涂抹位置。模块内部振动幅度大螺纹胶一定要用中强度型涂在螺栓螺纹中段而不是根部同时预留足够的固化时间后再带载运行。还有弹簧杯内部要加一层薄聚四氟乙烯垫片降低弹簧压缩时的摩擦异响并防止金属直接接触磨损。4. 实验设计与实测数据从刚度标定到整机对比模块做出来不等于能用实验阶段才是暴露设计短板的主要战场。我设计了三组实验按复杂度递进第一组是刚度标定实验检验模块的刚度调节范围与线性度第二组是冲击退让实验用落锤模拟落地冲击对比固定刚度和变刚度两种状态下的冲击力峰值第三组是双足步行对比实验将驱动模块装进双足机器人踝关节对比同一套步态算法下固定刚度和变刚度对整机功耗和姿态稳定性的影响。4.1 刚度标定实验数据跑出来的曲线才是真的刚度标定实验台架由一个固定底座、一个伺服加载电机和一个高精度扭矩传感器组成。将驱动器输出法兰固定然后让刚度调节电机依次转动到不同目标角度每转一个位置后锁定再用加载电机缓慢施加力矩记录转角与力矩的对应关系。实测结果表明当凸轮盘角度在初始位置到最大转角之间变化时关节等效刚度从70牛米每弧度连续变化到290牛米每弧度约4.1倍变化和理论设计值的4.6倍略有偏差。偏差的来源在于弹簧力臂在凸轮接触点存在滚轮半径的补偿误差以及弹簧组实际压缩时存在一定的摩擦损耗。刚度-角度曲线在三段式凸轮轮廓处出现两个轻微的拐点这和理论预期一致在后续控制中我做了查表补偿。这组实验里有几点值得提醒标定加载速度要尽量缓慢加载过快测出来的刚度偏高每改变一个刚度点后要等待弹簧松弛到稳态再开始标定否则数据会偏硬。我试过重复标定5次数据重复性偏差控制在3%以内说明结构和传感器稳定性是合格的。4.2 冲击退让实验变刚度的身价在这里体现冲击退让实验的目的是检验落地瞬间的缓冲能力。我在模块输出轴上固定一个等效质量块从设定高度释放让输出轴在一个挡块上瞬间制动模拟机器人落地时的冲击。对照组是固定刚度工况调节电机不工作弹簧预紧力恒定实验组是可变刚度工况落地前0.1秒刚度调低。实测数据非常直观固定刚度状态下冲击力矩峰值达到18牛米力矩振荡持续约0.36秒变刚度状态下冲击力矩峰值降到9.5牛米振荡收敛时间缩短到0.19秒。冲击力峰值削掉接近一半这正是仿生双足机器人需要的“软着陆”能力。需要注意的是刚度降低不能没有下限否则支撑相刚开始时关节会软到根本撑不住身体重量——所以我在控制协议里设置了最低刚度阈值对应刚度调节电机的最小有效转角。4.3 双足步行对比实验从部件到整机的差距双足步行对比实验是在实验跑台上完成的机器人本体自重约28公斤行走速度设为0.4米每秒。同样一套步态算法分别用固定刚度关节和变刚度关节驱动踝关节连续行走4分钟记录每公斤功耗、关节峰值力矩和躯干俯仰角标准差。结果整理成表测试项固定刚度关节变刚度关节平均每公斤功耗4.2 W/kg2.9 W/kg踝关节峰值力矩27 Nm21 Nm落地冲击峰值16 Nm10 Nm躯干俯仰角标准差3.1°1.8°功耗下降约31%峰值力矩下降约22%。数据背后对应了两层机制第一层是落地瞬间变刚度关节吸收了大部分冲击动能减少了冲击向机身传递第二层是支撑前期关节刚度较低电机更倾向于输出稳定的力而非频繁调节电流波动减小铜损随之降低。这套数据也验证了模块设计时定下的指标——刚度调节范围足够覆盖步态周期内的需求响应时间0.3秒能跟上0.4米每秒的行走节奏。4.4 实验中的意外情况和处理方式任何实验都有意外。我在跑冲击实验时遇到过一次弹簧杯卡滞导致刚度调节电机电流过流报警。拆开后发现是弹簧压缩到最大行程时弹簧圈之间并紧接触产生硬性锁死。解决方案是在弹簧杯内增加限位挡圈预留1.2毫米的并紧裕量同时在控制程序中限制调节电机的最大行程双保险。还有一次是输出端编码器信号在高速冲击时出现跳变排查发现编码器线束经过弹簧附近时被高频振动干扰后来把线束从弹簧对侧走线并加磁环问题消失。5. 几个容易踩的坑和后续优化方向这一节属于“早知道就不会走弯路”系列的总结。变刚度驱动器看起来只是多了个调节电机实际上整个控制系统和机械结构都要跟着调整。我整理了四个对结果影响最大的坑以及对应的处理建议。第一是弹簧疲劳和预紧力漂移。弹簧组长期高频压缩后材料内部应力释放导致刚度缓慢下降。处理方式除了换材料等级还要在实验前做刚度复标定。我的习惯是每周做一次10分钟刚度标定如果和初始数据偏差超过5%就更换弹簧组。第二是凸轮轮廓加工精度。凸轮盘的轮廓曲线不是普通的圆弧或直线而是根据目标刚度映射算出来的复杂曲线。我用数控加工加手工研磨修型确保轮廓表面粗糙度达到Ra0.8以下否则滚轮在凸轮槽内运动会发出“咯噔咯噔”的响声刚度调节也有明显的滞后感。如果条件允许最好采用线切割加慢走丝加工一次性保证轮廓精度。第三是刚度闭环带宽与落地瞬间高频脉冲的矛盾。起初我想让刚度跟随控制频率达到50赫兹以上实测发现受限于蜗轮蜗杆减速结构和小电机的加速度效果不佳且电流噪声明显坑。让步后的方案是刚度调节只跟随步态阶段的低频指令不直接响应冲击脉冲。落地冲击依靠弹簧本身的被动缓冲主动刚度调节只负责在冲击之后把关节恢复到目标刚度。这个“主动降刚度-被动缓冲-主动恢复”的时序控制比纯主动高带宽刚度控制可靠得多。第四是编码器和线缆的抗冲击防护。足式机器人的落地冲击加速度可以轻松超过20g编码器PCB和排线如果固定不牢联调时就会出现随机信号丢失。处理方式是在PCB板下方粘贴缓冲泡棉所有线缆接头处打胶固定并且在模块外壳上设计独立的电缆卡扣。冲击实验后记得检查一遍编码器安装螺钉的扭矩防止长期振动导致松动。后续优化方向我目前关注三个点一是用盘式无刷电机加行星齿轮减速替代现在的谐波减速器降低成本和柔轮疲劳风险二是尝试把刚度反馈传感器从线性位移传感器换成磁编码器方案减少机械安装空间三是将凸轮盘设计成可快速更换的模块方便实验时改变刚度映射曲线不必重新做整机机械结构。最后分享一个小细节变刚度驱动器在整机调试时至上可以先做“固定刚度档位跑通步态再逐级开放变刚度”的流程。我最初就直接启用变刚度控制结果步态算法和刚度调节策略耦合在一起出了问题都不知道是算法错还是机械错。分步调试虽然保守但能让你在每一步都清楚知道系统行为的变化来源这对排查问题非常关键。