【algorithm】自动驾驶常见常考的几个模型和推导,顺便总结自己遇到的考题经验不断更新之———控制版

news2024/11/20 19:47:03

写在前面

本来快达成目标了,没想到公司遭受了问题,公司和同事我感觉还是挺好的,有国企的正规也有小企业的灵活,大家都很有学习欲望。
作为本次再次复习回忆如下:
把之前面试准备的 机器学习(基本搬运到CSDN平台了)、规划(基于之前的公司同事教导和常见算法轨迹 lattice em 路径 diji a star rrt rrt*)、控制(控制器和模型),工具链(matlab ide repo git anaconda ros linux操作)其他(frenet 、大地车辆坐标转换、点到线距离、找投影、插值、离散点求曲率(以及各种几何问题)、卡尔曼 三次道路多项式 地图处理 滤波 轨迹优化)刷题和有cpp相关的作为小白接触到的知识都总结成了word。 本文先总结搬运模型相关,希望大佬们给点方向提建议,渴望进步,其实对于经典现代控制论本身,很多东西都忘记了,只能作为笔记和考试记录存在了,实践中感觉一直用不上或者不需要再推导了。 现在的烦恼是:其中有很多新东西和非规划控制的内容由于工作方向我只能自己demo,最希望讨论和接触的是实践中积累的问题处理办法,还有能实际在工作中部署最新论文的东西,可惜工作就是工作,同时被专业方向卡住,只能积累再积累。

outline

  • stanley pp
  • 动力学 运动学 简单推导
  • mpc
  • pid
  • acado 和osqp求解 见另外两篇文章
    Acado:https://blog.csdn.net/weixin_46479223/article/details/133743263的实例中展示了acado如何求解mpc问题,
    另一篇是osqposqp:https://blog.csdn.net/weixin_46479223/article/details/135107257
  • 临时简略EM planner 信息

Stanley and pure pursuit

在这里插入图片描述

运动学

在这里插入图片描述

在这里插入图片描述

动力学

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

并联pid

  • 预瞄 2个点 近:lateraldisdiff lateraldisdiffrate 远headingdiff headingdiffrate
  • yawrate 要稳 pd要控制好
  • 找瞄准点用几何法

串联pid

在这里插入图片描述

MPC控制横向 pid纵向

(纵向mpc osqp见另一篇文章的demo)https://blog.csdn.net/weixin_46479223/article/details/135107257

会找投影点 预瞄要选好 用acado osqp ,具体模型一会更新

模型推导

在我的文章Acado:https://blog.csdn.net/weixin_46479223/article/details/133743263的实例中展示了acado如何求解mpc问题

可见acado很方便,直接给出车辆模型的微分方程,以及求解时域(步长)、约束、和目标函数就可以生成相关代码。
在这里插入图片描述

因此我们直接得出状态量之间的递推表达关系即可(状态转移方程),推导如下(当然也可以使用之前的动力学和运动学的推导来建立mpc,这里展示使用的另一种横向模型)
在这里插入图片描述

以下是除了模型之外的,mpc控制部分的处理(找投影点,预瞄点),以及纵向pid的设置

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

其他:

-颠簸
-手力
-控制接口转化
-握手
-滤波
-限幅
-限rate
-侧倾
-前置车道线处理
-激活退方向盘稳定渐入渐出
-canoe ape分析
-matlab回放 ros回放

  • usw.

临时EM planner

在这里插入图片描述
补充:找起点时间要顺延一个planning cycle

  • 轨迹筛选、碰撞检测
  • 巡航为四次多项式 没有终点s
  • frenet下的平滑不代表卡迪尔下平滑
    注意 以下图片均出自于老王 bilibili
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

特殊情况

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

以前的杂乱总结版本

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

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

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

相关文章

安全与认证Week4

目录 本章需要理解的问题 Web Security (TLS/SSL) 关于网络 使用网络会受到的威胁 各层安全协议 S/MIME、PGP(后面和S/MIME一起出现)、Kerberos、TLS/SSL 和 IP/IPSec 分别是: S/MIME (Secure/Multipurpose Internet Mail Extensions)&#x…

js文件上传 分片上传/断点续传/极速秒传

(极速秒传)利用md5判断上传的文件是否存在 MD5信息摘要算法,一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。 每一个文件都会生成…

杰发科技AC7840——Eclipse环境DMA注意事项

0.序 用 户 使 用 DMA 时 , 所 有 DMA 搬 运 的 SRAM 数 据 都 必 须 存 放 在 SRAM_U 区 (0x20000000~0x2000EFFF) 。 1. 修改办法 第一步: RAM定义 /* Specify the memory areas */ MEMORY {FLASH (rx) : ORIGIN 0x00000000, LENGT…

【零基础入门TypeScript】类型和变量

目录 任意类型 内置类型 Null 和 undefined ─ 它们是一样的吗? 用户定义类型 TypeScript 中的变量声明 示例:TypeScript 中的变量 TypeScript 中的类型断言 例子 TypeScript 中的推断类型 示例:推断类型 TypeScript 变量作用域 …

认识机器学习【woodwhales.cn】

为了更好的阅读体验,建议移步至笔者的博客阅读:认识机器学习 生活中的问题1:居民家庭生活用气价格 北京燃气小程序在线咨询,查询北京居民家庭生活用气价格 上图价格梯度,可以由文字转换成表格: 第一档用气…

DrGraph原理示教 - OpenCV 4 功能 - 二值化

二值化,也就是处理结果为0或1,当然是针对图像的各像素而言的 1或0,对应于有无,也就是留下有用的,删除无用的,有用的部分,就是关心的部分 在图像处理中,也不仅仅只是1或0,…

Linux 命令echo

命令作用 输出一行字符串在shell中,可以打印变量的值输出结果写入到文件在显示器上显示一段文字,起到提示的作用 语法 echo [选项] [字符串] 参数 字符含义-n不自动换行-e解释转义字符-E不解释转义字符 如果-e有效,则识别以下序列&…

【Unity入门】RequireComponent的使用

目录 RequireComponent的作用构造函数 RequireComponent的作用 RequireComponent 属性自动将所需的组件添加为依赖项。 当某个脚本必须依赖其他脚本或者组件共同使用时,为了避免人为添加过程的操作失误,可以在代码中使用RequireComponent,它…

c语言:设计投票小程序|练习题

一、题目 设计一个投票小程序 如图&#xff1a; 二、代码图片【带注释】 三、源代码【带注释】 #include <stdio.h> #include<string.h> void win(int,int,int); int main() { char ch[5]; int countLili0; int countjp0; int countzx0; int …

OS 7--DNS配置+Apache发布网站

环境准备 centOS 7 1.配置DNS 1.1 域名为lianxi.com 1.2 为WWW服务器、FTP服务器、NEWS服务器做域名解析 1)安装DNS yum -y install bind bind-utils (如果安装不上&#xff0c;就把磁盘在重洗挂载一下&#xff09; 2&#xff09;修改DNS配置文件 vim /etc/resolv.conf…

【一文入门】Git常用命令集锦--分支操作和版本管理篇

前言 Git 是一种分布式版本控制系统&#xff0c;可以帮助团队协作开发、管理和维护代码&#xff0c;提高代码质量和效率&#xff0c;掌握常用版本管理命令可以帮助我们更好地管理代码变更和历史记录。下面我将介绍开发中常用的一些Git分支操作和版本管理命令 1 分支操作 1.1 …

Linux 系统编程:文件系统

文件类型 Linux 文件分为 3 类&#xff1a; 普通文件&#xff1a;文本文件、二进制文件&#xff0c;要学习如何创建、复制、移动、重命名和删除这样的文件。目录&#xff08;Windows 中的“文件夹”与之类似&#xff09;伪文件&#xff1a;设备文件、命名管道、proc 文件&…

Kafka安全认证机制详解之SASL_PLAIN

一、概述 官方文档&#xff1a; https://kafka.apache.org/documentation/#security 在官方文档中&#xff0c;kafka有五种加密认证方式&#xff0c;分别如下&#xff1a; SSL&#xff1a;用于测试环境SASL/GSSAPI (Kerberos) &#xff1a;使用kerberos认证&#xff0c;密码是…

DevSecOps研讨会: 2023年DevOps有哪些值得关注的发展与挑战

近日&#xff0c;龙智DevSecOps研讨会年终专场”趋势展望与实战探讨&#xff1a;如何打好DevOps基础、赋能创新”在上海圆满落幕。来自清晖、Jama Software、CloudBees和中新赛克的嘉宾&#xff0c;以及龙智技术与顾问咨询团队代表分别发表了主题演讲&#xff0c;分享他们在Dev…

(已解决)word如何制作和引用参考文献

文章目录 正文其他 一般使用latex&#xff0c;但是有的时候会遇到使用word的情况&#xff0c;这里记录一下word如何弄参考文献。 正文 1.首先复制你的参考文献到word里面&#xff0c;然后要编号&#xff0c;记住&#xff0c;一定要编号&#xff0c;否则到时候无法引用。 那么…

Note: Balanced Diet

Balanced Diet 平衡膳食 diet balanced Wang Peng earned his living by running a barbecue restaurant, which served delicious bacon, fried chiken breast and mutton roasted with pepper and garlic. 王鹏经营一家烧烤餐厅来谋生&#xff0c;它提供美味的培根&#xf…

C语言注意点(2)

1.使用pow函数的相关问题 局部变量n0 while(num/pow(10,n)) n; 为什么不可行 printf("%d",num/pow(10,4)%10) 为什么要提前用temp先引出来 答&#xff1a;pow函数的返回值为double类型&#xff0c;1.终止条件不会满足 2.num/pow(10,4)结果为浮点型&#xff0c;浮…

Spark一:Spark介绍、技术栈与运行模式

一、Spark简介 Spark官网 https://spark.apache.org/ 1.1 Spark是什么 Spark是一种通用的大数据计算框架&#xff0c;是基于RDD(弹性分布式数据集)的一种计算模型。 是一种由 Scala 语言开发的快速、通用、可扩展的大数据分析引擎。 1.2 Spark作用 中间结果输出 Spark的Jo…

从零开始配置kali2023环境:配置jupyter的多内核环境

在kali2023上面尝试用anaconda3&#xff0c;anaconda2安装实现配置jupyter的多内核环境时出现各种问题&#xff0c;现在可以通过镜像方式解决 1. 搜索镜像 ┌──(holyeyes㉿kali2023)-[~] └─$ sudo docker search anaconda ┌──(holyeyes㉿kali2023)-[~] └─$ sudo …

Redis数据删除策略(惰性删除+定期删除)

文章目录 Redis数据删除策略1. 惰性删除2. 定期删除3. Redis过期删除策略用的哪种&#xff1f; Redis数据删除策略 1. 惰性删除 设置key过期时间后&#xff0c;不管它&#xff0c;需要用该key时&#xff0c;再检查是否过期&#xff0c;过期就删掉她&#xff0c;没过期返回 set …