百度Apollo决策规划理解

Apollo系统与Planning模块

Apollo系统中的Planning模块实际上是整合了决策和规划两个功能,该模块是自动驾驶系统中最核心的模块之一(另外三个核心模块是:定位,感知和控制)。

下图是Apollo系统的整体架构图。从这幅图中我们可以看出,整个系统可以分为5层。从下至上依次是:

  • 车辆认证平台:经过Apollo认证的电子线控车辆。
  • 硬件开发平台:包含了计算单元以及各种传感器,例如:GPS,摄像头,雷达,激光雷达等等。
  • 开放软件平台:这就是Apollo开源代码的主体,也是自动驾驶最核心的部分。
  • 云服务平台:包含了各种云端服务,实现自动驾驶的车辆一定不是孤立的,而是跑在基于互联网的云端上的。
  • 量产交付方案:专门为各种场景量产的解决方案。

    我们可以再将最核心的开放软件平台这一层放大近看一下。下面这幅图描述了这其中的模块和它们之间的交互关系。这其中的黄线代表了数据流,黑线代表了控制流。

百度Apollo决策规划理解_第1张图片Planning模块负责整个车辆的驾驶决策,而驾驶决策需要根据当前所处的地理位置,周边道路和交通情况来决定。Planning不直接控制车辆硬件,而是借助于控制模块来完成。

从这幅图中可以看出,对于Planning模块来说:

  • 它的上游模块是:定位,地图,导航,感知和预测模块。
  • 它的下游模块是控制模块。

注意事项:

决策规划模块的主要责任是:根据导航信息以及车辆的当前状态,在有限的时间范围内,计算出一条合适的轨迹供车辆行驶。

  1. 车辆的行驶路线通常由Routing模块提供,Routing模块会根据目的地以及地图搜索出一条代价尽可能小的路线。
  2. 车辆的当前状态包含了很多因素,例如:车辆自身的状态(包括姿态,速度,角速度等等),当前所处的位置,周边物理世界的静态环境以及交通状态等等。
  3. Planning模块的响应速度必须是稳定可靠的(当然,其他模块也是一样)。正常人类的反应速度是300ms,而自动驾驶车辆想要做到安全可靠,其反应时间必须短于100ms。所以,Planning模块通常以10Hz的频率运行着。如果其中某一个算法的时间耗费了太长时间,就可能造成其他模块的处理延迟,最终可能造成严重的后果。例如:没有即时刹车,或者转弯。
  4. ”合适的轨迹“有多个层次的含义。首先,”轨迹“不同于“路径”,“轨迹”不仅仅包含了行驶路线,还要包含每个时刻的车辆的速度,加速度,方向转向等信息。其次,这条轨迹必须是底层控制可以执行的。因为车辆在运动过程中,具有一定的惯性,车辆的转弯角度也是有限的。在计算行驶轨迹时,这些因素都要考虑。最后,从人类的体验上来说,猛加速,急刹车或者急转弯都会造成非常不好的乘坐体验,因此这些也需要考虑。这就是为什么决定规划模块需要花很多的精力来优化轨迹,Apollo系统中的实现自然也不例外。

你可能感兴趣的:(基础知识,自动驾驶,人工智能,机器学习)