文章目录

  • 1 无人驾驶行为决策需要哪些信息
  • 2 有限状态马尔科夫决策过程
    • 2.1 马尔科夫决策定义
    • 2.2 寻找最优策略
    • 2.3 使用MDP的困难
  • 3 基于场景划分设计行为决策
    • 3.1 分治的核心思想
    • 3.2 综合决策
    • 3.3 个体决策
    • 3.4 场景划分和决策系统框架

1 无人驾驶行为决策需要哪些信息

  1. 路由寻径的结果:车辆需要进入的车道是什么(target lane)。
  2. 无人车自身状态:GPS位置,速度,朝向,所在车道,是否正在变道等等。
  3. 历史决策信息:再上一个行为决策周期中,无人车所作出的决策是什么?跟车,停车,转换或是换道?
  4. 周边障碍物信息:障碍物车辆所在的车道,速度,位置,以及短时间内他们的行为预测和轨迹预测。
  5. 交通标识信息:是否有红绿灯,斑马线,停车线。
  6. 交通规则信息:当前道路限速,车道禁行限制等。

2 有限状态马尔科夫决策过程

2.1 马尔科夫决策定义

一个马尔科夫决策过程,由五元组定义:
(S,A,Pa,Ra,γ)(S, A, P_a, R_a, \gamma ) (S,A,Pa​,Ra​,γ)

  1. S代表了无人车所处的有限的状态空间。形如一个包含了车道,环境和本身的珊格世界模型(我的世界)。
  2. A代表了无人车的行为 决策空间,即无人车在所有状态下行为(behavior)空间的集合:包含跟车Follow,换道Change Lane,左转右转Turn Left/Right,停车Stop等。
  3. Pa(s,s′)=P(s′∣s,a)P_a(s,s')=P(s'|s,a)Pa​(s,s′)=P(s′∣s,a)是一个条件概率(Probability),代表无人车在状态s和动作a的条件下,达到下一个状态s’的概率。
  4. Ra(s,s′)R_a(s,s')Ra​(s,s′)是一个激励函数(Reward),代表了无人车在动作a下,从状态s跳转道s’得到的激励。
  5. γ∈(0,1)\gamma\in(0,1)γ∈(0,1)是一个激励的衰减因子,当前的激励系数为1,下一个时刻为γ\gammaγ,下两个时刻为γ2\gamma^2γ2,一次类推,含义是当前的激励总是比未来的激励重要。

2.2 寻找最优策略

在上述MDP定义下,无人车行为决策需要解决的问题就是寻找一个最优策略π:S→A\pi:S\to Aπ:S→A。选取目标是:最大化从当前时间点,到未来的累计激励,即
∑t=0∞γtRa(St,St+1),其中action是由策略π产生:a=π(s)\sum_{t=0}^{\infty}{\gamma^t{R_a}(S_t,S_t+1)},其中action是由策略\pi产生:a=\pi(s) t=0∑∞​γtRa​(St​,St​+1),其中action是由策略π产生:a=π(s)
在上述马尔科夫决策过程定义下,最优策略可以用动态编程(Dynamic Programming)方法求解。假设转移矩阵P和激励分布R是已知的,最优策略的求解则基于一下两个数组的不断计算和存储:
π(st)←argmax⁡a{∑st+1Pa(st,st+1)(Ra(st,st+1)+γV(st+1))}V(st)←∑st+1Pπ(st)(st,st+1)(Rπ(st)(st,st+1)+γV(st+1))\begin{array}{l}{\pi\left(s_{t}\right) \leftarrow \underset{a}{\operatorname{argmax}}\left\{\sum_{s_{t+1}} P_{a}\left(s_{t}, s_{t+1}\right)\left(R_{a}\left(s_{t}, s_{t+1}\right)+\gamma V\left(s_{t+1}\right)\right)\right\}} \\ {V\left(s_{t}\right) \leftarrow \sum_{s_{t+1}} P_{\pi\left(s_{t}\right)}\left(s_{t}, s_{t+1}\right)\left(R_{\pi\left(s_{t}\right)}\left(s_{t}, s_{t+1}\right)+\gamma V\left(s_{t+1}\right)\right)}\end{array} π(st​)←aargmax​{∑st+1​​Pa​(st​,st+1​)(Ra​(st​,st+1​)+γV(st+1​))}V(st​)←∑st+1​​Pπ(st​)​(st​,st+1​)(Rπ(st​)​(st​,st+1​)+γV(st+1​))​
其中,数组V(St)V(S_t)V(St​)代表了未来衰减叠加的累计期望激励,π(St)\pi(S_t)π(St​)代表需要求解的策略。

具体求解过程是在所有可能的状态s和s’之间进行重复迭代计算,直到二者收敛为止。

2.3 使用MDP的困难

利用MDP解决无人车行为决策最关键的部分就是激励函数(Reward)的设计,在设计Reward函数时,要尽可能考虑这些因素:

  1. 到达目的地:无人车应该根据寻径路线前进,如果选择的动作a=π(s)a=\pi(s)a=π(s)导致偏离既定的寻径路线,则给予适当的惩罚。
  2. 安全性和避免碰撞:原理碰撞的栅格应该得到奖励,接近碰撞栅格时,应该给予惩罚。
  3. 乘坐舒适性和下游执行的平滑性。

因为利用马尔科夫概率模型的MDP需要非常细致地设计诸如状态空间、转移概率和激励函数等参数,这些在工业应用上一般不可行。更可靠的设计应该是,基于规则来构建宏观行为决策系统:利用场景分割无人车周边环境,通过构建子场景并Rule运用。

3 基于场景划分设计行为决策

3.1 分治的核心思想

利用分治的原则,将无人车周边的场景进行划分。每个场景独立运用相应的规则来计算无人陈对每个场景中元素的决策行为,再将所有划分的场景的决策进行综合,得到一个最后综合的总体行为决定。

首先引入几个重要概念:综合行为决策(Synthetic Decision)、个体行为决策(Individual Decision),以及场景(Scenario)。

3.2 综合决策

综合决策是行为决策层面的最高决策,决策的指令状态空间需要和下游的动作规划(Motion Planning)协商一致,使得做出的综合决策指令,可以让下游规划出路线轨迹(Trajectory)。为了便于下游直行,综合决策的指令集往往带有具体的指令参数数据,如表所示:

3.3 个体决策

这里的个体,包含车辆和行人,也包含红绿灯和停车线。

最终的综合决策,是先经过场景的划分,产生每个场景下的个体决策,再综合考虑归纳这些个体决策,最终得到综合决策。

传递个体决策有两个好处:

  1. 帮助下层模块更有效地实现路径规划。
  2. 需要调试解决问题时,传递过来的个体决策能够大大提高调试效率。

例如,在针对某个障碍物车辆进行超车这一个体决策时,附加参数包括:

  1. 超车距离:本车的车身要超过前车的车头的最小距离。
  2. 超车时间:这段超车距离要行驶的最小安全时间间隔。

3.4 场景划分和决策系统框架

在(a)图中,无人车意图是向左换道,此时包含了3个场景:

  1. 左侧车道:车辆a和d在左侧车道行驶,无人车需要先让a通过,然后在d车之前换道。
  2. 当前车道:我车虽然在换道,但同时需要注意前车b,后车e可以ignore。
  3. 右侧车道:右侧车道的c车正在向左变道,可以ignore。

在(b)图中,稍微复杂一些,包含了2层场景:

  1. 我车 + (1)人行横道 + (2)红绿灯 + (3)Keep Clear Zone(ignore)
  2. 路口场景:基于(1)(2)(3)的场景。

假设此时无人车意图是右转,红绿灯可以右转,但是没有道路优先权需要避让直行车,又感知到了一个行人正在人行横道上横穿马路。结合这些场景元素和意图,最终的指令是:针对行人在人行横道前停车。

综上所属,每个场景根据自身的业务逻辑(Business Logic)计算不同个体的决策,通过场景复合,以及对所有决策的综合考虑,得到一个安全决策。整体决策模块系统框架和流程如下:

大致分4个步骤:

  1. 结合我车状态,地图数据,感知结果构建不同层次的场景。
  2. 每个场景根据自身规则(交通法规,安全避让),计算出每个场景的个体决策。
  3. 检查各个场景有无冲突,并解决(安全验证)。
  4. 在统一的时空里,推演所有决策能否汇总成安全无碰的综合决策,最后发送给动作规划模块。

参考文章

《第一本无人驾驶技术书》刘少山

无人驾驶的规划与控制(二)——行为决策规划相关推荐

  1. 无人驾驶中的决策规划控制技术

    作者: 李力耘,刘少山 责编:何永灿,欢迎人工智能领域技术投稿.约稿.给文章纠错,请发送邮件至heyc@csdn.net 本文为<程序员>原创文章,未经允许不得转载,更多精彩文章请订阅&l ...

  2. 无人驾驶的决策规划控制技术

    转载:https://www.leiphone.com/news/201705/ShKxa21KiSdwmu7n.html 无人车作为一个复杂软硬件结合的系统,其安全可靠运行需要车载硬件.传感器集成. ...

  3. 学习百度Apollo中的决策规划

    学习视频链接 无人车的任务:定位(在哪里).感知(看到了什么).预测(环境下一步怎么变化).规划(我们应该怎么移动).控制(怎样控制车辆) 一.无人车规划问题与解决框架 1.定义: 无人车规划问题就是 ...

  4. 自动驾驶决策规划算法第二章——Apollo EM Planner实践篇

    前置学习内容:自动驾驶控制算法 [自动驾驶][零基础]基础自动驾驶控制算法笔记_免费教学录影带的博客-CSDN博客 自动驾驶决策规划第一章 自动驾驶决策规划算法第一章_免费教学录影带的博客-CSDN博 ...

  5. Tesla技术方案深度剖析:自动标注/感知定位/决策规划/场景重建/场景仿真/数据引擎...

    作者 | 石桥  编辑 | 汽车人 原文链接:zhuanlan.zhihu.com/p/584024853 点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 点 ...

  6. 自动驾驶决策规划算法概述

    一.自动驾驶级别分类 L0 系统无法控制横向或者纵向 L1 系统能控制横向或者纵向中的一个,但横纵向无法联合控制 L2 系统可以联合控制横向和纵向 L3 小部分场景不需要人负责监控环境 L4 大部分场 ...

  7. 【A_star二维路径规划】基于matlab A_star算法无人机二维路径规划(起终点障碍物可设置)【含Matlab源码 1321期】

    ⛄一.获取代码方式 获取代码方式1: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码. 获取代码方式2: 完整代码已上传我的资源:[A_star二维路径规划]基于matlab A_s ...

  8. Apollo Planning决策规划算法代码详细解析 (2):Scenario执行

    上一章节讲Scenario的决策逻辑,当确认当前Scenario后,本章节继续深入讲解在代码中,Scenario的执行过程.Scenario的Process()函数根据配置文件顺序执行stage,并判 ...

  9. 【GA三维路径规划】遗传算法无人机三维路径规划【含Matlab源码 1268期】

    ⛄一.无人机简介 0 引言 随着现代技术的发展,飞行器种类不断变多,应用也日趋专一化.完善化,如专门用作植保的大疆PS-X625无人机,用作街景拍摄与监控巡察的宝鸡行翼航空科技的X8无人机,以及用作水 ...

  10. 港口无人驾驶领军者 | 斯年智驾火热招聘中(点云算法/决策规划/SLAM)

    企业介绍 斯年智驾(senior.auto),中国泛港口无人驾驶领军者.公司成立于2020年4月, 总部坐落于北京,专注于港口无人驾驶技术的研究和商业化落地.斯年智驾主要采用运营和销售的商业模式作为无 ...

最新文章

  1. JavaScript 高级技巧 Memoization
  2. 线程中应该注意的问题
  3. 华为stfal00是什么手机_opporeno5pro和华为p40pro有什么区别 哪款手机更好
  4. 如何确定你的伴侣真的爱你?复杂数学公式告诉你
  5. 锅巴文件共享软件地址和说明
  6. Java 中 notify 和 notifyAll 有什么区别?
  7. while和do-while的区别
  8. (摘要)100个伟大的商业理念:理念35:引爆流行
  9. matlab 自适应波束,(完整word版)自适应波束形成与Matlab程序代码注解
  10. PotPlayer LAV MadVR SVP4/BFRC播放器设置(极为详细,硬解,渲染,插帧按CPU性能评级)
  11. HDu--我要拿走你的蜡烛
  12. Elasticsearch 7.10 之 Total shards per node
  13. python指南针_用形状文件或地质指南针绘制遮住的南极洲
  14. 跨境电子商务行业进入发展快车道
  15. Microbiome:南农张瑞福团队揭示放牧引起草原微生物组变化驱动土壤有机碳的转化和生产力的提升...
  16. 快速掌握python3语法_【Python】Python3基本语法入门学习
  17. BloomFilter怎么用?使用布隆过滤器来判断key是否存在?
  18. 让电脑速度快上100%方法
  19. #174-D: expression has no effect报错解决方法
  20. 电子工程师必知必会——矢网史密斯Smith Chart圆图测试阻抗

热门文章

  1. Netty工作笔记0026---NIO 网络编程应用--群聊系统1---编写服务器1
  2. SpringCloud工作笔记067---消息推送_推送视频_推送图片_在通知栏里显示图片视频_自定义点击消息后的动作
  3. sql 单表/多表查询去除重复记录
  4. mysql数据库BigInt数据类型和实体对象中BigInteger,Long类型的冲突
  5. 多克隆,坚决抵制快照
  6. 什么是 C Runtime 函数库
  7. ps怎么把图片背景变透明_ps怎么添加背景?ps怎么添加背景图?
  8. 随想录(png的读取和显示)
  9. java nullexception_Java 中 NullPointerException 的完美解决方案
  10. androidsdcard挂载目录_获取android手机的自带存储路径和sdcard存储路径