频率感知分解网络:攻克高频振动下机器人无传感器力矩预测难题
1. 项目概述:从“感知”到“预测”的液压机械臂力控革命
在工业机器人执行打磨、抛光、装配这类需要与环境发生物理接触的任务时,末端执行器与工件之间的力与力矩(Force/Torque,简称F/T)信息,是决定任务成败的“生命线”。传统的做法是在机械臂的“手腕”处安装一个六维力/力矩传感器,直接测量这些交互力。这就像给机器人戴上了一块昂贵且精密的“触觉手表”。然而,这块“手表”在严苛的工业现场——尤其是像挖掘、重型打磨这类振动剧烈、冲击频繁的场景中——显得格外脆弱。其高昂的成本、额外的安装空间、复杂的线缆布局以及对冲击载荷的敏感性,都成为了大规模部署的瓶颈。
于是,“无传感器力矩估计”技术应运而生。其核心思想非常巧妙:既然物理传感器有诸多不便,我们能否利用机器人自身已有的“本体感知”信号——也就是关节编码器反馈的位置、速度,以及驱动器(电机或液压缸)的电流或压力——来“计算”或“推断”出末端的受力情况?这就像一位经验丰富的老师傅,仅凭机床的震动声音和手柄的反馈,就能判断出刀具的切削力是否正常。这项技术的价值不言而喻:它能显著降低系统成本和复杂度,减少故障点,并使得机器人能在传统传感器无法胜任的恶劣环境中稳定工作。
然而,理想很丰满,现实却很骨感。当我们的机械臂从平稳的抓取、缓慢的装配,转向高频振动的打磨作业时,问题就来了。传统的无传感器估计方法,无论是基于精确动力学模型的反解,还是基于数据驱动的回归模型,大多是为处理相对平缓的力信号而设计的。它们就像一台只擅长处理舒缓古典乐的音响,一旦播放起重金属摇滚(即高频、瞬态的冲击力信号),就会严重失真,要么反应迟钝(滞后),要么完全无法捕捉到那些关键的、代表接触瞬态的高频细节。这些高频成分恰恰是判断打磨是否过载、接触是否稳定、表面质量是否达标的关键信息。
我最近深入研读并实践了一项来自前沿学术研究的工作,它提出了一种名为“频率感知分解网络”的框架,专门攻克这个高频振动环境下的力矩预测难题。这项研究没有停留在“此刻受力多少”的静态估计上,而是更进一步,致力于“预测未来短暂时间内力的变化趋势”。这对于实现前瞻性的力控制、提前规避过载或失稳至关重要。本文将结合我个人的工程理解与实践思考,为你彻底拆解这项技术的原理、实现细节以及其中蕴含的宝贵工程经验。
2. 核心思路拆解:为什么“分解”与“预测”是破局关键
面对振动丰富的力矩信号,直接用一个“黑箱”模型去拟合整个复杂的时域波形,效果往往不佳。高频的、看似杂乱无章的振动噪声会严重干扰模型对低频主体趋势的学习。FDN的核心智慧在于“分而治之”与“频率引导”。
2.1 谱分解:给信号做“频谱CT”
FDN的第一步,是对目标力矩信号W进行一次“频谱CT扫描”。它使用一个可微分的非递归低通滤波器,将原始信号分解为两个部分:
- 趋势分量:代表了力/力矩信号中缓慢变化的主体部分,通常与机器人的宏观运动、持续负载相关。例如,在打磨过程中,随着进给深度的增加,法向力会呈现一个缓慢上升的趋势。
- 残差分分量:即原始信号减去趋势分量后剩下的部分。这部分主要包含了高频的振动、冲击噪声以及一些瞬态响应。在打磨场景中,它对应着砂轮与工件表面微观不平度碰撞产生的瞬时力脉冲。
数学上,这个分解过程在频域完成。设定一个截止频率fc(例如1Hz),低于fc的成分被归入趋势,高于fc的成分则构成残差。这样做的好处是,模型可以分别学习两种特性迥异的分量,避免了“一锅炖”带来的相互干扰。
实操心得:截止频率
fc的选择是第一个关键调参点。它需要根据具体任务的动力学特性来确定。一个实用的方法是分析一段典型任务数据的功率谱密度图,观察能量在频域上的分布。趋势与残差的分界点,通常位于信号能量从集中变为分散的过渡区域。在本文的打磨案例中,通过频谱分析发现1Hz以下能量集中,故设fc=1Hz。
2.2 非对称预测头:对症下药的处理策略
分解之后,FDN为趋势和残差设计了截然不同的预测策略,我称之为“非对称预测头”。
- 趋势头:采用确定性回归。因为趋势分量变化缓慢、规律性强,直接用线性层进行点对点的回归预测,稳定且高效。
- 残差头:采用概率性建模。高频残差具有更强的随机性和不确定性。FDN不是直接预测一个具体的残差值序列,而是预测一个高斯分布的参数(均值和方差)。在推理时,从这个分布中进行采样来生成残差序列。这相当于承认“我无法精确知道下一秒的高频振动具体是多少,但我知道它大概率会落在某个范围内”。这种方法为模型提供了表达不确定性的能力,对高频噪声的拟合更加鲁棒。
2.3 频率感知:给模型戴上“频谱眼镜”
这是FDN的点睛之笔。既然我们已经从频域视角分解了问题,何不让模型自己也学会用这个视角去看待数据?
- 输入增强:在数据送入编码器之前,先经过一个“可学习的频率增强滤波器”。这个滤波器本质上是一组可调参数的频域掩码,模型通过训练学会应该增强或抑制输入信号中的哪些频率成分,以更好地服务于后续的力矩预测任务。这相当于让模型主动聚焦于与任务相关的频带。
- 输出约束:在模型输出趋势和残差的预测后,并非直接使用,而是再次用我们预设的频带先验知识(低通滤波用于趋势,带通滤波用于残差)对其进行滤波处理,然后才用于计算损失。这个过程强制模型的输出必须符合我们对趋势(低频)和残差(特定高频带)的频谱定义,起到了正则化的作用,防止模型“胡思乱想”。
2.4 从“估计”到“预测”:引入时间序列建模
传统方法多是“瞬时估计”,即根据当前时刻的状态[qt, vt, at, ut]估计当前力矩Wt。FDN将其扩展为“短期预测”,即根据过去L个时刻的历史状态序列[x_{t-L+1}, ..., x_t],预测未来T个时刻的力矩序列[W_{t+1}, ..., W_{t+T}]。 这个转变意义重大。它利用了循环依赖关系:当前的力会影响机器人下一刻的状态,而下一刻的状态又会产生新的力。通过建模这段历史,模型能够捕捉到动力学变化的惯性,实现一定程度的“预见”,这对于补偿信号处理、通信等环节带来的固有延迟至关重要。
2.5 大规模预训练与迁移学习:站在巨人的肩膀上
单个机器人、单一任务收集的数据总是有限的。FDN借鉴了CV和NLP领域的成功经验,引入迁移学习。研究者首先在一个大规模开源机器人数据集(如RH20T)上对模型进行“预训练”。这个数据集包含了多种机器人、多种接触式操作任务的“本体感知-力矩”配对数据。 预训练的目标是让模型学习一个通用的“从本体感知到力矩”的表示能力。然后,将这个预训练好的模型(主要是处理关节位置、速度、加速度的编码器)迁移到我们的目标任务——液压机械臂打磨上,进行“微调”。这相当于让模型先在“模拟考”中积累了丰富的经验,再针对“真题”进行专项突破,能显著提升在小数据集上的性能和泛化能力。
3. 网络架构与实现细节深度解析
FDN的整体架构是一个精心设计的编码器-预测器 pipeline。下面我们拆开每一个模块,看看它们是如何协作的。
3.1 输入表征与模态特定编码
模型的输入不是单一时刻的状态,而是一个长度为L的历史窗口,包含5种模态的信息:x_t = [Δq_t, v_t, a_t, u_t, q0^e]
Δq_t = q_t - q0^e: 相对关节位置(减去任务片段初始位置q0^e),这有助于消除不同起始位形带来的偏差,让模型更关注运动本身。v_t, a_t: 关节速度和加速度(通常由位置信号数值微分得到)。u_t: 驱动信号。对于电机是电流或扭矩指令,对于液压系统是关节两侧的压差Δp。q0^e: 任务片段的初始关节位置,作为一个静态的上下文信息。
对于前4个时变模态[Δq, v, a, u],FDN首先对它们应用可学习的频率增强滤波,然后使用模态特定的PatchTST编码器进行处理。PatchTST是一种将时间序列切成“补丁”再进行Transformer编码的先进方法,能有效捕获长期依赖。每个模态独立编码后,得到各自的隐层表示[z_Δq, z_v, z_a, z_u]。 对于静态的初始位置q0^e,则用一个简单的多层感知机编码为z_q0,然后将其广播并加到z_Δq上,以此将初始位形信息注入到时变的位置编码中。最后,将所有模态的表示在通道维度拼接,并通过一个线性混合层映射到与6维力矩对应的通道数,得到最终的序列表示z。
3.2 可逆实例归一化的巧妙适配
PatchTST原论文提出了可逆实例归一化技术,用于稳定训练。它先对每个输入通道进行归一化,训练后再反归一化得到输出。但原方法假设输入输出通道相同。在FDN中,输入是多种本体感知信号,输出是力矩,通道数并不一致。 FDN的解决方案是:仅对时变的本体感知输入[Δq, v, a, u]进行RevIN归一化,在通过编码器得到隐层表示[z_Δq, z_v, z_a, z_u]后,立即对它们施加反归一化。这样,归一化的好处被保留在了特征提取阶段,又不会影响后续到不同维度力矩的映射。
3.3 预测头与训练损失
得到最终的序列表示z后,将其展平,分别送入两个预测头:
- 趋势头:一个线性层,输出未来T步的6维趋势力矩序列
Ŵ_trend。 - 残差头:两个平行的线性层,分别输出未来T步的6维均值序列
μ_res和对数方差序列v_res。
训练时,损失函数也针对两部分分别设计:
- 趋势损失:预测趋势与真实趋势之间的均方误差。
- 残差损失:真实残差在预测的高斯分布下的负对数似然。
总损失是二者之和。这种设计迫使模型同时学好平滑的趋势和不确定的高频残差。
3.4 预训练与迁移的具体策略
在预训练阶段,为了消除上游数据集(电机驱动)与下游任务(液压驱动)在驱动模态上的巨大差异,研究者采用了一个巧妙的掩码策略:将输入中的驱动信号u以及其对应的编码器输入全部置零,并冻结驱动信号编码器Enc_u的参数。这样,预训练模型只能从关节运动信息[q, v, a]中学习力矩的表示,剥离了驱动方式的影响,学到的知识更具通用性。 迁移到下游任务时,加载预训练好的Enc_Δq, Enc_v, Enc_a, Enc_q0及其嵌入层参数,其余部分随机初始化。训练分两步走:先线性探测,即冻结预训练参数,只训练新初始化的预测头等层;再端到端微调,放开所有参数一起训练。这是一种稳定且有效的迁移学习策略。
4. 实验验证与结果分析
理论再优美,也需要实验的检验。研究者在真实的6自由度液压机械臂打磨挖掘任务上进行了验证。
4.1 数据采集与处理流程
实验平台是一个配备砂轮末端执行器的液压机械臂,在石膏块上进行打磨挖掘作业。数据采集包括:
- 本体感知:6个关节的角度
q(100Hz)。 - 驱动信号:6个关节的液压压差
Δp(100Hz)。 - 真值标签:安装在腕部的六维力/力矩传感器读数
W(100Hz,仅用于训练和评估)。
注意事项:力矩传感器的数据在这里仅作为“教师信号”用于监督训练,在最终的部署系统中是不需要的,实现了真正的“无传感器”。但采集高质量、同步的传感器数据对于构建训练集至关重要。
数据处理是关键一环,直接影响到模型性能:
- 信号去噪:对原始的
q和Δp进行低通滤波(截止频率f_c^dn=15Hz),以消除高频测量噪声。 - 微分估计:从去噪后的
q使用因果Savitzky-Golay滤波器计算v和a。必须使用因果滤波器以保证在线应用时的可行性。 - 坐标变换与同步:将力矩从传感器坐标系转换到机器人基座坐标系,并与其他信号时间同步。
- 偏移消除:针对每个任务片段,计算初始非接触阶段的力矩均值,并将其从整个片段的力矩数据中减去,以消除传感器零漂。
- 数据集划分:按任务片段划分训练集和测试集,并考虑不同作业条件(“软”块快速打磨和“硬”块慢速打磨)的数据分布差异,确保测试集具有代表性。
4.2 基线模型与评价指标
为了全面评估FDN,研究者将其与多类基线模型对比:
- 经典数据驱动估计器:改进版的MINN、RBF神经网络、高斯过程回归。这些是“瞬时估计”模型。
- 先进时间序列预测器:Temporal Fusion Transformer, PatchTST。这些是“序列预测”模型,与FDN任务一致。
- 消融实验模型:为了验证FDN各个组件的有效性,还测试了去掉谱分解、去掉频率感知层、去掉预训练等简化版本。
评价指标不仅看整体精度,更重点关注不同频带的性能:
- 整体均方根误差:衡量所有频率成分的整体预测误差。
- 低频带RMSE:衡量趋势分量的预测精度(0-1Hz)。
- 高频带RMSE:衡量残差分量的预测精度(1-15Hz)。这是本工作的核心挑战。
4.3 核心结果与发现
实验结果表明,FDN在应对高频振动丰富的力矩预测任务上具有显著优势:
- 高频预测领先:在最具挑战性的高频带(1-15Hz),FDN显著优于所有基线模型。这证明了谱分解与概率性残差建模策略对于捕捉瞬态、不确定的高频动力学是有效的。
- 低频预测保持竞争力:在低频带,FDN与最好的基线模型性能相当,说明其并未因专注于高频而牺牲对主体趋势的捕捉能力。
- 迁移学习带来增益:与从零开始训练相比,使用大规模数据集预训练后再微调的FDN,在所有指标上均有进一步提升。这证实了“预训练-微调”范式在机器人力矩估计领域的巨大潜力。
- 消融实验验证设计:去掉谱分解或频率感知层,模型性能,尤其是高频性能,会出现明显下降。这定量地证明了每个核心组件的必要性。
5. 工程实现中的挑战、技巧与未来展望
将FDN这样的研究模型落地到实际工程中,还会遇到一系列论文中可能未详尽阐述的挑战。
5.1 实操难点与解决方案
- 实时性保障:FDN涉及FFT/IFFT、Transformer等计算,可能无法在低算力控制器上达到100Hz或更高的实时循环。解决方案:a) 模型轻量化,如使用更小的Transformer维度、减少层数;b) 使用TensorRT、ONNX Runtime等推理引擎优化;c) 考虑在工控机或边缘计算盒上运行,与实时控制器通过高速总线通信。
- 数据质量与同步:模型的性能极度依赖输入数据的质量。关节速度/加速度的数值微分会放大噪声。解决方案:a) 优先使用驱动器反馈的实时速度(如果可用且准确);b) 精心设计和调试因果滤波器,在平滑噪声和保持相位特性间取得平衡;c) 确保所有传感器数据的时间戳严格同步,可使用硬件触发或高精度软件同步方案。
- 超参数调优:截止频率
fc、历史窗口长度L、预测步长T、网络深度/宽度等对性能影响巨大。解决方案:a)fc通过分析任务数据的频谱确定;b)L和T需要权衡:L应足够长以包含相关的动力学历史,T应匹配控制系统的延迟补偿需求;c) 网络结构可以通过在验证集上进行小规模架构搜索来确定。 - 领域适配:预训练数据集(如RH20T)与你的目标机器人(动力学、几何、驱动方式)可能存在差异。解决方案:a) 采用文中所述的掩码策略,聚焦于运动学到力矩的通用映射;b) 如果条件允许,收集一个包含多种简单接触任务的小型“目标领域”数据集,进行多任务预训练,再迁移到复杂任务,效果可能更好。
5.2 模型部署与集成建议
- 离线验证先行:在将模型嵌入实时控制回路前,必须进行充分的离线测试。使用录制好的数据集,模拟在线运行,全面评估其预测精度、延迟和稳定性。
- 设计安全冗余:无传感器估计绝不能作为唯一的安全依据。必须与基于关节电流/压力阈值的过载保护、基于位置/速度的奇异性检测等传统安全逻辑并联使用。当模型预测的力矩超过安全阈值时,应触发降速或停止。
- 在线自适应:可以考虑设计一个轻量级的在线更新机制。例如,当机器人重复执行相似轨迹时,可以将实际接触结果(如果可通过其他间接方式感知)与预测值的误差缓存起来,定期对模型最后一层进行微调,以补偿系统随时间的缓慢变化(如工具磨损、负载变化)。
5.3 技术延伸与未来方向
FDN为我们打开了一扇门,其思想可以延伸到更多场景:
- 多模态融合:除了本体感知,是否可以融入关节振动传感器、声音甚至视觉信息,进一步提升在极端嘈杂环境或未知表面下的预测鲁棒性?
- 模型预测控制:既然能预测未来一段时间的力矩,自然可以与模型预测控制器结合,实现真正意义上的“预见性”力控,在接触发生前就调整好姿态和速度。
- 数字孪生与仿真训练:在高保真的物理仿真环境中生成海量、多样化的“本体感知-力矩”数据,用于预训练模型,可以大幅降低对真实机器人数据采集的依赖和成本。
从我个人的工程视角来看,FDN代表了一种非常务实且强大的技术路线:它没有追求用一个“万能”的复杂模型解决所有问题,而是通过巧妙的信号分解和频域引导,让模型专注于学习最关键、也最难的部分。同时,它积极拥抱迁移学习,试图破解机器人学习中“数据荒”的共性难题。虽然将其产品化仍需攻克实时性、可靠性等工程堡垒,但其在原理上的创新性和在实验中展现的潜力,无疑为工业机器人实现更智能、更柔顺、更经济的力控提供了一条清晰可行的技术路径。在实际项目中,我建议可以从相对平稳的接触任务开始尝试此类算法,积累数据和调参经验,再逐步向振动更剧烈的场景推进。
