0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

决策规划系列:运动规划常用算法

3D视觉工坊 来源:十一号组织 2023-04-17 09:46 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

有了全局路径参考信息,有了局部环境信息了,有了行为决策模块输入的决策信息,下一步自然而然的就要进行运动规划,从而生成一条局部的更加具体的行驶轨迹,并且这条轨迹要满足安全性和舒适性要求。

考虑到车辆是一个具有巨大惯性的铁疙瘩且没有瞬间移动的功能,如果仅考虑瞬时状态的行驶轨迹,不规划出未来一段时间有前瞻性的行驶轨迹,那么很容易造成一段时间后无解。因此,运动规划生成的轨迹是一种由二维空间和一维时间组成的三维空间中的曲线,是一种偏实时的路径规划。

运动规划的第一步往往采用随机采样算法,即走一步看一步,不断更新行驶轨迹。代表算法是基于采样的方法:PRM、RRT、Lattice。这类算法通过随机采样的方式在地图上生成子节点,并与父节点相连,若连线与障碍物无碰撞风险,则扩展该子节点。重复上述步骤,不断扩展样本点,直到生成一条连接起点到终点的路径。

PRM

概率路标法 (Probabilistic Road Maps, PRM),是一种经典的采样方法,由Lydia E.等人在1996年提出。PRM主要包含三个阶段,一是采样阶段,二是碰撞检测阶段,三是搜索阶段。

图25为已知起点A和终点B的地图空间,黑色空间代表障碍物,白色空间代表可通行区域。在采样阶段中,PRM首先在地图空间进行均匀的随即采样,也就是对地图进行稀疏采样,目的是将大地图简化为较少的采样点。

在碰撞检测阶段,剔除落在障碍物上的采样点,并将剩下的点与其一定距离范围内的点相连,同时删除穿越障碍物的连线,从而构成一张无向图。

在搜索阶段,利用全局路径规划算法章节介绍的搜索算法(Dijkstra、A*等)在无向图中进行搜索,从而找出一条起点A到终点B之间的可行路径。

e93690ec-dcaa-11ed-bfe3-dac502259ad0.png

图27 PRM工作原理示意图(来源:https://mp.weixin.qq.com/s/WGOUf7g0C4Od4X9rnCfqxA)

算法步骤可以总结为:

(1)构造无向图G =(V,E),其中V代表随机采样的点集,E代表两采样点之间所有可能的无碰撞路径,G初始状态为空。

(2)随机撒点,并选取一个无碰撞的点c(i)加入到V中。

(3)定义距离r,如果c(i)与V中某些点的距离小于r,则将V中这些点定义为c(i)的邻域点。

(4)将c(i)与其邻域点相连,生成连线t,并检测连线t是否与障碍物发生碰撞,如果无碰撞,则将t加入E中。

(5)重复步骤2-4,直到所有采样点(满足采样数量要求)均已完成上述步骤。

(5)采用图搜索算法对无向图G进行搜索,如果能找到起始点A到终点B的路线,说明存在可行的行驶轨迹。

PRM算法相比基于搜索的算法,简化了环境、提高了效率。但是在有狭窄通道场景中,很难采样出可行路径,效率会大幅降低。

RRT

快速探索随机树(Rapidly Exploring Random Trees,RRT),是Steven M. LaValle和James J. Kuffner Jr.在1998年提出的一种基于随机生长树思想实现对非凸高维空间快速搜索的算法。与PRM相同的是两者都是基于随机采样的算法,不同的是PRM最终生成的是一个无向图,而RRT生成的是一个随机树。RRT的最显著特征就是具备空间探索的能力,即从一点向外探索拓展的特征。

RRT分单树和双树两种类型,单树RRT将规起点作为随机树的根节点,通过随机采样、碰撞检测的方式为随机树增加叶子节点,最终生成一颗随机树。而双树RRT则拥有两颗随机树,分别以起点和终点为根节点,以同样的方式进行向外的探索,直到两颗随机树相遇,从而达到提高规划效率的目的。

下面以图28所示的地图空间为例介绍单树RRT算法的实现过程。在此地图空间中,我们只知道起点A和终点B以及障碍物的位置(黑色的框)。

e93f160e-dcaa-11ed-bfe3-dac502259ad0.png

图28 RRT算法举例的地图空间

对于单树RRT算法,我们将起点A设置为随机树的根,并生成一个随机采样点,如图27所示,随机采样点有下面这几种情况。

(1)随机采样点1落在自由区域中,但是根节点A和随机采样点1之间的连线存在障碍物,无法通过碰撞检测,采样点1会被舍弃,重新再生成随机采样点。

(2)随机采样点2落在障碍物的位置,采样点2也会被舍弃,重新再生成随机采样点。

(3)随机采样点3落在自由区域,且与根节点A之间的连线不存在障碍物,但是超过根节点的步长限制。但此时这个节点不会被简单的舍弃点,而是会沿着根节点和随机采样点3的连线,找出符合步长限制的中间点,将这个中间点作为新的采样点,也就是图29中的4。

e94368e4-dcaa-11ed-bfe3-dac502259ad0.png

图29 不同随机采样点举例

接着我们继续生成新的随机采样点,如果新的随机采样点位于自由区域,那么我们就可以遍历随机树中已有的全部节点,找出距离新的随机采样点最近的节点,同时求出两者之间的距离,如果满足步长限制的话,我们将接着对这两个节点进行碰撞检测,如果不满足步长限制的话,我们需要沿着新的随机采样点和最近的节点的连线方向,找出一个符合步长限制的中间点,用来替代新的随机采样点。最后如果新的随机采样点和最近的节点通过了碰撞检测,就意味着二者之间存在边,我们便可以将新的随机采样点添加进随机树中,并将最近的点设置为新的随机采样点的父节点。

重复上述过程,直到新的随机采样点在终点的步长限制范围内,且满足碰撞检测。则将新的随机采样点设为终点B的父节点,并将终点加入随机树,从而完成迭代,生成如图30所示的完整随机树。

e9492356-dcaa-11ed-bfe3-dac502259ad0.png

图30随机树结算结果示例

相比PRM,RRT无需搜索步骤、效率更高。通过增量式扩展的方式,找到路径后就立即结束,搜索终点的目的性更强。但是RRT作为一种纯粹的随机搜索算法,对环境类型不敏感,当地图空间中存在狭窄通道时,因被采样的概率低,导致算法的收敛速度慢,效率会大幅下降,有时候甚至难以在有狭窄通道的环境找到路径。

图31展示了 RRT应对存在狭窄通道地图空间时的两种表现,一种是RRT很快就找到了出路,一种是一直被困在障碍物里面。

e9507098-dcaa-11ed-bfe3-dac502259ad0.png

图31 RRT面对狭窄通道时的表现

围绕如何更好的“进行随机采样”、“定义最近的点”以及“进行树的扩展”等方面,诞生了多种改进型的算法,包括双树RRT-Connect(双树)、lazy-RRT, RRT-Extend等。

PRM和RRT都是一个概率完备但非最优的路径规划算法,也就是只要起点和终点之间存在有效的路径,那么只要规划的时间足够长,采样点足够多,必然可以找到有效的路径。但是这个解无法保证是最优的。

采用PRM和RRT等随机采样算法生成的行驶轨迹,大多是一条条线段,线段之间的曲率也不不连续,这样的行驶轨迹是不能保证舒适性的,所以还需要进一步进行曲线平滑、角度平滑处理。代表算法是基于曲线插值的方法:RS曲线、Dubins曲线、多项式曲线、贝塞尔曲线和样条曲线等。

所有基于曲线插值方法要解决的问题就是:在图32上的若干点中,求出一条光滑曲线尽可能逼近所有点。下文以多项式曲线和贝塞尔曲线为例,介绍曲线插值算法的示例。

e9588f76-dcaa-11ed-bfe3-dac502259ad0.png

图32 曲线插值方法要解决的问题描述

多项式曲线

找到一条曲线拟合所有的点,最容易想到的方法就是多项式曲线。常用的有三阶多项式曲线、五阶多项式曲线和七阶多项式曲线。理论上只要多项式的阶数足够高,就可以拟合各种曲线。但从满足需求和工程实现的角度,阶数越低越好。

车辆在运动规划中,舒适度是一个非常重要的指标,在物理中衡量舒适性的物理量为跃度(Jerk),它是加速度的导数。Jerk的绝对值越小意味着加速度的变化越平缓,加速度的变化越平缓意味着越舒适。而五次多项式曲线则被证明是在运动规划中可以使Jerk比较小的多项式曲线。

以图30所示换道场景为例,已知Frenet坐标系下换道起点和终点的六个参数s0、v0、a0、st、vt、at,采用横纵向解耦分别进行运动规划的方法,可得横向位置x(t)和纵向位置y(t)关于时间t的五次多项式表达式。

e9697bba-dcaa-11ed-bfe3-dac502259ad0.png

五次多项式中存在六个未知量,将起点和终点已知的六个参数代入便可这个六个未知量。然后根据时间t进行合并即可得到横纵向联合控制的曲线,即最终运动规划的曲线。

贝塞尔曲线

对于比较少的点来说,采用多项式曲线非常合理。但是当点比较多时,为了逼近所有点,就不得不增加多项式的次数,而由此带来的负面影响就是曲线震荡。退一步讲,即使震荡能够被消除,获得的曲线由于存在非常多的起伏,也不够光顺。而贝塞尔曲线的出现,正好解决了上述问题。

1959年,法国数学家保尔·德·卡斯特里使用独家配方求出贝塞尔曲线。1962年,法国雷诺汽车公司工程师皮埃尔·贝塞尔将自己在汽车造型设计的一些心得归纳总结,并广泛发表。贝塞尔在造型设计的心得可简单总结为:先用折线段勾画出汽车的外形大致轮廓,再用光滑的参数曲线去逼近这个折线多边形。

绘制贝塞尔曲线之前,我们需要知道起点和终点的参数,然后再提供任意数量的控制点的参数。如果控制点的数量为0,则为一阶贝塞尔曲线,如果控制点的数量为1,则为二阶贝塞尔曲线,如果控制点的数量为2,则为三阶贝塞尔曲线,依次类推。不论是起点、终点还是控制点,它们均代表坐标系下的一个向量。

下面我们以经典的二阶贝塞尔曲线为例,介绍其绘制方法。如图33所示,P0和P2为已知的参数的起点和终点,P1为已知参数的控制点。首先我们按照起点、控制点、终点的顺序依次连接,生成两条直线。

e9747344-dcaa-11ed-bfe3-dac502259ad0.png

图33 二阶贝塞尔曲线示例

接着我们以每条直线的起点开始,向各自的终点按比例t取点,如图中的A和B。随后我们将A和B相连得到一条直线,也按相同的比例t取点,便可得到C点,这也是二阶贝塞尔曲线在比例为t时会经过的点。比列t满足如下的公式。

e980789c-dcaa-11ed-bfe3-dac502259ad0.png

当我们比例t一点点变大(从0到1),就得到起点到终点的所有贝塞尔点,所有点相连便绘制出完整的二阶贝塞尔曲线C(t),用公式表达为。

e9894d6e-dcaa-11ed-bfe3-dac502259ad0.png

由二阶贝塞尔曲线拓展到N阶贝塞尔曲线,可得数学表达式如下。

e98fbb2c-dcaa-11ed-bfe3-dac502259ad0.png






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PRM
    PRM
    +关注

    关注

    0

    文章

    14

    浏览量

    4483
  • RRT
    RRT
    +关注

    关注

    0

    文章

    12

    浏览量

    1296
  • Dubins
    +关注

    关注

    0

    文章

    2

    浏览量

    2019

原文标题:决策规划系列:运动规划常用算法

文章出处:【微信号:3D视觉工坊,微信公众号:3D视觉工坊】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于感知引导的多步骤精细操作任务与运动规划

    传统的任务与运动规划(TAMP)系统在机器人操作应用中通常依赖静态模型运行,因此在面对新环境时往往表现不佳。将感知与操作相融合,是应对这一挑战的有效途径,使机器人能够在执行过程中实时更新规划,从而适应动态变化的场景。
    的头像 发表于 11-14 10:18 1068次阅读
    基于感知引导的多步骤精细操作任务与<b class='flag-5'>运动</b><b class='flag-5'>规划</b>

    地物光谱应用在农业与城市规划中的创新实践

    在现代农业和城市规划领域,准确获取地物信息成为提升管理效率和决策科学性的重要环节。随着遥感技术的飞速发展,地物光谱分析作为一种精准、非接触的检测手段,正被广泛应用于真实场景中。无论是农作物健康监测
    的头像 发表于 10-20 16:33 392次阅读

    分享一个嵌入式学习阶段规划

    给大家分享一个嵌入式学习阶段规划: (一)基础筑牢阶段(约 23 天) 核心目标:打牢 C 语言、数据结构、电路基础C 语言开发:学变量 / 指针 / 结构体等核心语法,用 Dev-C++ 实操
    发表于 09-12 15:11

    自主工具链助力端到端组合辅助驾驶算法验证

    算法介绍传统组合辅助驾驶算法一般分为感知定位、决策规划、控制三部分功能,将传感器数据输入后,经算法处理,输出控制指令。传统组合辅助驾驶
    的头像 发表于 08-26 17:41 3349次阅读
    自主工具链助力端到端组合辅助驾驶<b class='flag-5'>算法</b>验证

    三坐标测量机路径规划与补偿技术:核心算法解析

    三坐标测量的微米级精度背后,是精密的路径规划算法与实时补偿技术在保驾护航。三坐标测量机的智能避撞算法保障了测量的安全与高效;温度补偿技术消除了环境的无形干扰;点云智能处理则让海量数据蜕变为精准的工程
    的头像 发表于 08-01 14:15 1298次阅读
    三坐标测量机路径<b class='flag-5'>规划</b>与补偿技术:核心<b class='flag-5'>算法</b>解析

    Nordic nRF54L 系列的关键引脚规划指南

    接下来我们将探讨 nRF54L 系列(nRF54L15、nRF54L10、nRF54L05)引脚规划的关键方面。我们将从探讨与引脚规划相关的电源域及其相关的 GPIO 端口开始。我们将突出每个域提供
    发表于 06-28 11:44

    投入式水位计:助力水资源规划与结构安全

    在水资源管理与岩土工程安全监测领域,水位数据的实时性和准确性直接影响决策的科学性与工程可靠性。投入式水位计作为一种高精度、耐用的监测工具,正成为水利工程、地下结构物安全评估及水资源规划中不可或缺
    的头像 发表于 06-19 13:17 426次阅读
    投入式水位计:助力水资源<b class='flag-5'>规划</b>与结构安全

    AGV小车中的动态路径规划算法揭秘

    并非一成不变时,动态路径规划能力就显得至关重要。本文将深入探讨几种主流的动态路径规划算法(如A、Dijkstra、RRT等),并解析它们如何在AGV行业中大显身手。 为何需要动态路径规划? 1.简介 传统的静态路径
    的头像 发表于 06-17 15:54 1158次阅读
    AGV小车中的动态路径<b class='flag-5'>规划算法</b>揭秘

    CADENAS 数字产品配置器轻松实现Ascendor电梯规划

    。2022 年,Ascendor 启动了一项数字化推进计划,其中一个重要部分就是实施由 CADENAS 提供技术支持的数字化产品配置器。 利用高质量的规划数据进行灵活的电梯规划 数字产品配置器提供
    发表于 04-28 14:22

    经纬恒润端到端组合辅助驾驶算法测试解决方案

    传统组合辅助驾驶算法一般分为感知定位、决策规划、控制三部分功能,将传感器数据输入后,经算法处理,输出控制指令。传统组合辅助驾驶算法中的
    的头像 发表于 04-27 09:24 1072次阅读
    经纬恒润端到端组合辅助驾驶<b class='flag-5'>算法</b>测试解决方案

    概伦电子层次化SoC设计规划方案NavisPro介绍

    NavisPro可提供整体性设计规划解决方案,支持在RTL设计阶段完成芯片评估和布局规划,帮助芯片设计师在布局规划早期阶段预测并预防物理实现问题。
    的头像 发表于 04-22 10:13 548次阅读
    概伦电子层次化SoC设计<b class='flag-5'>规划</b>方案NavisPro介绍

    具身智能工业机器人路径规划算法成为破局关键

    在工业4.0与智能制造深度融合的今天,传统路径规划算法已难以满足动态生产环境的需求。面对复杂场景下的高精度避障、实时决策与多任务协同挑战,具身智能工业机器人路径规划算法成为破局关键。作为具身智能领域
    的头像 发表于 03-28 15:01 727次阅读

    MCSDK位置控制S形轨迹规划q轴电流存在冲击怎么解决?

    工程师您好,我用MCSDK生成了FOC位置控制的代码,在实际运行中发现,每隔t0时间q轴电流出现一次冲击(t0为S形轨迹规划9段时间的一段),如下图所示: 绿色线是用STM32CUBEMONITOR观察到q轴电流。 下图是S形规划的原理图: 我想请教一下怎么才能避免q轴
    发表于 03-11 06:51

    ZMC600E运动控制器T型、S型速度规划详解

    导读想深入了解ZMC600E运动控制器的速度规划吗?T型线性加减速简洁高效,S型过渡自然减震,避免冲击。通过合理的规划选择,可有效提升设备精度、效率与性能。深入探索其核心,为工业自动化设备的控制赋能
    的头像 发表于 12-30 11:40 952次阅读
    ZMC600E<b class='flag-5'>运动</b>控制器T型、S型速度<b class='flag-5'>规划</b>详解

    外资制造业可利用AI提升决策能力

    运筹优化技术是一种利用数学模型和算法,在有限资源下寻求最佳决策的技术,广泛应用于物流、生产、金融等领域。运筹优化能够帮助解决复杂的优化问题,例如资源分配、路径规划、生产调度等,以提高效率、降低成本或
    的头像 发表于 12-24 10:01 710次阅读