百度Apollo无人驾驶学习笔记之规划与决策(一)

(一) Basic motion planning and overview

What is motion planning?

  • 规划问题的本质是搜索问题
  • 我们要规划出一条比较好的路径,这个“好”是通过一个函数来定义的,我们一般把这个函数叫做目标函数F(x)。
  • 即给定现有的环境,然后去找到无人车如何运动的最优解问题。

不同领域对路径规划的定义是不同的

  • 机器人领域:如何生成一个轨迹去到达目标
    • RRT,A*,D* lite,Lattice Planning,and etc
  • 控制论:为到达目标状态的动态系统
    • MPC,LQR,and etc
  • AI:生成状态的映射
    • Reinforcement learning,end to end imitation learning,and etc

Path Finding Problem

  • BFS,DFS:为non-informative search,没有利用起点到终点间的信息,不知道目标在什么地方
  • A*:为informative search, 定义了一个heuristic function,大概知道目标在什么地方

算法与实际无人车的区别

  • 无人车在实际运动中,无法完全获取起点到终点间的信息,只能通过sensors部分观察前方的路况信息
  • 还包括静态障碍物及动态障碍物的区别
  • 如果知道全部的路径信息,使用A*算法规划路径是一件非常快的事,称为Global routing
  • 只知道部分的路径信息,可以使用贪心的思想,只能看到后三步的信息,就规划出这三步的最优解;只能看到后五步的信息,就规划出这五步的最优解,称为incremental search,D*即这种思想

是否关心得到问题的全局最优解

  • 当我们在开车时,其实关系的是在眼前的环境下,如何得到最优解
  • 假设从北京到上海自驾游,我们也不会在开车前获取全部路程信息,规划出最好的路径
  • 在实践中,global optimization也不是个很好的解决方法
  • 而partially能否做到最后,是我们比较关心的一个问题

对于无人车而言还差哪些问题

  • 算法将空间离散化得到很多折线,而无人车不能走这样的折线
  • 无人车走的是平滑的曲线,需要平滑优化算法
  • 有些路线,无人车无法行驶,需要根据动力学模型,在控制模块加以控制
  • 真正上路时,不能将前方的车当作静止的障碍物,即随着时间的变化,环境也跟着变化
  • 动态环境的变化,对于规划而言是个很难的问题
  • 无人车要上路,第一件事需要遵守交通规则
  • 算法在有些的时间内,找到比较好的解(最优解)百度对无人驾驶规划的响应时间要求为0.2s-0.3s,一个人反应的时间是0.4s-0.5s

无人驾驶硬件系统

  • 激光雷达
  • IMU
  • GPS

无人驾驶软件系统

  • Perception: What we see
  • Localization: Where we are
  • Prediction: How the environment will change
  • Motion Planning: How we move
  • Control: How to control the car

input and output

  • Car status
  • Traffic Light info
  • Obstacles and predicted trajectory
  • Navigation info
  • HD Map

trajectory

  • 轨迹在无人驾驶中不仅仅是一条Path
  • 不是无人车怎么走,而是随着时间无人车怎么走
  • trajectory包含两个信息,路径信息及速度信息
  • 不仅路径平滑,速度也要平滑

小结

  • 规划分为non-informative search和informative search
    • 无人车在行驶前,先根据高清地图规划出来的路径成为Global planner 即informative search,比如通过高德地图事先选择的行驶路径,他不受当前环境状态的影响
    • 在行驶过程中,通过sensors感知到的信息,而规划出的部分最优解成为Local planner,即non-informative search,比如在行驶过程中检测到障碍物,需要及时规划出其他路径避开障碍物,受环境状态的影响
  • 规划问题更深入的话,也包含一些控制问题

你可能感兴趣的:(apollo,学习笔记)