Apollo 轨迹规划算法解析

这篇具有很好参考价值的文章主要介绍了Apollo 轨迹规划算法解析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这篇文章主要整理一下前段时间学习的轨迹规划算法,关于轨迹规划问题可以查到的相关资料很多,但能把轨迹规划问题详细说清楚的并不太多,这导致我在学习过程中出现很多疑惑。这里我把Apollo的各个版本轨迹规划算法进行简单总结和汇总。

主要参考资料:
1.b站大佬详细视频教程https://space.bilibili.com/287989852?spm_id_from=333.337.0.0
相关记录https://blog.csdn.net/zheshui69163?type=blog
2.https://blog.csdn.net/qq_23981335/article/details/121507369
3.https://blog.csdn.net/IHTY_NUI/article/details/113704591
4.https://zhuanlan.zhihu.com/p/444159631
5.https://www.cnblogs.com/liuzubing/p/11051390.html
6.https://blog.csdn.net/ChenGuiGan/article/details/122253193
7.https://github.com/Strange-AI/frenet_path_planning
8.https://github.com/ChenBohan/Robotics-Path-Planning-04-Quintic-Polynomial-Solver
9.https://www.cnblogs.com/kin-zhang/p/15532655.html
10.《Baidu Apollo EM Motion Planner》

1.背景

1.1轨迹规划方法综述

参见https://blog.csdn.net/IHTY_NUI/article/details/113704591
本文所指轨迹规划是局部规划,对应其中的2.2和2.3节。

1.2轨迹规划主要策略

主要可以分为两种:
1.迭代优化方法,速度-路径解耦规划(即横纵向解耦规划,横向规划决定轨迹形状,纵向规划决定速度状态,两者均凸才是凸优化)
迭代优化算法过程包括交规决策、路径决策、路径优化、 速度决策、速度优化。

决策:为了限定非凸问题的解空间,通过决策的方法将问题转换为凸优化问题。包括路径决策和速度决策。

2.规划
2.SLT三维优化方法(时空联合规划算法)
如果采用时空联合规划算法,需要将时空联合决策结果提炼为凸可行域,求解复杂。目前业界广泛采用时空分离规划的自动驾驶方案,道路应变能力有限,容易造成急刹等不佳体验,轻舟依托时空联合规划,成为中国首家采用时空联合规划的自动驾驶公司。
总体来说,速度-路径解耦规划是目前主流的轨迹规划方法。本文主要针对解耦规划的方法

1.3一些重要的基础知识

1.3.1参考线

Frenet坐标系和大地坐标系的转换:很基础,没什么好说的
https://blog.csdn.net/zheshui69163/article/details/125963160

1.3.2五次多项式在规划问题中的重要性

离散的点一般用五次多项式来连接,这是因为:
首先,加速度变化率最小,即jerk最小化时,舒适性最高
Takahashi等人已经证明:任何Jerk最优化问题的解都可以用一个5次多项式来表示。

https://zhuanlan.zhihu.com/p/444159631
https://blog.csdn.net/zheshui69163/article/details/125841525

1.3.3轻决策和重决策

b站老王的视频里讲得非常清楚

https://blog.csdn.net/zheshui69163/article/details/126141171

Apollo各个版本轨迹规划

1.Apollo 1.5----Apollo3.0:EM planner,DP(动态规划)+QP(二次规划),轻决策
这里需要注意的是:DP(动态规划)不是规划,是用于决策的
2.Apollo2.5:增加LatticePlanner
3.Apollo 3.5:重决策,DP+QP的最后一个版本,DP最后的尝试
4.Apollo 5.0----Apollo7.0:取消路径DP,保留速度DP,采用重决策,改为Public Road Planner
未来研究方向:规则兜底,深度学习决策
路径DP在最新版本中被取消,这是因为过多的场景下,每个场景需要使用不同的规划参数,失去了轻决策的最大优势,但是,了解DP+QP的算法对于我们学习轨迹规划仍然十分重要。

2.算法具体内容

1. EM Planner

Apollo 轨迹规划算法解析
Apollo 轨迹规划算法解析
具体步骤:
Apollo 轨迹规划算法解析
Apollo 轨迹规划算法解析
Apollo 轨迹规划算法解析
Apollo 轨迹规划算法解析
Apollo 轨迹规划算法解析
Apollo 轨迹规划算法解析

Apollo 轨迹规划算法解析

难点

如何将cost函数转换为QP公式
https://blog.csdn.net/qq_23981335/article/details/121507369
https://www.cnblogs.com/kin-zhang/p/15532655.html

2. Lattice Planner

Lattice规划过程相对简单,只需要采样轨迹末状态就可以生成一系列候选轨迹簇,然后根据cost function来选取最优。
Step1:初始状态已知,采样轨迹末状态。
Step2:横纵向采样,分别用五次多项式进行拟合。
Step3:遍历横纵向SL、ST曲线,组合成候选轨迹簇。
Step4:计算每条轨迹的cost,选取最优轨迹。

基于采样方法的路径规划代码,亲测有效https://github.com/ChenBohan/Robotics-Path-Planning-04-Quintic-Polynomial-Solver文章来源地址https://www.toymoban.com/news/detail-420046.html

到了这里,关于Apollo 轨迹规划算法解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Apollo和autoware规划算法代码ros移植-路径规划可跑工程分享

    之前出了: Apollo规划代码ros移植-Lattcie的二次规划. Apollo规划代码ros移植-Lattice规划框架. 规划代码ros移植-POMDP预测规划(一). Apollo规划代码ros移植-Em planner. Apollo规划代码ros移植-混合A*. Apollo规划代码ros移植-动态障碍物处理(一). 适合人群: 1.想移植Apollo,autoware等流行规划算法到

    2024年02月12日
    浏览(40)
  • Apollo规划模块代码学习(1): 算法架构原理、运行机制一文详解

    Apollo开源自动驾驶平台中,高清地图模块提供了每个在线模块都可以访问的高清地图。感知和定位模块提供了必要的动态环境信息,可以在预测模块中进一步用于预测未来的环境状态。运动规划模块考虑所有信息,以生成安全平滑的轨迹,并将其输入车辆控制模块。 目前Ap

    2024年01月25日
    浏览(41)
  • 基于人工蜂群算法多无人机轨迹规划

    # 生物背景 蜜蜂是一种群居生物,生物学家研究发现蜜蜂以跳舞的方式来交换蜜源信息。根据分工的不同,蜜蜂被分为三个工种: 引领峰、跟随蜂、侦察蜂 。 侦察蜂 的职责是侦察蜜源(即蜜蜂的食物),一旦某一个侦察蜂找到蜜源后,实际上它的角色就切换为 引领蜂 了。

    2024年01月19日
    浏览(35)
  • 百度Apollo中轨迹的表示方式

        本文只是对于初学者的一种直观普及,以及对于规划路径可视化的另外一种体会。对于做规划控制的工程师来说太简单。只是本人初学者,在学习控制模块时候对于模块输入参数有所迷惑。所以记录一下。     首先明确轨迹表达的方式,以及对于控制模块输入的轨迹表达

    2024年02月13日
    浏览(28)
  • Apollo lattice与EM planner的区别,两种规划算法的区别与联系

    Apollo lattice与EM planner的区别 lattice优点在于:同时生成了符合车辆动力学的路径与速度曲线,不用去进一步平滑处理;且参数较少,计算消耗低;由于轨迹形状固定,比较适合高速或者快速路等简单场景,对于城区复杂道路,EM还是更擅长一些。细节可参考如下链接: Apollo

    2024年02月11日
    浏览(39)
  • (四)路径规划算法---QP解决Minimum Snap轨迹优化问题

    大佬的代码: https://github.com/KailinTong/Motion-Planning-for-Mobile-Robots 本文代码: https://github.com/tgj-maker/QP_Minimumn_Snap(gitee无法使用,转战GitHub) 对于单段轨迹,多项式的次数 N N N 确定如下 Minimum Jerk: 假如优化变量为 ( p , v , a ) (p,v,a) ( p , v , a ) ,那么 N = 2 ∗ 3 ( j e r k ) − 1 = 5 N=2*3(je

    2023年04月08日
    浏览(28)
  • 基于改进 PSO 算法的时间最优机械臂轨迹规划

            以时间最优为目标,采用改进粒子群算法(PSO)对6自由度机械臂轨迹进行优化的方法。首先,在关节空间下利用机械臂正逆运动学原理获取其轨迹插值点;其次,为了使机械臂能够快速平稳地到达目标位置,采用3-5-3多项式对其轨迹进行插值;最后,使用改进PSO算法对

    2024年02月05日
    浏览(26)
  • 基于RRT算法的旋翼无人机安全和最小能量轨迹规划

    基于RRT算法的旋翼无人机安全和最小能量轨迹规划 概述: 无人机的轨迹规划是无人机自主飞行的关键问题之一。在飞行过程中,无人机需要在保证安全的前提下,以最小的能量消耗完成任务。本文将介绍如何使用RRT(Rapidly-exploring Random Tree)算法来实现旋翼无人机的安全轨迹

    2024年02月05日
    浏览(42)
  • moveit中的rrt算法是如何进行轨迹规划并控制机械臂的

    在 MoveIt 中,RRT 算法可以用于机器人的路径规划。具体来说,MoveIt 中实现了两种 RRT 算法:RRT Connect 和 RRT*。这些算法的主要目标是在给定的时间内在机器人自由度空间中找到可行的路径,避开障碍物并满足约束条件。 RRT Connect 算法是一种基于树搜索的算法,通过从起始状态

    2024年02月02日
    浏览(46)
  • S速度曲线轨迹规划(普通变频位置闭环控制算法详细介绍+SCL代码)

    位置控制用PD控制器,详细内容介绍请查看下面博客文章: PD控制器算法详细解读_RXXW_Dor的博客-CSDN博客 鉴于积分和微分在工程上的大量应用,这篇博文主要讲解工程上的如何求导f\\\'(x),导数反映的是函数(信号)的变化率,牛顿也是在研究运动的时候提出了微积分的概念,我

    2024年02月12日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包