Piecewise Jerk Speed 论文以及代码解析

news2025/1/17 4:06:16

目录

1 算法原理

1.1 优化模型离散方式

1.1.1  Temporal Parameter Discretization

1.2 优化问题建模

1.2.1 Cost function

1.2.2 Constraints

2 ST-Graph

3 代码实现

​编辑

3.1 STBoundsDecider


1 算法原理

1.1 优化模型离散方式

在处理最优化问题时,一般会转化成离散形式,将轨迹 s(t) 按照某参数离散,并计算离散点处的约束和 Cost。对于速度规划问题,一般可以按照等间距离散(Spatial Parameter Discretization)和等时间离散(Temporal Parameter Discretization)。

1.1.1  Temporal Parameter Discretization

优点:

缺点:

这条这样理解:

处理方法

此外,Apollo 还设计了非线性速度规划(就是使用 IPOPT)来处理以上问题。

1.2 优化问题建模

1.2.1 Cost function

其中:

1.2.2 Constraints

1)不等式约束

对上面的约束的解释:

2)等式约束

2 ST-Graph

3 代码实现

在 Apollo 中速度决策规划的实现流程如下:

3.1 STBoundsDecider

3.1.1 由车辆动力学约束计算得到的行驶范围约束(s_min, s_max)

其计算依据为车辆运动学公式:

3.1.2 由参考速度计算得到的行驶范围约束

3.1.3 由障碍物计算得到的行驶范围约束

3.2 SpeedBoundsPrioriDecider

3.3 PathTimeHeuristicOptimizer

3.4 SpeedDecider

3.5 SpeedBoundsFinalDecider

3.6 PiecewiseJerkSpeedOptimizer

速度规划的优化求解即是按照上述的算法原理实现的。可以看到,在此会依据纵向决策结果生成纵向位移的约束边界,将每个时刻和 cruise speed 的误差作为优化目标的一部分,并且根据 DP 结果在每个时刻处位移的速度约束作为优化问题的速度约束边界,因此将每个时刻的位移和 DP 的位置之差作为了优化目标的一部分,但是这样只能实现速度的软约束。

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

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

相关文章

vuex的深入学习[基于vuex3]----篇(一)

vuex的深入学习[基于vuex3]----篇(一) vuex框架的核心流程[基于vuex3] Vue Components: Vue组件,html页面上,负责接受用户操作等交互行为,执行dispatch方法触发action进行回应dispatch:操作行为触发方法&a…

MySQL表解锁

查看锁信息 show full processlist 如果一个表被锁定了,会有一个 “Waiting for table metadata lock” 的提示,表明该表正在等待锁定。 解锁表 删除state上有值的事务 kill query 事务id 表解锁完成

Adobe Acrobat 编辑器软件下载安装,Acrobat 轻松编辑和管理各种PDF文件

Adobe Acrobat,它凭借卓越的功能和丰富的工具,为用户提供了一个全面的解决方案,用于查看、创建、编辑和管理各种PDF文件。 作为一款专业的PDF阅读器,Adobe Acrobat能够轻松打开并展示各种格式的PDF文档,无论是文字、图…

坎德拉candela3d光伏电站三维设计软件【无标题】

Candela3D 是一款基于 SketchUp(草图大师)开发的新一代光伏电站三维设计软件。它适用于复杂地形、平坦地形光伏电站的建设项目,同时适用于可研、初设、施工图、项目运营等阶段。这款软件具有多项功能,例如: • 能够突…

AcWing算法基础课笔记——求组合数3

求组合数Ⅲ 20万组数据, 1 ≤ b ≤ a ≤ 1 0 18 , 1 ≤ p ≤ 1 0 5 1 \le b \le a \le 10^{18}, 1\le p \le 10 ^5 1≤b≤a≤1018,1≤p≤105,使用卢卡斯定理。 卢卡斯定理: C a b ≡ C a m o d p b m o d p C a / p b / p ( m o d p ) C_a…

ASP.NETMVC-简单例子-从数据库构建Model+HTML帮助器

环境: win10,.NET Framework 4.6.1 参考: ASP.NET MVC 简介 | 菜鸟教程 https://www.runoob.com/aspnet/mvc-intro.html ASP.NET MVC HTML 帮助器 | 菜鸟教程 https://www.runoob.com/aspnet/mvc-htmlhelpers.html 上一篇: ASP.…

VS Code SSH 远程连接服务器及坑点解决

背景 Linux服务器重装了一下,IP没有变化,结果VS Code再重连的时候就各种问题,导致把整个流程全部走了一遍,留个经验帖以备查看 SSH 首先确保Windows安装了ssh,通过cmd下ssh命令查看是否安装了。 没安装,…

【STM32】STM32通过I2C实现温湿度采集与显示

目录 一、I2C总线通信协议 1.I2C通信特征 2.I2C总线协议 3.软件I2C和硬件I2C 二、stm32通过I2C实现温湿度(AHT20)采集 1.stm32cube配置 RCC配置: SYS配置: I2C1配置: USART1配置: GPIO配置&#…

图片覆盖攻击

点击劫持的本质是一种视觉欺骗。顺着这个思路,还有一些攻击方法也可以起到类似的作 用,比如图片覆盖。 一名叫 sven.vetsch 的安全研究者最先提出了这种 Cross Site Image Overlaying 攻击,简称 XSIO。sven.vetsch 通过调整图片的 style 使得…

中国港口年鉴(2000-2023年)

数据年限:2000-2023(齐全) 数据格式:pdf、excel 数据内容: 一、记述和反映了中国大陆江、海、河港口在深化改革、调整结构、整合资源、开拓经营、加快建设等方面所取得的成就和发展进程,香港特别行政区、澳…

动手学深度学习(Pytorch版)代码实践 -卷积神经网络-25使用块的网络VGG

25使用块的网络VGG import torch from torch import nn import liliPytorch as lp import matplotlib.pyplot as plt# 定义VGG块 # num_convs: 卷积层的数量 # in_channels: 输入通道的数量 # out_channels: 输出通道的数量 def vgg_block(num_convs, in_channels, out_channel…

MyBatis映射器:一对多关联查询

大家好,我是王有志,一个分享硬核 Java 技术的金融摸鱼侠,欢迎大家加入 Java 人自己的交流群“共同富裕的 Java 人”。 在学习完上一篇文章《MyBatis映射器:一对一关联查询》后,相信你已经掌握了如何在 MyBatis 映射器…

天气冷电脑不能启动找不到硬盘

https://diy.zol.com.cn/2004/0611/101994.shtml

es的检索-DSL语法和Java-RestClient实现

基本语法: GET /索引库名/_search {"query": {"查询类型": {"查询条件"}} }RestClient的导入在RestClient操作索引库和文档有介绍 查询所有: # 查询所有 GET /test/_search {"query": {"match_all"…

Linux操作系统段式存储管理、 段页式存储管理

1、段式存储管理 1.1分段 进程的地址空间:按照程序自身的逻辑关系划分为若干个段,每个段都有一个段名(在低级语言中,程序员使用段名来编程),每段从0开始编址。内存分配规则:以段为单位进行分配…

【高考选专业 | 家长篇】2024,计算机何去何从?小P老师带你看

目录 2024年,计算机相关专业还值得选择吗?1.行业竞争现状2.专业前景分析 2024年,计算机相关专业还值得选择吗? 随着2024年高考落幕,数百万高三学生又将面临人生中的重要抉择:选择大学专业。有人欢喜&#x…

2024最新版:C++用Vcpkg搭配VS2022安装matplotlib-cpp库

matplotlib-cpp是一个用于在C中使用matplotlib绘图库的头文件库。它提供了一个简单的接口,使得在C中创建和显示图形变得更加容易。这个库的灵感来自于Python的matplotlib库,它使得在C中进行数据可视化变得更加便捷。 matplotlib-cpp允许在C中使用类似Py…

linux使用docker部署kafka集群

1、拉取kafka docker pull wurstmeister/kafka docker pull wurstmeister/zookeeper 2、创建网络 docker network create app-kafka 3、启动zookeeper docker run -d \--name zookeeper \-p 2181:2181 \--network app-kafka \--restart always \wurstmeister/zookeeper …

Java基础的重点知识-06-String、Arrays、Math、static关键字

文章目录 String类(java.lang)static关键字Arrays类(java.uitl)Math类(java.lang) String类(java.lang) java.lang.String 类代表字符串。 特征: 字符串不变:字符串的值在创建后不能被更改。因为String对象是不可变的&#xff…

【2024德国签证】资金证明详解|从线上开户到签证申请超详细指南!

保证金介绍 1.什么是德国保证金(自保金 Sperrkonto)? 来自非欧洲国家的国际学生必须提供经济资金证明,以证明你能支持你在德国的生活和学习。 保证金用途:非欧盟国家的公民,需要签证来德国,必…