Routing
(结合高精地图)交通建模
Routing模块正如其名称所示,其主要作用就是根据请求生成路由信息。
模块输入:
- 地图数据
- 请求,包括:开始和结束位置
模块输出:
- 路由导航信息
a_star_strategy.cc
规划与控制地图 Pnc map
modules/map/pnc_map
pnc map其实和高精地图HD map没有关系,是专门为规划与控制模块设计的库函数,在HD map层次之上,负责一些地图相关信息的处理。例如查询车辆可能的形式路由段(list),然后对每个路由段合成一个路径Path,这是pnc map最重要的功能。
pnc map目前被封装在指引线提供器ReferenceLineProvider中,但是由于其功能比较集中,我们单独将他拿出来讲解。规划控制地图pnc map主要的功能有三个:
-
更新路由信息。这部分接受Routing模块的路径查询响应,将其响应信息处理存储到地图类中。
-
短期路径段查询。根据Routing规划路径以及当前车辆的位置,计算当前车辆可行驶的车道区域。
-
路径段生成最终路径。针对2中每个可行驶的车道路由段,生成一条路径Path,可以后续生成参考线Reference Line。
reference_line_provider
modules/planning/reference_line/reference_line_provider.cc
在每一次计算循环中,Planning模块都会通过ReferenceLineProvider生成ReferenceLine。ReferenceLine由Routing的搜索结果决定。Routing是预先搜索出的全局可达路径,而ReferenceLine是车辆当前位置的前后一段范围。
直行的情况下,ReferenceLine是一个。而在需要变道的时候,会有多个ReferenceLine。
1.
2.参考线平滑
3.参考线提供器还提供参考线拼接的功能
相关代码如下:
Apollo Routing模块源代码分析_知行合一2018的博客-CSDN博客_apollo routing
Apollo-Note/pnc_map.md at master · YannZyl/Apollo-Note · GitHub
pnc_map模块(规划与控制地图)_旅途者0107的博客-CSDN博客_pnc模块
Apollo-Note/reference_line_provider.md at master · YannZyl/Apollo-Note · GitHub
Apollo ReferenceLineProvider_落羽归尘的博客-CSDN博客