自动泊车系统设计学习笔记
1 概述
1.1 自动泊车系统研究现状
目前对于自动泊车系统的研究方法通常有两种实现方式:
整个泊车操作可以分为四个阶段:第一阶段车辆向前行驶进行车位识别,第二阶段车辆行驶到准备泊车时的待泊车区域,第三阶段车辆按照规划好的轨迹函数,向车位行驶,第四阶段,车辆调整泊车后的未知,使其达到规划好的泊车区域。
对于轨迹控制,目前的研究方法主要分为两类:一种是基于路径规划进行泊车操作,另一种是通过驾驶员的泊车经验,对其建立模糊规则,设计一种模糊控制器。
1.2 自动泊车系统原理及架构
自动泊车系统是一种能够快速、安全地使车辆自动驶入泊车位的智能泊车辅助系统,它通过超声波和图像传感器感知车辆周围环境信息来识别泊车车位,并根据车辆与停车位的相对未知信息,产生相应的泊车轨迹来控制车辆的速度和方向盘转向完成自动泊车。
自动泊车系统具有以下基本功能:自动识别车位功能、车位调节功能、基于整车参数的路径生成功能,具有基于路径规划的轨迹控制功能,具有车速控制功能。
以工控板为核心的整车控制单元和图像处理单元,以电动助力转向控制板为核心的转向控制单元,以超声波车速控制板为核心的车位识别和车速控制单元。
超速波控制系统实现车位和障碍物检测;图像处理系统实现车位调节,实现虚拟车位和实际车位之间的匹配;
自动泊车系统主要由环境数据采集系统、中央处理器、车辆策略控制系统三部分组成。
中央处理器的任务:接受感知信息,计算参考泊车轨迹,将车速和前轮转角信号传递给策略控制系统。
1.3 自动泊车系统核心技术
超声波精确测距技术、车位识别技术、车位调节技术、轨迹生成技术、EPS转向控制技术和车辆低速控制技术。
2 车速控制目标
2.1 低速控制意义和目标
由于自动泊车系统在泊车过程中会不断变动车身角度以修正车身未知,所以需要车辆在任意方向盘转向角度下均能稳定跟踪期望车速行驶。
速度控制品质的好坏即是否能保证车辆在任意方向盘角度下保持期望速度行驶。
衡量速度控制算法的好坏的性能标准主要包括调节实践、速度轨迹跟踪误差和跟踪过程中的加速度。
低速控制算法需要在控制速度的过程中保证具有较短的调节时间和较小的轨迹跟踪误差,还需要注重控制过程中的加速度大小即驾驶员和乘客的舒适性。
车辆低速控制的特点和难点是控制对象范围小,且精度高,此外从实际应用角度考虑,还需要保证驾驶员的舒适性。
2.2 低速控制原理及架构
低速控制技术包含横向控制和纵向控制两部分。
横向控制和纵向控制的控制原理基本一致:首先,通过传感器获得周围环境变量的反馈值;然后,利用算法决策出最佳值并输出为模拟量;最后,通过模拟量自动控制车辆的相关系统或提示驾驶员按照提示的最佳值进行操作。
对于全自动泊车系统的低速控制过程中,由于速度较低所以轮胎的滑移率较小,且转向角度的变化较小,对整个系统的影响不大,因此整个车辆可以简化为纵向模型。
系统的特征变量是车辆的行进速度。
采用后轴中心处的轮速作为全自动泊车系统的特征变量。(与车辆中心处的车速偏差较小,且能反应车辆的运动过程;可直接通过轮速传感器获得;计算简单且不需要考虑转向的角度)
全自动泊车系统的速度可分为三个状态,即加速、恒速和减速状态。
系统利用拉普拉斯-高斯曲线规划实时期望车速轨迹。
采用斜率为2的斜坡函数规划减速状态下的速度规划。
采用具有自适应参数的Fuzzy算法结合增量式PID算法作为车辆低速控制的核心算法。
3 车位识别系统
3.1 车位识别意义及目标
一种高效可靠的车位识别方法应该能够识别各种复杂泊车环境下的泊车位,并在识别成功率、识别精度方面都能够满足泊车需求,为整个泊车系统的成功实施奠定一个监视的基础。
引入一种基于多超声波传感器信息融合的车位识别方法,通过安装于车身同侧的两个超声波传感器对目标车位进行识别,利用相似度数据融合方法对传感器识别数据进行融合,最后得到一个加权的目标车位估计值作为最后评估的对象。
3.2 车位识别原理及架构
车位识别模式分为理想泊车模式和特殊泊车模式。
车位识别算法:超声波测距和车位边缘检测。
4 车位调节系统
4.1 车位调节意义及目标
通过在车辆尾部安装摄像头,通过摄像头采集的环境信息构建泊车车位操作的人机交互界面,通过人机交互界面驾驶员一方面可以清楚地观察车后环境,另一方面可以通过调节人机交互界面中的虚拟车位进行待泊车区域选择。驾驶员在泊车过程中能够了解泊车时的车后环境情况和完成泊车时车辆的泊车位置。而且可以为自动泊车系统的关键技术包括轨迹生成和轨迹控制提供精确的输入参数(轨迹生成主要根据系统提供的车辆于车位之间的横向距离与纵向距离进行规划),从而实现泊车的控制。
车位调节算法设计:根据实际坐标与图像坐标之间的关系,在图像中生成一个与实际车位大小相同的虚拟车位。通过在图像中调节虚拟车位的位置,便能够实现与不同环境下实际车位之间的匹配。
5 轨迹生成与转向控制系统
从一定程度上来说,轨迹生成技术和转向控制技术直接决定了一个自动泊车系统的有效性和可靠性。
一个好的轨迹生成算法,能够提高系统的鲁棒性和稳定性,提高泊车的成功率和扩大初始泊车范围,使驾驶员能够更随心所欲的进行泊车。转向控制系统需要与其他部件协调合作,让汽车在恰当的时刻实现精确角度的转向,其能否快速、精确地实现汽车转向,决定了泊车轨迹的质量。
5.1 轨迹生成与转向原理及架构
根据运动学模型中的坐标位置的几何关系,可进一步求得车辆四个车轮和车身顶点对应的轨迹方程。
车辆在进行泊车操作时,其运动轨迹为一段圆弧叠加而成。车辆运动过程中,驾驶员通过方向盘来控制车辆行进的轨迹,所以需对车辆行驶时其运动半径和方向盘转角之间的关系进行分析。为减轻轮胎的磨损,在设计汽车时要求其转向系统保证汽车在进行转向操作时车辆进行纯滚动运动。只有在所有车轮转向轴线交于一点时此条件才成立,此交点称为转向中心。
5.2 车辆避碰空间分析
泊车过程中的碰撞区域主要由车位环境决定。
采用增量式PID控制方法控制方向盘角度。
5.3 轨迹生成与转向控制设计
在实际泊车过程中,驾驶员在准备泊车时,很难将车辆停得与车位处于绝对平行的状态,并且由驾驶员选择一个相对精确的泊车位置有一定的难度。
相关文章:

自动泊车系统设计学习笔记
1 概述 1.1 自动泊车系统研究现状 目前对于自动泊车系统的研究方法通常有两种实现方式: 整个泊车操作可以分为四个阶段:第一阶段车辆向前行驶进行车位识别,第二阶段车辆行驶到准备泊车时的待泊车区域,第三阶段车辆按照规划好的…...

基于Java的家电销售网站管理系统设计与实现(源码+lw+部署文档+讲解等)
文章目录 前言具体实现截图论文参考论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域…...
设计模式~备忘录模式(memento)-22
目录 (1)优点: (2)缺点: (3)使用场景: (4)注意事项: (5)应用实例: 代码 备忘录模式(memento) 备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对…...

【Agora UID 踩坑记录 Java 数据类型】
目录 负数二进制表示Java中32位无符号数的取法项目踩坑记录Java 0xffffffff隐式类型转换的坑 负数二进制表示 由于计算机中数据都以二进制表示,而负数的二级制是根据正数二进制取补码(补码就是先取反码,然后加1)得到,…...
ESP8285 RTOS SDK OTA
一、官方资源说明 官方指南:空中升级 (OTA) - ESP32 - — ESP-IDF 编程指南 v4.3.6 文档,虽然是正对ESP32的,但是原理是一样的。 官方参考例程:esp-idf\ESP8266_RTOS_SDK\examples\system\ota\,其中包含两个例程&…...

Hadoop3教程(四):HDFS的读写流程及节点距离计算
文章目录 (55)HDFS 写数据流程(56) 节点距离计算(57)机架感知(副本存储节点选择)(58)HDFS 读数据流程参考文献 (55)HDFS 写数据流程 …...

[0xGameCTF 2023] web题解
文章目录 [Week 1]signinbaby_phphello_httprepo_leakping [Week 2]ez_sqli方法一(十六进制绕过)方法二(字符串拼接) ez_upload [Week 1] signin 打开题目,查看下js代码 在main.js里找到flag baby_php <?php /…...

Qt之submodule编译
工作中会遇到这样一种情况:qt应用程序在运行时提示找不到某个qt的动态库。我遇到的是缺少libQt5Websocket.so,因为应用程序是在x86平台银河麒麟v10上开发,能够正常编译运行,然后移植到rk3588(aarch64架构)上…...

Python实现带图形界面的计算器
Python实现带图形界面的计算器 在本文中,我们将使用Python编写一个带有图形用户界面的计算器程序。这个程序将允许用户通过点击按钮或键盘输入数字和操作符,并在显示屏上显示计算结果。 开发环境准备 要运行这个计算器程序,您需要安装Pyth…...

$ vue -Vbash: vue: command not found
$ vue -V bash: vue: command not found报这个错,我们需要找到vue安装路径,添加在环境变量的用户变量中: 1、vue安装路径 2、编辑环境变量 然后重新打开命令框,就可以了...

专业音视频领域中,Pro AV的崛起之路
编者按:在技术进步的加持下,AV行业发展得如何了?本文采访了两位深耕于广播电视行业的技术人,为我们介绍了专业音视频的进展:一位冉冉升起的新星:Pro AV以及FPGA在其中发挥的作用。 美国,拉斯维加…...

vscode 右侧滚动条标记不提示,问题解决纪录
问题描述 用vscode看代码时,我希望在右侧提示一个变量在文件下都在那里使用,在那里赋值,之前该功能是存在的,当我打开一个新的文件夹时这个功能消失了。 解决办法 在setting.json文件下输入 "C_Cpp.intelliSenseEngine&…...

【Java 进阶篇】JavaScript特殊语法详解
JavaScript是一门非常灵活的编程语言,允许开发人员使用多种不同的语法和技巧来解决各种问题。本篇博客将深入探讨JavaScript中的一些特殊语法,这些语法可能不是常规的JavaScript编程知识,但它们对于理解语言的强大之处以及在某些情况下解决问…...

PCL点云处理之配准中的匹配对连线可视化显示 Correspondences(二百一十九)
PCL点云处理之配准中的匹配对连线可视化显示 Correspondences(二百一十九) 一、算法介绍二、算法实现1.可视化代码2.完整代码(特征匹配+可视化)最终效果一、算法介绍 关于点云配准中的匹配对,如果能够可视化将极大提高实验的准确性,还好PCL提供了这样的可视化工具,做法…...
Vue el-table全表搜索,模糊匹配-前端静态查询
后端返回的数据是全部的数据,没有分页,前端需要做的是分页全表模糊查询 代码: //根据关键字对表全局搜索 globalSearch() {//为了拿到对象的列名let filterList Object.keys(this.tableData[0]);if (this.searchWord) {this.tableFilterDat…...

基于html5开发的Win12网页版,抢先体验
据 MSPoweruser 报道,Windows 11虽然刚刚开始步入正轨,但最新爆料称微软已经在开启下一个计划,Windows 12 的开发将在 去年3 月份开始。德国科技网站 Deskmodder.de 称,根据内部消息,微软将在 2022年3 月开始开发 Wind…...

Studio One6.5中文版本下载安装步骤
在唱歌效果调试当中,我们经常给客户安装的几款音频工作站。第一,Studio One 6是PreSonus公司开发的一款功能强大的音频工作平台,具有丰富的音频处理功能和灵活的工作流程。以下是Studio One6的一些主要特点: 1.多轨录音和编辑&…...

Java架构师缓存架构设计解决方案
目录 1 缓存常见的三大问题1.1 缓存雪崩1.2 缓存穿透1.3 缓存击穿2 缓存key的生成策略3 热点数据集中失效的问题4 如何提高缓存的命中率5 缓存和数据库双写不一致的问题6 如何对缓存数据进行分片想学习架构师构建流程请跳转:Java架构师系统架构设计 1 缓存常见的三大问题 缓…...
【玩转Redhat Linux 8.0系列 | 实验—使用Bash shell执行命令】
今天继续分享一些Redhat Linux 8.0的知识,记得关注,会一直更新~ 访问命令行 任务执行清单 在本实验中,您将使用Bash shell来执行命令。 成果 使用Bash shell命令行成功运行简单的程序。 执行用于识别文件类型并显示文本文件部分内容的命…...

Linux系统编程详解
Linux 多线程编程 什么是线程? 与线程类似,线程是允许应用程序并发执行多个任务的一种机制 线程是轻量级的进程(LWP:Light Weight Process),在 Linux 环境下线程的本 质仍是进程。 一个进程可以包含多个线…...

测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...

使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器
拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件: 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...
LangFlow技术架构分析
🔧 LangFlow 的可视化技术栈 前端节点编辑器 底层框架:基于 (一个现代化的 React 节点绘图库) 功能: 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...

tauri项目,如何在rust端读取电脑环境变量
如果想在前端通过调用来获取环境变量的值,可以通过标准的依赖: std::env::var(name).ok() 想在前端通过调用来获取,可以写一个command函数: #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...
HTML前端开发:JavaScript 获取元素方法详解
作为前端开发者,高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法,分为两大系列: 一、getElementBy... 系列 传统方法,直接通过 DOM 接口访问,返回动态集合(元素变化会实时更新)。…...
用鸿蒙HarmonyOS5实现中国象棋小游戏的过程
下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...
文件上传漏洞防御全攻略
要全面防范文件上传漏洞,需构建多层防御体系,结合技术验证、存储隔离与权限控制: 🔒 一、基础防护层 前端校验(仅辅助) 通过JavaScript限制文件后缀名(白名单)和大小,提…...