首页 / 驱动算法 / 高级篇

关节模组力觉传感器:六维力、三维力与力矩传感器介绍

关节模组把电机、减速器、编码器、制动器集成成一个"会转的关节",但只有位置和电流反馈,它只是一个"盲转的伺服"。要让机器人有力控、柔顺、拖动示教和碰撞检测的能力,必须在关节和末端装上"感觉"——力矩传感器测关节输出扭矩,三维力传感器测末端三轴力,六维力传感器测末端三轴力+三轴力矩。本文把三类传感器的原理(应变电桥、弹性体、组桥与解耦)、关键参数(量程/分辨率/串扰/温漂/刚度/带宽)、选型要点和力控系统架构讲清楚,配六维力分量交互演示与可编译 C 代码。

1. 关节模组为什么需要"力觉"?

一个典型的机器人关节模组(joint module)长这样:无框力矩电机 + 谐波/RV减速器 + 绝对式多圈编码器 + 制动器,高端关节再加驱动器与力/力矩传感器。伺服三环(电流环→速度环→位置环)能保证"电流按指令、转速按指令、位置按指令",但机器人真正要的是接触力——而三环给不了:

三类传感器分工明确:

传感器测什么装在哪回答的问题
力矩传感器绕关节轴的扭矩 Tz(1 维)关节输出端 / 电机端"这个关节到底输出了多少扭矩?"
三维力传感器三轴力 Fx Fy Fz(3 维)末端法兰 / 工具侧"末端受到了多大、什么方向的力?"
六维力传感器三轴力 + 三轴力矩 Fx Fy Fz Mx My Mz(6 维)末端 / 腕部"接触点在哪、力臂多大、完整的力/力矩矢量?"

简单说:力矩传感器管"关节自身出力",三维/六维力传感器管"末端对外受力"。前者是关节级力控的基石,后者是末端级柔顺控制的眼睛。

2. 一次分清:力矩 / 三维力 / 六维力

三者都靠弹性体形变 + 应变片电桥测量,差别只在"弹性体怎么设计、应变片怎么组、要不要解耦":

对比项力矩传感器三维力传感器六维力传感器
测量分量Tz(单轴扭矩)Fx Fy FzFx Fy Fz Mx My Mz
自由度136
弹性体结构扭杆 / 轮辐 / 空心轴三梁 / 平板十字梁(Malta cross)/ 轮辐 / 环形
解耦需求低(单分量)中(轴间串扰小)高(必须标定耦合矩阵)
典型安装关节输出端 / 电机输出轴末端法兰、工具侧末端 / 腕部
典型应用力矩闭环、摩擦补偿、碰撞检测按压力/接触力检测(打磨、装配)力控、拖动示教、恒力加工、遥操作力反馈
典型精度0.5%~2% FS0.5%~1% FS0.5%~2% FS(高端 0.1%~0.3%)
复杂度 / 成本低 / 中中 / 中高高 / 高
📌 命名约定

行业里"六维力传感器"常写成 6-axis F/T sensor(force/torque)或"六维力/力矩传感器";"力矩传感器"特指只测扭矩(torque)的那一类;"三维力传感器"= 3-axis force sensor。三者都属"力觉传感器(force sensing)"家族。

3. 力矩传感器:关节扭矩的直接测量

3.1 工作原理:扭杆剪应变 + 惠斯通电桥

扭矩会让弹性体产生纯剪切:圆轴受扭时,与轴线成 ±45° 的方向上是主拉/主压应变。把 4 片应变片按 ±45° 贴在扭杆表面、接成全桥

应变式扭矩测量(全桥差分)

Vout = Vexc · K · ε45° ∝ T

ε45° = τ / G = T · r / (G · Jp)  —— 应变正比于扭矩

全桥自动抵消轴向力、弯矩与一阶温漂:四臂同环境,共模被差分掉

全桥是"零位稳、抗干扰"的关键:轴向载荷、弯矩、温度变化在四个桥臂上产生相同的电阻变化,差分后抵消;只有扭矩产生差动变化,被放大输出。

其他非应变原理:磁致伸缩(扭矩改变导磁率,非接触、无滞后、带宽高,但灵敏度与温漂一般)、光纤光栅 FBG(波长解调,抗电磁干扰、本质防爆,成本高)、电容式(间隙变化测剪应变,刚度高)。工业关节模组里应变式仍是绝对主流。

3.2 装电机侧还是输出侧?

安装位置测到的量优点缺点
电机侧(高速端)电机轴扭矩(小量程)尺寸小、量程小、成本低;转速高可同时测转速输出扭矩 = 电机扭矩×减速比 − 减速器摩擦,精度被减速器吃掉
输出侧(低速端)关节输出扭矩(大量程)直接测输出扭矩,最准;能感知负载真实力要承受大扭矩+轴向/径向载荷,体积大、刚度设计难、成本高

协作机器人的直驱/准直驱关节基本都测输出侧——因为力控要的是"输出扭矩"本身,绕开减速器摩擦才是目的。

3.3 力矩闭环 vs 电流环

这是关节模组力控最核心的认知:

方案反馈量输出扭矩误差特点
电流环(无传感器)iq·Kt(电磁力矩估计)10%~30%(谐波摩擦+柔性波动+温漂)便宜、带宽高(kHz);但"估的不是输出"
力矩传感器闭环输出扭矩直测1%~2%贵、带宽受限(20~200 Hz);但扭矩真值在手,还能在线辨识摩擦做前馈
⚠️ 别把"电流环"叫成"力矩环"

很多驱动器标"力矩模式"其实只是电流环按 iq 输出。谐波减速器摩擦 10%~30%、一次/二次谐波波动、温漂——都会让输出扭矩偏离指令。要真力控,输出侧力矩传感器几乎是必须的。

4. 三维力传感器:末端接触力

三维力传感器测 Fx Fy Fz 三个正交力分量,不含力矩(或力矩不做标定)。弹性体通常做成三梁/平板结构,每个梁上贴片组桥,三轴输出近似正交。

典型用途:

相比六维力:结构简单、成本低、解耦容易(轴间串扰小),适合"只需要力、不需要力矩"的场景。但注意:力的作用点不在传感器中心时,会额外产生力矩分量——三维力传感器内部其实也有力矩应变,只是不标定、不输出,安装时要避免大弯矩造成非线性。

5. 六维力传感器:完整的力/力矩矢量

六维力传感器同时测 Fx Fy Fz Mx My Mz,是机器人末端力觉的"完全体"——有了它,不但知道力的大小方向,还能算出力的作用点(力臂)

5.1 弹性体结构

结构形状特点
十字梁(Malta cross)中心受力、四根梁辐射经典结构,六分量解耦设计成熟,精度好;抗过载中等
轮辐式中心轮毂 + 辐条 + 外环承载大、抗过载强,适合大量程;刚度高
环形 / 双环内外环 + 连接筋刚度高、温漂小、响应快;加工精度要求高

5.2 组桥与解耦:输出 = 耦合矩阵 × 力

每个分量用 2~4 片应变片组桥。贴片位置和方向的设计原则是:期望轴输出最大、非期望轴输出最小(例如测 Fx 的桥,对 Fy 应几乎不敏感)。但机械加工误差、贴片偏差使"理想解耦"做不到,实际输出是各分量的线性组合:

六维力的耦合模型与解耦

V = C · F   →   F = C−1 · V

V 为 6 路电桥输出,C 为 6×6 耦合矩阵(标定得到),F = [Fx Fy Fz Mx My Mz]

标定时加载 6 组线性无关的已知力/力矩,测 V 求 C,再求逆矩阵 C−1,使用时矩阵乘 6 次即可实时解耦

串扰(cross-talk)就是 C 的非对角项:施加 Fx 时 Fy 通道的读数。好的传感器串扰 <1%~2% FS。只靠结构设计是不够的——出厂必做静态标定,用标定台加载已知砝码/力矩,最小二乘求耦合矩阵;现场安装后还建议做一次"重力校验"(用已知负载验证各通道)。

5.3 温漂:力传感器的大敌

应变片电阻温度系数 + 弹性体热膨胀会让零点和灵敏度随温度漂移,典型 0.01%~0.1% FS/℃。机器人连续工作数小时,壳体温度可能升 20~40℃,若温漂 0.05% FS/℃、量程 500 N,漂移可达 10~20 N——足以让恒力控制"失准"。工程手段:

6. 关键性能参数与选型

参数含义典型值 / 选型建议
量程各分量最大可测值末端力 F 几十~几千 N,力矩 M 几~上百 N·m;留 1.5~2 倍峰值裕量,冲击工况留更多
分辨率能分辨的最小变化0.01%~0.1% FS;取决于 ADC 位数、噪声与带宽
综合精度非线性+迟滞+重复性0.5%~2% FS;力控要求高的选 0.5% 以内
串扰他轴激励在本轴的读数<1%~2% FS;六维力必须看这个数
过载能力不损坏的最大载荷2~5 倍量程;碰撞/冲击场景选大的,配机械限位
带宽频响 −3 dB 点100 Hz~数 kHz;力控带宽受其限制
温漂温度引起零点/灵敏度漂移0.01%~0.1% FS/℃;长时间运行选带补偿的
刚度弹性体刚度(N/μm)越高越好:刚度低 → 机械谐振低 → 力控带宽受限、定位受影响
防护等级防尘防水IP40~IP65,按应用环境
✅ 选型三问

1) 最大峰值载荷多少(量程×裕量)?  2) 要的力控带宽多高(刚度+带宽够不够)?  3) 会不会长时间连续工作(温漂是否可接受,要不要补偿)?三个问题答完,型号基本定了。

7. 系统集成:从传感器到力控架构

关节模组的力控是多层嵌套的:

上层控制器 轨迹 / 力指令 阻抗/导纳 柔顺控制器 力矩环 输出扭矩 PI 速度环 转速 PI 电流环 id/iq PI 关节模组本体 电机+谐波减速器+编码器 力矩传感器 输出扭矩 T_z 六维力传感器 末端 F/M 六分量 PWM→逆变器 T_z 反馈 → 力矩环 F/M 反馈 → 阻抗/导纳 带宽示意:电流环 kHz 级 > 速度环 100Hz~1kHz > 力矩环 20~200Hz > 阻抗/导纳 10~100Hz(受传感器刚度与噪声限制)
📌 采样与同步

力矩/六维力采样率要明显高于力控带宽(一般 ≥5~10 倍),且尽量与电流环/速度环同周期同步采样,避免传感器数据混叠和相位延迟吃掉力控稳定裕量。

8. 交互式演示:三类传感器与六维力分量可视化

下面这个演示把三类传感器放在一起:切换传感器类型,拖动滑块给各分量"加载",观察传感器受力方向与量值。力沿轴用实心箭头,力矩用绕轴环状箭头(正 = 绿,逆时针/右手定则;负 = 红,反向),箭头长度 ∝ 分量大小。

力觉传感器 · 六维力分量交互演示
三维视角示意:X 右下、Y 右上、Z 竖直向上。实心箭头 = 力,环状箭头 = 力矩。切换类型只保留对应分量。

观察要点:

9. 代码实现(C语言)

9.1 六维力读取与实时解耦

/* 六维力传感器:6 通道应变桥 ADC 采集 + 耦合矩阵解耦 标定: 出厂给 6x6 耦合矩阵 C, 此处用其逆阵 c_inv (F = C^-1 * V), 同时存零位与每通道标定增益 调用: 每控制周期(如 1kHz)读一次, 输出 f[6] = {Fx,Fy,Fz,Mx,My,Mz} */ typedef struct { float zero[6]; /* 零位(空载)每通道电压 */ float gain[6]; /* 每通道标定增益 (N/V 或 N*m/V) */ float c_inv[6][6]; /* 6x6 解耦矩阵(耦合矩阵的逆) */ } ft6_cal_t; void ft6_read(const ft6_cal_t *cal, const float adc_v[6], float f[6]) { float v[6]; int i, j; /* 1) 去零位 + 通道增益 */ for (i = 0; i < 6; i++) v[i] = (adc_v[i] - cal->zero[i]) * cal->gain[i]; /* 2) 解耦: f = C^-1 * v (6x6 矩阵乘, 约 36 次乘加) */ for (i = 0; i < 6; i++) { f[i] = 0.0f; for (j = 0; j < 6; j++) f[i] += cal->c_inv[i][j] * v[j]; } } /* 温漂补偿(可选): 用温度传感器读数修正零位与增益 */ void ft6_tcomp(ft6_cal_t *cal, float temp_c, const float t_zero[6], const float t_gain[6]) { /* 出厂给各温度点的零位/增益表, 插值修正; 此处示意线性修正 */ int i; for (i = 0; i < 6; i++) { cal->zero[i] = t_zero[i] * temp_c; /* 简化: 实际为多项式/查表 */ cal->gain[i] *= (1.0f + t_gain[i] * (temp_c - 25.0f)); } }

9.2 关节力矩闭环(力矩环 → 速度环)

/* 关节力矩闭环: 外环力矩 PI 输出速度指令, 内环速度/电流由驱动器执行 注意: 力矩环带宽远低于电流环(20~200Hz), 采样率取 1kHz 以上; 摩擦大时可用"力矩误差前馈 + 扰动观测"进一步提高稳态精度 */ typedef struct { float kp, ki, ts; float integ; float v_cmd; /* 输出: 速度指令 rad/s */ } torque_loop_t; void torque_loop_init(torque_loop_t *t, float kp, float ki, float ts) { t->kp = kp; t->ki = ki; t->ts = ts; t->integ = 0.0f; t->v_cmd = 0.0f; } void torque_loop_update(torque_loop_t *t, float t_ref, float t_fb) { float err = t_ref - t_fb; t->integ += err * t->ts; /* 抗积分饱和: 输出限幅(对应速度上限) */ float v = t->kp * err + t->ki * t->integ; if (v > 2.0f) v = 2.0f; if (v < -2.0f) v = -2.0f; if (v != t->kp * err + t->ki * t->integ) /* 限幅时冻结积分 */ t->integ -= err * t->ts; t->v_cmd = v; }

10. 典型应用场景

场景用什么传感器作用
协作机器人力控 / 直驱关节输出侧力矩传感器精确输出扭矩,实现直接力控(力位混合)
拖动示教 / 零力控制六维力传感器(或关节力矩传感器)导纳控制:人手推末端,力→速度,机器人"顺从"
恒力打磨 / 抛光 / 去毛刺六维力 / 三维力法向恒压控制,适应曲面与工件误差
精密装配(轴孔插入)六维力检测接触力/力矩,柔顺搜索对准,避免卡死
碰撞检测与安全力矩传感器(每关节)力矩突变/外力超限 → 毫秒级停机,人机协作安全
遥操作力反馈六维力主手复现从端接触力,操作者有"手感"
医疗手术机器人微型六维力 / 力矩手术器械末端力感知,保护组织

11. 工程要点与常见误区

  1. 电流环 ≠ 力矩环:谐波减速器摩擦 10%~30%,按 iq 估力矩做不了真力控——输出侧直测才是"力矩闭环"
  2. 传感器刚度决定力控带宽上限:力传感器串在负载路径上,刚度低会拉低机械谐振频率,力控带宽上不去,还容易振荡。选型时刚度与量程同等重要
  3. 温漂必须处理:连续运行几小时,壳体温升数十度,不做温漂补偿的零点漂移足以毁掉恒力控制。全桥差分 + 温度补偿 + 上电零位校准是标配
  4. 量程要留裕量 + 机械限位:碰撞/冲击峰值可能数倍于稳态,量程建议 ≥1.5~2 倍峰值,并加机械限位防超载损坏(过载烧应变片是维修大头)
  5. 串扰靠标定,不靠"设计解耦":机械加工和贴片偏差一定带来串扰,出厂标定耦合矩阵 + 现场重力校验缺一不可
  6. 六维力尽量靠近受力点:力臂越大,同样的力产生的力矩分量越大,可能超出 M 量程或放大串扰。末端安装要算"最坏力臂工况"
  7. 安装面刚度与预紧:法兰面不平、螺栓预紧不一致会引入额外应力和零位偏移;安装面刚度不足会"吃掉"传感器精度
  8. 采样同步与滤波:力信号要与电流/速度环同步采样,低通截止频率高于力控带宽即可,过低的滤波相位延迟会吃掉稳定裕量
✅ 一句话记住

力矩传感器让关节"知道"自己输出了多少扭矩(1 维),三维力让末端"感觉"接触力(3 维),六维力给出完整的力/力矩矢量(6 维)——力觉的本质是应变电桥 + 解耦标定 + 刚度与温漂的工程平衡。选型先回答三个问题:峰值载荷多大?力控带宽多高?连续运行多久?