拓扑导航 vs 几何导航的具体实现位置

让我明确指出这两种导航方式在代码中的具体实现位置。

拓扑导航 vs 几何导航的具体实现位置

1. **拓扑导航:基于 GVD Place 节点的中层规划**

实现文件

`@/home/jiayuliang/WS/CMU_VLFM/Active_Semantic/src/exploration/scripts/mid_planning.py:20-99`

关键代码

**订阅 GVD 占用栅格**(第 33-36 行):

```python

grid_topics = [

f"{self.config.OCCUPANCY_GRID_TOPIC_PREFIX}{i}/gvd/occupancy"

for i in range(self.config.OCCUPANCY_GRAPH_COUNT)

]

```

**输入话题**:

  • `/clio_node/graph0/gvd/occupancy`

  • `/clio_node/graph1/gvd/occupancy`

  • ...(根据 `OCCUPANCY_GRAPH_COUNT` 配置)

**输出**:

  • 发布路径到:`/planned_mid_path`(第 31 行)

  • 发布合并地图到:`/gvd_merged_map`(第 24 行)

**核心特点**:

  • ✅ 使用 **GVD (Generalized Voronoi Diagram)** 占用栅格

  • ✅ GVD 基于 **Place 节点**生成(自由空间骨架)

  • ✅ 在拓扑空间中规划,避开障碍物中心线

  • ✅ 合并多个 Scene Graph 的 GVD 地图


2. **几何导航:基于 TSDF 的局部避障**

实现文件

`@/home/jiayuliang/WS/CMU_VLFM/Active_Semantic/src/exploration/scripts/local_planning.py:19-98`

关键代码

**订阅 TSDF 占用栅格**(第 33-36 行):

```python

grid_topics = [

f"{self.config.OCCUPANCY_GRID_TOPIC_PREFIX}{i}/tsdf/occupancy"

for i in range(self.config.OCCUPANCY_GRAPH_COUNT)

]

```

**输入话题**:

  • `/clio_node/graph0/tsdf/occupancy`

  • `/clio_node/graph1/tsdf/occupancy`

  • ...(根据 `OCCUPANCY_GRAPH_COUNT` 配置)

**输出**:

  • 发布路径到:`/planned_local_path`(第 31 行)

  • 发布膨胀地图到:`/inflated_map`(第 23 行)

**核心特点**:

  • ✅ 使用 **TSDF (Truncated Signed Distance Field)** 占用栅格

  • ✅ TSDF 提供精确的几何距离信息

  • ✅ 执行障碍物膨胀(merge_and_inflate_grid(cci:1://file:///home/jiayuliang/WS/CMU_VLFM/Active_Semantic/src/exploration/scripts/local_planning.py:174:4-286:30),第 49 行)

  • ✅ 局部精细避障规划


对比总结

| 特性 | 拓扑导航(Mid Planner) | 几何导航(Local Planner) |

|------|------------------------|--------------------------|

| **文件** | mid_planning.py(cci:7://file:///home/jiayuliang/WS/CMU_VLFM/Active_Semantic/src/exploration/scripts/mid_planning.py:0:0-0:0) | local_planning.py(cci:7://file:///home/jiayuliang/WS/CMU_VLFM/Active_Semantic/src/exploration/scripts/local_planning.py:0:0-0:0) |

| **数据源** | **GVD 占用栅格** | **TSDF 占用栅格** |

| **话题** | `/*/gvd/occupancy` | `/*/tsdf/occupancy` |

| **规划空间** | Place 节点拓扑空间 | 几何网格空间 |

| **输出路径** | `/planned_mid_path` | `/planned_local_path` |

| **输出地图** | `/gvd_merged_map` | `/inflated_map` |

| **特点** | 全局拓扑路径 | 局部避障路径 |

| **障碍物处理** | 基于 Voronoi 骨架 | 基于距离场 + 膨胀 |

数据流

```

Scene Graph (Clio)

├─→ GVD Layer (Place 节点) → /gvd/occupancy → Mid Planner → /planned_mid_path

└─→ TSDF Layer (几何网格) → /tsdf/occupancy → Local Planner → /planned_local_path

```

**两者协同工作**:

  1. Mid Planner 在 GVD 拓扑空间规划全局路径

  2. Local Planner 跟随 Mid 路径,在 TSDF 几何空间执行精细避障

  3. 形成**分层导航架构**:拓扑层 + 几何层

相关推荐
AiNightVision11 小时前
无人机夜视模块如何选择?——从参数指标到系统集成的完整选型指南
人工智能·算法·计算机视觉·车载系统·无人机·视频·智能硬件
牧羊人.33312 小时前
卷积神经网络之VGG
人工智能·深度学习·神经网络·算法·cnn
小郎君65813 小时前
Vue 多标签页的加载态设计:为什么我没有用 Suspense 实现 PageLoading
vue.js·算法
JJJennie77713 小时前
MAI Gateway私有化部署全攻略:大模型网关如何接入?附架构图
算法·gateway·ai网关·魔芋ai
東隅已逝,桑榆非晚13 小时前
算法3.双指针法-快乐数
c++·笔记·学习·算法
专注仿真14 小时前
卷积神经网络(CNN)算法详解
人工智能·python·算法·代码·大模型训练
FII工业富联科技服务14 小时前
多智能体如何进入制造现场?从业务协同到数字孪生验证
大数据·人工智能·算法·机器人·制造·数字孪生
≮傷£≯√14 小时前
httpserver_QNetWorkClient
算法
Evand J14 小时前
【PMSM例程11】永磁同步电机(PMSM)基于UKF的转速与转子位置估计。附下载链接
算法·matlab·卡尔曼滤波·永磁同步电机·ukf·pmsm·位置估计
货拉拉技术14 小时前
记忆即智能:重构对话式AI Agent认知基座的四层渐进式记忆与自进化系统
人工智能·算法