基于频域分解的机器人腕力估计:深度学习在液压机械臂磨削中的应用
1. 项目概述与核心挑战在机器人执行接触式作业比如打磨、抛光、装配或者我们这次研究的岩石磨削时末端执行器与环境之间的相互作用力通常称为“腕力”或“Wrench”包含三个方向的力和三个方向的力矩是控制算法做出决策的“眼睛”。没有精确的力感知机器人要么会因用力过猛而损坏工件或自身要么会因为不敢接触而无法完成任务。传统的解决方案是在机器人腕部直接安装一个六维力/力矩传感器但这东西价格昂贵、结构脆弱且在充满油污、粉尘或剧烈振动的工业环境中例如我们的液压挖掘臂其可靠性和寿命都是大问题。因此“无传感器”的腕力估计技术应运而生。其核心思想是利用机器人本体自带的、相对廉价的“本体感知”信号——如关节编码器的位置、速度以及电机电流或液压缸压力——通过数学模型或学习算法间接推算出末端受力。这听起来很美好但实操中坑极多。最大的挑战来自于信号特性的巨大差异我们关心的接触力通常表现为低频、缓慢变化的趋势比如持续下压的力而机械臂自身驱动系统尤其是液压系统和结构共振会产生剧烈的高频振动噪声。这两种信号在时域上混杂在一起一个旨在捕捉长期趋势的模型很容易被高频噪声带偏反之一个对高频敏感的模型又可能丢失了力的“主心骨”。我们这次的工作就是针对一台用于岩石磨削的液压机械臂构建一个能够同时精准预测低频趋势力与高频瞬态冲击力的深度学习模型。我们称之为“频域感知分解网络”。简单来说我们不指望一个“全能”的网络能一口吃下所有频率的信号而是借鉴信号处理的思想先把问题“分而治之”再“合而为之”。下面我就结合论文中的核心思路和我们在实际调参、部署中踩过的坑把这个项目的来龙去脉、技术细节和实操心得掰开揉碎了讲清楚。2. 核心思路频域分解与不对称建模为什么直接用一个端到端的深度网络比如LSTM或Transformer效果不好这涉及到神经网络的“频谱偏差”问题。简单类比一个学生如果同时学习微积分和四则运算他可能会把大量精力花在理解复杂的微积分概念上反而对基础的运算规则变得生疏。神经网络也有类似倾向在拟合复杂函数时会优先学习低频、平滑的成分而对高频、快速变化的成分学习效率较低。在腕力估计任务中低频的接触趋势和高频的振动噪声同时存在导致模型预测结果在低频段还行一到高频段就“糊成一片”丢失了大量对判断接触状态至关重要的瞬态信息。我们的解决方案FDN其核心创新在于“分解”与“不对称处理”。2.1 信号的事后分解与先验引导一个直接的思路是在训练时我们利用已知的真实腕力信号W通过一个截止频率fc例如1Hz的滤波器论文中使用的是Butterworth滤波器将其分解为低频趋势分量W_trend和高频残差分量W_res。在模型推理时我们让网络的两个独立输出头分别去预测这两个分量最后再相加得到完整的腕力预测。这相当于给网络布置了两个明确的、难度不同的子任务趋势头你的目标是拟合那个缓慢变化的“基线力”。这相对容易可以看作是一个平滑回归问题。残差头你的目标是捕捉那些快速波动的“振动细节”。这更难需要网络对信号的局部突变非常敏感。注意这里fc的选择是第一个关键调参点。fc太高会把过多中频信号划入残差增加学习难度fc太低则趋势分量可能包含了一些我们本希望由残差头学习的较快变化。我们通过分析实际信号的功率谱密度并结合任务先验例如磨削过程中超过2Hz的力波动基本可认定为振动噪声最终将fc设为1Hz。在实际部署中这个值可能需要根据具体机器人的机械带宽和控制频率重新调整。2.2 网络内部的不对称处理机制如果只是简单地将两个预测头的结果相加那和直接预测完整信号没有本质区别频谱偏差问题依然存在。因此FDN在内部结构上做了“不对称”的设计模态特定编码器我们的输入是机器人的本体感知信号x包括关节位置、速度、液压缸压力差等。这些信号对趋势力和高频振动的贡献度是不同的。例如关节位置更多地与末端姿态和静态负载相关影响趋势而液压压力的高频波动直接反映了系统的振动影响残差。因此我们为趋势预测和残差预测分别设计了两套独立的编码器让它们可以专注于从原始输入中提取与各自任务最相关的特征。共享编码器看似参数更少但我们的消融实验表明分开的编码器能带来约10%的性能提升。频域增强滤波器这是网络的“调音台”。在编码器提取特征后我们不是直接将特征送入预测头而是先经过一个频域增强滤波器模块。这个模块内部包含多个不同带宽的滤波器专家并通过一个轻量级的门控网络动态地为每个时间步、每个特征通道分配权重决定哪些频率成分应该被增强或抑制然后再分别送入趋势头和残差头。这相当于让网络自己学会在特征层面进行“软性”的频带聚焦。这种“分解目标 不对称通路”的设计强制网络为不同频带的信号分配专用的建模资源从而有效缓解了频谱偏差实现了高低频预测精度的平衡。3. 模型架构与实现细节拆解理解了核心思想我们来看FDN的具体实现。下图展示了模型的整体数据流你可以把它想象成一个有两条专门生产线的工厂。注此处用文字描述架构图实际博文可根据平台支持选择是否嵌入示意图输入: 历史本体感知序列 x[t-h:t] | v [模态特定编码器] / \ / \ 趋势编码器 残差编码器 | | v v [频域增强滤波器FEF] (可选但推荐) | | v v 趋势头 残差头 | | v v 预测趋势W_trend 预测残差分布参数(μ_res, σ_res) \ / \ / \ / 完整预测 W W_trend μ_res3.1 输入与输出形式我们采用“序列到序列”的预测范式。输入是过去一段时间窗口例如1秒对应L100个时间点假设控制频率为100Hz的本体感知序列。输出是未来一段时间例如未来1秒的腕力序列。在实时部署时我们通常只关心未来某个特定延迟时刻t_delay的力这个延迟包含了通信、计算所需的时间。因此在评估时我们会从预测的整个序列中取出对应t t_delay时刻的那个点来与真实值对齐比较。输入归一化这是稳定训练的关键。我们将训练数据集的每个通道如关节1位置、压力差等分别归一化为零均值和单位标准差。重要技巧归一化所用的均值和标准差必须从训练集计算并保存在验证和测试时使用相同的统计量。对于预训练模型在下游任务微调时我们直接使用了预训练数据集RH20T的归一化统计量这有助于保持特征分布的一致性提升迁移效果。3.2 概率化输出与损失函数对于残差分量我们不是直接预测一个确定值而是预测一个高斯分布的参数均值μ_res和标准差σ_res。这是因为高频振动本身具有不确定性概率化输出能让模型表达这种不确定性。在训练时我们使用负对数似然损失Loss_res -log P(W_res | μ_res, σ_res)对于趋势分量我们使用均方误差损失。 总损失是两者加权和Loss_total Loss_trend λ * Loss_res。λ 是一个超参数用于平衡两个任务的收敛速度。我们经验性地发现由于残差信号的能量通常较小需要给一个稍大的 λ例如1.5到2.0来给予足够的训练信号。3.3 频域先验过滤在训练时我们还有一个额外的“监督”信号。我们知道真实的高频残差W_res是通过一个高通滤波器fc1Hz从W中得到的。为了将这一先验知识更直接地注入网络我们在残差头的输出后额外添加了一个固定的频率通过滤波器强制让预测的残差均值μ_res通过一个高通滤波器我们称之为FPF模块将其低频成分滤掉。消融实验表明这个模块带来的定量提升不大1%但它是一个重要的归纳偏置确保了残差输出在物理意义上确实是“高频”的让网络的学习目标更清晰。4. 预训练与迁移学习从“大数据”中汲取先验从头在目标机器人液压磨削臂的小规模数据上训练一个复杂的模型很容易过拟合。我们想到了迁移学习。幸运的是机器人学界有一个大规模数据集RH20T包含了多种机器人手臂执行大量接触式操作任务时的本体感知和腕力数据。虽然它的机器人平台电动和任务如插拔、旋转与我们的目标液压、磨削不同但“通过本体感知推断腕力”这一物理规律是共通的。4.1 预训练任务设计我们采用掩码重建任务进行预训练。随机掩码掉输入序列x或输出序列W中的一部分片段让模型去预测被掩码的部分。这种自监督任务能迫使模型学习数据内部的时空关联和动力学规律而不是简单地记忆输入输出映射。关键点在预训练时我们使用的是相对位置编码即输入是关节角度、速度的变化量而不是绝对位置。这有助于模型关注“运动”与“力”的关系而不是记住特定的构型从而提升了模型对不同机器人构型的泛化能力。4.2 迁移策略与效果分析预训练完成后我们在目标域液压磨削的小数据集上对模型进行微调。结果显示整体提升微调后的模型在综合指标CRPS上优于从头训练的模型。频段差异提升主要发生在低频趋势力尤其是力矩上pRMSE降低了高达21%。而在高频残差上提升相对有限wRMSE降低4-8%。原因解读我们分析了两个数据集的频谱能量分布。预训练数据集RH20T的腕力信号中90%的能量集中在低频1Hz而我们的液压磨削数据中高达85%的能量却在高频。这说明两个领域的“共性知识”更多地体现在低频的力与运动的耦合关系上例如机械臂的动力学方程在低频段更稳定而高频振动特性则高度依赖于具体的执行器电动 vs 液压和接触环境光滑装配 vs 粗糙岩石磨削因此更难迁移。实操心得不要指望预训练能解决所有问题尤其是当源域和目标域的物理特性差异巨大时。预训练更像是一个“优秀的初始化”它给了模型一个很好的起点特别是对任务中更通用、更本质的部分如低频动力学。对于领域特有的部分如高频液压振动仍然需要目标域的数据进行充分的微调。我们的实验发现在固定的训练预算下使用约60%的预训练数据量进行微调能达到最佳的性价比。5. 实验配置、对比与结果分析我们对比了一系列基线模型包括经典的机器人腕力估计方法如MINN, RBF, GPR以及前沿的时序预测模型LSTM, CNN, Transformer, PatchTST等。所有实验在3次随机种子下运行取平均以控制随机性。5.1 评估指标分频段考核为了公正地评估模型在不同频段的表现我们没有只看整体的RMSE而是设计了分频段的指标高频带评估计算预测残差和真实残差的窗口化均方根误差。具体来说对残差序列以滑动窗口我们设窗口大小w10即0.1秒计算RMS值然后比较这些RMS值的序列的RMSE。这个指标衡量的是模型对高频振动能量幅度的还原能力。低频带评估直接计算预测趋势和真实趋势之间的点对点RMSE。这个指标衡量的是对缓慢变化力的跟踪精度。全频带评估使用连续分级概率分数。对于我们的概率模型FDN, PatchTST-GaussianCRPS能同时评估预测分布的准确性和锐度不确定性估计的好坏对于确定性模型CRPS退化为平均绝对误差。5.2 结果解读与模型对比从论文中的Table II和III可以清晰地看到FDN的均衡性我们的FDN无论是否预训练在高频wRMSE指标上大幅领先所有基线模型降低达50%同时在低频pRMSE指标上保持第一梯队与GPR、PatchTST等相当。这证明了分解与不对称建模策略的成功。基线模型的局限性传统估计器如GPR在低频表现优秀但高频重建能力很弱预测信号过于平滑。时序预测模型如LSTM-ED或Transformer它们虽然能进行序列预测但并未针对力信号的频域特性做设计因此高低频表现不平衡。全频带概率模型如PatchTST-Gaussian它通过预测整个信号的分布在高频上相比其确定性版本有提升但代价是低频精度下降。这说明单纯的概率化并不能解决频谱偏差必须结合频域分解。预训练的增益预训练进一步巩固了FDN的优势尤其在低频力矩预测上提升显著。这验证了从大规模异构数据中学习通用本体感知-腕力映射关系的可行性。5.3 消融实验每个部件的作用我们通过消融实验验证了各个组件的必要性见论文Table V移除残差头这是最致命的高频wRMSE暴涨52%。模型退化为一个全频段点估计器完全无法捕捉振动。移除趋势头高低频误差均上升约20%。模型退化为类似PatchTST-Gaussian的全频带分布预测器失去了对低频趋势的专注建模能力。移除模态特定编码器所有指标下降约10%。用一个共享编码器处理所有输入无法为趋势和残差提取最具判别性的特征。移除频域增强滤波器性能有3-6%的中度下降。FEF模块提供了可学习的频域注意力是一个有效的补充。6. 部署考量与实操避坑指南理论再漂亮最终还是要落地。将FDN部署到真实的液压机械臂上进行实时力估计我们遇到了不少挑战也总结了一些经验。6.1 实时性与计算开销FDN相比简单的MLP或线性模型计算量更大。在嵌入式工控机如Intel NUC或NVIDIA Jetson AGX Xavier上部署时需要优化模型轻量化考虑对编码器进行剪枝或量化。我们测试发现将特征维度D从128降至64对精度影响很小2%但推理速度可提升近一倍。输入序列长度历史窗口L并非越长越好。太短则信息不足太长则增加计算延迟和内存占用。我们通过实验发现对于100Hz的控制系统1秒100点的历史窗口是一个较好的平衡点。对于更高频的振动可能需要更短的窗口来保证实时性。框架选择使用ONNX Runtime或TensorRT进行推理能显著提升效率。特别是TensorRT的FP16精度模式在保持精度可接受的前提下能进一步加速。6.2 数据同步与延迟补偿这是最容易出问题的地方。本体感知信号编码器、压力传感器和腕力传感器如果用于收集真值数据的数据流可能来自不同的硬件存在微小的时间戳不同步。即使时间戳对齐从数据采集、网络传输、模型推理到控制指令下发也存在不可忽略的固定延迟t_delay。数据对齐务必在数据采集阶段使用硬件触发或高精度系统时钟确保所有传感器数据的时间戳严格同步。事后用软件插值对齐的效果会大打折扣。延迟处理我们的模型是“预测器”而非“估计器”。在训练时我们以t_delay后的力作为预测目标。在部署时模型输入当前及之前L个时刻的本体感知输出就是t_delay时刻后的预测力天然补偿了延迟。这是采用预测框架而非估计框架的一大优势。6.3 在线适应与领域漂移实验室环境下的模型到了真实的工地可能会因为温度、液压油粘度、工具磨损等因素导致性能下降。在线微调在系统启动后可以预留一个短暂的“校准期”让机械臂执行一组已知的、安全的动作如空载移动、轻触固定物收集少量新数据对模型最后一层或少量参数进行在线微调。不确定性利用FDN预测的残差分布标准差σ_res是一个很好的不确定性指标。当σ_res持续异常增大时可能意味着当前工况已超出模型认知范围系统应触发警报或切换至更保守的控制模式。6.4 参数调试经验滤波器截止频率fc这是最重要的先验参数。建议先用快速傅里叶变换分析一段典型作业数据的功率谱观察力的能量在哪个频率点出现明显分界。也可以将其作为一个可学习的参数但初始化要合理。损失权重λ从1.0开始观察训练过程中Loss_trend和Loss_res的下陷速度。如果Loss_res下降很慢或震荡适当增大λ如果Loss_trend反而上升了则减小λ。批次大小与学习率对于时序数据较大的批次大小如64或128有助于稳定训练。使用学习率预热和余弦退火调度器能帮助模型更好地收敛。7. 总结与展望这项工作从机器人接触作业中高频振动干扰力感知这一实际痛点出发提出了一种结合频域分解、概率建模和大规模预训练的深度学习解决方案。FDN模型通过其独特的不对称架构有效地平衡了高低频信号的预测精度在振动丰富的液压磨削场景下取得了显著优于现有方法的表现。回顾整个项目最深的体会是在机器人这种强物理约束的领域将领域知识如信号处理中的频域分解巧妙地嵌入到数据驱动的深度学习模型中往往比单纯追求更复杂的网络结构更有效。频域增强滤波器和模态特定编码器这些设计本质上都是先验知识的体现。当然这项工作还有局限。目前验证仅限于单一机器人和任务。未来我们计划在更多类型的机器人如协作机器人、足式机器人和接触任务如装配、抛光上测试其泛化能力。此外如何将预测的力信息更有效地融入到模型预测控制等高级控制框架中实现真正的“感知-预测-控制”闭环是更具挑战也更有价值的下一步。对于也想在类似问题上尝试的同行我的建议是先从数据本身出发。花时间可视化你的力信号做频谱分析理解不同频率成分的物理来源。然后再考虑如何用模型结构去匹配这种物理特性。FDN的分解思想是一个起点你可以根据自己任务的特点设计更贴合的先验模块。记住好的模型不是最复杂的那个而是最懂你数据的那一个。