资讯动态

基于时空图神经网络与条件正规化流的AUV自适应路径规划

发布时间:2026/10/19 17:28:52 来源:尧图企业网站定制
在无人潜航器这个圈子里摸爬滚打这些年我越来越觉得一个道理是绕不过去的水下机器人真正难的往往不是机械和通讯而是“它在水底下到底知不知道自己在哪儿、前面是什么”。光靠惯导和 DVL多普勒计程仪攒出一套组合导航只能解决“我在哪儿”的一半剩下的一半——“前面那团阴影是礁石还是鱼群”“那片区域能不能贴着走”——基本都得交给声呐来回答。而声呐这玩意儿给的数据又天生带着一堆噪声、奇异反射和遮挡你要是把它当普通二维图像、三维点云那样盲信路径规划器迟早会在一次多径反射的“幽灵目标”上把你坑进水沟里。当时我们看到的项目切入点就是围绕声呐数据的不确定性做文章。标题很直接“基于时空图神经网络与条件正规化流概率重构的自主水下机器人自适应路径规划”。说白了我们想做的不是搞一个更贵的声呐而是把既有声呐数据喂进一个“会算命的模型”——先用时空图神经网络ST-GNN把时空上的声呐特征抽出来再用条件正规化流Conditional Normalizing Flow把下一时刻环境占用状态的概率分布重构出来最后把生成出来的占用地图连同不确定性一起交给路径规划器让它自己掂量哪里能莽、哪里得绕着走。这套思路当时在组里内部讨论时就被评价为“用生成模型给规划器配了一副放大镜”我觉得这个比喻挺贴切它放大的是“水面下没看到的区域”以及“看到但不确定的区域”。这篇文章我会按项目的完整链路来梳理从为什么要把声呐点云变成图到条件流的数学原理和工程落地再到路径规划里不确定性代价怎么算。适合正在做水下感知、AUV决策或者想在机器人系统里引入生成模型的你。我不打算绕太多基础课直接讲我们在实际搭建和湖试过程中踩过的坑、换过的方案、调过的参能少走点弯路就是一篇实操分享最大的价值。1. 整体思路拆解为什么非得是“图神经网络 正规化流”1.1 确定性神经网络处理声呐数据的致命短板前视声呐和侧扫声呐本质上是波束扫描机制一帧原始数据扫出来的不是一个规则的图像矩阵而是一堆带强度、带方位的回波点。你可以把它理解成“水下用耳朵眯着眼睛看”——看到的东西不仅稀疏而且有些亮点是假回声同一块石头上一次扫是亮的下一次换个角度就变成了阴影。早期我们尝试过直接把声呐图送到一个标准的 U-Net 里做分割再转成栅格地图效果在仿真里还行一到真实环境就明显崩模型对“从未见过的反射模式”没有任何余地它只是硬生生地输出一个唯一结果不会告诉你“这个区域我其实不太确定”。所以第一个关键决策就定了模型输出的不能是单一的环境占用图而应当是环境状态的概率分布。什么是概率分布比如某个体素栅格被占用的概率是 0.8 还是 0.3这个好办困难的是要表达出体素之间的关联性——如果东边的礁石和西边的礁石之间一大片区域都没有回波模型应该知道“这片区域信息不足不确定性整体偏高”。想要表达这类复杂的输出分布确定性神经网络确实不够格这就给后面引入条件正规化流留下了理由。1.2 声呐点云为什么适合“图”而不是“卷积”第二个选择是数据表征。在城市自动驾驶里激光雷达点云直接画到一个体素栅格或者鸟瞰图上是顺手的因为场景结构相对完整。但水下声呐回波密度低、分布不均匀如果把点云强行体素化大量栅格是空的这会让三维卷积的大部分算力都花在“空气”上。图结构就天然贴合这种稀疏数据。把每一帧回波点作为图的节点把空间上相邻的回波点连成边节点和边的属性里带着强度、方向、相对距离。图神经网络做的是“消息传递”——每个节点不断从邻居那里拿信息来更新自己。这套机制对声呐这种天然非欧几里得空间的稀疏数据比卷积核友好得多。再加上声呐靠多帧观测同一个目标才能逐渐看清我们自然要把时间维度也接进来做一个时空图神经网络空间上用图卷积聚合同一帧内回波点的关系时间上用循环或者时序卷积聚合多帧之间的变化。这正是标题里标着“时空图神经网络”的原因。1.3 条件正规化流让“重构”变成一件概率上严格的事正规化流Normalizing Flow这个选择很多朋友第一反应是“这不是图像生成才用的吗”。不是的。我们选择条件正规化流的关键原因是它能在可逆变换下计算精确的似然也就是说模型能明确地告诉你“我生成的这个重构场景有多大的概率是真的”。这就跟 VAE 用近似下界、GAN 用对抗式博弈不一样——规划器要落地就需要一个模型能给自己打置信度分。后面我会详细展开它的公式结构先记住一个结论条件正规化流是我们给“概率重构”这个需求找到的最能落地、最不给规划器挖坑的实现方式。2. 声呐数据建模从原始回波到时空图的一整套流程2.1 声呐点云如何转成图结构我们在现场用的是一台 256 波束前视声呐工作在几百千赫频段每一帧扫出来大约 8000 到 20000 个有效回波点。第一步永远是把原始回波按距离和方位角换算成笛卡尔坐标这一步不归模型管归声呐驱动管但一定要记下坐标转换的延迟时间后面时序对齐要配合惯导航向角。建图时我们固定三个超参近邻数 K、建图半径、最大点数限制。K 通常取 8 到 16太少了局部信息不够太多了图会密到近乎全连接消息传递变成均值滤波丢失选择性。建图半径初始设为声呐最大量程的 1/3比如量程 100 米那么 33 米以外的点如果离得很远就不强行连边这样可以显著缩小图的规模。最大点数限制我们设在 12000 点超出的部分做随机下采样——实测下来随机比最远点采样更快而且在声呐数据这种本身密度不高的场景里信息损失不大。节点特征我们用的是五维向量三维坐标、回波强度经过对数压缩、以及一个时间戳偏移量表示该帧离当前时刻有多远。边特征用一维相对距离后面图卷积更新节点特征时会把边特征作为消息权重的一部分。有个细节容易踩坑前视声呐的近场回波往往是被换能器自身尾流污染的距离 3 米以内的点很多是假目标。所以建图前要做一个裁剪把半径三米内的原始点全部丢弃。我们第一次在实验水池里测试时没做这步模型训练后期一直在报告“近场区域出现概率虚高的障碍物”排查了两天才意识到是尾流噪声被模型当成特征学到了而不是模型自己学坏了。2.2 空间维度图卷积的消息传递越传越有“全局感”图卷积部分我们用的是类似 Graph Attention Network 的思路但没有用太花哨的多头机制因为声呐边的注意力权重本来就容易对噪声敏感。每一层图卷积做的事情可以写成这样一个消息传递公式[ h_i^{(l1)} \text{Update}\left(h_i^{(l)}, \sum_{j \in N(i)} \text{Attention}(h_i^{(l)}, h_j^{(l)}) \cdot W \cdot h_j^{(l)}\right) ]其中 (h_i^{(l)}) 是第 (l) 层节点 i 的隐特征(N(i)) 是它的近邻。注意力权重由两个节点的隐特征拼接后过一个小 MLP 得到。用生活类比来说每个节点就像水下的一只小哨兵它先听听周围邻居哨兵拿到什么信息按“跟我要紧程度”分配注意力再把这些邻居消息汇总起来更新自己的认知。两层图卷积下来单点特征已经带上了“局部邻居团块”的信息。如果你想让它理解整个地形的大尺度结构单靠两层是不够的。我们的做法是在图卷积之后增加一个全局池化分支把所有节点特征取最大值池化和平均池化拼成一个全局环境向量再广播回每个节点的特征里。这样每个点既知道自己那块小区域怎么回事又从全局向量里大概知道声呐视野内的整体结构类似“既看到树叶又知道森林方向”。这个设计在消融实验里对重构精度的提升非常明显比单纯堆到六层图卷积还稳。2.3 时间维度ST-GNN 的循环与卷积融合单帧声呐的可信度是有限的目标可能被遮挡、反射率忽高忽低。我们的直觉是同一块水下地形连续三帧、五帧观测里应当有强的一致性把多帧的图节点按时间对齐起来让模型自己学习“哪些信息是稳定可信的哪些只是抖动噪声”。实现上我们比较了两种方案一种是每个时间步先跑空间图卷积再把同一个空间位置的多帧特征送入一个 GRU门控循环单元另一种是空间图卷积 时间维 1D 卷积类似 ST-GCN 的动作识别套路。GRU 的方案在灵活处理变长帧序列上占优但对嵌入式平台不太友好循环结构不好并行加速时间 1D 卷积则方便部署5 帧窗口直接用 3x1 卷积核就能扫过去。我们最后采用的是“两帧相差”混合方案当前帧和上一帧先做细粒度双帧差分提取动态变化信息再把滑动窗口内 5 帧的图特征拼成一个时空特征桶。规划器最终拿到的不是某一个时间点的特征而是一段短时间内的浓缩观察。这个“双帧差分 滑动窗口”的组合看起来朴素实测却比单独上 GRU 更稳。我判断原因是声呐帧间变化里的大部分噪声是随机的双帧差分天然会让随机噪声相互抵消剩下的一阶差分信号恰恰反映了目标的真实运动趋势。而在路径规划这种任务里我们担心的不是目标的细微运动而是场景整体结构有没有发生剧烈变化所以五帧窗口的一阶信息已经足够。2.4 图结构输出从节点特征到“条件上下文”ST-GNN 最终的输出不是直接给一张图而是给一组条件上下文向量(C)。这组向量是后面条件流模型的“输入条件”类似文本生成时给定 prompt。我们把图卷积输出后的全局池化向量和几帧的时序特征拼在一起经过一个两层 MLP 压缩成一个 128 维的条件向量。这里有一个值得说的工程选择为什么不让 ST-GNN 直接生成占据栅格而是让它生成条件向量让后面的流模型去重构图因为流模型自己有一套可逆变换的空间结构如果从 GNN 直接跳到像素级输出流模型就没东西可学了只能拿一个低质量特征暴力解码。让 GNN 专心做“理解场景”流模型专心做“在理解基础上做概率重构”两个子网络各干各的事训练和调试起来边界都清晰。后来我们在实际训练中把 GNN 单独做了冻结实验——把 GNN 参数固定只训练流模型重构效果依然还行说明两个模块确实解耦得很好这在联调时帮了大忙。3. 条件正规化流把“不确定性”本身变成可学习的分布3.1 可逆变换的基本思想从高斯噪声到环境占用场条件正规化流的核心可以概括成一句话用一个由 K 层可逆变换组成的函数 (f)把简单分布标准高斯变换成复杂分布并且在条件 (C) 的引导下使这个复杂分布逼近真实环境占用状态的后验分布。具体来说标准高斯分布上的变量 (z \sim \mathcal{N}(0, I))经过一系列可逆映射 (f f_1 \circ f_2 \circ \dots \circ f_K)得到环境状态 (x f(z; C))。这里的 (x) 就是我们要重构的环境栅格变量我们可以把它定义成一张稀疏的体素场其中每个体素代表“该位置是否有障碍物”所以 (x) 的实际维度等于体素栅格的数量——我们用的栅格是 64×64×16所以 (x) 是 65536 维。可逆变换最常用的实现是仿射耦合层Affine Coupling Layer。它的聪明之处在于把输入分成两半一半原样复制到输出另一半通过一个由输入另一半和条件 (C) 决定的缩放和平移变换后输出。因为在正向传播时只是做加法和乘法反向求逆时可以直接用减法和除法神经网络无论多复杂都可以保证整体变换是可逆的。这给了模型极强的表达能力又保留了似然计算的可行性。3.2 条件信息是怎么注入的条件向量 C 的注入方式很讲究。我们最初尝试过最简单的“条件拼接到每一层输入向量里”结果训练速度极慢重构细节也糊原因是拼接会让可逆层内部的特征空间被条件向量“污染”——模型的逆变换在面对未见过的条件 C 时非常容易崩溃。后来改成主流做法在每一层仿射耦合的缩放和平移计算子网络里把条件向量 C 作为额外输入打进子网络里而不是打进层间主特征流。相当于条件 C 只是“排在旁边指导”的教练而不是场地上的运动员。这个改动让条件流模型的泛化能力提高了一大截。我们用了 8 层耦合层每层子网络是两层 128 宽度的 MLP 加 ReLU整体参数量不过一两千万比一个大型分割网络还小但表达一个 65k 维的占用后验分布完全够了。3.3 概率重构不只是“画一张地图”很多人会想概率重构是不是就是用 GNN 特征预测出一张地图对但不全对。关键区别在于条件流模型的重构带有一个严格的概率度量你问它任何一格栅格它都能同时给出期望值和置信区间。因为整个映射是可逆的我们不仅能从 z 生成 x也能从 x 反推出 z 的密度。通过标准正态分布的 log-likelihood就能精确计算生成某个环境状态的概率。这时候我们要用到一个标准的概率重构目标在给定条件 C 下最大化真实环境状态 (x_{\text{true}}) 的对数似然。负对数似然损失可以写作[ \mathcal{L}{\text{NLL}} -\left[\log p(z_0) - \sum{k1}^{K} \log \left|\det \frac{\partial f_k}{\partial h_{k-1}}\right|\right] ]第一项是标准正态分布的对数密度第二项是所有可逆变换行列式的对数合起来正好是“用反变换把真实状态拉回标准高斯再看它像不像高斯”。这个看起来干净的公式落地时最容易坑人的就在行列式计算——用仿射耦合层时行列式恰好是对角阵的乘积所以算出来极其便宜可如果你手痒换成更复杂的可逆卷积行列式就变成了昂贵的主子式约束项训练直接慢五倍。我们第一版原型就死在这上面后来老老实实退回耦合层。我有一个粗俗但准确的类比条件流模型就像一个水箱。标准高斯分布是底池可逆变换是水路管道条件 C 是阀门方向的指示牌环境占用状态的真实分布是水流最终游走的形状。每训练一次水就沿着管道走一遍而管道必须是双向往返的——正向时水从底池流向最终形状反向时水从最终形状流回底池。如果管道某处只允许单向流整个系统就废了这就是可逆约束的本质。4. 自适应路径规划不确定性不再是“惩罚项”而是“视野”4.1 把概率重构结果变成可用的栅格地图条件流模型在推理时我们对同一组条件 C 做多次采样比如 16 次。从 16 个采样体中我们可以统计出每个体素被占用的频率形成一张占用概率图同时每个体素在不同采样体间的方差可以作为不确定性图。两者合并以后就得到了一张带置信层的三维栅格地图——这是我个人在整条链路里最看重的一份东西因为它把感知和规划从“单点黑盒”变成了“可推理的白盒”。实现上我们做了个小优化16 次采样不用全部生成完整 65k 维体素而是先用条件向量 C 预测一个粗略的“有效区域掩码”只在掩码内部的体素做细分采样这样能省掉大量“纯空区域”的计算。湖试实测里推理耗时从 4 秒一帧降到了 1.2 秒覆盖率只下降 2%这对实时规划来说非常值。4.2 代价函数设计怎么让规划器“看懂”不确定性路径规划器我们用 RRT* 作为基础因为它对高维状态空间和障碍物形状比较宽容而且能自然地把代价函数插进扩展逻辑里。每个采样节点 (q) 的路径代价不是单调累加距离这么简单我们定义成这样[ J(q) \sum_{\text{path}} \left[ \alpha \cdot L_{\text{seg}} \beta \cdot (1 - p_{\text{free}}) \gamma \cdot \text{Var}(q) \right] ]第一项是路径段的欧氏长度这个好理解常规的“最短路径”。第二项是穿越区域的占用期望来自占用概率图的期望值走障碍物区域显然要加重。第三项才是这个方案真正的灵魂——它直接加入了重构的不确定性 (\text{Var}(q))也就是路径经过区域在重构时的方差。方差大的区域意味着条件流模型对那里的环境信息没有把握多绕一点路、多花一点时间都值得。为什么要专门加不确定性这一项我见过很多感知模块已经做得不错的项目最后仍然“撞车”原因在于他们用确定性网络生成的地图对未知区域和明确障碍一视同仁地画成黑白栅格。RRT* 在代价函数里只有“障碍或自由”二值区分规划器当然会大胆地穿过那些模型实际没有把握的区域。我们做的就是把“灰色地带”显式地摆到规划器面前让它自己权衡。这一步把感知端的不确定性成功传导到了决策端才是“自适应”三个字真正的落点。4.3 自适应策略规划器自己会“变色”光把不确定性当代价还不够真正的自适应体现在规划器的行为模式会随环境置信度动态改变。我们在 RRT* 上挂了三个自适应调节旋钮扩展步长调节当当前位置周围平均不确定性超过阈值时步长从默认的 3 米压缩到 1.5 米这样采样点会密集地分布在低置信区域规划器不会因为一步跨太大而直接跳过潜在风险。目标偏置调节如果重构结果显示前方有较大面积的未知区域但仍存在可行通道目标偏置从 0.05 逐步提升到 0.15让树更快地朝目标方向生长避免在“过度探索”里浪费太多时间。代价系数动态调节不确定性代价的权重 (\gamma) 不是常量。当整幅重构图的平均方差偏高时意味着环境整体在模型看来是陌生的这时我们会把 (\gamma) 调大让路径更保守等模型逐渐积累了几帧观测平均方差降下来(\gamma) 再回到正常水平。这三个旋钮合在一起产生的实际效果非常直观机器人在第一次进入一片陌生水域时轨迹会绕开所有不确定性集中的区域宁可贴着已知障碍的边缘走随着声呐多帧扫过图里的灰色区域逐渐被填实路径再慢慢收紧成接近最短路径。湖试视频剪出来以后组里有人开玩笑说“这机器人挺惜命”我觉得这就是自适应路径规划的朴素本质——对环境的不熟悉会转化为行为的谨慎。5. 实操手记数据、训练、评估一个都不能少5.1 数据怎么凑仿真器预训练湖试数据微调水下数据一直是稀缺资源我们没有条件大规模采集真实声呐数据。所以采用了“两步走”策略第一阶段用高保真水下仿真器生成物理声呐的数学模型在地形数据集上批量生成声呐帧和对应的真实占据栅格作为ground truth。仿真数据的好处是标注绝对干净训练起来不会因为 label 噪声干扰收敛。第二步用真实湖试声呐数据对模型做微调。真值怎么来我们把湖底区域预先跑了两遍差分 GPS 覆盖用激光测深仪扫描出高精度底质高程模型投影到栅格后作为真实占用标签。注意这里的“真值”也不是绝对真但远比声呐自身给的标签靠谱。数据规模上我们总共生成了约 70 小时仿真声呐流抽取成 18 万帧有效样本微调阶段只有 2 小时真实声呐素材但效果提升非常明显。这也符合生成模型的一贯经验条件流这种高表达能力模型overfitting 风险大有干净的仿真数据做预训练真实数据只需微调就好会稳妥得多。5.2 训练配方NLL 是主损失辅助损失别贪多训练阶段的主损失就是前面提到的负对数似然。一开始我们设置过辅助的体素级交叉熵损失想双管齐下但很快发现它会把流模型往“确定性平均”方向推把流模型的多样性直接磨平了——这和我们引入流的初衷背道而驰。后来果断砍掉辅助损失只保留 NLL。训练曲线在初期会稍微抖一点这是流模型在做可逆变换时常见的高方差期耐心等到第 15 个 epoch 左右开始平滑收敛就好。训练中发现的另一个重要 trick 是梯度裁剪和学习率预热。因为可逆变换的雅可比行列式在初始化阶段可能爆炸直接导致 NLL 的 loss 瞬间冲到 NaN。用梯度裁剪把全局 norm 限制在 5.0 以内并用前 3000 步做线性预热把学习率从 1e-5 逐渐拉高到 3e-4这个问题就压下去了。后来我复盘时觉得这与其说是模型问题不如说是流的初始化太极端——不同的耦合层初始化范围如果不做匹配很容易在初期的雅可比矩阵上累积放大。5.3 评估指标不只看 IoU更要看“规划结果”很多做重构的团队喜欢盯着 IoU交并比和 RMSE 不放但我们的经验是对于“重构 规划”联合任务光看感知指标远远不够得看最终规划任务完成情况。我们用“规划成功率”作为核心指标定义为在固定起点和终点的一组测试场景里机器人从起点成功抵达目标区域且全程未与真实障碍物发生碰撞的比例。另外增加了“平均冗余路径长度”和“首次进入低置信区域的时间比例”两个过程指标。平均冗余路径长度反映规划器对不确定性的规避是否过度第一次进入低置信区域的时间比例反映自适应调节生效得早不早。实验对比中同样一组测试场景用普通确定性分割 二值地图 RRT* 的方案规划成功率大约 72%用上了我们的概率重构 不确定性代价方案成功率提升到 86% 左右。最明显的变化是在复杂礁石地形下原来“想抄近路”导致撞上被声呐阴影遮挡的孤立礁石的概率大幅下降。代价是平均路径长度增加约 12%——但如果你把“多走 12% 的路”和“撞击后再也回不来”放一起比较这笔交易不仅不亏还是稳赚的。5.4 部署侧的苦笑模型比想象中好压缩不要被“时空图神经网络 条件正规化流”这种组合名字吓到真正部署到水下机器人板卡上时感受最深的倒是图结构的动态性。GNN 部分因为输入节点数量不固定TensorRT 这类静态加速器不友好我们最后用的是动态 shape 的推理引擎并把图卷积算子手动改成稀疏矩阵乘法加速。条件流模型因为结构全可逆反而非常好量化它的核心计算就是一堆 MLP 加乘除法几乎没有任何稀奇古怪的激活函数INT8 量化后精度损失在 1% 以内。整条感知加规划链路在车载级嵌入式计算平台上跑到了 2.5 Hz 刷新率虽然离实时四帧还有距离但对于水下机器人 1~2 m/s 的运动速度已经够用。6. 踩坑与排查记录这三个月我们被哪些问题折腾到自闭6.1 多径反射导致的“幽灵点”差点带偏整个流模型声呐在水面和池壁之间来回弹跳后会产生大量非真实目标的回波。这些幽灵点在原始点云里表现成“明明地形突变却连续好几帧都出现在同一个位置”的假特征。我们的时空图神经网络很强强到能在隐层特征里很快识别出这个规律但它反而吃进去当成了真实地形的一部分。到流模型生成重构地图时这些假地形被当成高置信障碍物直接在路径规划里形成了一道“虚拟墙”。排查思路倒是很传统做一个反向数据挖掘。我们把训练过程中 NLL loss 异常高的样本单独拎出来发现高 loss 样本里幽灵点占比格外大。这才意识到问题不是模型能力不足是模型太高效地学到了数据里的坏规律。修复办法是在数据标注时打了多径几何校验对每个回波点按照水面、海底两个平面反射路径去模拟射线反弹如果反向仿真出的路径与真实接收波束方向偏差超过一个阈值就打一个很低的置信权重告诉模型“这点不能全信”。这批带权重标注的数据一进去幽灵点造成的虚拟墙问题立刻缓解了不少。6.2 时序对齐不准导致条件向量像“喝醉了酒”第二版系统出了个诡异现象湖试平静水域时重构地图会缓慢旋转。排查来排查去发现是声呐帧时间戳和惯导系统航向角时间戳没有严格对齐。水下机器人在运动时每帧声呐扫描期间自身会移动一米以上如果姿态时间戳落后了 200 毫秒坐标转换后所有点云位置都会带一个整体偏移角度。我们把时间戳对齐方式从“异步窗口取最新值”改成“插值对齐到声呐发射时刻”——在声呐扫描的起始和结束时间之间对导航数据做线性插值硬是把每一帧点云都算到了它的真实采样姿态上。改完以后重构地图旋转问题直接消失。事后想这类问题在所有多传感器融合项目里都会出现彻底排查方法就是冻结感知模型只用一组标定过的静态场景实测位置漂移再反查传感器时间线。6.3 流的“自信”也需要校准条件流模型有一个“死要面子”的毛病在训练分布覆盖充分的区域它给出的不确定性低得让规划器大胆抄近路一旦进入训练数据没覆盖的场景它的不确定性并不会像我们期望的那样普遍升高而是高低方差一起涨、错乱得离谱。这导致原本为规避风险设计的代价项失去了区分度。我们用热力学温度标定法做了后处理校准[ \text{Var}_{\text{calib}}(q) T \cdot \text{Var}(q), \quad T 0.75 \frac{0.5}{1 \exp(-3 \cdot \text{entropy}(q))} ]当某区域的熵较高时(T) 升高放大不确定性代价当区域熵很低也就是模型本身就很确定时(T) 缩小避免过度保守。说白了就是这个后处理让模型“该谦虚”的地方更谦虚。这个校准环节虽然不起眼却是整个系统在多样性场景下不翻车的重要兜底。6.4 湖试实测与仿真之间的“鸿沟”最后想提醒各位同行仿真里再怎么收敛都不代表湖里没问题。我们在仿真环境里只用了固定噪声模型真实的湖面风浪、水草、鱼群、水底软泥声呐回波强度和形态千奇百怪。第一次湖试时用全新场景跑了一遍重构地图整体置信度明显比训练时偏低——这还算好的因为模型知道该谦虚。但偶尔几条鱼从声呐视野里穿过会造成几帧内的“闪动假障碍”路径规划会因此频繁改道看起来像机器人被鬼吓到乱跳。我们对这个问题的临时处理是加了一个“时间稳定性滤波”把连续五帧的重构占用概率做指数滑动平均闪动假障碍因为持续时间短权重会快速衰减。这五帧跑完大概只有 2 秒钟对 AUV 的响应速度没有实质影响但效果立竿见影。经验之谈就是真实环境下的鲁棒性从来不是单靠模型能吃下来的后处理滤波和导航一致性同样关键。啰嗦这么多最想传达的一个心得是把路径规划建立在“概率重构”之上比建立在一张看似精细的确定性地图上要踏实得多。技术选型上图神经网络和条件流都不是什么新鲜概念但把它们组合起来真正塞进水下机器人的感知—规划闭环里我们试下来确实是目前综合收益最高的方案。如果你也准备做类似方向建议从一个小规模体素栅格开始先把整个链路跑通再逐步加大分辨率别一上来就想复现一个大而全的端到端系统。那玩意儿在 PPT 里漂亮在真实水下环境里往往连第一步的数据对齐都过不了关。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑