2. 地图组件总览
autonomy/map 提供三条并行管线:MapServer(静态占据栅格)、Costmap2D(规划/避障代价图)、GridMap(2.5D 多层浮点栅格)。本文是 §3–§4 专题的索引与对比;上手见 §0,架构见 §1,谱系与选型见 §5 综述。
2.1 组件一览
组件 |
文档 |
数据类型 |
典型用途 |
状态 |
|---|---|---|---|---|
|
|
加载 SLAM 地图、发布 |
✅ |
|
|
|
全局/局部规划、碰撞检测 |
✅ |
|
|
|
地形高程、坡度、多模态感知 |
✅ |
三者通过 MapInterface(Start / Stop / Pause / Resume)管理;Costmap2D 与 GridMap 当前未桥接,联合使用需在应用层处理坐标与数值映射。
2.2 对比矩阵
维度 |
MapServer |
Costmap2D |
GridMap |
|---|---|---|---|
原点 |
左下角 |
左下角 |
地图中心 |
数值 |
离散 -1/0/100 |
离散 0–255 |
连续 float / |
传感器 |
无(读文件/回调) |
自动 |
应用层写入 |
更新 |
低频 / 一次性 |
后台线程 1–20 Hz |
手动 |
规划消费 |
经 |
|
需桥接或自定义 |
对标 |
nav2_map_server |
nav2_costmap_2d |
ETH grid_map |
2.3 选型速查
场景 |
推荐 |
关键配置 |
|---|---|---|
标准室内导航 |
Costmap2D |
|
仅静态地图可视化 |
MapServer |
YAML+PGM |
地形 / 高程 / 坡度 |
GridMap |
|
大地图局部规划 |
Costmap2D |
见 §3.10 |
Costmap + 高程联合 |
GridMap + 应用桥接 |
见 §4.3.7 |
完整矩阵与决策树见 §5.10。
2.4 公共数据流
YAML+PGM ──► MapServer ──► OccupancyGrid ──► static_layer ──┐
/scan ──────────────────────────────► obstacle_layer ─────────┼──► Costmap2D ──► Planning
│
inflation_layer ┘
点云 / 深度 ──► GridMapWrapper(应用写入)──► elevation / slope / ...
✗ 当前未自动桥接到 Costmap2D
2.5 扩展阅读
§ |
文档 |
内容 |
|---|---|---|
3 |
图层、膨胀、滚动窗口、配置 |
|
4 |
2.5D 层、buffer、插值、桥接 |
|
5 |
历史、分类、业界生态 |