资讯详情

资讯详情

SMA钛丝驱动的仿生手开发全解析:从材料原理到控制策略

最近整理手头的机器人实验平台把之前一直封存的 NiTiDrivetech 仿生手项目又拉了出来。说实话这个项目我断断续续做了将近一年中间推倒重来三次踩过的坑比写出来的功能还多。但也是这个项目让我彻底搞明白了一件事用电机的思路去做仿生手从一开始就输了。人手不是由旋转关节驱动的而是由肌肉的收缩驱动的。钛丝驱动SMA形状记忆合金驱动在仿生机器人领域最迷人的地方恰恰在于它本质上就是一种人工肌肉而仿生手是它最有说服力的应用场景。这篇文章我尽量把 NiTiDrivetech 从材料原理、机械结构、驱动电路到控制策略、实测数据、故障排查的完整链路讲透。不管你手头有没有做过 SMA 驱动只要你关心仿生机器人、柔性机器人、医疗康复机械手这篇文章应该能给你省下不少弯路。文章里涉及的数据和参数都是基于我这套样机的实际记录部分原理性参数来自材料领域公开的常规范围我会尽量标注清楚方便你对照复现。1. 为什么仿生手偏偏选钛丝做肌肉——驱动方案选型背后的考量1.1 电机驱动仿生手的问题出在哪市面上绝大多数商业化仿生手不管是欠驱动假肢还是研究用的灵巧手骨架基本都是微型伺服电机加钢丝腱的方式。电机方案的优点是成熟、好控制、精度高但有一个根本性的矛盾电机是刚性旋转输出而手指关节需要的是柔性直线收缩。为了把旋转运动转成直线拉力你得加齿轮减速箱、绕线轮、滑轮导向槽传动链越长系统的惯量、摩擦、间隙就越大整只手看起来像机械臂而不像手。另一个问题是重量和体积。一只成人手大约 400 克但要做到五指独立驱动每个手指至少一个电机加上减速箱和驱动器重量很容易飙到 600 克以上。在假肢场景里这个差距会直接影响佩戴舒适度在研究场景里则会限制机器人的负载能力和续航。1.2 SMA 驱动的核心优势功重比和柔性SMA形状记忆合金最常见的是镍钛合金丝作为驱动元件最核心的优势是功重比极高。一根直径 0.2 mm、长度 10 cm 的镍钛丝质量只有大约 20 毫克却能产生 5 到 10 牛的收缩力输出应力可以达到 200 MPa 级别理想状态下。这是什么概念一根头发丝粗细的金属丝能提起来一瓶 500 毫升矿泉水的重量。折算成功率密度SMA 驱动器轻松超过传统电磁电机一个数量级。更关键的是它的柔性特性。SMA 丝本身就是一根柔软的线它可以沿着手指的骨骼结构任意走线布局就像我们手上的肌腱贴着指骨走一样。这让机械设计回归了生物学的逻辑骨骼负责承力肌腱负责传动。于是仿生手的整体结构可以做得非常紧凑不需要为电机腾出大量空间。1.3 NiTiDrivetech 技术路线选取的三个关键判断我在选型的时候做了一个对比矩阵基本决定了这个项目的路线。我会把它原样贴出来供你参考。驱动方式功重比柔性静音位置精度响应速度控制难度系统复杂度伺服电机低无中极高快低高减速机构多气动人工肌肉中高有中低压缩性快中高气源、阀岛SMA 钛丝极高有好无振动中低需补偿中加热快、冷却慢高低一根丝加驱动电路电活性聚合物低有好高慢高高高压驱动三个关键判断第一仿生手的核心需求是像人手一样灵活地抓握而不是像一个机械手一样精确定位。SMA 的精度短板在这里不是致命的而它的柔性、轻量、静音优势在这里全部是加分项。第二SMA 的散热慢问题可以通过结构设计缓解。手指的肌腱走向是细长结构暴露在空气中的表面积足够大只要控制好占空比响应速度可以做到接近人手日常动作的水平。第三SMA 驱动是肌肉逻辑意味着我可以把控制重心从运动学规划转向力感知和阻抗控制这更接近生物的神经控制方式。2. 镍钛丝驱动原理形状记忆效应到底是怎么转化成机械力的2.1 钻牛角尖式的原理拆解马氏体与奥氏体相变镍钛丝的驱动力本质上来自固态相变。它内部存在两种晶体结构低温下的马氏体Martensite和高温下的奥氏体Austenite。马氏体相很软可以轻易弯曲变形奥氏体相很硬且会记住高温定型时的形状。驱动过程是这样的镍钛丝在低温马氏体状态下被外力拉伸比如被一根弹簧拉住这时它的长度增加了 3% 到 4%。当你给这根丝通电加热温度升高到相变温度通常是 50 到 90 摄氏度内部晶体从马氏体变成奥氏体与此同时材料会拼命要变回记忆中的形状——也就是被拉长之前的长度。于是丝就收缩了收缩过程中产生的拉力就是驱动力。加热时收缩冷却时变软被外力拉回——这个过程和肌肉的收缩松弛逻辑完全一致肌肉通过肌动蛋白和肌球蛋白的横桥循环主动收缩依靠对侧肌肉或弹性结构复位。SMA 丝从不主动伸长它只负责收缩复位靠外力或拮抗对。2.2 从一根丝到一根有记忆的丝定型与训练工艺我刚接触 SMA 的时候犯过一个错误直接买来市售镍钛丝就装进手指模型里通电加热发现它只是变硬了并不收缩。后来才明白市面上买的镍钛丝默认记忆形状是直线它在制造时已经定型过了。但如果你需要它记忆弯曲形状、或者记忆某个特定角度必须自己做热处理定型。定型工艺也叫训练是把镍钛丝缠绕在定型模具上施加一定张力然后在马弗炉里加热到 400 到 500 摄氏度保温 10 到 60 分钟之后迅速水淬。参考我自己的经验0.2 mm 直径的镍钛丝用 450 摄氏度保温 20 分钟水淬形状保持效果不错。定型时要注意三点定型模具材质要耐高温且不导热过快我用的是不锈钢块效果稳定丝在模具上要保持绷紧否则加热时应力松弛会导致定型角度产生偏差淬火后材料处于马氏体相轻拉是软的这很正常通电加热后才会变硬恢复记忆形状。顺便说一个市场上经常混淆的概念很多人把镍钛丝叫做钛丝其实纯钛丝没有形状记忆效应。真正的驱动材料是镍钛合金Nitinol大约含 50% 镍和 50% 钛原子比千万不要买纯钛丝来替代。2.3 关键物理参数与驱动能力估算做 SMA 驱动设计前先要会算几个基本参数。我这里用直径 0.2 mm 的丝做例子给你完整算一遍横截面积A π × (0.1 mm)² ≈ 3.14 × 10⁻⁸ m²假设奥氏体收缩应力 200 MPa则理论最大拉力F 200 MPa × 3.14 × 10⁻⁸ m² ≈ 6.28 N实际工程中受装配损耗、摩擦、温度不均影响系统能利用的收缩力通常在这个理论值的 30% 到 60% 之间也就是 2 到 4 N。这个量级作为单个手指的屈曲力是够用的成人手指捏握力量大约需要 5 到 10 N但仿生手如果做轻负载抓取场景拿海绵、握纸杯、捏鸡蛋2 到 4 N 已经足够。电阻参数镍钛丝的电阻率约 1.0 μΩ·m奥氏体相附近0.2 mm 丝每米电阻约R ρ × L / A 1.0 × 10⁻⁶ × 1 / (3.14 × 10⁻⁸) ≈ 31.8 Ω/m换算下来10 cm 长的驱动丝电阻大约 3 Ω。这意味着用 1 A 电流驱动时电功率约 3 W丝体温度会快速上升。加热到相变温度以上只需要 0.2 到 0.5 秒。冷却时间则要看环境自然对流条件下单根丝从 90 摄氏度降到室温通常要 2 到 4 秒。这一快一慢就是 SMA 驱动最核心的时间特性。3. 仿生手指的机械结构与传动链路设计3.1 腱驱结构骨骼在外肌肉在内确定了用 SMA 丝作为驱动源之后接下来的问题就是一根丝怎么让手指关节弯曲答案是用腱驱结构tendon-driven。生物手上屈肌深肌腱从手臂跨过手腕、手掌最终止于远节指骨肌肉收缩时手指弯曲。我设计的单指结构完全复制了这个链路每个手指有 3 个关节近端、中间、远端但没有独立的手指电机。我用了连续屈曲结构——把驱动丝从手指远节指骨端固定然后沿着指骨的掌侧走线跨过每个关节的滑轮一直延伸到手掌部位的驱动器固定点。当丝收缩时它产生的拉力经过所有关节滑轮将手指拉向握拳方向。这就是我说肌肉骨骼同构的含义。电机方案是每个关节一个执行器我的手是每根手指一根执行器关节的结构尽可能简化。指向手指侧每一节的骨骼用 3D 打印的 ABS 外壳实现内部有走线槽和滑轮轴滑轮是直径 4 mm 的定制黄铜件表面做抛光处理降低丝摩擦。3.2 复位机制SMA 丝不能推那就用弹簧拉SMA 丝只能主动收缩不能主动伸长所以手指在放松状态需要依赖外部复位机构。这里有两套方案选择方案 A 是偏置弹簧结构手指屈曲时驱动丝收缩同时拉伸一个复位弹簧停止加热后丝变软弹簧的弹性势能释放把手指拉回伸展位。这个方案简单可靠一个指节省一个驱动源但缺点是手指的主动伸展速度取决于弹簧力而且弹簧始终占据一部分驱动力降低有效抓握力。方案 B 是拮抗对结构每个关节用两根 SMA 丝对拉一根管屈曲一根管伸展交替加热实现双向主动运动。这个方案灵活度和伸展速度都更好但驱动源数量翻倍控制复杂度也上升手指直径在空间上会很挤。我最终在样机上选择了方案 A。原因有两个第一生物手的休息姿态本身就是微微弯曲的弹簧偏置让手指自然呈半握拳状态视觉上更自然第二单根驱动丝加弹簧的方案对驱动电路的需求少一半五根手指十路驱动功耗和散热压力更可控。拮抗对方案我留到了下一版做腕部屈伸时再用。3.3 行程计算3% 的收缩率怎么变成 90 度弯曲这是 SMA 驱动设计里最容易出错的环节。很多人以为丝收缩 3%关节就转 3% 的角度实际上完全不是。这里有一个机械增益的概念。镍钛丝的收缩率通常在 3% 到 5%预应变量 4% 左右时。我的每根手指驱动丝总长 80 mm能提供的有效收缩位移就是收缩位移 80 mm × 4% 3.2 mm如果我把这段位移直接连在关节上3.2 mm 的直线位移几乎转不了多少角度。所以必须设计机械增益——用滑轮或杠杆结构放大角度行程代价是放大力变小。我的指尖节采用了一个直径 12 mm 的屈曲滑轮丝线绕在滑轮槽上。滑轮转动角度 θ 与丝线位移 d 的关系为θ d / r 3.2 mm / 6 mm 0.533 rad ≈ 30.5 度每个关节 30 度三个关节加起来约 90 度弯曲。这个角度做日常抓握足够但还达不到人手指尖碰掌心的水平那需要约 120 度。如果你的目标是全屈曲可以缩短丝长、增大滑轮直径或者提高预应变。这三个参数的权衡关系是丝越长绝对位移越大但响应越慢加热的金属质量更大滑轮越大角度增益越高但需要的拉力越大预应变越大收缩位移越多但疲劳寿命显著下降。我目前的配置是三者折中的结果。4. 驱动电路与温度控制让镍钛丝听话的关键4.1 为什么不能用普通 IO 直驱电阻与热失控SMA 丝的内阻随温度变化很明显马氏体相电阻率约 1.3 μΩ·m奥氏体相约 1.0 μΩ·m。也就是说同一根丝冷的时侯电阻大、热的时候电阻小。如果你用恒压源驱动刚开始电阻大电流小升温慢随着温度升高电阻变小电流变大又进一步加剧升温形成正反馈热失控。加热过头的结果是奥氏体屈服强度骤降、丝材退火失效甚至直接烧断。所以驱动 SMA 的正确方式是恒流源或者 PWM 恒流斩波。我用的是恒流模式每路驱动用一片大功率 MOS 管串联采样电阻做闭环恒流控制电流设置范围 0.5 到 2 APWM 频率 20 kHz。这样不管丝的温度怎么变电流始终稳定加热功率稳定可控。4.2 控制状态机从加热到保持再到释放SMA 驱动不像电机那样有一个连续的位置-电压关系它更像是肌肉的全或无式收缩再加强度调节。我的控制状态机分五个状态待机Standby、快速屈曲Flex、保持Hold、缓慢释放Release、快速释放Fast Release。待机状态驱动电流为零手指处于弹簧复位的半握拳姿态。快速屈曲输出 1.5 A 恒流 300 ms丝体温度从室温升到相变温度以上完成收缩手指达到目标弯曲位置。保持状态降低电流到 0.6 A 左右让丝体温度维持在相变温度附近保持收缩力而不额外升温。这里的 0.6 A 是根据热平衡估算的——丝在空气中的散热功率约 2 W/cm自然对流0.6 A 通过 3 Ω 电阻产生的 1.1 W 热量恰好能维持温度。缓慢释放电流降到 0.2 A丝体缓慢冷却手指在弹簧作用下回到半握姿态。这个状态适合做精细操控、轻放物体的动作。快速释放直接断电自然冷却。响应速度最快但会有一个突然的弹开动作适合快速放开重物。4.3 位置反馈与闭环控制弯曲传感器和电桥开环的 SMA 驱动也能动但会有明显的迟滞——加热时收缩路径和冷却时复位路径不一样同一个温度对应不同的行程。对于仿生手来说要做柔性抓握还是得加反馈。我用了两种传感器做对比弯曲传感器Flex Sensor是最省事的方案贴在手指背侧弯曲时电阻变化。它的优点是便宜、集成简单缺点是线性度一般、响应慢对快速动作会有滞后感。手指关节电位器是更稳的方案。我在每个近端关节的滑轮轴上装了一颗微型电位器直接读关节角度。样机上最终全部换成了电位器方案实测角度误差在 ±2 度以内。代价是装配难度上升走线更复杂但数据可靠性高得多。闭环控制算法是典型的比例控制加一点微分前馈。控制器根据目标角度计算需要的电流基准误差大时用大电流快速逼近误差小时降低电流维持位置。注意比例系数不能太大否则容易出现抖动——因为 SMA 的热惯量很大电流多一点点要过几百毫秒温度才变化、力量才改变控制系统响应过快就会在目标位置附近振荡。5. 实测数据与性能边界这台仿生手到底能做到什么水平5.1 抓握力、速度与功耗实测样机装完后我在实验台上做了系统的性能测试环境温度 24 摄氏度。测试结果汇总如下项目实测值备注单指最大握力3.1 N指尖第二关节处测量全握拳角度86 度近端中间远端三关节总和屈曲响应时间320 ms通电到完全屈曲释放响应时间2.8 s自然冷却到复位 80%单指保持功耗1.1 W维持 60% 握力的保持电流满循环节拍约 15 次/分钟不考虑保持时间整手重量218 g含驱动器和控制板不含电池可以看到握力和响应速度都在预期范围内但释放时间明显长。这是 SMA 驱动的天生瓶颈尤其在需要快速重复动作的场合比如连续抓放动作周期只能做到 2 到 3 秒一次。不过对于康复训练手套、柔性抓取机器人这类场景这个速度完全可以接受。5.2 数据对比它跟人手和电机手的差距在哪里为了更直观地看到这台仿生手的定位我把它和人手、传统电机仿生手做了对比指标人手SMA 仿生手本样机电机仿生手重量约 400 g218 g500-700 g单指握力50-100 N3.1 N10-30 N屈曲速度600°/s快速握拳时约 270°/s600°/s 以上释放速度600°/s约 30°/s600°/s 以上工作噪音无无电机声明显控制精度极高中等高结论很清晰SMA 仿生手在重量、静音、柔性上有绝对优势但在力量和速度上还达不到人手水平尤其是释放速度。如果你做的项目是假肢、需要承重抓握或快速动态抓取SMA 目前不是最优方案。但如果你做的是柔性抓取、康复训练、人机交互验证、教育展示SMA 是形态最接近肌肉的驱动方案。5.3 疲劳寿命一个需要提前规划的硬指标SMA 的疲劳寿命是我最关心的工程问题之一。镍钛丝在 4% 预应变下反复热循环按材料领域常见的经验数据数十万次后会出现功能退化表现为收缩量减少、相变温度漂移。但在样机测试中我们更早遇到的问题不是丝断了而是丝没以前有力了——通电加热后收缩就回到了 3%甚至只有 2%。排查后确认了两个原因一是超温。有一次控制程序跑飞恒流源没限功率丝体温度超过了 150 摄氏度奥氏体的记忆形状被部分改写丝的高温定型形状开始漂移。二是过拉伸。装配时预紧力太大丝在这个测试前就被拉长了 6% 以上进入了塑性区产生了不可恢复的蠕变。针对这两个问题我在后续版本里做了三条改进驱动电路增加硬件过温保护温度超过 110 摄氏度直接切断电源防止程序跑飞时烧丝装配工序中严格控制预拉伸量在 3% 到 4% 之间用拉力计标定而不凭手感每根新丝正式使用前先做 50 次热身循环让材料的相变行为稳定下来再装入手掌。6. 踩坑记录与工程建议——从样机到可靠系统的几个绕不过去的坎6.1 退火定型失败温度和时间差一点效果天差地别第一次做弯曲定型时我用的是网上常见的随口参数400 度 30 分钟。结果是丝确实记住了模具的弯曲形状但通电加热后弯曲恢复很慢而且力量明显偏软。后来查了材料相关的文献才明白镍钛合金的定型效果取决于能否在特定温度区间形成稳定的母相位错结构温度低了定型不充分温度高了氧化物会深入表层、改变相变特性。我在小批量上做了参数扫描对比。用同一批 0.2 mm 丝分成四组分别在 400、450、500、550 摄氏度下保温 20 分钟水淬。实测结果400 度定型强度不足容易软500 度以上丝的表面开始变灰明显氧化相变响应变钝450 度是最理想的折中点。另外一个容易被忽略的细节是定型出炉水淬要快如果让丝慢慢冷却原子有足够时间回到马氏体孪晶状态形状记忆效果会打折扣。6.2 滑丝与断裂装配工艺是 SMA 应用的重灾区SMA 丝表面非常光滑加上它在收缩时会施加很大的轴向拉力在机械端子处的固定稍有不慎就会滑脱。我第一次装配时用的是普通压线端子结果在第三轮循环测试中接连出现手指没反应但电流却很大的故障——拆开来一看丝从端子中滑出来了表面已经磨出亮痕。后来改用了一种可靠的锚固方式把 SMA 丝的末端弯一个小勾塞进 PCB 铜柱的过孔里然后用焊锡填充灌封外面再用热缩管固定。这样机械咬合和冶金结合双保险实测连续上千次循环没有滑脱。另一个容易断裂的位置是滑轮槽边缘如果滑轮槽的圆角太小丝在弯曲时会受到微小的应力集中几十次后就断了。解决办法是滑轮槽口倒圆角 R0.5并且丝线进出滑轮的路径要与切向方向尽量共线。6.3 散热不足引发伪自激振荡最诡异的故障出现在连续抓放测试中手指屈曲到目标位置后本应保持静止却出现了频率约 1 Hz 的抖动。一开始怀疑控制环路有问题加大了滤波没用怀疑电位器接触不良更换了没用。最后用热成像仪一看丝的温度在 70 到 75 摄氏度之间反复波动。原因是我们把五根手指的驱动丝全部集中走线到了手掌区域的同一束热缩管里。五根丝同时散热形成了局部热岛。当控制器小电流保持触碰到阈值时丝的温度一超过相变温度就收缩温度一下降又松弛如此往复。把走线束分开、增加散热面积之后抖动立刻消失。这也提醒我SMA 驱动系统里热路径和电流路径一样重要走线不仅是为了导电也是为了散热。6.4 后续扩展多指协同与感知融合五根手指都能动了下一个问题自然是多指协同抓握。目前每根手指是独立控制的但抓取一个纸杯需要拇指对掌、食指中指屈曲、无名指小指辅助稳定这涉及多手指的时序规划。我现在的控制方案是在上位机写抓取模式库每种模式固定了各个手指的启停时间差和保持电流比如捏取模式的拇指先动 200 ms食指中指再同步屈曲 400 ms。复杂的自适应抓取根据物体形状动态调整握力分布还在开发中预备加入指尖力传感器做闭环力分配。另外手套式的康复应用也是这个方案的一个很有潜力的分支。把 SMA 驱动丝缝在手套的关节对应位置利用它的静音和柔性优势可以做成穿戴式的辅助抓握装置。这个方向对重量更加敏感对速度要求不高正好命中 SMA 驱动的优势区间。我下一版样机的目标就是往这个方向走把驱动器和电池集成到前臂护腕里让整个系统真正穿得上身。回看这个项目最大的体会是NiTiDrivetech 作为 SMA 驱动的代表在仿生手应用上最大的价值不是做出了一只能动的机械手而是它让我用肌肉的思维重新做了一遍机械设计。它逼着我去理解力传递的路径、热管理的边界、材料疲劳的代价这些都是电机方案永远教不会你的东西。接下来我会继续把这只手的抓取模式做深也会把同样的驱动逻辑迁移到腕关节和肘关节上。如果你也在折腾 SMA欢迎拿这篇文章里的参数做起点大概率能少烧不少丝。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →