自动驾驶决策规划——坐标转换
以下内容来自b站up主忠厚老实的老王,视频链接:自动驾驶决策规划算法序章 总纲与大致目录_哔哩哔哩_bilibili
https://www.bilibili.com/video/BV1hP4y1p7es/?spm_id_from=333.999.0.0&vd_source=d36e625f376908cfa88ef5ecf2fb0ed8侵删。
决策规划算法概述



数学基础
五次多项式


其中隐含的限制就是f(t)的定义域和值域都应该是实数,因为s和t都是真实空间中的轨迹和时间坐标,不能有虚数。
要想使得上面的那个jark最小,积分号中是平方项,也就是当其为0时最小,也就是f(t)的三阶导数为0,也就是f(t)是二次或者二次以下的函数时,三阶导数才为0。






也就是求泛函
在后面的那三个约束条件下极小值对应的f(t)。


上面把一个带约束的泛函化成了一个无约束的泛函,但是L和f点、f两点、f三点都有关,不能直接使用上面只能处理一阶导数的欧拉——拉格朗日方程。要使用广义的欧拉——拉格朗日方程:

凸优化




所以一般求复杂函数在复杂约束条件下的最小值问题都采用迭代法。迭代法的求解速度要比求导法快很多。

以梯度下降法为例说明大概原理:


紫色区域是约束,所以迭代法对初值比较敏感,有可能收敛到局部最小值。




凸优化是最简单的非线性规划方法。自动驾驶的规划求解不是一个凸优化问题,凸优化必须满cost function是一个凸函数,约束空间是一个凸空间,以避障工况为例:






整个过程就是:

上述方法也有一定的缺点:

采样点少的话会比较容易收敛到局部最优,采样点多的话会发生维度灾难,如下:

frenet坐标系和Cartesian坐标系坐标转换
概述和基本量







也就是在直角坐标系下想对一个函数求导,那它只有一个dx,这个dx是不区分点在x坐标上的位移还是点的实际位移在x坐标上的分量,因为这两者一样;但是在frenet坐标系中,它们是一样的所以在frenet坐标系中会有d/ds和d/dsx之分。在直角坐标系中可能只有一个dx,但是在frenet坐标系中,可能会有多个ds,举例说明如下:

这里使用dsx和ds来区分不同的s,在很多推导教程中可能中只用ds,会造成理解困难。
预备知识1

证明这个质点位矢r的导数等于v的模乘以τ,τ是质点在切线方向的单位向量。

当dt趋近于0时,ds和dr无限的接近,比值为1,方向会无限的趋近于在位矢r处的切线方向,也就是τ。

预备知识2:frenet坐标系

其中ds是黑色曲线的弧微分,证明如下:

其中τ+dτ和τ以及dτ形成的三角形是一个等腰三角形,可以求出dτ的大小(也即使dτ的模),方向趋近于τ的法线方向。
其中当dτ无限趋近于0时,sin(dθ/2)等价无穷小于(dθ/2)。

其中 kh是质点轨迹的曲率,kr是道路中心线的曲率,这里的曲率都是在直角坐标系下的曲率。

这里的ds指的是frenet坐标轴下的弧微分。

其中ρ是曲率半径,法向加速度是向心加速度。
预备知识总结



坐标转换(从直角坐标转为frenet坐标)
下面的问题就是已知在笛卡尔坐标系下的
,以及frenet坐标系下的坐标起点
,算这个点在frenet坐标系下的
,其中
。

其中向量三角形是黄色区域,由向量三角形可以得到核心的公式:

得到上面的核心公式,可以该公式和微积分依次求出
,但是这个公式还不能直接使用,因为只知道rh,rr和nr未知,此时要找到投影点的相关信息。
投影点及其相关的信息的确定方法如下:

最后计算得到rr的原理如下:

为什么可以
原理如下:


至此投影点的信息已经基本求值完毕。
下面可以使用上面的核心公式来计算相关量。
s的计算方法是从离散规划点起点开始把各个点的长度累加起来一直累加到投影点(xr,yr)为止。也就是以直线长度近似代替弧长:












小结

坐标变换(从frenet转换到直角坐标)










相关文章:
自动驾驶决策规划——坐标转换
以下内容来自b站up主忠厚老实的老王,视频链接:自动驾驶决策规划算法序章 总纲与大致目录_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1hP4y1p7es/?spm_id_from333.999.0.0&vd_sourced36e625f376908cfa88ef5ecf2fb0ed8侵删。 决策规划算法…...
信创应用软件之邮箱
信创应用软件之邮箱 文章目录 信创应用软件之邮箱采用信创邮箱的必要性信创邮箱采购需求国产邮箱业务形态国产邮箱代表性品牌CoremailRichmail安宁eyouUMail拓波 邮件安全的发展阶段 采用信创邮箱的必要性 邮箱是天然的数据存储空间,党政和央国企客户在使用过程中存…...
TriCore: Architecture
说明 本文是 英飞凌 架构文档 TriCore TC162P core archiecture Volume 1 of 2 (infineon.com) 的笔记,稍作整理方便查阅,错误之处,还请指正,谢谢 :) 1. Architecture 2. General Purpose & System Register 名词列表&#…...
16进制与不同进制之间计算加减乘除的比较快的方法
方法: 1.加分、减法: 将所有的进制的数转成目标进制的数,然后按位加。 如 0x123 0x1234 0x1357 2.乘法、除法: 将所有的进制的数转成二进制数,然后进行移位。 如 0x123456 乘 32(十进制)…...
责任链模式:原理与实现解析,及其应用场景代入
责任链模式的作用:复用和扩展,在实际的项目开发中比较常用,特别是框架开发中,我们可以利用它们来提供框架的扩展点,能够让框架的使用者在不修改框架源码的情况下,基于扩展点定制化框架的功能。 这里主要介…...
从心理学角度看,GPT 对人有什么影响?
开启个性化AI体验:深入了解GPT的无限可能 导言 GPT 与我们日常生活的融合标志着技术进步的重大飞跃,为提高效率和创新提供了前所未有的机遇。然而,当我们与这些智能系统日益紧密地交织在一起时,探索它们对个人产生的细微的心理影响…...
【C语言/数据结构】栈:从概念到两种存储结构的实现
目录 一、栈的概念 二、栈的两种实现方式 1.顺序表实现栈 2.链表实现栈 三、栈的顺序存储结构及其实现 1.栈的声明 2.栈的初始化 3.栈的销毁 4.栈的压栈 5.栈的弹栈 6.栈的判空 7.返回栈顶元素 8.返回栈的长度 四、栈的链式存储结构及其实现 1.栈的声明 2.栈的…...
47. UE5 RPG 实现角色死亡效果
在上一篇文章中,我们实现了敌人受到攻击后会播放受击动画,并且还给角色设置了受击标签。并在角色受击时,在角色身上挂上受击标签,在c里,如果挂载了此标签,速度将降为0 。 受击有了,接下来我们将…...
C语言/数据结构——每日一题(环形链表)
一.前言 今天在力扣上刷到一道链表题——环形链表https://leetcode.cn/problems/linked-list-cycle 想着和大家们分享一下。让我们直接开始今天的分享吧。、 二.正文 1.1题目描述 1.2题目分析 这道题是想让我们做出分析,该链表是不是带环链表,如果是…...
vue:网页icon无法显示
logo文件放在public文件夹下,在html里设置icon。 本地源码运行后发现网页icon无法显示我们设置的logo,而是显示了浏览器默认icon。 这个问题不需要解决,部署后网页icon显示就正常了。...
电脑设置在哪里打开?Window与Mac双系统操作指南
随着科技的不断发展,电脑已经成为我们日常生活和工作中不可或缺的一部分。然而,对于许多初学者来说,如何找到并熟悉电脑的设置界面可能是一个挑战。特别是对于那些同时使用Windows和Mac双系统的用户来说,更是需要一篇详尽的指南来…...
【linux】海量小文件的存储方案
在介绍海量文件存储之前,需要先介绍一下常见的系统里面文件是如何存储的 文件inode 在linux下,每个文件或者目录,都会分配一个inode(index node),它不存储具体的文件内容,而是记录该文件的基础信息。每个inode大小一…...
【SpringBoot整合系列】SpringBoot整合RabbitMQ-基本使用
目录 SpringtBoot整合RabbitMQ1.依赖2.配置RabbitMQ的7种模式1.简单模式(Hello World)应用场景代码示例 2.工作队列模式(Work queues)应用场景代码示例手动 ack代码示例 3.订阅模式(Publish/Subscribe)应用…...
MySQL————创建存储过程函数
存储过程使用大纲 有参数传递 delimiter $$ 声明一个名称为get_student_introduce create procedure add_student_infor( in p_userName VARCHAR(20),in p_phone VARCHAR(11),in p_sex char(2),in p_introduce VARCHAR(255)) 开始操作 BEGIN 撰写真正在操作DMLDQL都行 INSE…...
数据赋能(86)——数据要素:管理核心框架
数据管理的核心框架是一个综合性的体系,旨在确保数据的有效利用、安全性以及合规性。这个框架主要包含了以下几个关键组成部分: 数据治理策略与目标:明确数据管理的整体战略和目标,包括数据价值的释放、数据资产地位的确定、多元…...
测试的基本概念
什么是软件测试 软件测试它就是一个过程测试就是对软件的全方位进行全面的校验.通过测试技术验证软件是不是符合用户的信息. 测试和开发的区别 在工作上的区别: 开发人员通过编程技能来开发和实现这个软件. 测试人员通过测试技能来验证软件是否符合用户需求. 在技术上的要求…...
Python多线程加速-休眠部分线程
总所周知Python由于GIL的问题,使用多线程时同一时刻只有一个线程在工作。故Python会在所有线程之间不断的切换,每切换到一个线程会执行一段字节码指令然后切换到另一个线程。如果开启了很多线程,且只有小部分线程在工作,如果不休眠…...
B+树(B+ Tree)
B树(B Tree)是一种对B树(B-Tree)的改进版本,它在数据库系统和文件系统中作为索引结构得到了广泛的应用,特别是在磁盘存储的场景下。B树保留了B树的基本特征,如自平衡、多路分支等,但…...
【Linux】了解信号产生的五种方式
文章目录 正文前的知识准备kill 命令查看信号man手册查看信号信号的处理方法 认识信号产生的5种方式1. 工具2. 键盘3. 系统调用kill 向任意进程发送任意信号raise 给调用方发送任意信号abort 给调用方发送SIGABRT信号 4. 软件条件5. 异常 正文前的知识准备 kill 命令查看信号 …...
【nuxt3国际化i18n】vue3+nuxt3+vite+TS国际化的正确做法
1、创建nuxt3请看Nuxt3官网 2、下面是添加i18n的叫教程,适用于企业前端项目。 添加依赖 依赖 yarn add vue-i18n yarn add nuxtjs/i18nnext -D配置文件nuxt.config.ts //nuxt.config.ts export default defineNuxtConfig({modules: [nuxtjs/i18n,],i18n: {stra…...
戴森球计划工厂蓝图库:3000+专业设计解决太空建造难题
戴森球计划工厂蓝图库:3000专业设计解决太空建造难题 【免费下载链接】FactoryBluePrints 游戏戴森球计划的**工厂**蓝图仓库 项目地址: https://gitcode.com/GitHub_Trending/fa/FactoryBluePrints FactoryBluePrints是戴森球计划游戏中规模最大的工厂蓝图开…...
GPT-4稀疏激活真相:2%参数如何实现高效推理
1. 项目概述:参数规模与稀疏激活的真相拆解 “GPT-4 Has 1.8 Trillion Parameters. It Uses 2% of Them Per Token.”——这句话过去两年在技术社区反复刷屏,常被当作“大模型已突破算力瓶颈”的标志性论断。但作为从2017年就开始部署LSTM语音识别系统、…...
全球眼用缓释药市场调查:预计2032年将攀升至25.46亿美元
在全球人口老龄化加速与慢性眼病患病率持续攀升的背景下,眼用缓释药市场正迎来历史性增长窗口。据QYResearch(北京恒州博智国际信息咨询有限公司)最新统计,2025年全球眼用缓释药市场销售额已达15.00亿美元,预计2032年将…...
UE4SS技术解析:构建虚幻引擎游戏逆向工程与模组开发的完整生态
UE4SS技术解析:构建虚幻引擎游戏逆向工程与模组开发的完整生态 【免费下载链接】RE-UE4SS Injectable LUA scripting system, SDK generator, live property editor and other dumping utilities for UE4/5 games 项目地址: https://gitcode.com/gh_mirrors/re/RE…...
Linux】2026 年 13 款最强视频播放器(含安装命令 + 优缺点)
Linux视频播放器选择多样,如榛名、MPlayer、VLC等,功能强大、支持多格式,满足各类用户需求 一、榛名视频播放器 榛名视频播放器是一款基于Qt的开源视频播放器,提供了许多基本功能。其特点包括支持Youtube-dl、控制播放速度、丰富…...
铜钟音乐:在信息洪流中找回纯粹听歌体验的现代Web应用
铜钟音乐:在信息洪流中找回纯粹听歌体验的现代Web应用 【免费下载链接】tonzhon-music 铜钟 Tonzhon (tonzhon.whamon.com): 干净纯粹的音乐平台 (铜钟已不再使用 tonzhon.com,现在的 tonzhon.com 不是正版的铜钟) 项目地址: https://gitcode.com/GitH…...
ML生产化核心:三层分离架构与Triton模型服务实战
1. 项目概述:这不是一次“部署上线”,而是一场系统性交付实战 “From Notebook to Production: Running ML in the Real World (Part 4)”——这个标题里藏着太多被日常讨论轻描淡写带过的重量。它不是教你怎么把 model.predict() 封装成API࿰…...
快速开发AI客服原型时如何利用Taotoken分钟级接入多模型
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 快速开发AI客服原型时如何利用Taotoken分钟级接入多模型 在探索和构建AI客服原型时,开发者常常面临一个核心矛盾&#…...
非科班本科,3年从零基础到AI工程师,我的真实转行之路(附避坑指南)
大家好,我是一名普通的非科班本科生,专业是机械制造及自动化,如今已经在AI行业深耕3年,成为了一名能独当一面的AI工程师,还参与过OpenClaw、DeerFlow等国际开源项目,算是真正从“AI小白”逆袭成了行业从业者。 写这篇文章,不是为了炫耀,而是因为我太懂那种“想转行AI却…...
终极iOS位置模拟解决方案:iFakeLocation跨平台免费使用指南
终极iOS位置模拟解决方案:iFakeLocation跨平台免费使用指南 【免费下载链接】iFakeLocation Simulate locations on iOS devices on Windows, Mac and Ubuntu. 项目地址: https://gitcode.com/gh_mirrors/if/iFakeLocation 你是否曾想过将iPhone定位到世界任…...
