当前位置: 首页 > news >正文

规划决策算法(四)---Frenet坐标系

知乎:坐标系转换

1.Frenet 坐标系

什么是 Frenet 坐标系:
为什么使用 Frenet 坐标系: 通常情况,我们只会关注车辆当前距离左右车道线的距离,来判断是否偏离车道,是否需要打方向盘进行方向微调。而不是基于汽车的出发点,那样就太远了
往往道路是弯曲的,在直角坐标系下要计算出车辆行驶的距离要考虑道路曲率会非常麻烦。而在Frenet坐标系中,原点所在参考线与车道中心线平行,容易确定车辆偏离车道中心线的距离以及车辆沿车道中心线的行驶距离。因此使用Frenet坐标系可以忽略道路曲率的影响,让道路表达更加直观、简洁。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Frenet 坐标系相当于把道路抻直了

在这里插入图片描述

2.笛卡尔坐标系

在这里插入图片描述
在这里插入图片描述

3.两者转换

在实践中只需要记住结论
推导博客
在这里插入图片描述
某一时刻,假设车辆质心在全局笛卡尔坐标系下的坐标为(x,y)
**原点:**车辆质心到参考线上的投影点称为
原点切线方向称为s轴方向或纵轴方向
原点法线方向称为d轴方向或横轴方向
s:值指的是参考线上的原点与起点之间曲线的长度,也就是车辆在道路上的纵向行驶距离。
d:值指的是原点与车辆质心之间的距离,也就是车辆偏离道路中心线的距离。
车辆质心随着时间在不断变化,因此Frenet坐标系的原点也在不断变换,所以Frenet坐标系是一个移动坐标系。

4.存在的问题

输入的坐标往往是笛卡尔坐标,在中间预测轨迹时使用 Frenet 坐标,最后输出给下游时还要转换成笛卡尔坐标,所以需要将 Frenet 和笛卡尔坐标之间相互转换,但是将 Frenet 坐标转为笛卡尔坐标会有以下问题
在这里插入图片描述

5.参考线生成

如果 Frenet 坐标建立的不够精确就会导致问题越明显,所以参考线的生成要满足一下约束,最终效果生成一条平滑的曲线 :
在这里插入图片描述

S1 :插值扩充点的个数

在这里插入图片描述
S2:将点与点之间变得平滑

a. 考虑为了使连接成的轨迹尽可能满足平滑的要求,参考线之间应该又怎样的性质?

    1. 直线平滑度最高,自车行驶也最容易;对应图中theta越小、|P2P4|越小则越接近直线,如果 thete 很大就会是一条直线
    1. 行驶距离越短越好,所以相邻两点距离和应该越小越好 m i n ∑ ∣ ∣ P k P k − 1 ∣ ∣ 2 min\sum ||P_{k}P_{k - 1}||_{2} min∣∣PkPk12
    1. 点间距越均匀越好 m i n { a b s ( ∣ ∣ P k + 1 P k ∣ ∣ 2 − ∣ ∣ P k P k − 1 ∣ ∣ 2 ) } min\left \{ {abs(||P_{k+1}P_{k}||_{2} - ||P_{k}P_{k-1}||_{2})} \right \} min{abs(∣∣Pk+1Pk2∣∣PkPk12)}
    1. 为了避免调整位置前后轨迹变化太大,应该限制每个点可以偏移原始点的位置,
      同时最小化偏移距离 m i n ∑ ∣ ∣ P k P k ′ ∣ ∣ 2 min\sum ||P_{k}P_{k}{'}||_{2} min∣∣PkPk2

b. 把这个问题用数学表达式写出来:考虑上面提到的性质,把不满足上述性质的程度记作J,根据上面的描述,J应该包含下面几项,注意式中都对距离取了平方,取平方可以提升计算效率
1. 平滑代价: ∑ ∣ ∣ 2 P k − P k − 1 − P k + 1 ∣ ∣ 2 2 \sum ||2P_{k} - P_{k - 1} - P_{k + 1}||_{2}^{2} ∣∣2PkPk1Pk+122
2. 偏移代价: ∑ ∣ ∣ P k P k ′ ∣ ∣ 2 2 \sum ||P_{k}P_{k}{'}||_{2}^{2} ∣∣PkPk22
3. 距离代价: ∑ ∣ ∣ P k P k − 1 ∣ ∣ 2 2 \sum ||P_{k}P_{k - 1}||_{2}^{2} ∣∣PkPk122(此部分代价同时可以反应均匀性)
c. 每个点还应该满足位置限制条件,也就是将每个点限制在框中
1. x m i n < = x k − x k ′ < = x m a x x_{min} <= x_{k} - x_{k}^{'} <= x_{max} xmin<=xkxk<=xmax
2. y m i n < = y k − y k ′ < = y m a x y_{min} <= y_{k} - y_{k}^{'} <= y_{max} ymin<=ykyk<=ymax
d. 于是,我们想让参考点变得符合我们对中心线预期的问题,就变成了下面这样一个数学问题,在满足限制条件的情况下,使得J的值最小,其中w表示各个项目的重要程度;
1. m i n { J = w 1 ∑ ∣ ∣ 2 P k − P k − 1 − P k + 1 ∣ ∣ 2 2 + w 2 ∑ ∣ ∣ P k P k ′ ∣ ∣ 2 2 + w 3 ∑ ∣ ∣ P k P k − 1 ∣ ∣ 2 2 } min\left \{ J = w_{1}\sum ||2P_{k} - P_{k - 1} - P_{k + 1}||_{2}^{2} + w_{2}\sum ||P_{k}P_{k}{'}||_{2}^{2} + w_{3}\sum ||P_{k}P_{k - 1}||_{2}^{2} \right \} min{J=w1∣∣2PkPk1Pk+122+w2∣∣PkPk22+w3∣∣PkPk122}
2. s.t. x m i n < = x k − x k ′ < = x m a x x_{min} <= x_{k} - x_{k}^{'} <= x_{max} xmin<=xkxk<=xmax y m i n < = y k − y k ′ < = y m a x y_{min} <= y_{k} - y_{k}^{'} <= y_{max} ymin<=ykyk<=ymax
e. 问题求解,这其实是一个标准的二次规划问题,调用OSQP这个运算库就可以求解出来结果
1. 二次规划问题:目标函数是凸二次函数(最高次数为2,且为凸函数),约束条件是线性函数
2. 二次规划问题的标准形式 m i n 1 2 x T H x + q T x s . t . a T x = b h T x < = t \begin{array}{l} min\ \frac{1}{2} x^{T}Hx + q^{T}x \\ s.t.\ \ \ \ a^{T}x = b \\ \ h^{T}x <= t \end{array} min 21xTHx+qTxs.t.    aTx=b hTx<=t

上方是问题的形式,下方的问题的约束

6.Frnet 坐标转笛卡尔坐标

龙格现象:
虽然高次多项式会拟合出一条更精确的曲线,但是当次数变高是会出现震荡的现象,所以我们应该使用低次多项的方式拟合一条曲线
在这里插入图片描述
微分基本公式及法则
在这里插入图片描述

相关文章:

规划决策算法(四)---Frenet坐标系

知乎&#xff1a;坐标系转换 1.Frenet 坐标系 什么是 Frenet 坐标系&#xff1a; 为什么使用 Frenet 坐标系&#xff1a; 通常情况&#xff0c;我们只会关注车辆当前距离左右车道线的距离&#xff0c;来判断是否偏离车道&#xff0c;是否需要打方向盘进行方向微调。而不是基于…...

大数据处理:大数据处理框架Hadoop、Spark

大数据处理是当代信息技术领域的一个重要分支&#xff0c;它涉及到海量数据的存储、管理和分析。为了高效地应对大数据处理的挑战&#xff0c;多种框架被开发出来&#xff0c;其中Hadoop和Spark是最为知名和广泛应用的两种。以下将详细介绍这两种框架以及它们在大数据处理中的应…...

网传的高频流量费会影响到个人用户的算法和策略T0吗?

先解答这个问题&#xff1a;高频的流量费这个确实是会影响你自己算法的交易的&#xff01;但是&#xff0c;强调一个但是&#xff1a;有的券商是没有流量费的&#xff01;小编今天就来带大家了解一下&#xff01;第一&#xff1a;算法交易的应用场景&#xff01; 算法交易的主…...

阿里云服务器 Ubuntu18.04 安装 mysql8.0并允许外部连接

参考教程&#xff1a; 官网教程 参考教程一 首先彻底删除mysql5.7 dpkg --list|grep mysql #查看 sudo apt-get remove mysql-common #卸载 sudo apt-get autoremove --purge mysql-server-5.7 #版本自己修改 dpkg -l|grep ^rc|awk {print$2}|sudo xargs dpkg -P #清除残留数…...

(Arxiv-2023)MobileDiffusion:移动设备上即时文本到图像生成

MobileDiffusion&#xff1a;移动设备上即时文本到图像生成 Paper Title&#xff1a;MobileDiffusion: Instant Text-to-Image Generation on Mobile Devices Paper是谷歌出品 Paper地址 图 1&#xff1a;MobileDiffusion 用于 (a) 文本到图像的生成。(b) Canny 边缘到图像、风…...

【七】Hadoop3.3.4基于ubuntu24的分布式集群安装

文章目录 1. 下载和准备工作1.1 安装包下载1.2 前提条件 2. 安装过程STEP 1: 解压并配置Hadoop选择环境变量添加位置的原则检查环境变量是否生效 STEP 2: 配置Hadoop2.1. 修改core-site.xml2.2. 修改hdfs-site.xml2.3. 修改mapred-site.xml2.4. 修改yarn-site.xml2.5. 修改hado…...

【Rust光年纪】深入了解Rust语言的关键库:功能特点与使用场景分析

探索Rust语言下的重要库&#xff1a;硬件接口控制和数据库操作全解析 前言 随着Rust语言在嵌入式开发和数据库操作领域的不断发展&#xff0c;越来越多的优秀库和工具涌现出来。本文将介绍一些用于Rust语言的重要库&#xff0c;包括硬件接口库、嵌入式硬件抽象层、ORM和查询构…...

矩估计与最大似然估计的通俗理解

点估计与区间估计 矩估计与最大似然估计都属于点估计&#xff0c;也就是估计出来的结果是一个具体的值。对比区间估计&#xff0c;通过样本得出的估计值是一个范围区间。例如估计馒头店每天卖出的馒头个数&#xff0c;点估计就是最终直接估计每天卖出10个&#xff0c;而区间估…...

性能调优本质:如何精准定位瓶颈并实现系统极致优化

目录 先入为主的反例 性能调优的本质 性能调优实操案例 性能调优相关文章 先入为主的反例 在典型的 ETL 场景中,我们经常需要对数据进行各式各样的转换,有的时候,因为业务需求太复杂,我们往往还需要自定义 UDF(User Defined Functions)来实现特定的转换逻辑。 但是…...

Git的命令

git add . 添加到暂存区 git commit -m 备注 提交 git branch 查看所有分支 git branch -d 分支名 删除分支 git push origin --delete 分支名 远程分支删除 git branch -a 查看删除后的分支 git clone 地址 例如https://gitee.com/whale456/demo.git git push origin m…...

WPF中使用定时器更新元素-DispatcherTimer

在WPF中使用定时器来更新UI元素是一种常见且有用的做法&#xff0c;特别是当你需要基于时间间隔来刷新数据或执行某些操作时。DispatcherTimer是WPF中用于在UI线程上执行周期性任务的理想选择&#xff0c;因为它确保了对UI元素的更新是线程安全的 例子程序 每隔0.5s 界面中的…...

计算机网络 - 理解HTTP与HTTPS协议的关键区别与安全性

作者&#xff1a;逍遥Sean 简介&#xff1a;一个主修Java的Web网站\游戏服务器后端开发者 主页&#xff1a;https://blog.csdn.net/Ureliable 觉得博主文章不错的话&#xff0c;可以三连支持一下~ 如有疑问和建议&#xff0c;请私信或评论留言&#xff01; 前言 在今天的互联网…...

【Spring Framework】使用XML配置文件配置Bean的实例化方式

在 Spring Framework 中&#xff0c;实例化 bean 的方式非常灵活&#xff0c;允许开发人员根据需求选择不同的方法。以下是几种常见的实例化 bean 的方式及其示例&#xff1a; 1. 通过无参构造函数实例化 这是最常见的方式&#xff0c;Spring 会使用 bean 的默认无参构造函数…...

模拟电子技术-实验四 二极管电路仿真

实验四 二极管电路仿真 一&#xff0e;实验类型 验证性实验 二&#xff0e;实验目的 1、验证二极管的单向导电性 2、验证二极管的稳压特性。 三&#xff0e;实验原理 二极管的单向导电性&#xff1a; 四、实验内容 1、二极管参数测试仿真实验 1&#xff09;仪表仿真…...

Git 子仓(Git Submodule)学习

Git 子仓学习 Git 子仓&#xff08;Submodule&#xff09;是 Git 提供的一种功能&#xff0c;用于在一个 Git 仓库&#xff08;称为主仓库或 superproject&#xff09;中嵌入另一个 Git 仓库&#xff08;称为子仓或 submodule&#xff09;。这种功能在管理大型项目或依赖关系较…...

JavaSE基础 (认识String类)

一&#xff0c;什么是String类 在C语言中已经涉及到字符串了&#xff0c;但是在C语言中要表示字符串只能使用字符数组或者字符指针&#xff0c;可以使用标准库提 供的字符串系列函数完成大部分操作&#xff0c;但是这种将数据和操作数据方法分离开的方式不符合面相对象的思想&…...

学习大数据DAY25 Shell脚本的书写2与Shell工具的使用

目录 自定义函数 递归-自己调用自己 上机练习 12 Shell 工具 sort sed awk 上机练习 13 自定义函数 name(){ action; } function name { Action; } name 因为 shell 脚本是从上到下逐行运行&#xff0c;不会像其它语言一样先编译&#xff0c;所以函数必 须在调…...

Java学习Day19:基础篇9

包 final 权限修饰符 空着不写是default&#xff01; 代码块 1.静态代码块 1.静态代码块优于空参构造方法 2.静态调用只被加载一次&#xff1b; 静态代码块在Java中是一个重要的特性&#xff0c;它主要用于类的初始化操作&#xff0c;并且随着类的加载而执行&#xff0c;且只…...

如何撤销git add ,git commit 的提交记录

一、撤销git commit ,但是没有push到远程的记录 git reset --hard HEAD~1 销最近的一次提交&#xff0c;并且丢弃所有未提交的更改 二、撤销git add ,但是没有提交到本地仓库的记录 git reset 三、原理 Git 工作流程的简要说明&#xff1a; 工作目录&#xff08;Working …...

Postman环境变量的高级应用:复杂条件逻辑的实现

Postman环境变量的高级应用&#xff1a;复杂条件逻辑的实现 在Postman中&#xff0c;环境变量是管理和定制API请求的强大工具。通过使用环境变量&#xff0c;可以轻松地在不同环境之间切换&#xff0c;如开发、测试和生产环境。然而&#xff0c;环境变量的真正威力在于它们能够…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求&#xff0c;本次涉及的主要是收费汇聚交换机的配置&#xff0c;浪潮网络设备在高速项目很少&#xff0c;通…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...