MCTS自动驾驶规划
MCTS
参考:蒙特卡洛树搜索
首先,我们给MCTS下两个定义。第一,MCTS是一个决策时规划算法;第二,MCTS是一个rollout算法。不同之处在于MCTS中会部分的保存值函数,从而能够指导仿真产生更高回报值的轨迹。
在MCTS中,每当我们遇到一个新的状态,需要选择动作时,就会执行MCTS(决策时规划)。每一个MCTS更新过程都是一个迭代过程。这个迭代过程会仿真很多从当前状态开始直到终止态的轨迹(rollout)。MCTS的核心思想是专注于哪些获得高的评估回报的仿真,并且基于先前的高回报仿真轨迹不断的往外扩展,产生新的仿真经验。
蒙特卡洛树搜索(Monte Carlo Tree Search, MCTS)是一种搜索策略,严格来说它和DFS、BFS是相当的。不同之处在于,它通过一个权重表(取决于具体的实现)来决定每次搜索的试探方向:到底是探向更深的一层,还是停留在当前层试探其他节点。
因此,MCTS是一种兼而有之的搜索策略——它估计当前节点和最优解的距离,启发式地决定到底应该采用类DFS的搜索模式,还是采用类BFS的搜索方式。因此,它可以兼具两者的优势并弥补其不足。
*选择 (Selection):*找出几个较好的动作,如使用置信度上界(upper confidence bound, UCB)的动作选择
bonus = reward_i + sqrt((2 *total_counts) / float(counts_i); //reward是选择动作后的平均奖励,counts为选择动作的次数,total_counts为总次数
在最开始时,所有的动作的置信度都很低,因此每个动作都会被选中几次,此时选中最优动作的概率不高,当已经选择了很多次时,每个动作的置信度都已经相当高了,此时会一直选择最优动作,偶尔选择其他置信度低的动作。
*扩展 (Expansion):*如果L节点不是game end,则在节点执行选择的动作a,把得到的新节点C加入到搜索树中;如果L是game end,则直接进入第4步把最终的游戏结果向上传播。
*模拟(Simulation):*对新加入的节点C进行一次(或多次)rollout,即从结点C开始random play(AlphaGo中使用的是强化训练出来的网络做自博)直到游戏结束,得到游戏结果
回溯(Backpropagation): 从节点C开始反向遍历搜索路径,对于路径中的每个节点,更新访问计数和总效益
MCTS在自动驾驶的应用(可用于泊车)
为了计算自我车辆的最优规划,我们使用目标概率和预测轨迹来使用蒙特卡洛树搜索(MCTS)算法。该算法执行许多闭环模拟,从当前状态s开始,一直到某个固定的搜索深度或直到达到目标状态。
在每次模拟开始时,对于每个障碍物车辆,我们首先对其当前运动状态进行采样,然后使用相关的概率对车辆进行轨迹采样。博弈树上的每个结点对应一个状态,在状态点上过滤掉非法动作,然后依据UCB算法选择一个宏观动作。基于无人车动作生成的轨迹以及障碍物车辆的轨迹,在搜索树上继续向前做模拟(simulation),然后可以得到规划的轨迹以及新的结点。轨迹的前向模拟使用比例控制与自适应巡航控制相结合控制智能车的acceleration和steering。根据车辆的观测数据,对每个时间步的机动终止条件进行监测。在生成的轨迹上进行碰撞检测,此时得到碰撞奖励。如果MCTS搜索达到了最大深度dmax(没有碰撞或到达目标点),我们设置终端奖励RtermR_termRterm,它可以是一个常数或基于类似于A* 搜索的启发式奖励估计,最后将得到的奖励反向回溯。
MCTS自动驾驶规划相关推荐
- 自动驾驶规划术语与搜索空间的几种方法
1. 导读 目前,自动驾驶或自动驾驶汽车是学术界和汽车界研究的核心,因为它具有多方面的优势,包括提高安全性.减少拥堵.降低排放和提高机动性.其实软件是支持自动驾驶的关键驱动因素,在将乘客或货物从指定的 ...
- 自动驾驶规划方法综述
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:本文来源: ...
- 自动驾驶规划控制(A*、pure pursuit、LQR算法,使用c++在ubuntu和ros环境下实现)
文章目录 1 目录概述 2 算法介绍 2.1 Astart改进 2.2 ROS(Gazebo仿真) 2.2.1 使用Gazebo仿真需要安装的功能包 2.2.2 创建工作空间 catkin_ws 2. ...
- Apollo星火计划学习笔记——第七讲自动驾驶规划技术原理1
文章目录 前言 1. 规划技术功能概述 1.1 自动驾驶系统 1.2 规划的作用 1.3 规划主要功能 1.3.1 路由寻径(Routing) 1.3.2 行为决策 1.3.3 轨迹规划 2. Apo ...
- 【自动驾驶规划算法】方向盘角速度限速
背景 自动驾驶路测中经常出现规划和控制匹配的问题,规划的路径理论可执行,但是控制不能有效跟踪.究其原因是控制算法性能受到方向盘角速度限制.为解决这一问题,在速度规划层添加方向盘角速度限速项. 理论基础 ...
- 自动驾驶规划控制系列文章(一)——车辆数学模型
目录 一.车辆自行车运动学模型(kinematic bicycle model) 1.基于车辆重心的运动学模型 2. 以后轴中心为原点的运动学模型 二.车辆自行车动力学模型(kinematic bic ...
- Apollo星火计划学习笔记——第七讲自动驾驶规划技术原理2
文章目录 前言 1. 泊车系统介绍 1.1 泊车任务 1.2 关键 Use Cas--车位类型 1.3 关键 Use Cas--环境条件 1.4 泊车过程描述 1.5 泊车状态操作和用户接口定义 1. ...
- 【自动驾驶规划】综述(一)
无人驾驶规划概要 Overview What is motion planning? Motion planning 的三个领域 如何解决一个Motion Planning问题? 基本Planning ...
- 自动驾驶规划控制软硬一体化控制器解决方案(一)
随着社会的进步,汽车工业和电子科技发展迅速,车载电子器件的数量越来越多,汽车 电子的平台集成度越来越高,两者的融合正在革新着人们的驾乘体验.本文基于 x86 SoC 进 行系统设计,实现高效的汽车智能 ...
最新文章
- 详解Python中的循环的几个类型
- Oracle EXPDP/IMPDP示例
- 1028 人口普查 (20 分)
- JavaScript触摸与手势事件
- 数据库水平切分的实现原理解析——分库,分表,主从,集群,负载均衡器
- Ext.net中ComboBox如何绑定数据库中的值
- Google 机器学习应用的43条经验法则
- linux删除第二列为空_Linux之基本文本处理工具(二)
- beats耳机用安卓手机影响音效么_500元以下的头戴式耳机超高性价比推荐
- (最简单的)在VS中调用存储过程
- Eclipse中最有用的快捷键组合
- 美团外卖uml流程图_以美团外卖为例,区别业务流程图和页面流程图 | 人人都是产品经理...
- 蓝桥杯练习系统特殊回文数(python)
- react--1.react环境搭建、JSX语法、注释、样式、列表渲染、定义单个组件、eact Props、react State
- python读书笔记2000_python高级编程读书笔记(一)
- UDP都是全双工通信的吗
- 面试被问TypeScript,我哑口无言
- 如何在macOS 中让Gatekeeper在任何地方允许应用程序
- EF系列(二)——DbContext 和DbSet
- 【软件测试】使用python快速生成系统测试报告