![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
规划
文章平均质量分 95
路径规划
CHH3213
主要研究自动驾驶决策规划控制。
每天都要保持健康的状态,提升专业能力,谨慎投资!
展开
-
计算几何学 | 实用计算几何学知识c++代码实现
前段时间在b站发布了关于二维平面下一些计算几何学知识的讲解,有许多小伙伴私戳我说能不能出个代码实现,所以这段时间就抽个时间用c++实现下视频里面讲的内容。注: 本篇博客不再具体讲解理论内容,而是实现相关算法。bilibili。代码仓库。原创 2024-01-07 15:23:57 · 2758 阅读 · 0 评论 -
【路径规划】局部路径规划算法——DWA算法(动态窗口法)|(含python实现 | c++实现)
动态窗口算法(Dynamic Window Approaches, DWA) 是基于预测控制理论的一种次优方法,因其在未知环境下能够安全、有效的避开障碍物, 同时具有计算量小, 反应迅速、可操作性强等特点。DWA算法属于局部路径规划算法。DWA算法的核心思想是根据移动机器人当前的位置状态和速度状态在速度空间 (v,ω)(v, \omega)(v,ω) 中确定一个满足移动机器人硬件约束的采样速度空间,然后计算移动机器人在这些速度情况下移动一定时间内的轨迹, 并通过评价函数对该轨迹进行评价,最后选出评价最优的轨原创 2022-11-10 15:32:46 · 44683 阅读 · 70 评论 -
【自动驾驶】路径规划——ReedsShepp 曲线总结(python实现 | c++实现)
**Reeds-Shepp** 算法简称 **RS**,由 **J.A.Reeds** 和 **L.A.Shepp** 于 1990 年发表的论文 [( optimal path for a car that goes both forward and backwards)](https://projecteuclid.org/download/pdf_1/euclid.pjm/1102645450)。该方法基于 **Dubins** 算法进行改进,将反向运动(汽车允许后退,挂倒挡)加入到规划中,这就使得在原创 2022-07-18 20:55:51 · 13807 阅读 · 17 评论 -
【自动驾驶】汽车速度规划介绍
当局部路径规划给定了一条或者若干条选出的路径曲线之后,运动规划模块需要解决的后续问题是在此局部路径的基础上加人与速度相关的信息,这一问题被称为速度规划。速度规划的目标是在给定的局部路径曲线上,在满足反馈控制的操作限制及符合行为决策的输出结果这两个前提下,将路径点赋予速度及加速度信息。速度规划主要考虑的是对动态障碍物的规避。...原创 2022-07-17 16:14:41 · 4892 阅读 · 4 评论 -
【自动驾驶】路径规划—— Dubins 曲线公式总结(基于几何的方法) | python实现 | c++实现
前文已经从向量的角度进行了Dubins曲线公式的推导,这篇博客主要基于这篇论文《Classification of the Dubins set》介绍基于几何的关系下的dubins曲线公式,论文每一种情况都有详细的推导,因此这里只给出每种情况的公式,推导过程大家参考论文即可。...原创 2022-06-27 23:07:07 · 5569 阅读 · 10 评论 -
【自动驾驶】路径规划—— Dubins 曲线推导(基于向量的方法)
为了更好地阐述Dubins 曲线,这里我们简单地介绍一种车辆简化运动学模型。关于详细的车辆运动学模型介绍可以参考前文。原创 2022-06-27 18:47:10 · 6030 阅读 · 17 评论 -
【自动驾驶】Apollo EM Planner学习(一):[论文解读]Baidu Apollo EM Motion Planner
基于Baidu Apollo平台提出一种实时运动规划系统,该规划系统包括顶层的多车道和其中的单车道自动驾驶:该规划器可扩展至高速公路和城市低速驾驶场景。EM Planner是Apollo面向L4的实时运动规划算法,该算法首先通过顶层多车道策略,选择出一条参考路径,再根据这条参考线,在Frenet坐标系下,进行车道级的路径和速度规划,规划主要通过Dynamic Programming和基于样条的Quadratic Programming实现。EM Planner充分考虑了无人车安全性、舒适性、可扩展性的需求,转载 2022-06-16 11:54:15 · 2585 阅读 · 0 评论 -
【自动驾驶】基于采样的路径规划算法——RRT*(含python实现 | c++实现)
RRT*算法是一种渐近最优算法,属于RRT算法的优化。渐近最优的意思是随着迭代次数的增加,得出的路径是越来越优化的,因此要想得出相对满意的优化路径,需要一定的运算时间。算法流程与RRT算法流程基本相同,不同之处主要在于两个地方:- 首先,重新为$x_{new}$选择父节点。 - 不同于RRT中直接选择$x_{nearest}$作为$x_{new}$的父节点,我们需要重新为$x_{new}$选择父节点,使得$x_{new}$到起点的cost能够最小。至于cost的定义,可以是路径的长度。原创 2022-06-14 18:05:36 · 6259 阅读 · 3 评论 -
【自动驾驶】基于采样的路径规划算法——PRM(含python实现)
概率路图算法是一种典型的基于采样的路径规划方法。它主要分为两个阶段:学习阶段, 查询阶段。应用PRM算法进行路径规划时,首先在将连续空间转换成离散空间后,在离散空间中采样一个无碰撞的点(随机撒点,剔除落在障碍物上的点),以该点为中心,在一定的半径范围内搜索其邻域点,并将其连接形成路径,随后进行碰撞检测,若无碰撞,则保留该路径。当空间中所有采样点均完成上述步骤后,再应用**图搜索算法**搜索出可行路径。......原创 2022-06-14 11:40:25 · 4542 阅读 · 1 评论 -
【自动驾驶】基于采样的路径规划算法——RRT-Connect(含python实现 | c++实现)
前文回顾基于采样的路径规划算法——RRT(含python实现)基于随机采样的路径规划算法适用于高维度空间,它们以概率完备性(当时间接近无限时一定有解)来代替完备性,从而提高搜索效率。基于随机采样的路径规划算法又分为单查询算法(single-query path planning)以及渐近最优算法(asymptotically optimal path planning),前者只要找到可行路径即可,侧重快速性,后者还会对找到的路径进行逐步优化,慢慢达到最优,侧重最优性。单查询方法包括概率路图算法(Probab原创 2022-06-13 23:25:24 · 5097 阅读 · 3 评论 -
【转载】深蓝学院-运动规划重点笔记
感觉课程讲的非常有条理,从算法的大分类到细节技术。 基于图搜索的方法 配置空间:维度等于机器人的自由度,可以理解为一个点可以表示一个机器人的位姿。例如小车4自由度(x,y,z,θ)。在配置空间中,机器人表示为点。 在3维空间中,要做碰撞检测,就很麻烦。所以在配置空间中做规划,要对障碍物按照机器人的尺寸做膨胀。 基于图搜索的算法框架: 关键问题: 如果一个结点被弹出容器,就不再会被加入到容器中 BFS使用的......转载 2022-05-04 09:44:43 · 2114 阅读 · 3 评论 -
【自动驾驶】基于采样的路径规划算法——RRT(含python实现 | c++实现)
基于随机采样的路径规划算法适用于高维度空间,它们以概率完备性(当时间接近无限时一定有解)来代替完备性,从而提高搜索效率。基于随机采样的路径规划算法又分为单查询算法(single-query path planning)以及渐近最优算法(asymptotically optimal path planning),前者只要找到可行路径即可,侧重快速性,后者还会对找到的路径进行逐步优化,慢慢达到最优,侧重最优性。单查询方法包括概率路图算法(Probabilistic Road Map, PRM)、快速随机扩展树算原创 2022-06-13 19:47:10 · 4477 阅读 · 8 评论 -
【路径规划】局部路径规划算法——B样条曲线法(含python实现 | c++实现)
贝塞尔曲线有以下缺陷:确定了多边形的顶点数(n+1个),也就决定了所定义的Bezier曲线的阶次(n次),这样很不灵活。当顶点数( n+1 ) 较大时, 曲线的次数较高,曲线的导数次数也会较高,因此曲线会出现较多的峰谷值。贝塞尔曲线无法进行局部修改。B样条曲线除了保持Bezier曲线所具有的优点外,还弥补了上述所有的缺陷。即: 可以指定阶次; 移动控制点仅仅改变曲线的部分形状,而不是整体。设有 P0,P1,P2,⋯ ,PnP_{0}, P_{1}, P_{2}, \cdots, P_{n}P0,P1,P原创 2022-06-08 19:27:13 · 19095 阅读 · 28 评论 -
【路径规划】局部路径规划算法——贝塞尔曲线法(含python实现 | c++实现)
贝塞尔曲线于1962年由法国工程师皮埃尔·贝塞尔( Pierre Bézier)发表,他运用贝塞尔曲线来为汽车的主体进行设计。贝塞尔曲线是应用于二维图形应用程序的数学曲线,由一组称为控制点的向量来确定,给定的控制点按顺序连接构成控制多边形,贝塞尔曲线逼近这个多边形,进而通过调整控制点坐标改变曲线的形状。控制点的作用是控制曲线的弯曲程度贝塞尔曲线只需要很少的控制点就能够生成较复杂的平滑曲线。该方法能够保证输入的控制点与生成的曲线之间的关系非常简洁、明确。对于车辆系统,规划的轨迹应满足以下准则: 轨迹连续;轨迹原创 2022-06-07 21:28:52 · 16067 阅读 · 11 评论 -
【路径规划】局部路径规划算法——人工势场法(含python实现 | c++实现)
人工势场法的基本思想是在障碍物周围构建障碍物斥力势场,在目标点周围构建引力势场,类似于物理学中的电磁场被控对象在这两种势场组成的复合场中受到斥力作用和引力作用,斥力和引力的合力指引着被控对象的运动,搜索无碰的避障路径。更直观而言, 势场法是将障碍物比作是平原上具有高势能值的山峰, 而目标点则是具有低势能值的低谷。引力势场主要与汽车和目标点间的距离有关, 距离越大, 汽车所受的势能值就越大; 距离越小, 汽车所受的势能值则越小, 所以引力势场的函数为:Uatt(q)=12ηρ2(q,qg)(1)\tag{原创 2022-06-07 16:01:56 · 30202 阅读 · 26 评论 -
【路径规划】局部路径规划算法——曲线插值法(含python实现 | c++实现)
曲线插值的方法是按照车辆在某些特定条件(安全、快速、高效)下, 进行路径的曲线拟合,常见的有多项式曲线、双圆弧段曲线、正弦函数曲线、贝塞尔曲线、 B样条曲线等。曲线插值法的核心思想就是基于预先构造的曲线类型,根据车辆期望达到的状态(比如要求车辆到达某点的速度和加速度为期望值),将此期望值作为边界条件代入曲线类型进行方程求解,获得曲线的相关系数(简单地说就是待定系数法!)。曲线所有的相关系数一旦确定,轨迹规划随之完成。下面以多项式曲线为例讲解曲线插值法轨迹规划。多项式曲线分为三次多项式曲线、 五次多项式曲线、原创 2022-06-06 22:06:10 · 8280 阅读 · 0 评论 -
【路径规划】全局路径规划算法——A*算法(含python实现 | c++实现)
A*(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法,也是解决许多搜索问题的有效算法。广泛应用于室内机器人路径搜索、游戏动画路径搜索等A*算法结合了贪心算法(深度优先)和Dijkstra算法(广度优先),是一种启发式搜索算法。它使用一个路径优劣评价公式为:f(n)=g(n)+h(n)f(n)=g(n)+h(n)f(n)=g(n)+h(n)A*算法需要维护两个状态表,分别称为表和表。表由待考察的节点组成, 表由已经考察过的节点组成。如图,假设我们需要从点到目标点,这两点之间有一堵墙。原创 2022-06-06 15:20:20 · 37663 阅读 · 28 评论 -
【路径规划】全局路径规划算法——动态规划算法(含python实现)
- 动态规划是运筹学的一个分支,是求解==多阶段决策过程最优化问题==的数学方法。- 各个阶段决策的选取不是任意确定的,它依赖于当前面临的状态,又影响以后的发展。当各个阶段的决策确定后,就组成了一个决策序列,因而也就决定了整个过程的一条活动路线,这样的一个前后关联具有链状结构的多阶段过程就称为多阶段决策问题。- 动态规划在车辆工程技术领域有着广泛的应用,如“两档变速器最优换挡规律”、“混合动力汽车最优能量管理策略”、“栅格地图最优路径搜索”等。......原创 2022-06-05 22:43:45 · 11128 阅读 · 4 评论 -
【路径规划】全局路径规划算法——蚁群算法(含python实现)
蚁群算法(Ant Colony Algorithm, ACO) 于1991年首次提出,该算法模拟了自然界中蚂蚁的觅食行为。蚂蚁在寻找食物源时, 会在其经过的路径上释放一种信息素,并能够感知其它蚂蚁释放的信息素。 信息素浓度的大小==表征路径的远近==, **信息素浓度越高, 表示对应的路径距离越短**。通常, 蚂蚁会以较大的概率优先选择信息素浓度较高的路径, 并释放一定量的信息素, 以增强该条路径上的信息素浓度, 这样,会形成一个正反馈。 最终, 蚂蚁能够找到一条从巢穴到食物源的最佳路径, 即距离最短。..原创 2022-06-05 19:33:53 · 35736 阅读 · 7 评论 -
【路径规划】全局路径规划算法——Dijkstra算法(含python实现 | c++实现)
文章目录参考资料1. 基本概念1.1 算法简介1.2 算法思想1.3 算法图解参考资料路径规划与轨迹跟踪系列算法学习最短路径算法-迪杰斯特拉(Dijkstra)算法1. 基本概念1.1 算法简介迪杰斯特拉算法(Dijkstra)是由荷兰计算机科学家狄克斯特拉于1959 年提出的,因此又叫狄克斯特拉算法。是从一个节点遍历其余各节点的最短路径算法,解决的是有权图中最短路径问题。它的主要特点是以起始点为中心向外层层扩展(广度优先遍历思想),直到扩展到终点为止。1.2 算法思想设G=(V,E原创 2022-05-31 20:42:17 · 15695 阅读 · 12 评论