3. 力/力矩传感器与信号处理

在机器人柔顺控制中,力/力矩感知是闭环反馈的核心信息来源。无论是阻抗控制中的外力交互,还是导纳控制中的期望运动修正,其控制品质的上限直接取决于力感知链路的精度、带宽与信噪比。六维力/力矩传感器(F/T Sensor)能够同时测量三维力(Fx, Fy, Fz)与三维力矩(Mx, My, Mz),是绝大多数柔顺控制方案的首选感知元件。然而,传感器原始输出并不能直接用于控制——它混合了重力分量、惯性力、安装偏差、温漂、噪声与弹性变形误差。本章围绕六维力传感器的原理、标定方法、滤波策略以及重力/惯性补偿展开,帮助学习者建立从“原始电压/数字量”到“可用于柔顺控制的纯净外力”的完整信号处理链路。

六维力传感器信号处理链路 六维力传感器 应变片/压电/电容 Fx Fy Fz Mx My Mz 原始电信号/数字量 标定与解耦 耦合矩阵 C (6×6) 零点/温漂/非线性 最小二乘/加权 滤波处理 低通(Butterworth) 卡尔曼/滑动平均 截止频率/噪声协方差 重力/惯性补偿 质量/质心/姿态 加速度/角速度 动态前馈 纯净外力 标定流程 ① 零点采集 ② 砝码/标准力加载 ③ 解耦矩阵求解 滤波策略 低通:截止频率 5-50Hz 卡尔曼:状态估计 相位延迟补偿 补偿方法 重力:m·g·R·r_cg 惯性:m·a + I·α 科氏力/离心力 关键工程要点: • 标定矩阵条件数应 < 10,避免病态解耦; • 滤波截止频率需根据控制带宽与机械谐振频率折中; • 重力补偿精度取决于质心辨识精度与姿态解算延迟。

上图展示了六维力信号从原始感知到纯净外力输出的完整处理链路。下面将分别从传感器原理、标定方法、滤波策略以及重力/惯性补偿四个维度展开详细讲解。

3.1 六维力传感器的工作原理与结构选型

3.1.1 核心原理:弹性体应变与电桥测量

绝大多数工业级六维力传感器基于电阻应变式原理。其核心是一个经过精密设计的弹性体结构(常见形式有十字梁、双环梁、 Stewart 平台等),当外力作用于传感器法兰时,弹性体发生微米级形变,粘贴在关键应力区的应变片阻值随之变化。通过惠斯通电桥将阻值变化转换为电压信号,再经 ADC 采样为数字量。

六维力测量的难点在于维间耦合——施加 Fx 时,不仅会在 Fx 方向产生应变,也会在 Mz 或 Fy 方向产生微小输出。因此,传感器内部通常包含 8~12 组应变片,构成 6 个独立测量通道,并通过标定矩阵进行解耦。设原始输出电压向量为 V(6×1),实际力/力矩向量为 F(6×1),则存在线性关系:

F = C · V

其中 C 为 6×6 解耦矩阵(标定矩阵),其精度直接决定了传感器的测量准确度。此外,还有基于压电效应(适合动态测量,但无法测静态力)和电容式(高灵敏度但量程受限)的六维力传感器,在柔顺控制中应用较少。

3.1.2 关键性能指标与选型依据

指标典型值范围对柔顺控制的影响
量程(Fx/Fy/Fz)50N ~ 2000N需覆盖最大交互力,避免过载损坏
分辨率0.05N ~ 0.5N决定接触检测的灵敏度
采样率500Hz ~ 8kHz需高于控制频率的 5~10 倍
维间耦合误差< 1% FS耦合误差会直接引入控制偏差
过载能力200% ~ 500%防止碰撞冲击损坏
选型经验:对于协作机器人(负载 5~15kg),推荐量程为额定负载的 1.5~2 倍;对于医疗手术机器人,更关注分辨率和温漂;对于重载打磨场景,需关注传感器的抗冲击能力与 IP 防护等级。

3.1.3 安装方式与结构耦合

传感器通常安装在机器人末端法兰与工具之间。安装时需注意:

  • 机械过定位:法兰面需保证平面度 < 0.02mm,避免安装应力导致零点偏移;
  • 线缆管理:传感器线缆应留有适当余量并固定,避免运动时拉扯产生额外力;
  • 热隔离:传感器应远离电机或减速器等热源,温漂会导致零点漂移。

3.2 六维力传感器标定:从原始信号到物理量

3.2.1 标定的核心原理与流程

标定的目标是求解解耦矩阵 C 以及零点偏移 V₀。理想情况下,传感器在零力状态输出应为零,但由于应变片不对称、电桥不平衡、安装应力等原因,实际存在零点偏移。完整的标定流程如下:

  1. 零点采集:传感器在无负载、无加速度状态下,采集 N 组数据取平均,得到零点向量 V₀;
  2. 加载标准力:使用砝码或标准力源,分别沿 +X、-X、+Y、-Y、+Z、-Z 方向施加已知力,并记录对应的输出电压;
  3. 力矩标定:通过力臂杠杆施加已知力矩,或利用偏心加载产生力矩;
  4. 矩阵求解:利用最小二乘法求解超定方程组,得到 6×6 标定矩阵 C;
  5. 验证:施加随机方向力,对比测量值与真值,计算各通道误差。

3.2.2 标定矩阵的工程求解

设采集了 m 组数据(m > 6),每组包含已知力向量 Fᵢ 和电压向量 Vᵢ(已减去零点),则:

F = C · V
[F₁ F₂ ... Fₘ] = C · [V₁ V₂ ... Vₘ]
C = F · Vᵀ · (V · Vᵀ)⁻¹

实际标定中,建议每个方向加载 3~5 个不同量级的力,以覆盖线性区间并提高矩阵条件数。标定后应检查矩阵的条件数 cond(C),若条件数过大(> 100),说明传感器结构设计存在严重耦合或标定加载方式不合理。

案例拆解:某协作机器人末端安装六维力传感器,量程 200N/10Nm。初始标定后,发现 Fx 方向加载 50N 时,Mz 通道输出达到 2.5Nm(耦合误差 25%)。经排查,原因是标定加载点偏离传感器中心 50mm,产生了附加力矩。重新设计加载工装,使加载力通过传感器测量中心后,耦合误差降至 0.8% FS。此案例说明:标定工装的机械精度与加载点位置对标定质量至关重要。

3.2.3 温度补偿与在线标定

温度变化会引起应变片灵敏度和弹性体弹性模量变化。常见做法是在传感器内部集成温度传感器,建立温度-零点/灵敏度补偿曲线。对于高精度应用,可在机器人开机时执行“空载自动零点校准”,以消除长期漂移。

3.3 力信号滤波:低通与卡尔曼滤波

3.3.1 噪声来源与滤波需求

力传感器信号中的噪声主要来自:

  • 电气噪声:ADC 量化噪声、电源纹波、电磁干扰;
  • 机械振动:机器人运动时关节振动通过结构传递到传感器;
  • 谐振噪声:传感器自身固有频率(通常 200Hz~1kHz)被激励。

柔顺控制中,力信号既需要足够平滑以避免控制抖动,又需要足够带宽以感知快速接触变化。滤波设计需要在噪声抑制与相位延迟之间取得平衡。

3.3.2 低通滤波器设计

最常用的是 Butterworth 低通滤波器,因其在通带内具有最大平坦幅度响应。二阶 Butterworth 低通的传递函数为:

H(s) = ω₀² / (s² + 1.414·ω₀·s + ω₀²)

其中 ω₀ = 2π·f₀ 为截止角频率。离散化可采用双线性变换(Tustin 法)。工程经验:

  • 截止频率 f₀ 通常设为控制带宽的 3~5 倍。若阻抗控制带宽为 10Hz,则 f₀ 取 30~50Hz;
  • 阶数不宜超过 4 阶,否则相位延迟过大;
  • 可使用零相位滤波(filtfilt)用于离线分析,但实时控制中无法使用。

3.3.3 卡尔曼滤波在力信号处理中的应用

卡尔曼滤波能够融合力传感器测量值与机器人运动状态(加速度、关节力矩)进行最优估计。其优势在于:

  • 可同时估计力信号及其变化率(导数);
  • 能利用机器人动力学模型作为过程模型,提高信噪比;
  • 可处理非平稳噪声。

一个简化的力估计卡尔曼模型如下:

状态向量: x = [F, dF/dt]ᵀ
过程模型: xₖ = A·xₖ₋₁ + w,  A = [[1, Δt], [0, 1]]
测量模型: zₖ = H·xₖ + v,    H = [1, 0]

其中过程噪声协方差 Q 和测量噪声协方差 R 需要根据实际信号调试。Q 越大表示信任运动模型越多,R 越大表示信任传感器测量越多。

常见误区:卡尔曼滤波并非万能。若机器人动力学模型不准确(如未建模摩擦力、参数误差),过程模型会引入偏差,导致滤波后的力信号出现“虚假力”。此时应增大 R 值,让滤波器更信任传感器测量。

3.3.4 滤波参数调试清单

参数调试方法典型值
低通截止频率扫频激励,观察幅值衰减 -3dB 点30~80Hz
滤波器阶数阶数越高衰减越快,但延迟增大2~4 阶
卡尔曼 Q增大 Q 使估计更平滑,但响应变慢1e-4 ~ 1e-2
卡尔曼 R根据传感器噪声方差确定0.01 ~ 1.0

3.4 重力补偿与惯性补偿

3.4.1 重力补偿原理

当传感器安装在机器人末端时,其测量值包含工具(或负载)的重力分量。重力在传感器坐标系中的投影随机器人姿态变化而变化。设工具质量为 m,质心在传感器坐标系中的位置为 r_cg = [x_cg, y_cg, z_cg]ᵀ,则重力在传感器坐标系中产生的力/力矩为:

F_gravity = m · R_sensor_to_worldᵀ · [0, 0, -g]ᵀ
M_gravity = r_cg × F_gravity

其中 R_sensor_to_world 为传感器坐标系到世界坐标系的旋转矩阵。因此,重力补偿的关键在于:

  1. 质量 m 的辨识:可通过称重或最小二乘辨识;
  2. 质心位置 r_cg 的辨识:通过多个姿态下的力/力矩测量值反算;
  3. 姿态获取:从机器人正运动学或 IMU 获取实时姿态。

3.4.2 质心辨识方法

在机器人静止状态下,采集 N 个不同姿态下的力/力矩测量值。每个姿态下,测量值满足:

F_meas = F_gravity + F_contact
M_meas = r_cg × F_gravity + M_contact

在无接触力(F_contact = 0)时,利用多个姿态的数据,可以构建线性方程组求解 m 和 r_cg。实际操作中,建议采集 10~20 个姿态,覆盖机器人工作空间的不同方位。

实战案例:某打磨机器人安装六维力传感器与打磨工具,工具质量 3.2kg。初始未做重力补偿时,机器人姿态变化导致力传感器读数波动达 ±15N,严重干扰接触力控制。通过以下步骤完成补偿:
① 在 12 个不同姿态下采集空载力数据;
② 利用最小二乘辨识得到 m = 3.18kg,r_cg = [12.5mm, -3.2mm, 85.4mm];
③ 在控制循环中以 1kHz 频率计算重力补偿值并实时扣除;
④ 补偿后,姿态变化引起的力波动降至 ±0.8N,满足打磨力控制精度要求。
复盘要点:质心辨识精度受传感器噪声影响,可通过增加采样姿态数、多次平均来降低误差;同时需确保辨识过程中机器人处于静止状态,避免惯性力混入。

3.4.3 惯性补偿方法

当机器人末端存在较大加速度时,惯性力会叠加在传感器测量值上。惯性力包括:

  • 平动惯性力:F_inertia = m · a(a 为传感器坐标系下的线加速度);
  • 转动惯性力矩:M_inertia = I · α + ω × (I · ω)(I 为工具惯量张量,α 为角加速度,ω 为角速度);
  • 科氏力:F_coriolis = 2m · ω × v(v 为质心线速度)。

惯性补偿需要获取末端加速度和角速度,通常通过以下方式:

  1. 对机器人关节位置做二阶微分(噪声大,需滤波);
  2. 使用 IMU 直接测量末端线加速度和角速度;
  3. 利用机器人动力学模型前馈计算。

工程中,惯性补偿的精度往往受限于加速度估计的噪声。建议对加速度信号进行低通滤波(截止频率 20~50Hz),并采用前馈-反馈结合的方式:前馈补偿大惯性力,反馈修正残余误差。

3.4.4 重力/惯性补偿的工程注意事项

风险提示:重力补偿与惯性补偿不能完全分离。在高速运动场景下,重力补偿使用的姿态信号与惯性补偿使用的加速度信号存在耦合。若姿态解算延迟较大(如 > 10ms),会导致补偿力出现相位滞后,反而引入新的干扰。建议使用机器人控制器内部的实时姿态(延迟 < 2ms)而非外部 IMU 数据。

此外,工具更换后必须重新辨识质量与质心参数。对于自动换枪盘(Tool Changer)应用,应在每次换枪后执行快速辨识流程(约 2~3 秒),以保证补偿参数与实际工具匹配。

3.5 信号处理链路综合调试与验证

3.5.1 调试流程

  1. 静态验证:机器人静止于某一姿态,观察力信号噪声峰峰值,应小于传感器分辨率的 3~5 倍;
  2. 姿态扫描验证:机器人缓慢运动遍历多个姿态,验证重力补偿后的残余力波动;
  3. 动态验证:机器人执行典型运动轨迹(如正弦摆动),验证惯性补偿效果;
  4. 接触验证:机器人末端接触刚性环境,检查力响应时间与超调量。

3.5.2 性能评估指标

指标计算公式合格标准
零点漂移|F_meas - F_true| 在零力状态< 0.5% FS
重力补偿残余max|F_meas| 在无接触、姿态变化时< 1% FS
力响应延迟阶跃力从 10% 到 90% 的时间< 20ms
信噪比20·log10(信号有效值/噪声有效值)> 40dB

通过上述完整的信号处理链路,机器人柔顺控制系统能够获得高质量的外力估计,为阻抗/导纳控制提供可靠的反馈基础。在实际工程中,建议将标定参数、滤波参数、补偿参数统一管理,并在每次系统启动时执行自动校验流程,确保长期运行稳定性。