自动驾驶---Motion Planning之多段五次多项式

1 前言

        在之前的博客系列文章中和读者朋友们聊过Apollo的 Motion Planning方案:

        《自动驾驶---Motion Planning之LaneChange》

        《自动驾驶---Motion Planning之Path Boundary》

        《自动驾驶---Motion Planning之Speed Boundary》

        《自动驾驶---Motion Planning之轨迹Path优化》

        《自动驾驶---Motion Planning之轨迹Speed优化》

        也聊过其它Motion Planning的量产方案:

        《自动驾驶---Motion Planning之构建SLT Driving Corridor》

        《自动驾驶---Motion Planning之STSC轨迹优化》

        同时也包括特斯拉的量产方案迭代历程:

        《自动驾驶---Tesla的自动驾驶技术进化史(Perception&Planning)》

        基于传统Planning框架的文章基本告一段落,后面分享的内容主要包括Planning子模块的小任务以及端到端方案。今天,想聊的话题是:多项式曲线。其实在自动驾驶的不少场景下,经常会使用多种曲线(多项式曲线,样条曲线,螺旋曲线,贝塞尔曲线等)来进行轨迹规划或者平滑,主要考虑到以下场景:

  1. 通过动态规划/全局规划的方法得到离散点列,然后采用多项式曲线进行连接。

  2. 轨迹平滑(Smoother)

        本篇博客主要为读者朋友们介绍五次多项式在自动驾驶轨迹规划模块中的应用。

2 五次多项式介绍

        自动驾驶规划中的五次多项式在生成平滑、连续的轨迹中扮演着重要角色,特别是在速度规划和路径规划中。以下是关于自动驾驶规划五次多项式的介绍:

2.1 定义

        五次多项式是一个数学函数,其形式通常为:

eq?s%28t%29%20%3D%20a_0%20+%20a_1t%20+%20a_2t%5E2%20+%20a_3t%5E3%20+%20a_4t%5E4%20+%20a_5t%5E5

       其中,eq?s%28t%29 代表车辆随时间 eq?t 变化的纵向位移或路径,而 eq?%28a_0%2C%20a_1%2C%20a_2%2C%20a_3%2C%20a_4%2C%20a_5%29是待确定的系数。

        上面的形式表示纵向,那么横向同样可以表示为:

eq?l%28t%29%20%3D%20b_0%20+%20b_1t%20+%20b_2t%5E2%20+%20b_3t%5E3%20+%20b_4t%5E4%20+%20b_5t%5E5

        其中,eq?l%28t%29 代表车辆随时间 eq?t 变化的横向位移或路径,而 eq?%28b_0%2C%20b_1%2C%20b_2%2C%20b_3%2C%20b_4%2C%20b_5%29 是待确定的系数。

2.2 特点

  • 平滑性:五次多项式可以确保生成的轨迹在时间和空间上都是连续的,并且其一阶(速度)、二阶(加速度)和三阶导数(加速度的变化率,也称为Jerk)也都是连续的。这种连续性对于自动驾驶车辆来说至关重要,因为它能确保车辆行驶的平稳性和乘客的舒适性。
  • 可调性:通过调整五次多项式的系数,可以根据特定的需求(如起始点、终止点、速度、加速度等)来定制轨迹。

2.3 应用

        在自动驾驶规划中,五次多项式常用于:

  • 速度规划:在给定起始速度、终止速度、起始加速度和终止加速度的条件下,通过五次多项式来规划速度随时间变化的曲线。这样可以确保车辆在整个行驶过程中速度的变化是平滑的。
  • 路径规划:在全局路径规划的基础上,通过五次多项式来生成局部路径的轨迹。这种方法可以在车辆行驶过程中根据实时环境信息(如障碍物位置、道路曲率等)来动态调整轨迹,确保车辆能够安全、平稳地到达目的地。

3 单段五次多项式规划

        自动驾驶规划中的五次多项式是一种强大的工具,它可以根据给定的边界条件生成平滑、连续的轨迹。这种轨迹不仅有利于确保车辆行驶的平稳性和乘客的舒适性,还有助于提高自动驾驶系统的安全性和可靠性。下面分别针对笛卡尔坐标系以及车道坐标系对单段的五次多项式做相应的介绍。

3.1 XY坐标系下的路径规划

         单段是指已知起点和终点,通过起点和终点的约束信息来求解多项式的系数。已知五次多项式的起点和终点信息ÿ

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/864548.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

8种数据迁移工具

前言 最近有些小伙伴问我,ETL数据迁移工具该用哪些。 ETL(是Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于企业应用来说,我们经常会遇到各种数据的处理、转换、迁移的场景。 今天特地给大家汇总了一些目前…

【云原生】服务网格(Istio)如何简化微服务通信

🐇明明跟你说过:个人主页 🏅个人专栏:《未来已来:云原生之旅》🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、微服务架构的兴起 2、Istio:服务网格的佼…

【Python】Python环境搭建教学#保姆级教学#手把手带你安装——内附Python环境搭建安装包(Python、PyCharm(社区版)安装包)

Python环境搭建 导读一、初识Python1.1 Python的由来1.2 Python的用途1.3 Python的优缺点1.4 Python的前景(钱景) 二、Python环境搭建2.1 运行环境——Python安装2.2 开发环境——PyCharm安装2.3 项目创建2.4 基本配置2.4.1 主题配置2.4.2 背景图设置2.4…

Vue笔记-vue中使用JS创建的函数

主要是公司对前端要求不高,能解决问题就行了,前端不太熟,用js这种处理起来方便,在此记录下。 在src中创建一个api目录,新建custom.js export const getDivHeightByClass (className) > {let divElements docume…

.NET 调用API创建系统服务实现权限维持

01阅读须知 此文所节选自小报童《.NET 内网实战攻防》专栏,主要内容有.NET在各个内网渗透阶段与Windows系统交互的方式和技巧,对内网和后渗透感兴趣的朋友们可以订阅该电子报刊,解锁更多的报刊内容。 02基本介绍 本文内容部分节选自小报童…

FreeRTOS开发五、任务状态切换以及空闲任务回收结束的任务

1、任务状态切换 任务创建的时候就会处于就绪状态ready,然后他马上就能够运行进入Running状态,运行中可以调用vTaskDelay进入阻塞状态,实际就是延时一小段时间,等待唤醒,当延时时间过去后就回到了就绪状态&#xff0…

pytorch-ResNet18简单复现

目录 1. ResNet block2. ResNet18网络结构3. 完整代码3.1 网络代码3.2 训练代码 1. ResNet block ResNet block有两个convolution和一个short cut层,如下图: 代码: class ResBlk(nn.Module):def __init__(self, ch_in, ch_out, stride):su…

Java学习 (六) 面向对象--this、继承、方法重写、super

一、this 关键字 1、this 演示 vi Person.java public class Person {String name;int age;//显示声明构造器public Person(String s , int i){name s;age i;}public void setAge(int age){age age;}}vi PersonTest.java public class PersonTest {public static void m…

某腾X滑块验证码

⚠️前言⚠️ 本文仅用于学术交流。 学习探讨逆向知识,欢迎私信共享学习心得。 如有侵权,联系博主删除。 请勿商用,否则后果自负。 网址 aHR0cHM6Ly9jbG91ZC50ZW5jZW50LmNvbS9wcm9kdWN0L2NhcHRjaGE= 1. 先整体分析一下 1_1. 验证码信息下发接口 cap_union_prehandle ua:…

JS基础与Chrome介绍

导言 在Web开发中后端负责程序架构和数据管理,前端负责页面展示和用户交互;在这种前后端分离的开发方式中,以接口为标准来进行联调整合,为了保证接口在调用时数据的安全性,也为了防止请求参数被篡改,大多数…

深入理解 “androidx.databinding.DataBindingUtil“ 细节和使用

介绍 数据绑定(Data Binding)是 Android 中的一个强大功能,它允许你使用声明性格式而不是编程方式将布局中的 UI 组件绑定到应用中的数据源。androidx.databinding.DataBindingUtil 类是一个工具类,它提供了用于处理数据绑定的方…

容器技术-docker5

一、docker-compose 常用命令和指令 1. 概要 默认的模板文件是 docker-compose.yml,其中定义的每个服务可以通过 image 指令指定镜像或 build 指令(需要 Dockerfile)来自动构建。 注意如果使用 build 指令,在 Dockerfile 中设置…

【面试干货】Static关键字的用法详解

【面试干货】Static关键字的用法详解 1、Static修饰内部类2、Static修饰方法3、Static修饰变量4、Static修饰代码块5、总结 💖The Begin💖点点关注,收藏不迷路💖 在Java编程语言中,static是一个关键字,它可…

MT19937 64bit 机器上的实现及原理解析

1, mt19937 实现源码 mt19937-64bit_ex.cpp /*References:T. Nishimura, Tables of 64-bit Mersenne TwistersACM Transactions on Modeling and Computer Simulation 10. (2000) 348--357.M. Matsumoto and T. Nishimura,Mersenne Twister: a 623-dimensionally e…

水果商城外卖微信小程序模板

手机微信水果外卖,水果电商,水果商城网页小程序模板。包含:主页、列表页、详情页、购物车、个人中心。 水果商城外卖小程序模板

[C++][设计模式][迭代器模式]详细讲解

目录 1.动机2.模式定义3.要点总结4.代码感受 1.动机 在软件构建过程中,集合对象内部结构常常变化各异。但对于这些集合对象,我们希望不暴露其内部结构的同时,可以让外部客户代码透明地访问其中包含的元素; 同时这种”透明遍历“也…

可燃气体报警器检测机构:严格遵守的安全标准

随着工业、商业和家庭领域对安全要求的不断提高,可燃气体报警器作为预防火灾和爆炸事故的重要设备,其性能稳定性和可靠性越来越受到关注。 可燃气体报警器检测机构应运而生,为确保这些设备的有效运行发挥着不可替代的作用。 接下来&#xf…

超强风冷制动电阻器-大功率对流冷却电阻器

风冷制动电阻 EAK 的风冷制动电阻器的制造功率范围为 5 kW 至 1200 kW。这些电阻器用于从螺旋桨、起重机、绞盘、顶部驱动器等倾倒多余的电力。 风冷电阻器是独立的单元,不需要进一步安装。该装置由内置风扇冷却。它也可以在没有风扇的情况下制作(非强…

HTMLCSS(入门)

HTML <html> <head><title>第一个页面</title></head><body>键盘敲烂&#xff0c;工资过万</body> </html> <!DOCTYPE>文档类型声明&#xff0c;告诉浏览器使用哪种HTML版本显示网页 <!DOCTYPE html>当前页面采取…