行为决策系统的规划
![](https://img-blog.csdnimg.cn/img_convert/01df126ba7964020a979ea91b367a45a.png)
![](https://img-blog.csdnimg.cn/img_convert/e46e01ca167448cdbf5424e99c96601e.png)
1 行为决策基础
1.1 基本概念与任务
行为类型:
![](https://img-blog.csdnimg.cn/img_convert/76bc8e9517354721b1ebfce0542e4978.png)
系统输入输出:
输入:定位、感知、地图等
输出:决策意图
![](https://img-blog.csdnimg.cn/img_convert/a9efdc609ce843e4a77165a64827fe6e.png)
小例子:
![](https://img-blog.csdnimg.cn/img_convert/a0bc993067264bf4922d0dfbf90d7e52.png)
1.2决策系统的评价与挑战
评价指标
![](https://img-blog.csdnimg.cn/img_convert/38c62350a76e441981b8f8ca6c08d1ad.png)
挑战
(1)决策密度
(2)决策时的不确定性
![](https://img-blog.csdnimg.cn/img_convert/0a48124855eb4f11ac86b17d24064c52.png)
从功能模块看不确定性:
定位:误差、偏差
控制:跟踪误差
感知:感知到信息的不确定性
预测:未来状态的不确定性
可见性:环境中有不可见的信息
![](https://img-blog.csdnimg.cn/img_convert/bd72517931a648bea45ad967d449b347.png)
1.3 决策系统的基本分类
![](https://img-blog.csdnimg.cn/img_convert/be33bc9455364f47be917dbd830f113f.png)
2 有限状态机
2.1 模型概述
车辆在某些状态下的动作,适用于有限的简单场景
![](https://img-blog.csdnimg.cn/img_convert/7368aa9d7acc4b9fad7acda1c2f0b227.png)
基本例子:
5个动作可选择,根据车辆的状态选择动作。
![](https://img-blog.csdnimg.cn/img_convert/31f05432643042109e07d2bb66573215.png)
另一个停车的例子:
![](https://img-blog.csdnimg.cn/img_convert/f1f760c9562c4305aa8a28147c1d4ee6.png)
2.2 状态机的有向图表示
![](https://img-blog.csdnimg.cn/img_convert/22cc2de0b20b4413acb9e0a9ef806f07.png)
![](https://img-blog.csdnimg.cn/img_convert/aa55a4dbe7d649c58d58086c35ce930b.png)
![](https://img-blog.csdnimg.cn/img_convert/155e4704dfc94873bdcb549f8635b21d.png)
![](https://img-blog.csdnimg.cn/img_convert/04372ad040c14398a09224a35f6dc4ad.png)
![](https://img-blog.csdnimg.cn/img_convert/128990dd576841e6b4b763568db2e6f6.png)
![](https://img-blog.csdnimg.cn/img_convert/dbb0b1721e6e447292cf254d7df3d910.png)
![](https://img-blog.csdnimg.cn/img_convert/f548b1d17f524041bb785456d59799a6.png)
![](https://img-blog.csdnimg.cn/img_convert/5447de7351fa4f2fa537cf19d9b940b2.png)
![](https://img-blog.csdnimg.cn/img_convert/2356d20915244d9981345613e9d9ddd3.png)
![](https://img-blog.csdnimg.cn/img_convert/96e5a8aaa6884742a3b2463cf253a10a.png)
2.3 有限状态机的问题
(1)很复杂,系统模型庞大,有向图难以全面绘制,所以引入分层状态机
分层状态机:将相同的状态划分到子集
比如下图中的变道子集合
![](https://img-blog.csdnimg.cn/img_convert/df9f947e0a454e5e960368f61ca9d651.png)
(2)其他的一些问题
庞大、可扩展性、可读性、可维护性、复用性很差
![](https://img-blog.csdnimg.cn/img_convert/a7110937fb064800b0ffac54b68fa008.png)
3 行为树决策法
3.1 基本结构
![](https://img-blog.csdnimg.cn/img_convert/8d564a3c73d44ec7b27a2266ecbc58f6.png)
将场景的任务模块化。
和状态机的方法是类似的,都是将场景任务与决策联系起来。换了一种方式表述。
更容易被理解,不容易出错。
行为树被公式化为具有树结构的有向图,并具有以下特点:
行为树是树:它们从根节点开始,设计为按特定顺序遍历,直到达到终端状态(成功或失败)。
叶节点是可执行的行为:每个叶都会执行一些操作,无论是简单检查还是复杂操作,并输出状态(成功、失败或正在运行)。换句话说,叶节点是将BT连接到特定应用程序的较低级别代码的地方。
内部节点控制树遍历:树的内部(非叶)节点将接受其子节点的结果状态,并应用自己的规则来指定下一个应该扩展哪个节点。
![](https://img-blog.csdnimg.cn/img_convert/97452ebe1d594487948eb0032ff78278.png)
模型结构
构成行为树的节点有6种基本类型,它们以图形方式表示:
行为树在离散的更新步骤中执行,称为滴答声。
节点发出滴答声后,它会向其父节点返回一个状态,可以是“成功”、“失败”或“正在运行”。
![](https://img-blog.csdnimg.cn/img_convert/a9a90dff7da8460da938523845222ad8.png)
动作节点
动作节点是树的叶子
它执行任务,如果操作完成,则返回成功;如果任务无法完成,则为失败;如果任务正在执行,则返回运行。
![](https://img-blog.csdnimg.cn/img_convert/d51720ea26fa4a6386371c8bc5e33023.png)
序列节点
一个序列节点按顺序标记其子节点,试图确保所有序列任务都被执行。
如果任何子级返回失败,则序列已失败,并将向上传播。序列节点仅在所有子级成功时返回成功。
![](https://img-blog.csdnimg.cn/img_convert/a1f3027ae37145b0b96863e4bf5ab53c.png)
条件节点
条件节点类似于简单的if语句。
如果条件检查为true,则节点返回Success,如果为false,则返回Failure。条件节点永远不会返回Running状态。
![](https://img-blog.csdnimg.cn/img_convert/8ea39a5e66ad4f36bcd1b701426aa1c1.png)
选择节点
选择器节点将开始按顺序勾选其子节点。
如果第一个子节点失败,执行将继续到下一个子节点,并勾选。
如果一个子节点成功了,选择器也会返回成功,并且不会继续下一个。
![](https://img-blog.csdnimg.cn/img_convert/a5ba914e4f0742dba885f634d86e74e7.png)
并行节点
并行节点同时标记其所有子节点,从而允许多个Action节点同时进入arunning状态。
并行节点自身报告访问/失败之前需要多少子节点才能成功的要求可以根据每个实例进行自定义。
![](https://img-blog.csdnimg.cn/img_convert/eeae4e3aa7da4a7c907131409227c02d.png)
装饰器节点
decorator节点包装底层子树或子树的功能。
例如,它可以影响基础节点的行为或修改返回状态。
![](https://img-blog.csdnimg.cn/img_convert/9178ab41ec8b4d63bd6fd8d4060a5c45.png)
超车场景的节点图
![](https://img-blog.csdnimg.cn/img_convert/2005c4a1419f4811a20f899966928065.png)
3.2 与状态机的比较
理论上,可以将任何东西表示为BT、FSM、其他抽象之一或asplain代码。然而,每种模型都有其自身的优点和缺点,它们的意图是在更大的规模上进行设计。
具体到BTs和FSM,在模块化和反应性之间存在权衡。通常,BTs更容易组成和修改,而FSM在设计反应性方面具有优势。
![](https://img-blog.csdnimg.cn/img_convert/015f74c8ff4748f28e783d2359c83d0b.png)
![](https://img-blog.csdnimg.cn/img_convert/e7512d255a744015a311e379546bf23b.png)
![](https://img-blog.csdnimg.cn/img_convert/93cbb25bffb1493bb385fd94dfc38022.png)
4 基于部分可观的马尔科夫决策过程
![](https://img-blog.csdnimg.cn/img_convert/1336712a74d348ce9a5744cd3c15a347.png)
4.1 马尔科夫过程简述
下一状态仅仅由当前状态决定。
![](https://img-blog.csdnimg.cn/img_convert/df408c6584474285a29045dc20bc9fd9.png)
![](https://img-blog.csdnimg.cn/img_convert/147d1672d6b94b388eaea79f24c72ddf.png)
隐性马尔科夫链
![](https://img-blog.csdnimg.cn/img_convert/fe45fb69df0e422ca71565f3506efe6b.png)
4.2 马尔科夫决策过程
为基本的马尔科夫链加入了Action
![](https://img-blog.csdnimg.cn/img_convert/c369d765f976446ba0fb2b6895c39991.png)
部分可观的马尔科夫决策过程
![](https://img-blog.csdnimg.cn/img_convert/e1791266b50947438a4a714b25bd81bc.png)
上述几个过程的比较表格
![](https://img-blog.csdnimg.cn/img_convert/2dbdb5ee118645f39e5e7b41123c989f.png)
部分马尔科夫决策过程的解决方法:引入预测模型
![](https://img-blog.csdnimg.cn/img_convert/a9fb2e64497d44e9bf9d9edf0779dd53.png)
4.3 马尔科夫决策过程在无人车中的应用
MDP的基本模块再次表述
![](https://img-blog.csdnimg.cn/img_convert/586743eac1694fedb159dbceb1ae2609.png)
无人车的基本问题:找到一个目标策略,使得奖励最大化
![](https://img-blog.csdnimg.cn/img_convert/abeefa016aef4acca987255d2b854389.png)
马尔科夫决策过程的挑战:
(1)奖励设计(2)安全性(3)舒适性
![](https://img-blog.csdnimg.cn/img_convert/289df327dd5f481aa0ae071446bed3d7.png)
5 模仿学习
应用在多步决策方面效果较好。
![](https://img-blog.csdnimg.cn/img_convert/6fd89ebc59ff485c806b2da2c2a1d96b.png)
状态——动作映射关系的学习
状态:感知信息
动作:驾驶员的操作数据
进行监督学习
![](https://img-blog.csdnimg.cn/img_convert/acc206e47d6941bbbc5afa93d13d3b41.png)
存在复合误差
![](https://img-blog.csdnimg.cn/img_convert/bdedb6b4a1484527a5c1eadcb2a0beb3.png)
数据增强
![](https://img-blog.csdnimg.cn/img_convert/97382b4b108e407580f310695478a1b6.png)
这个文章的作者将优化目标转移到了采集的数据上
人为打标签
![](https://img-blog.csdnimg.cn/img_convert/c93e94754de04a05a1b0cd0cd9044e12.png)
模仿学习的基本问题:
其他挑战:
1.如果没有自己的反馈,专家很难为转弯提供正确的幅度
解决方案:向专家提供视觉反馈
2.专家对车辆行为的反应时间很长,这会导致不完美的命令
解决方案:离线慢动作回放并记录他们的行为
3.执行不完善的策略会导致事故、崩溃障碍
解决方案:安全措施再次使列车和测试之间的数据分布不匹配,但足够好。
![](https://img-blog.csdnimg.cn/img_convert/ad3e2e9e72094d8d9da93f384566f1a5.png)
两种广泛的方法:
直接:监督政策培训(将状态映射到行动),使用演示轨迹作为基本事实(又称行为克隆)
间接:了解教师的未知奖励功能/目标,并从中得出政策,即反向强化学习。
![](https://img-blog.csdnimg.cn/img_convert/c524cec10f414009a2fa2b13977e5afc.png)
6 总结
基于规则的方法与基于学习的方法之间的比较:
(1)基于规则的方法
逻辑容易理解稳定
易于建模和调整
对处理器性能的要求更低
通过级联多层易于扩展
车辆行为的不连续性
如果没有精心设计,规则可能会变得无效。有限状态机可能无法覆盖所有场景
长尾效应
![](https://img-blog.csdnimg.cn/img_convert/4aacaf0c690f4a4f9c9c3caaac0bb2d0.png)
(2)基于学习的方法
更好的场景覆盖率优势,每个场景都可以用大数据进行训练
通过网络可以简化决策
一些学习算法能够提取环境特征和决策财产。
无需遍历所有场景,随着收集到更多数据,将对WnIcn进行培训/改进。
难以理解为什么要做出某些决定
难以修改模型
不同的场景可能会导致完全不同的模型
需要大量实验数据作为训练样本
性能高度依赖于数据的质量
![](https://img-blog.csdnimg.cn/img_convert/3963bcd58945491c99648b8f297f0ba3.png)
![](https://img-blog.csdnimg.cn/img_convert/6da8e2cd38a64f68bc23aa8b915b1a9f.png)