1 运动规划基本概念

1.1运动规划的问题

目的地,全局规划——动作规划,宏观决策——微观决策——动作控制

微观决策——动作规划

规划的本质问题:求解函数的最优解:优化搜索

将当前的状态转换为动作的映射:强化学习

1.2规划器的评价指标

完备性,总是能找到解

概率完备性

决策完备性

时间复杂度

问题复杂度

约束

完整约束

1.3问题再次表述

研究者转换为点的运动规划问题是不行的,车辆具有运动学特征

研究方法:configuration space

在哪里搜索?

怎么去搜索?

(1)建立可见图,障碍物节点,路径节点,搜索方法

(2)抽样的方法,网格或者道路结构图

最后需要通过优化、平滑后处理以提高路径的质量。

2 基于抽样的方法——RRT

2.1 快速搜索随机树

特点:快速、高效

适用于多自由度、复杂环境、动态环境的路径规划问题

RRT的步骤伪代码

(1)随机采样点X_rand

(2)找到距离随机采样最近的当前节点X_near

(3)将X_near朝着X_rand方向连一条线,并沿着该线走一个步长,即找到了X_new

(4)进行碰撞约束检测

不满足约束则返回前面,找寻新的点

如果满足约束,则将新的点加入集合,进行树枝的生长。

RRT算法的特点:

2.2 RRT算法的改进

RRT算法虽然可以很快找到问题的解,但是没有优化的效果,所以存在了很多针对RRT算法的改进。

RRT*就是一种改进方法,先用RRT找到初始路径,再不断优化路径,直到达到最大循环次数。

核心:重新选择父节点、重布线

RRT算法的搜索时间是主要研究问题,RRT*算法可以提升。

RRT*的伪代码

与RRT的最大区别:X_New节点的替换:

搜索多个节点

在新产生的节点X_new附近以一个半径定义一个圆,找到里面的所有节点,(X_new,X_1,X_2,一共三个,加上起点X_start)

以路径最短的为父节点,

X_new——X_near——X_start最短,所以选择X_near为X_new的父节点

将这一条路径添加到集合中(X_new——X_near)

对其他点X_1、X_2进行运算,判断哪个点为父节点路径(与起点)最短

X_1仍然是X_near,X_2替换为X_new,如下图所示

重写集合,绘制路径

2.3 如何判断是否与障碍物碰撞

将障碍物设置为规整的几何形状

圆形:判断是否与外接正方形碰撞。如果用圆心与直线的距离,运算量会增大。

长方形:判断规划的两个连续节点是否与长方形的任意两边相交

通过斜率来运算:

2.4 RRT的其他问题与解决

(1)RRT规划出的路径不够连续的折线,影响了实际车辆的运动

可以通过插值拟合解决。提高连续性与可导性。

(2)RRT效率问题

核心思想,将搜索树引入空旷区域,远离障碍物,避免节点在障碍物处的碰撞检查。

有如下方法:

1偏置采样,在随机采样的过程中以一定比例插入目标状态,引领树向目标状态扩展。

2拒绝采样,在感兴趣的区域生成更多样本

3剪枝

4稀疏化,将图提前搜索,了解障碍物位置

5对碰撞节点加采样惩罚,减少该区域的采样

5提高实时性

3 基于抽样的方法——Lattice

3.1 基本概念

输入:定位、感知、高精地图的参考线

输出:光滑的、安全的、没有碰撞风险的轨迹,直接用于车辆控制器

过程:

3.2 参考线坐标系

与车辆坐标系的比较:

两个坐标系的转换:

参考线坐标系到Frenet坐标系

Frenet坐标系到参考线坐标系

3.3 lattice采样

采样的基本类型

生成规划轨迹方程:s(t)与l(t)

具体运算过程:

(1)采样生成轨迹方程

初始状态与采样状态

纵向:

横向:

(2)轨迹可行性评估

筛选一些不可行的轨迹

(3)计算损失(cost)并排序

纵向速度损失函数

舒适度损失函数:考察加速度变化率

向心加速度损失函数:目的是转弯和掉头时应该减速慢行

碰撞损失函数

横向偏移损失函数

横向加速度损失函数

总结

自动驾驶规控课程学习——动作规划相关推荐

  1. 自动驾驶规控课程学习——决策规划

    行为决策系统的规划 1 行为决策基础 1.1 基本概念与任务 行为类型: 系统输入输出: 输入:定位.感知.地图等 输出:决策意图 小例子: 1.2决策系统的评价与挑战 评价指标 挑战 (1)决策密度 ...

  2. 万字长文解读深度学习算法在自动驾驶规控中的应用

    交流群 | 进"传感器群/滑板底盘群"请加微信号:xsh041388 交流群 | 进"汽车基础软件群"请加微信号:ckc1087 备注信息:群名称 + 真实姓名 ...

  3. 自动驾驶汽车之深度学习 2018 MIT 6.S094 Deep Learning for Self-Driving Cars

    MIT自动驾驶汽车之深度学习课程更新到2018版本,PPT酷炫. ------ ------ 麻省理工学院6.S094:自驾车深度学习 跳至内容 Home DeepTraffic DeepCrash ...

  4. 自动驾驶 | Apollo无人驾驶课程笔记3-定位

    在公众号[计算机视觉联盟]后台回复[9076]获取我的AI学习笔记:我的微信:Kingsplusa:    --by 王博Kings,985AI博士,CSDN博客专家,华为云专家 本系列<无人驾 ...

  5. 百度Apollo自动驾驶专题讲座笔记之运动规划模块

    在百度技术学院有Apollo的技术专题课程,对各个模块都有一个入门级的课程,对于了解各个模块间的相互作用关系有很大的作用,很适合对自动驾驶领域感兴趣的人的入门课程.感谢百度Apollo开放了这么好的课 ...

  6. 新手入坑自动驾驶,我是这么学习的......

    它是谁? 没错,它就是是英伟达推出的一款入门级人工智能小车--Jetbot ,估计对机器人,尤其是对车械感兴趣的朋友们一定对它不陌生.组装完成后能够通过摄像头自主识别障碍物并避开,还可以进行人脸识别, ...

  7. 自动驾驶的分级,感知与规划基本意义

    自动驾驶课程学习(二) 文章目录 前言 一.自动驾驶分级 二.感知 1.目标 2.挑战 3. 计划 前言 继续撰写,上一节笔记链接(https://blog.csdn.net/weixin_49344 ...

  8. 商用车自动驾驶线控底盘测试报告

    一.概述 商用车线控底盘主要用于接收控制指令,完成相应的驱动.档位.制动.转向.声光等动作,从而实现自动驾驶功能. 底盘线控系统测试目的是对驾驶模式(Drive Mode).油门(Throttle). ...

  9. 自动驾驶(七)---------初探轨迹规划

    自动驾驶中轨迹规划是最常见的问题,本文分以下几个场景设计轨迹规划: 1. 带约束的多项式拟合算法.2. 贝赛尔曲线拟合. 3. 三次样条差值. 1. 带约束的多项式拟合算法 自动驾驶中经常遇到一类问题 ...

最新文章

  1. js 文本反向排列显示
  2. 下一代 MES,智能制造的骨架
  3. 1071 mysql_mysql 出现1071错误怎么办
  4. 使用JFreeChart绘制散点图
  5. VS.net中的远程调试
  6. 常用计算机二级函数,计算机二级MS office常用函数
  7. android wtf_WTF连接池
  8. 如何绘制逻辑图— 4. 要素的属性:黑盒与白盒
  9. Apache mod_rewrite
  10. 推荐两款轻量级股票看盘工具
  11. 鲍威尔共轭方向法c语言程序,鲍威尔共轭方向法VB源程序
  12. 齐治 堡垒机 mysql_齐治堡垒机:让数据库运维审计无死角
  13. Prometheus(监控报警系统) 的学习笔记
  14. 细数那些深度定制的PC版 安卓系统
  15. 先进级!阿里云大数据+AI平台通过信通院数据平台整体解决方案最高等级评测
  16. Oracle存储过程打印输出错误信息、行号,快速排查
  17. 2019XUPT_ACM 寒假训练第二期
  18. bp神经网络的主要功能,一文搞定bp神经网络
  19. 【数据结构】Java实现栈
  20. Flutter安装详解 as版本

热门文章

  1. ElasticSearch7.6.x 笔记(狂神)
  2. RAID(阵列)恢复为普通硬盘
  3. android -- ContextMenu 的使用 和 OptionsMenu 区别
  4. 2021百度之星初赛 A迷失(DP+flody+二进制优化)
  5. 多资源下载软件-迅雷永不升级版提供下载
  6. xssfworkbook空指针异常_SXSSFWorkbook XSSFWorkbook 我所遇到的坑大集合,希望能帮助更多的人。...
  7. PHP之十六个魔术方法详解 转自:青叶
  8. Google Earth Engine(GEE)——全球森林碳通量(2001-2021)数据集
  9. u盘中文件数据突然消失不见了,u盘中数据不见了怎么办
  10. CSDN添加好友,搜索用户。