力传感器选型与标定:六维力传感器原理、选型参数、坐标系标定与重力补偿
力传感器是柔顺力控的「眼睛」。没有它,你做的阻抗控制、力位混合全是瞎猜。我见过不少团队,算法调得天花乱坠,结果传感器噪声大、温漂严重,一上机就崩。说白了,传感器没选对,后面全是白费功夫。
这一章,咱们就聊聊六维力传感器的原理、怎么选型、坐标系怎么标定,以及重力补偿怎么做。全是实战经验,不扯虚的。
六维力传感器的工作原理
六维力传感器,顾名思义,能同时测量三个方向的力(Fx, Fy, Fz)和三个方向的力矩(Mx, My, Mz)。它内部通常有多个应变片,贴在弹性体上。当外力作用时,弹性体变形,应变片电阻变化,通过惠斯通电桥转换成电压信号。
市面上主流的有两种结构:
- 十字梁式:结构简单,刚度高,抗过载能力强。我最早做打磨项目时用的就是这种,皮实耐造。
- 三梁式/多梁式:灵敏度更高,串扰更小,但加工难度大,价格也贵。精密装配场景比较常见。
传感器内部会做一次解耦矩阵运算,把六个通道的原始电压值映射成力和力矩。这个矩阵出厂时会给,但说实话,我建议你到手后自己重新标定一遍——尤其是用了几年之后,温漂和机械疲劳会让它偏离不少。
核心要点:六维力传感器的本质是一个「弹性体 + 应变片 + 解耦算法」的组合。选型时别只看量程,串扰和温漂才是隐藏的坑。
选型参数:别只看量程
很多工程师选传感器,上来就问「最大能测多少牛」。这不对。我列几个关键参数,你照着这个表去选,基本不会翻车。
| 参数 | 说明 | 我的建议 |
|---|---|---|
| 量程(F/M) | 最大可测力和力矩 | 按实际负载的1.5~2倍选,别卡太死 |
| 串扰(Cross-talk) | 一个方向受力时,其他方向的输出误差 | 低于2%FS才算合格,我见过5%的,根本没法用 |
| 分辨率 | 能感知的最小力变化 | 精密装配要0.01N级别,打磨0.1N就够 |
| 温漂 | 温度变化引起的零点偏移 | 0.05%FS/℃以下,否则夏天和冬天数据对不上 |
| 采样率 | 数据输出频率 | 力控至少1kHz,低于500Hz会感觉「肉」 |
| 过载能力 | 允许的最大瞬时负载 | 至少300%,机器人撞一下可不是闹着玩的 |
实战技巧:选型时,把传感器装在机器人末端,然后手动推一下法兰,感受一下有没有「虚位」。有些便宜货机械刚度不够,力还没测准,结构先变形了。
坐标系标定:传感器坐标系与工具坐标系的统一
传感器装上去之后,它的坐标系和机器人末端法兰坐标系通常不重合。你需要做一个标定,把传感器数据转换到工具坐标系下。否则,你测到的力是歪的,控制也是歪的。
标定方法其实不复杂:
- 确定安装偏移:测量传感器相对于法兰的平移量(dx, dy, dz)和旋转量(Rx, Ry, Rz)。
- 构建变换矩阵:用齐次变换矩阵 T_sensor_to_flange 表示这个偏移。
- 数据转换:传感器输出的力和力矩,通过这个矩阵变换到法兰坐标系下。
公式长这样:
F_flange = R * F_sensor
M_flange = R * M_sensor + t × (R * F_sensor)
其中 R 是旋转矩阵,t 是平移向量。注意那个叉乘项——力矩变换必须考虑力臂,很多人漏掉这一步,结果力矩数据全是错的。
避坑指南:我曾经在一个协作机器人项目上,标定完发现力矩数据总是偏大。查了两天,最后发现是安装法兰的加工公差导致传感器歪了0.5度。别小看这0.5度,在长力臂下能差出10%以上。所以,标定完一定要做一次验证:挂一个已知重量的砝码,看读数对不对。
重力补偿:让传感器「忘记」自重
传感器装在机器人末端,它自己就有重量,再加上夹爪、工件,这些重力分量会叠加在读数上。如果不做补偿,你测到的力是「外力 + 重力」,根本没法用。
重力补偿的核心思路:在无外力状态下,采集不同姿态下的传感器数据,拟合出负载的质量和质心位置,然后实时减去重力分量。
具体步骤:
- 空载标定:机器人不带工件,只带传感器和夹爪。让机器人走十几个不同的姿态,记录每个姿态下的传感器读数和机器人关节角度。
- 计算负载参数:通过最小二乘法,拟合出负载的质量 m 和质心位置 (cx, cy, cz)。
- 实时补偿:运行时,根据当前机器人姿态,计算重力在传感器坐标系下的分量,然后从读数中减去。
补偿公式:
F_gravity = R_base_to_sensor * [0, 0, -m*g]^T
M_gravity = r_com × F_gravity
F_external = F_raw - F_gravity
M_external = M_raw - M_gravity
其中 r_com 是质心在传感器坐标系下的位置向量。
我的习惯:标定时姿态要覆盖整个工作空间,尤其是极端姿态。我见过有人只标了5个点,结果机器人转到某个角度时,补偿误差突然变大。至少标20个点,均匀分布。
知识体系总览
下面这张图,把力传感器从原理到应用的核心链路串起来了。你可以把它当作本章的「地图」。
实战中的几个坑
最后,分享几个我踩过的坑,你遇到了能少走弯路。
- 温漂问题:传感器刚开机和运行半小时后的零点可能差很多。我习惯开机后先让机器人空跑5分钟,等传感器温度稳定了再标定零点。
- 线缆干扰:传感器线缆如果跟着机器人一起扭动,会引入额外的力。用线缆固定架,或者选带滑环的传感器。
- 安装面刚度:传感器安装面如果太软,受力时会产生额外变形,导致读数偏大。用钢制转接板,别用铝的。
- 重力补偿更新:换夹爪或工件后,一定要重新做重力补偿。我见过有人偷懒没做,结果力控精度直接掉了一个数量级。
重要提醒:重力补偿不是一劳永逸的。传感器自身温漂、机械磨损、负载变化,都会让补偿参数慢慢失效。建议每周做一次快速验证,每月做一次完整标定。