ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

六维力传感器校准与实战指南:从物理原理到力控排障

六维力传感器校准与实战指南:从物理原理到力控排障 六维力传感器第一次出现在我工位上的时候我以为这就是个稍微高级点的称重传感器直到我把一个200克的工件放在它的Z轴上看到Fx、Fy甚至Mz也跟着一起跳我才意识到这东西没我想的那么简单。后来做机器人恒力打磨项目为了把传感器数据从“能读出来”变成“能用得上”我花了不少时间在校准、安装和排障上面。这篇文章就把这条路重新走一遍从物理原理讲清楚六个分量到底在测什么到校准矩阵怎么标定再到日常使用中的滤波、温漂和典型故障排查按照我从踩坑到理顺的真实顺序来写。无论你准备把六维力传感器接到机器人末端做力控还是买来放在试验台上做测量这篇内容应该能帮你少走几段弯路。1. 六维力传感器到底在测什么六个分量的物理含义与信号来源1.1 六个通道分别是什么工程上什么时候会用到六维力传感器顾名思义一次能测量三维空间的完整力信息三个正交方向的力分量Fx、Fy、Fz以及绕这三个轴的力矩分量Mx、My、Mz。用中国机器人行业的习惯说法就是“三力三矩”。这些分量在工程里都是实实在在的需求Fz最常见打磨、压装、装配时主要靠它判断接触力大小。Fx和Fy用于判断侧向摩擦力、拖动示教时的推力方向。Mx和My是最有用的力矩分量。机器人末端带着长工具时工具自重会在Mx、My上产生明显读数通过这个值可以推算工具重心位置和姿态变化力控算法也靠它来判断接触姿态是否偏斜。Mz则是拧螺丝、旋转插拔场景中的核心反馈量。我见过不少第一次用六维力传感器的人只盯着Fz看其他通道的数值变化完全不在意。实际上六个通道是耦合的整体只看单轴数据会在力控调试时错过非常重要的故障线索。1.2 传感器内部是怎么把力变成数字的目前工业现场最主流的六维力传感器仍然是应变式方案其内部结构可以理解为三个层次。第一层是弹性体。一整块金属通常是高强度铝合金或不锈钢被加工成特定的结构形式常见的有十字梁结构、柱式结构和并联双梁结构。当外力作用在传感器上时弹性体会发生微米级的形变。第二层是应变片。弹性体上按特定位置粘贴着多组电阻应变片。当弹性体形变时应变片也跟着拉长或压缩它的电阻值就会发生变化。每组应变片按惠斯通电桥方式连接将微小的电阻变化转换为电压变化。第三层是信号调理电路。这部分的模拟电压信号非常微小一般需要经过放大、滤波后再由ADC转换为数字信号。传感器内部如果有处理器会直接输出经过标定矩阵换算后的物理量也就是我们最终读到的力和力矩数值。这里有一个很重要的认知你读到的Fx、Fy这些数值并不是哪个应变片直接测量出来的而是传感器厂家事先通过标定实验得到的矩阵把原始电压信号换算出来的结果。理解这一点就能明白为什么传感器使用一段时间后数值会变也就能理解为什么校准不只是开机调零那么简单。1.3 六个分量之间天然存在耦合校准就是为了处理它所谓“耦合”就是当你只往某个方向施加力时其他方向的通道也会产生读数。例如竖直向下压传感器顶面时理论上应该只有Fz有读数但实际上Fx、Mx这些通道都会出现或多或少的输出。耦合的根本原因有两个。第一弹性体的应变片粘贴位置不可能绝对理想机械结构加工和贴片都存在误差某方向的形变很难只被该方向的应变片唯一检测。第二实际加载时力作用点也不可能完全落在坐标原点力臂的存在必然产生附加力矩。耦合问题不可能靠传感器硬件完全消除只能靠校准数据在软件层面补偿。所以校准的实质就是建立“六个输出分量”和“六维实际载荷”之间的映射关系。这个映射关系在理想情况下是一个对角矩阵但在现实中是一个满矩阵对角线附近的数值最大其他位置就是耦合系数。2. 选型与安装阶段就会埋下的坑校准前必须确认的硬条件很多人拿到传感器第一件事就是下载驱动、读数据等到数据不对了才开始回头看安装这是本末倒置。我踩过几次坑之后总结了一条经验传感器校准好不好不取决于校准手法取决于传感器怎么装的。2.1 量程选择的实际计算方法六维力传感器每个通道都有额定容量比如常见的“Fz 500NFx/Fy 500NMx/My/Mz 20Nm”这意味着每个通道不能超载。选型时不仅要看静态力还要考虑动态冲击和惯性力。以一个简单的打磨场景为例末端工具加工件总重2kg法兰到工件接触点的力臂是0.3m那么工具重力在Mx或My上产生的力矩为重力 2×9.8 19.6N力矩 19.6×0.3 5.88Nm如果标称力矩是10Nm看起来有近40%的余量但打磨过程中接触点的反作用力会产生额外的力矩加上机器人加减速的冲击5.88Nm的静态值很可能会瞬时冲到8Nm以上。所以我一般建议按最恶劣工况计算留出不低于1.5倍的安全系数。比如静态计算值是5.88Nm就选一个额定力矩至少10Nm的型号有余力的情况选20Nm更稳。2.2 安装刚性比想象中更容易出问题的环节六维力传感器对安装刚性的敏感程度远超普通传感器原因是它测的是微应变任何连接面的松动、变形都会直接叠加到读数上。安装时必须注意三个细节第一法兰接触面必须平整干净。法兰面如果有毛刺、油漆或异物螺栓拧紧后传感器壳体就会处于一种“内应力扭曲”的状态这种应力会表现在零偏上而且每次都不同校准调零后也无法彻底消除。第二螺栓等级和预紧力不能随意。传感器法兰上的安装孔位一般推荐使用12.9级高强度螺栓用扭矩扳手按厂家给出的预紧力矩分多次对角拧紧。不要图省事用普通8.8级螺栓更不要用电动扳手一下打到头。第三传感器与工具之间要尽量避免增加柔性过渡结构。有些人为了方便接线在传感器和夹具之间加了一块亚克力板或3D打印件这在静态测量里也许能凑合在动态力控里就是一场灾难。3D打印件的蠕变和弹性变形会让传感器读数漂移得面目全非。我这里给你一个我常用的检查方法传感器安装完成后不施加外力观察各通道读数是否稳定。如果某个通道数值缓慢漂移先怀疑安装刚性不要急着做软件滤波。2.3 电源、接地和通讯准备电气层面的准备同样会影响校准效果。六维力传感器的模拟输出级对供电质量比较敏感一个纹波明显的开关电源会让原始信号叠加周期性干扰校准完的矩阵再准也救不回来。我实际项目里的经验是使用独立的线性电源或高品质低纹波开关电源给传感器供电。传感器信号线要远离伺服电机动力线和变频器输出线至少保持20cm以上的间距。线缆屏蔽层要在控制器端单点接地不要两端都接避免形成地环路。如果传感器走以太网或RS485通信要注意控制器端的通信参数和传感器出厂默认参数必须一一对应。这些基础问题看起来和“校准”没关系但它们恰恰是导致传感器永远调不好的最常见原因。3. 校准的核心原理零漂、灵敏度与轴间耦合的数学模型这一节是全文的“原理核心”我尽量用工程语言把校准这东西讲透你看完就会明白厂家出厂校准报告上那些数字到底是什么意思自己动手校准时又该怎么下手。3.1 先建立统一坐标系校准的第一步是约定坐标系。六维力传感器一般以安装法兰面的中心为原点X、Y、Z方向按传感器壳体上的标记为准。同一颗传感器装在不同的设备上坐标系相对于机器人基坐标的方向完全可能不同所以在校准之前先用手册确认传感器的坐标轴方向再决定砝码加载的方向。这一步看起来不起眼但实际项目建设两个实例方接上去直接沿用厂家给的矩阵但安装角度转了90度导致力控方向反了。之后即使单独找传感器本身数据不受损。3.2 传感器的输入输出模型标定矩阵是怎么回事先写一个简单的数学模型。设传感器六个硬件通道的原始输出为向量U六维实际作用在传感器上的六维力/力矩为向量F六维。理想情况下两者是线性关系U C × F这里C是一个6×6的标定矩阵C的每个元素表示某个通道对某个载荷分量的灵敏度。严格来说这就是传感器的“传递函数”。校准的任务就是通过一系列已知载荷F校准实验中的砝码重力、力臂长度等都是已知量同时记录传感器的原始输出U然后反解出矩阵C。用矩阵的话说把多次实验的U和F并列成矩阵然后做伪逆运算C U × pinv(F)得到C的过程就是校准。厂家出厂时做过的就是这个事只不过他们用的是更严谨的多点加载和更高精度的加载设备。需要特别说明的是矩阵C的非对角线元素就是通道之间的耦合系数。如果某一个耦合系数很大比如Fz方向的力在Mx通道上产生了显著输出说明传感器的结构设计存在较明显的交叉敏感必须在后续计算中通过矩阵求逆来补偿。3.3 零漂校准为什么不能只依靠软件清零零漂的概念很直白即无载荷时传感器读数不为零。零漂来源主要有三个应变片桥路的不完全对称导致初始电压非零传感器安装时法兰连接应力引起的偏置温度变化导致桥路各臂电阻变化率不一致。工程上有人图省事直接在控制器里把当前读数当成“零点”减去这样做在实验台上可能管用但在实际工况里非常危险。因为硬件零漂会随温度、随负载历史而缓慢变化如果你在某个带载荷状态下做了软件清零之后传感器的所有数据都会带一个错误偏置。正确的做法是在传感器自由状态、无外力、无安装应力的情况下采集一段时间的原始输出取平均值作为零点然后将这个零点存入传感器或控制器。每次正式测量前也建议先做一次“空载检查”确认零点没有发生明显偏移。3.4 灵敏度校准单点加载和多点线性拟合所谓灵敏度就是每个通道输出值对对应载荷的变化率。校准灵敏度通常采用分级加载法比如Fz方向依次加载传感器满量程的20%、40%、60%、80%、100%记录每个载荷点下的输出值。理想情况下得到一条过原点的直线斜率就是灵敏度。现实中由于弹性体的非线性、应变片的非线性等因素曲线略微弯曲。这时候如果采用单点校准误差会比较大采用多点校准并做最小二乘线性拟合可以把非线性误差分散到整个量程里。我在实际操作中至少取5个载荷点再多如7点或9点更好。3.5 轴间耦合最容易忽略却直接影响精度的项轴间耦合标定听起来高深操作上其实并不复杂。你在加载Fz方向的力时同时记录所有六个通道的输出。理论上只有Fz通道有反应但实际上其他通道也会有值。把这些值记录下来除以Fz的加载值就得到了矩阵C中对应列的耦合系数。耦合标定的质量直接决定了传感器测量多方向合力的精度。比如你拿传感器做斜向力测量期望的测量误差会因耦合补偿的好坏产生天壤之别。4. 手把手校准操作流程从初始化到逐轴加载验证这一节走完整流程每一步我会写清楚为什么这么做而不只是告诉你“怎么做”。4.1 校准前的现场准备开始校准之前先把以下条件全部确认好传感器已正确安装法兰面清洁、螺栓达到规定扭矩传感器已通电预热至少10分钟让内部桥路温度稳定确认控制器能正常读取传感器的原始输出值不是经过标定处理后的力值准备一组经过校验的砝码尽量使用标准砝码不要用来源不明的铁块准备一根刚性好的加载杆用于施加力矩杆件长度需要精确测量记录当前环境温度温度变化大的环境下需要额外注意。我个人的习惯是先把所有准备工作列成一张检查表逐项打勾确认。因为校准过程很繁琐中间一旦中断前面所有数据可能全部作废。4.2 静态零点标定零点标定是所有标定的基础顺序不能倒。操作步骤传感器完全自由状态不要连接任何工装确认法兰面水平不要让传感器受重力以外的载荷连续采集各通道输出至少1000个样本计算平均值将平均值作为零点存储在控制器中。这里有个细节采集样本时不要只看平均值还要看标准差。如果标准差明显偏大说明环境振动或电磁干扰严重这时候硬做取消零校准后续也不会有好结果。先排查干扰源再回来做零点。4.3 逐轴加载标定力和力矩的施加方法力和力矩的标定方法不同这里分开说。力的标定方法将一个定滑轮安装在校准台架上让砝码通过拉绳对传感器施加水平方向的力这样可以只产生Fx或Fy方向的分力不会因为重力自然方向而引入Fz的叠加。当然更简单的做法是用砝码直接压顶面和垂直加载Fz但刻我在做Fx/Fy校准的时候通常用定滑轮导向法确保力方向与传感器坐标轴一致。以Fz方向为例的加载步骤记录零载荷状态下的六个通道输出在传感器顶面中心放上第一个砝码例如1kg稳定后记录六个通道的输出逐步增加到2kg、3kg、4kg、5kg每个点保持载荷稳定至少3秒再记录到达最大载荷后逐级卸载每个卸载点也记录一次重复上述过程两次观察重复性。力矩的标定方法力矩的施加需要借助力臂杆。将一根刚性杆固定在传感器法兰上已知力臂长度L在杆端悬挂砝码砝码重力G产生的力矩为MG×L。例如力臂杆长度0.4m挂上2kg砝码则力矩M 2×9.8×0.4 7.84Nm。如果要标定Mx就沿Y轴方向加载要标定My就沿X轴方向加载。加力矩时还要注意俯仰角问题力臂杆必须保持水平否则实际施加的力矩值有误差我在实际操作中都是用水平尺确认的。4.4 标定数据的处理得到标定矩阵把加载记录表拿到上位机上做处理。以我常用的Python处理为例数据处理的核心就是伪逆求解import numpy as np # U是原始输出矩阵行数为加载点数量列数为6个通道 # F是实际加载力/力矩矩阵行数与U相同列数为6个分量 # 求解标定矩阵C使得U F C C, residuals, rank, sv np.linalg.lstsq(F, U, rcondNone) print(标定矩阵C) print(C)求解完成后还要做残差分析看看每个加载点拟合得好不好。残差过大说明加载过程中可能出现了砝码没放稳、力臂杆变形等问题需要重新校准。4.5 校准验证用斜向载荷检验整体精度矩阵求出来了不代表校准完毕。验证这一步特别重要我建议用一个独立的验证实验来测试整体精度。具体做法在传感器顶面上固定一个刚性圆盘在圆盘上放一个已知重量的砝码但砝码位置偏离中心一段已知距离。这样Fz和Mx或My同时都有激励。比较传感器实测值读取经过标定矩阵换算后的数据和理论计算值之间的偏差。验证合格的判定标准一般要求相对误差在1%以内测量精度要求高的场景则要求0.5%以内。如果验证误差偏大先检查加载过程有没有问题再检查标定数据处理是否有误不要轻易断定传感器坏了。5. 日常数据使用中的隐含细节滤波、限幅和温漂补偿校准完成并验证通过后传感器就可以投入使用了。但“校准好”和“用好”之间还隔着一层窗户纸这层纸主要是数据处理策略。5.1 滤波策略时域滤波和滑动平均的选择六维力传感器的原始数据即便校准完美也会带有一定的高频噪声。机器人末端力控场景中这些噪声可能来自电机振动、传动机构共振和结构振动。滤波方法选择上我个人的经验是先用滑动平均滤波做预处理窗口大小根据控制周期来定。比如控制周期是2ms滑动平均窗口取5个点相当于10ms的滞后这是力控可以接受的。不要直接用一阶低通滤波器把频带压得很低相位滞后会让力控环路变得迟钝。更进阶的做法是结合机器人运动状态做前馈补偿。比如机器人快速运动时传感器会检测到工具自身的惯性力这个惯量是传感器坐标系下的质量属性矩阵。通过机器人加速度信息做前馈计算可以从传感器读数中扣掉惯性力分量。这个功能我在高速打磨项目里实测过能显著降低误触发率。5.2 限幅和超载保护六维力传感器是精密器件机械过载的损伤往往是不可逆的。很多传感器的许用过载只有额定量的1.5到2倍一旦冲击力超过这个值弹性体可能发生永久变形。软件层面的保护非常重要在上位机里设置每个通道的报警阈值和硬限幅阈值。当读数接近报警阈值时输出警告超过硬限幅时机器人控制程序立刻停止运动。千万不要指望机械限位块能保护传感器很多意外都是在限位块还没来得及起作用时就已经冲击到传感器了。5.3 温漂补偿精度要求高时绕不开的话题应变式六维力传感器的温漂是客观存在的一般规格书中会标明零漂指标比如0.03% FS/°C。这意味着温度变化10°C零点可能漂移满量程的0.3%。对于满量程1000N的传感器那就是3N的零漂——在精密力控场景下这个误差足以影响判断。温漂补偿的实用方法有三种结构上保证传感器在恒温环境中使用这显然只能用在实验室。利用传感器内部的温度传感器信号做一个温度-零点补偿曲线。在使用前自动检测零点偏移。部分传感器支持在线归零在机器人回到固定位置时自动记录当前零点并更新。我目前项目里采用的做法是第三种每次机器人回到Home位且工具处于自由状态时自动采集100个样本更新零点偏移。这个方法不需要额外硬件代码也很简单但效果立竿见影。6. 常见故障排查完整链路从异常读数反推根因这段是很多人关心的“附常见问题排查”。放在全篇最后因为它需要前面所有内容作为背景知识。理解了校准原理和误差来源排障就是在做减法。6.1 排查逻辑的正确打开方式遇到传感器数据异常不要直接怀疑传感器坏了。我总结的排查顺序是先看环境机械结构有没有松动线缆有没有被压到或拉拽供电电压稳不稳定再看原始数据通过厂家软件读取原始AD值看是否饱和、是否跳变。然后看标定信息当前使用的标定矩阵是否和传感器型号匹配安装方向有没有变化最后才怀疑传感器硬件本身。记住这个顺序因为大多数“传感器故障”实际上是“环境故障”或“配置故障”。我处理过几个现场问题最后都发现是线缆破损或地线松动造成的。6.2 故障现象零点漂移特别大可能原因安装应力变化、温度变化、传感器内部应变片老化或脱落。排查链路拆除工装让传感器恢复自由状态对比零点是否恢复正常。如果恢复问题出在安装应力上检查法兰面是否清洁、螺栓扭矩是否均匀。如果不恢复看温度变化记录。如果环境温度比上次校准时变化超过10°C先做温度补偿或重新标定零点。如果温度正常但漂移依然存在用万用表测量传感器的桥路输出电阻和出厂值对比。如果阻值偏差大基本可以判断应变片出现了问题需要返厂维修。6.3 故障现象读数周期性波动或跳变可能原因电磁干扰、连接器接触不良、接地回路。排查链路观察波动频率。如果和某个电机的转速频率一致优先怀疑电机动力线对信号的串扰把传感器线缆移到更远位置。晃动传感器线缆看读数是否明显变化。如果变化检查连接器是否锁紧插针是否氧化。断开控制器到传感器的通讯线用厂家独立软件读取数据如果此时数据稳定问题出在控制器侧的地环路或接地设置。6.4 故障现象校准之后误差依然很大可能原因标定加载方式不正确、力臂测量不精确、传感器坐标轴方向搞混、标定矩阵计算有误。排查链路回看校准数据检查各加载点的残差。如果某一点残差特别大那一点的数据大概率是废的。重新确认力臂长度是0.400m还是0.405m5mm误差在短力臂下会造成1%以上的力矩误差。检查验证实验的计算过程。我之前发现过验证失败是因为忘记了砝码自身重力而错用了质量克数直接当牛顿数来用。6.5 故障现象输出值整体偏小或偏大但线性度正常可能原因供电电压偏差导致灵敏度变化。排查链路应变式传感器的电桥输出和供桥电压成正比如果供电电压比额定电压低了5%输出也会相应低约5%。这一步先确认电源电压再考虑重新校准。多数传感器要求供电稳定在±1%以内电源选型千万别省。6.6 故障排查对照表故障现象优先检查项常见根因处理建议零漂偏大装配应力、温度法兰面不洁、温差大清洁法兰、重新装配、更新零点读数跳变线缆、干扰源连接器接触不良、动力线串扰重新插拔、更换线缆、重新走线校准后误差大加载方式、力臂长度加载方向不对、力臂测量误差重新标定、仔细复核加载记录整体比例偏差供电电压电源电压偏低稳定供电必要时重新标定单通道异常硬件通道应变片故障或电路损坏返厂维修7. 几个我踩过之后想提醒你的实操细节最后这部分不按章节逻辑走只讲几个我在项目里踩过、别人文档里很少写清楚的细节。第一个是关于“重新校准”的时机。很多人认为传感器出厂校准终身有效实际上传感器一旦经历过冲击载荷、温度剧变、拆装更换原来的标定矩阵很可能已经不再准确。我的习惯是传感器每经历一次拆卸重装至少做一次零点校准和验证实验每半年做一次完整校准如果出现碰撞或过载事件立即做一次完整校准。第二个是关于砝码的保管。校准用的砝码必须定期送计量部门校验因为砝码表面磨损、吸附灰尘都会造成质量偏差。一个5kg标准砝码只要锈掉一点点误差就可能超过0.1%对高精度校准来说已经不可忽略。砝码最好放在干燥密封的环境中拿取时戴手套不要用手直接抓。第三个是关于标定数据的备份。传感器厂家的标定矩阵、你自己做的零点和校准数据一定要保存在多个地方。我遇到过控制器更换导致标定文件丢失的情况由于当时没有备份不得不把停机时间用来重新校准整个传感器。从那以后每颗传感器的标定数据我都会同时在控制器、上位机和生产系统的数据库里各存一份并标注好传感器序列号和对应的安装方向。校准和使用六维力传感器说到底是态度问题。传感器数值是精准还是漂移大多数时候不是传感器本身决定的而是使用它的环境和流程决定的。把这些基本功打扎实后续的力控算法才能站在可靠的数据地基上。
返回列表