自动驾驶规控课程学习——决策规划
行为决策系统的规划
![](/assets/blank.gif)
![](/assets/blank.gif)
1 行为决策基础
1.1 基本概念与任务
行为类型:
![](/assets/blank.gif)
系统输入输出:
输入:定位、感知、地图等
输出:决策意图
![](/assets/blank.gif)
小例子:
![](/assets/blank.gif)
1.2决策系统的评价与挑战
评价指标
![](/assets/blank.gif)
挑战
(1)决策密度
(2)决策时的不确定性
![](/assets/blank.gif)
从功能模块看不确定性:
定位:误差、偏差
控制:跟踪误差
感知:感知到信息的不确定性
预测:未来状态的不确定性
可见性:环境中有不可见的信息
![](/assets/blank.gif)
1.3 决策系统的基本分类
![](/assets/blank.gif)
2 有限状态机
2.1 模型概述
车辆在某些状态下的动作,适用于有限的简单场景
![](/assets/blank.gif)
基本例子:
5个动作可选择,根据车辆的状态选择动作。
![](/assets/blank.gif)
另一个停车的例子:
![](/assets/blank.gif)
2.2 状态机的有向图表示
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
2.3 有限状态机的问题
(1)很复杂,系统模型庞大,有向图难以全面绘制,所以引入分层状态机
分层状态机:将相同的状态划分到子集
比如下图中的变道子集合
![](/assets/blank.gif)
(2)其他的一些问题
庞大、可扩展性、可读性、可维护性、复用性很差
![](/assets/blank.gif)
3 行为树决策法
3.1 基本结构
![](/assets/blank.gif)
将场景的任务模块化。
和状态机的方法是类似的,都是将场景任务与决策联系起来。换了一种方式表述。
更容易被理解,不容易出错。
行为树被公式化为具有树结构的有向图,并具有以下特点:
行为树是树:它们从根节点开始,设计为按特定顺序遍历,直到达到终端状态(成功或失败)。
叶节点是可执行的行为:每个叶都会执行一些操作,无论是简单检查还是复杂操作,并输出状态(成功、失败或正在运行)。换句话说,叶节点是将BT连接到特定应用程序的较低级别代码的地方。
内部节点控制树遍历:树的内部(非叶)节点将接受其子节点的结果状态,并应用自己的规则来指定下一个应该扩展哪个节点。
![](/assets/blank.gif)
模型结构
构成行为树的节点有6种基本类型,它们以图形方式表示:
行为树在离散的更新步骤中执行,称为滴答声。
节点发出滴答声后,它会向其父节点返回一个状态,可以是“成功”、“失败”或“正在运行”。
![](/assets/blank.gif)
动作节点
动作节点是树的叶子
它执行任务,如果操作完成,则返回成功;如果任务无法完成,则为失败;如果任务正在执行,则返回运行。
![](/assets/blank.gif)
序列节点
一个序列节点按顺序标记其子节点,试图确保所有序列任务都被执行。
如果任何子级返回失败,则序列已失败,并将向上传播。序列节点仅在所有子级成功时返回成功。
![](/assets/blank.gif)
条件节点
条件节点类似于简单的if语句。
如果条件检查为true,则节点返回Success,如果为false,则返回Failure。条件节点永远不会返回Running状态。
![](/assets/blank.gif)
选择节点
选择器节点将开始按顺序勾选其子节点。
如果第一个子节点失败,执行将继续到下一个子节点,并勾选。
如果一个子节点成功了,选择器也会返回成功,并且不会继续下一个。
![](/assets/blank.gif)
并行节点
并行节点同时标记其所有子节点,从而允许多个Action节点同时进入arunning状态。
并行节点自身报告访问/失败之前需要多少子节点才能成功的要求可以根据每个实例进行自定义。
![](/assets/blank.gif)
装饰器节点
decorator节点包装底层子树或子树的功能。
例如,它可以影响基础节点的行为或修改返回状态。
![](/assets/blank.gif)
超车场景的节点图
![](/assets/blank.gif)
3.2 与状态机的比较
理论上,可以将任何东西表示为BT、FSM、其他抽象之一或asplain代码。然而,每种模型都有其自身的优点和缺点,它们的意图是在更大的规模上进行设计。
具体到BTs和FSM,在模块化和反应性之间存在权衡。通常,BTs更容易组成和修改,而FSM在设计反应性方面具有优势。
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
4 基于部分可观的马尔科夫决策过程
![](/assets/blank.gif)
4.1 马尔科夫过程简述
下一状态仅仅由当前状态决定。
![](/assets/blank.gif)
![](/assets/blank.gif)
隐性马尔科夫链
![](/assets/blank.gif)
4.2 马尔科夫决策过程
为基本的马尔科夫链加入了Action
![](/assets/blank.gif)
部分可观的马尔科夫决策过程
![](/assets/blank.gif)
上述几个过程的比较表格
![](/assets/blank.gif)
部分马尔科夫决策过程的解决方法:引入预测模型
![](/assets/blank.gif)
4.3 马尔科夫决策过程在无人车中的应用
MDP的基本模块再次表述
![](/assets/blank.gif)
无人车的基本问题:找到一个目标策略,使得奖励最大化
![](/assets/blank.gif)
马尔科夫决策过程的挑战:
(1)奖励设计(2)安全性(3)舒适性
![](/assets/blank.gif)
5 模仿学习
应用在多步决策方面效果较好。
![](/assets/blank.gif)
状态——动作映射关系的学习
状态:感知信息
动作:驾驶员的操作数据
进行监督学习
![](/assets/blank.gif)
存在复合误差
![](/assets/blank.gif)
数据增强
![](/assets/blank.gif)
这个文章的作者将优化目标转移到了采集的数据上
人为打标签
![](/assets/blank.gif)
模仿学习的基本问题:
其他挑战:
1.如果没有自己的反馈,专家很难为转弯提供正确的幅度
解决方案:向专家提供视觉反馈
2.专家对车辆行为的反应时间很长,这会导致不完美的命令
解决方案:离线慢动作回放并记录他们的行为
3.执行不完善的策略会导致事故、崩溃障碍
解决方案:安全措施再次使列车和测试之间的数据分布不匹配,但足够好。
![](/assets/blank.gif)
两种广泛的方法:
直接:监督政策培训(将状态映射到行动),使用演示轨迹作为基本事实(又称行为克隆)
间接:了解教师的未知奖励功能/目标,并从中得出政策,即反向强化学习。
![](/assets/blank.gif)
6 总结
基于规则的方法与基于学习的方法之间的比较:
(1)基于规则的方法
逻辑容易理解稳定
易于建模和调整
对处理器性能的要求更低
通过级联多层易于扩展
车辆行为的不连续性
如果没有精心设计,规则可能会变得无效。有限状态机可能无法覆盖所有场景
长尾效应
![](/assets/blank.gif)
(2)基于学习的方法
更好的场景覆盖率优势,每个场景都可以用大数据进行训练
通过网络可以简化决策
一些学习算法能够提取环境特征和决策财产。
无需遍历所有场景,随着收集到更多数据,将对WnIcn进行培训/改进。
难以理解为什么要做出某些决定
难以修改模型
不同的场景可能会导致完全不同的模型
需要大量实验数据作为训练样本
性能高度依赖于数据的质量
![](/assets/blank.gif)
![](/assets/blank.gif)
自动驾驶规控课程学习——决策规划相关推荐
- 自动驾驶规控课程学习——动作规划
1 运动规划基本概念 1.1运动规划的问题 目的地,全局规划--动作规划,宏观决策--微观决策--动作控制 微观决策--动作规划 规划的本质问题:求解函数的最优解:优化搜索 将当前的状态转换为动作的映 ...
- 万字长文解读深度学习算法在自动驾驶规控中的应用
交流群 | 进"传感器群/滑板底盘群"请加微信号:xsh041388 交流群 | 进"汽车基础软件群"请加微信号:ckc1087 备注信息:群名称 + 真实姓名 ...
- 自动驾驶汽车之深度学习 2018 MIT 6.S094 Deep Learning for Self-Driving Cars
MIT自动驾驶汽车之深度学习课程更新到2018版本,PPT酷炫. ------ ------ 麻省理工学院6.S094:自驾车深度学习 跳至内容 Home DeepTraffic DeepCrash ...
- 自动驾驶 | Apollo无人驾驶课程笔记3-定位
在公众号[计算机视觉联盟]后台回复[9076]获取我的AI学习笔记:我的微信:Kingsplusa: --by 王博Kings,985AI博士,CSDN博客专家,华为云专家 本系列<无人驾 ...
- 百度Apollo自动驾驶专题讲座笔记之运动规划模块
在百度技术学院有Apollo的技术专题课程,对各个模块都有一个入门级的课程,对于了解各个模块间的相互作用关系有很大的作用,很适合对自动驾驶领域感兴趣的人的入门课程.感谢百度Apollo开放了这么好的课 ...
- 新手入坑自动驾驶,我是这么学习的......
它是谁? 没错,它就是是英伟达推出的一款入门级人工智能小车--Jetbot ,估计对机器人,尤其是对车械感兴趣的朋友们一定对它不陌生.组装完成后能够通过摄像头自主识别障碍物并避开,还可以进行人脸识别, ...
- 自动驾驶的分级,感知与规划基本意义
自动驾驶课程学习(二) 文章目录 前言 一.自动驾驶分级 二.感知 1.目标 2.挑战 3. 计划 前言 继续撰写,上一节笔记链接(https://blog.csdn.net/weixin_49344 ...
- 自动驾驶(七)---------初探轨迹规划
自动驾驶中轨迹规划是最常见的问题,本文分以下几个场景设计轨迹规划: 1. 带约束的多项式拟合算法.2. 贝赛尔曲线拟合. 3. 三次样条差值. 1. 带约束的多项式拟合算法 自动驾驶中经常遇到一类问题 ...
- 自动驾驶线控转向的一些了解(逐步更新完善)
. 转向系统的组成 个人大白话的理解(大神请喷,我及时改正)是: 转向系统就是四两拨千斤.以方向盘的小力控制汽车转向的大力, 大概流程可为:驾驶员在方向盘上施加小力,转向柱是传递小力, 然后转向器可通 ...
最新文章
- php实现鼠标悬停显示下拉菜单,Html中鼠标悬停显示二级菜单的两种方法
- SQL Server返回当前实例系统日期和时间的函数
- 05-树7 堆中的路径 (25 分)
- mysql dump 1017_MySQL数据库导出 - Can't Wait Any Longer - OSCHINA - 中文开源技术交流社区...
- linux能挂载的文件类型,mount命令是如何自动识别挂载点的文件系统类型的
- 帝国cms index.php?id=调不到指定文章,帝国cms修改实现TAG标签以TAGID的方式伪静态...
- Xposed 插件开发(三)—— 我的 hooker 是哪里导致出错了?
- [Cocoa]深入浅出 Cocoa 之消息
- Redis安装和启动报错解决
- Dell Optiplex主流台式机驱动安装指南
- iis服务器网站启动不了,IIS上打不开asp网站怎么办
- Win系统 - Windows10 系统恢复语言栏位置的方法(二)
- 关于传递函数的频率响应和低通滤波器
- 得洲奥斯汀研究生计算机专业排名,德克萨斯大学奥斯汀分校世界排名及专业排名汇总(QS世界大学排名版)...
- OGG/OGV文件格式解析
- 狂妄之人音乐计算机乐谱,天谕手游狂妄之人乐谱_狂妄之人乐谱代码分享_3DM手游...
- java版我的世界怎么疾跑,我的世界怎么疾跑?疾跑快捷键介绍
- 安卓学习专栏——安卓报错Version 28 (intended for Android Pie and below) is the last version of the legacy suppor
- 主要Linux发行版和FreeBSD概述
- 干货 | 带你解锁AC/DC、DC/DC转换器基础
热门文章
- KKB:注解实现IOC
- js云朵动画404页面js特效代码
- python协程和线程区别_python 协程 及其与python多线程的区别和联系
- 荣耀战魂冥界回归服务器维护,血月凌空!《荣耀战魂》万圣节活动“冥界的回归”现已开启...
- 北京理工大学2023年软件工程需求与uml建模——第14组旅游景区智能分析平台项目进度(V3.0最终版)
- JRE安装遇到Error 1603
- ipad原始邮箱服务器端口,如何在iPhone/iPad/iPod touch邮件应用程序中创建帐户(默认POP3)?...
- Linux 系统管理 : userdel 命令详解
- 项目一 认识Linux操作系统
- 固定资产管理系统对企业有哪些作用?