自动泊车的自动驾驶控制算法
1. 自动泊车系统
自动泊车系统(AutomatedParkingASSiSt,APA)利用车辆搭载的传感器感知车辆周边环境,扫描满足当前车辆停放的障碍物空间车位或线车位,并通过人机交互(HumanMachine Interface,HMI)获取驾驶员对目标车位的选择或自动确定目标车位,自动规划泊车路径,通过控制器向车辆执行机构发送横向及纵向运动控制指令,最终实现车辆安全、准确、高效地泊入目标车位,如图1所示。
为实现上述自动泊车功能,一般将APA系统分为车位扫描、路径规划以及决策控制三个模块,对各模块功能描述如下:
(1)车位扫描模块:利用车辆配置的传感器对障碍物边界(车、路沿等)形成的障碍物边界车位和有车位线标记的线车位进行识别和扫描,输出车位地图信息和车辆定位信息。同时按照车位类型对上述两类车位进行区分,又可分为平行车位、垂直车位及倾斜车位三种类型。
目前主流APA系统主要是通过配置的超声波雷达和摄像头传感器实现车位扫描,两种类型的APA系统对比如表1所示。
由表1可以看出,超声波雷达只能对障碍物边界进行测距,对车位线无法识别,而采用360°全景式摄像头弥补了线车位无法识别扫描的缺点,并且通过对图像信息的分析处理能提供更丰富的障碍物类型等信息。因此,在超声波雷达和摄像头融合的APA系统中,对线车位的识别率大幅增加,即车位检出率得到提高。另外,将3609全景式影像(AroundViewMonitor,AVM)与APA系统在人机交互方面进行融合设计,为用户在泊车过程中提供全景式视角,用户能通过全景式影像界面直接选择泊车的目标车位,包括空旷区域自选车位、APA系统扫描出多个可泊车位供自选等场景,提升了用户的体验感与参与感。
(2)路径规划模块:根据车位扫描模块输出的地图信息,结合车辆运动学模型,对车辆泊入目标车位的路径进行规划。
(3)决策控制模块:根据车位扫描模块提供的地图信息以及路径规划模块提供的路径信息对车辆进行运动控制,使车辆按照路径规划的轨迹进行跟踪,实现车辆安全准确泊入。决策控制模块需同时对车辆的横向运动和纵向运动进行控制。
2.APA硬件架构
目前市场上典型的APA硬件架构如图2所示,主要包括传感器、集成控制器、人机交互(HMI)及执行机构。
APA系统通常配置12个超声波雷达,其中包含4个长距离超声波雷达,实现对车身两侧障碍物距离的探测:8个短距离超声波雷达,实现对车前和车后障碍物距离的探测,如图3所示。
同时,APA系统与AVM系统共用4个高清鱼眼摄像头,实现车辆前后左右四处视角图像的采集以及360О全景式影像的获取,如图4所示。
3. APA泊车控制算法设计
3.1 APA算法功能需求分析
自动泊车系统APA开启后,利用配置的传感器(超声波雷达、360О环视摄像头)自动搜索周边环境中的可停车位,在驾驶员确认目标车位后,APA自动进行路径规划并通过决策控制模块对车辆横、纵向运动进行控制,包括方向盘转角、档位、车速等方面,控制车辆自动泊入目标车位。结合使用场景和功能控制过程,对APA算法的功能需求分析如下:
(1)系统适用车速较低(一般在5km/h以下)的工况。
(2)车辆能够实现包括平行车位、垂直车位以及倾斜车位三种类型车位泊车入库功能。
(3)泊车过程中APA系统能够通过对EPS、ESP、EMS、TCU、EPB、VCU的控制实现对车辆横、纵向运动的控制。
(4)驾驶员可以利用HMI对APA功能的开启和关闭进行控制。
(5)在整个泊车过程中,涉及用户操作部分由HMI明确提示,形成良好的人机交互。
3.2 APA控制系统接口确定
根据APA算法功能需求和硬件架构,确定APA控制系统输入/输出接口及信号如图5所示。
3.3 APA平行泊车控制算法设计
3.3.1 扫描车位校验模块
扫描车位校验模块主要对环境感知模块扫描识别后输出的车位进行校验。结合传感器输出的车位信息(B点坐标)和车身参数,以车辆泊入过程安全无碰撞为约束条件,实时计算当前车辆能够成功泊车入库的最短泊车空间距离(L)。将当前车辆实际可泊入车位尺寸进行比较,若满足可泊入条件,则将当前识别出的车位进行输出,否则继续寻找可泊车位。以平行泊车为例,泊车过程如图6所示。
车辆无碰撞轨迹连续最短泊车空间为:
式中:r为车辆后悬距离:Rmin为内侧轮最小转弯半径:d为车宽:By为待校验车位B点y坐标:l为车头到后轴距离。
经校验后的可泊车位信息经坐标转换传输给控制决策模块,一方面,可以用于AVM显示,利用HMI提示实现驾驶员对可泊车位的选择:另一方面,可用于路径规划,便于后续的算法处理和车辆运动控制。
3.3.2 泊车初始位置校验模块
泊车初始位置校验模块主要对扫描车位校验模块输出的车位进行二次校验。基于车辆当前位置和需要泊入车位的位置,以两圆相切理论为规划约束对当前车位是否可泊入进行校验,如图7所示。
R2圆弧通常设置为车辆最小转弯半径,以两圆相切和车辆参数为约束,计算出允许泊车的初始位置范围为(Px,Py)。将当前车辆位置与(Px,Py)进行比较,如在范围内,则说明当前车位满足可泊入条件,否则继续寻找可泊入车位。
3.3.3 泊车路径规划模块
在利用HMI接口实现最终泊车车位的选择后,车辆在控制决策系统的控制下逐渐停稳。基于两圆相切原理,泊车路径规划模块主要完成车辆当前位置即预备倒车起始位置,到泊车终点目标位置的局部路径规划,形成圆弧-圆弧组合形式的泊车路径,如图8所示。
3.3.4 轨迹跟踪控制模块
轨迹跟踪控制模块基于泊车路径规划模块输出的拟合泊车路径,生成车辆横向控制及纵向控制的目标值,即方向盘转角、档位、车位、加速度等输出信号,同时根据车辆实时反馈的状态信号进行修正控制,保证车辆实时准确地跟踪规划轨迹。
3.3.5 泊车状态控制模块
泊车状态控制模块的主要功能是进行泊车状态逻辑的控制,需要根据HMI、车辆与车位的相对位置关系、驾驶员的操作等信息动态调整和反馈。
泊车主要状态包括:
(1)0FF,泊车功能关闭:
(2)Standby,泊车功能开启准备:
(3)ParkingSpaceSearc一,寻找车位:
(4)ParkingSpacehppearA,车位有效:
(5)hStuParkinghAAiAt,辅助泊车:
(o)ParkingFiniA一,泊车完成:
(7)Fail,泊车失败。
3.3.6 HMI交互显示模块
HMI交互显示模块的功能是根据hPh的运行状态,与驾驶员进行交互,包括车位扫描结果的显示、泊入目标车位的选择等。
4.结语
本文结合主流的自动泊车硬件平台,对自动泊车控制系统进行了设计。基于车辆配置确定控制算法接口,结合车辆实际泊车过程确定控制算法流程,环境感知模块利用超声波雷达和摄像头传感器进行车位扫描,路径规划模块主要采用圆弧-圆弧方式进行局部路径规划,控制决策模块根据规划路径进行跟踪和执行器控制。整个控制算法设计合理有效,为自动驾驶研究奠定了一定的基础。
相关文章:

自动泊车的自动驾驶控制算法
1. 自动泊车系统 自动泊车系统(AutomatedParkingASSiSt,APA)利用车辆搭载的传感器感知车辆周边环境,扫描满足当前车辆停放的障碍物空间车位或线车位,并通过人机交互(HumanMachine Interface,HMI)获取驾驶员对目标车位的选择或自动确定目标车位,自动规划泊车路径,通过控制器向车…...
Java doc等文件生成PDF、多个PDF合并
之前写过一遍文章是 图片生成PDF。 今天继续来对 doc等文件进行pdf合并以及多个pdf合并为一个pdf。 兄弟们,还是开箱即用。 1、doc生成pdf 依赖 <!-- doc生成pdf --><dependency><groupId>com.aspose</groupId><artifactId>aspose…...

【C++】list类的模拟实现
🏖️作者:malloc不出对象 ⛺专栏:C的学习之路 👦个人简介:一名双非本科院校大二在读的科班编程菜鸟,努力编程只为赶上各位大佬的步伐🙈🙈 目录 前言一、list类的模拟实现1.1 list的…...

机械臂+2d相机实现复合机器人定位抓取
硬件参数 机械臂:艾利特 相机:海康相机 2d识别库:lindmod,github可以搜到 光源:磐鑫光源 软件参数 系统:windows / Linux 开发平台:Qt 开发语言:C 开发视觉库:OpenCV …...

网络编程 http 相关基础概念
文章目录 表单是什么http请求是什么http请求的结构和说明关于http方法 GET和POST区别http常见状态码http响应http 请求是无状态的含义html是什么 (前端内容,了解即可)html 常见标签 (前端内容,了解即可)关于…...
LatexEasy公式渲染教程
LatexEasy使用简单的URL渲染公式为图片 https://r.latexeasy.com/image.svg?1-sin^2(x) 使用单个HTML图像标签将公式添加到任何现有网站 <img src"https://r.latexeasy.com/image.svg?1-sin^2(x)" />...

十年测试工程师叙述自动化测试学习思路
自动化测试介绍 自动化测试(Automated Testing),是指把以人为驱动的测试行为转化为机器执行的过程。实际上自动化测试往往通过一些测试工具或框架,编写自动化测试用例,来模拟手工测试过程。比如说,在项目迭代过程中,持…...

SpringAOP详解(下)
proxyFactory代理对象创建方式和代理对象调用方法过程: springaop创建动态代理对象和代理对象调用方法过程: 一、TargetSource的使用 Lazy注解,当加在属性上时,会产生一个代理对象赋值给这个属性,产生代理对象的代码为…...
主流软件漏洞跟踪 Apache RocketMQ NameServer 远程代码执行漏洞(CVE-2023-37582)
主流软件漏洞跟踪 Apache RocketMQ NameServer 远程代码执行漏洞(CVE-2023-37582) 漏洞描述影响版本安全版本如何修复可供参考的资料主流软件漏洞跟踪 Apache RocketMQ NameServer 远程代码执行漏洞(CVE-2023-37582) CVE编号 : CVE-2023-37582 利用情况 : EXP 已公开 …...

Element table根据字段合并表格(可多字段合并),附带拖拽列动态合并
效果如图,姓名 数值1 字段进行自动合并 封装合并列js - tableMerge.js // 获取列合并的行数 // params // tableData: 表格数据 // mergeId: 合并的列的字段名 export const tagRowSpan (tableData, mergeId) >{const tagArr [];let pos 0;tableData.map((i…...

C++标准库STL容器详解
目录 C标准模板库STL容器容器分类容器通用接口 顺序容器vectorlistdeque 容器适配器queuestackpriority_queue 关联容器:红黑树setmultisetmapmultimap 关联容器:哈希表unordered_set和unordered_multisetunordered_map和unordered_multimap 附1…...
ParNew垃圾收集器(Serial+多线程)是干什么用的?
在Java中,ParNew垃圾收集器是一种垃圾收集算法,它是Serial垃圾收集器的多线程版本。它主要用于新生代(Young Generation)的垃圾收集。新生代是Java堆内存的一部分,主要用于存放新创建的对象。 ParNew垃圾收集器的设计目标是在多核CPU上并行地…...

【Android】AES解密抛出异常Cipher functions:OPENSSL_internal:WRONG_FINAL_BLOCK_LENGTH
Java使用AES加密的时候没得问题,但是在解密的时候就出错了,一起来找找原因吧。 首先,Java运行的代码如下,使用AES加解密 Cipher cipher Cipher.getInstance("AES/CBC/NOPadding"); //...主要问题 可调试运行控制台抛…...
菜鸟教程《Python 3 教程》笔记(2):数据类型转换
菜鸟教程《Python 3 教程》笔记(2) 2 数据类型转换2.1 隐式类型转换2.2 显式类型转换2.2.1 int() 函数2.2.2 repr() 函数2.2.3 frozenset ()函数 2 数据类型转换 出处:菜鸟教程 - Python3 数据类型转换 Python 数据类型转换可以分为2种&…...

JVM运行时参数查看
常用命令查找文档站点:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/index.html -XX:PrintFlagsInitial 输出所有参数的名称和默认值,默认不包括Diagnostic和Experimental的参数。可以配合 -XX:UnlockDiagnosticVMOptions和-XX:UnlockEx…...

每日一题:leetcode 1267 统计参与通信的服务器
这里有一幅服务器分布图,服务器的位置标识在 m * n 的整数矩阵网格 grid 中,1 表示单元格上有服务器,0 表示没有。 如果两台服务器位于同一行或者同一列,我们就认为它们之间可以进行通信。 请你统计并返回能够与至少一台其他服务…...

Unity打包Windows程序,概率性出现无法全屏或分辨率不匹配
排除代码和Resolution and Presentation面板设置问题 如果程序还是不能按照预期的分辨率运行,应该是系统注册表记录了对应的设置。 解决方案: 打开注册表,使用快捷键“Win” "R"组合快捷键。在打开后面键入命令:Rege…...

消息中间件 介绍
MQ简介 MQ,Message queue,消息队列,就是指保存消息的一个容器。具体的定义这里就不类似于数据库、缓存等,用来保存数据的。当然,与数据库、缓存等产品比较,也有自己一些特点,具体的特点后文会做详细的介绍。 现在常用…...
JAVA-字符串长度
给定一行长度不超过 100 的非空字符串,请你求出它的具体长度。 输入格式 输入一行,表示一个字符串。注意字符串中可能包含空格。 输出格式 输出一个整数,表示它的长度。 数据范围 1≤字符串长度≤100 字符串末尾无回车 输入样例: …...

[oneAPI] 基于BERT预训练模型的SWAG问答任务
[oneAPI] 基于BERT预训练模型的SWAG问答任务 基于Intel DevCloud for oneAPI下的Intel Optimization for PyTorch基于BERT预训练模型的SWAG问答任务数据集下载和描述数据集构建问答选择模型训练 结果参考资料 比赛:https://marketing.csdn.net/p/f3e44fbfe46c465f4d…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...

23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...

USB Over IP专用硬件的5个特点
USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...