0%

apollo学习笔记-day15

Understand More on the MP Difficulty

  • EM是一个在已知部分相关变量的情况下,估计未知变量的迭代技术,EM的算法流程如下:
    • 初始化分布参数
    • 重复直到收敛
      • E步骤:根据隐含数据的假设值,给出当前的参数的极大似然估计
      • M步骤:重新给出未知变量的期望估计,应用于缺失值
  • 约束问题的三个核心:
    • 第一是目标函数的定义,目标函数比较清晰,对于后面的求解更有帮助
    • 第二是约束,比如路网约束、交规、动态约束等
    • 第三是约束问题的优化,比如动态规划、二次规划等
  • 在无人车的场景中,有三类约束:
    • Rraffic Regulation(交通管制)
    • Decisions(决定)
    • Best Trajectory(最佳轨迹)
    • 这些限制又分为硬限制和软限制,例如交通规则属于硬性限制
  • Reference Line Decider
    • 在可能要进行换道处理的场景下,如果只是简单的看到旁边没有车就换道,可能会导致危险发生
    • 在 Apollo EM 规划框架中,我们会对换道和继续在本车道行驶分别规划出一条轨迹,只有换道之后的轨迹要比本车道的好的情况下才换道
    • 在 Apollo 的 EM planner中,决定哪个道比较好的模块叫做 Reference Line Decider,中间的并行模块是通过 Path Speed Iterative 的方式并行实现的
  • 优化决策问题
    • 优化决策问题本身是一个 3D optimization 问题,其中包含了三个维度,需要生成 SLT
    • 三维空间常用的优化方法有两种:
      • 离散化的方式去处理
      • Expectation Maximization(期望最大化)
        • 基本思想是降维处理,先在一个维度上进行优化,然后在优化的基础上再对其它维度进行优化,并持续迭代以获得局部最优解
  • 对于无人车,Apollo 上的 EM planner 对 Path-Speed 进行迭代优化
    • 首先,生成一条 Optimal Path ,在最优路径的基础上生成 Optimal Speed Profile
    • 在下一个迭代周期,在优化后的 Speed 的基础上,进一步优化 Path,依次类推
    • 它分了四步走,其中分为两步 E 步骤和 M 步骤,这种算法的缺点是不一定能收敛到全局最优解
  • 优化问题的关键步骤包括:
    • Objective Functional
      • 目标函数是一些关键特征的线性组合
    • Constraint
      • 约束主要包括交通灯、碰撞以及动态需求等
    • Solver
      • 优化求解方法的目的是找到最佳路径,包括前面讲的动态规划+二次规划的启发式方法
  • 非线性优化问题
    • 对于非线性优化问题,通常都是分两步走:
      • 一是动态规划,先找一个粗略解
      • 然后是二次规划,从粗略解出发,找出一个最优解
    • 以路径规划为例
      • 假设前方有一个障碍物,首先做出从左边还是右边的避让决策
      • 然后通过 QP 生成一条平滑的曲线去避让障碍物
    • 对于速度而言,先通过动态规划的方式给出一个粗略的解,然后再通过二次规划的方式给出一个更平滑的解
    • 对于路径而言,先确定主车的位置,然后往前排撒若干点,基于撒点网络得到一个代价最低的路径,然后利用二次规划方法,按照问题抽象、模型建立和优化求解的步骤生成一条平滑的轨迹
  • 对逆行的规划处理:
    • 首先根据当前 Speed Profile 去估计当前逆行障碍物的位置
    • 然后再修正 Path,根据修正之后的 Path 再来处理 Speed

Reinforcement Learning and Data Driven Approaches

  • 决策问题通常用 POMDP 加上一些机器学习的技术来解决
  • 解决好规划问题,需要把两个方面做好,一个是数据闭环(Data Driven),另一个是基于规则的方法
  • 数据驱动是在基于规则的闭环里面的小闭环,解决实际问题时得从规则一步一步进阶到数据驱动,而不能 一上来就是数据驱动
  • 在基于规则的方法的基础上,对问题形成一定的认识,通过把问题抽象成更加通用的问题,定义目标函数来进一步优化问题
  • 强化学习的思想就是:
    • 确立一个目标,随机的做出一个选择或是说策略,然后对结果进行观察
    • 如果结果不符合预期,则不断地对其修正,使其最终达到一个期望的结果范围
    • 最终能够建立一个所有场景与其执行策略到最终结果的一个映射
  • 数据驱动的方法就是通过大量的案例统计分析,得到模型,使得遇到类似问题的时候,不需要过多的考虑,直接套用数据驱动的模型获得结果
  • Data Driven 的方法其实就是基于经验的方法,只不过这些经验是模型通过大量的样本数据学习得到的

参考资料