自动泊车的自动驾驶控制算法

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.结语

本文结合主流的自动泊车硬件平台,对自动泊车控制系统进行了设计。基于车辆配置确定控制算法接口,结合车辆实际泊车过程确定控制算法流程,环境感知模块利用超声波雷达和摄像头传感器进行车位扫描,路径规划模块主要采用圆弧-圆弧方式进行局部路径规划,控制决策模块根据规划路径进行跟踪和执行器控制。整个控制算法设计合理有效,为自动驾驶研究奠定了一定的基础。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学生管理系统VueAjax版本

学生管理系统VueAjax版本 使用Vue和Ajax对原有学生管理系统进行优化 1.准备工作 创建AjaxResult类,对Ajax回传的信息封装在对象中 package com.grg.Result;/*** Author Grg* Date 2023/8/30 8:51* PackageName:com.grg.Result* ClassName: AjaxResult* Descript…

快速制作餐厅签到抽奖营销活动,吸引更多顾客

在如今竞争激烈的市场中,吸引用户参与活动是企业获取关注和提升转化率的重要手段。而签到抽奖活动无疑是一种简单而又有效的方式。本文将教你如何利用乔拓云平台后台制作一个快速而有效的签到抽奖活动。 首先,登录乔拓云平台后台,进入【营销活…

浅谈红队资产信息收集经验

文章目录 子公司资产收集备案号|官网收集子域名|ip收集fofa灯塔ARLX情报社区 资产确认目录扫描Google Hacking绕过CDNnmap端口扫描参数技巧其他常用工具 子公司资产收集 红蓝对抗中往往只会给你目标企业的名称,以及对应的靶标系统地址,而很少有直接从靶标…

Docker常见配置实验

1、使用mysql:5.6和 owncloud 镜像,构建一个个人网盘。 1、拉取mysql5.6与owncloud的镜像 docker pull mysql:5.6 docker pull mysql:5.6 2、生成容器实例,构建个人网盘 docker run -d --name mydb1 --env MYSQL_ROOT_PASSWORD123456 mysql:5.6 docker …

理论转换实践之keepalived+nginx实现HA

背景: keepalivednginx实现ha是网站和应用服务器常用的方法,之前项目中单独用nginx实现过负载均衡和服务转发,keepalived一直停留在理论节点,加之最近工作编写的一个技术文档用到keepalived,于是便有了下文。 服务组件…

Mysql的page,索引,Explain Type等基本常识

Mysql的基本问题 Mysql 为什么建议使用自增id? 因为id(主键)是自增的话,那么在有序的保存用户数据到页中的时候,可以天然的保存,并且是在聚集索引(id)中的叶子节点可以很好的减少插…

Docker安装及Docker构建简易版Hadoop生态

一、首先在VM创建一个新的虚拟机将Docker安装好 更新系统:首先打开终端,更新系统包列表。 sudo apt-get update sudo apt-get upgrade下图是更新系统包截图 安装Docker:使用以下命令在Linux上安装Docker。 sudo apt-get install -y docker.i…

黑马点评环境搭建导入

一开始配置maven的时候,发现怎么都无法查看maven的版本,后来才知道是JAVA_HOME的问题,开头多了一个空格(因为我是直接复制过去的),然后搜网上通过命令行可以看到肉眼看不到的bug。 通过命令行的方式改正确后…

YARN资源管理框架论述

一、简介 为了实现一个Hadoop集群的集群共享、可伸缩性和可靠性,并消除早期MapReduce框架中的JobTracker性能瓶颈,开源社区引入了统一的资源管理框架YARN。 YARN是将JobTracker的两个主要功能(资源管理和作业调度/监控)分离&…

el-select 选择一条数据后,把其余数据带过来

1. 案例&#xff1a; ps: 票号是下拉框选择&#xff0c;风险分类、场站名称以及开始时间是选择【票号】后带过来的。 2. 思路: 使用官网上给的方法&#xff0c;选择之后&#xff0c;触发change方法从而给其余字段赋值 3. 代码 <el-form-itemlabel"票号&#xff1a;&…

__call__函数

一、定义 在Python中&#xff0c;__call__函数是一个特殊的方法&#xff0c;用于使一个对象可以像函数一样被调用。当一个对象定义了__call__方法时&#xff0c;它就成为了一个可调用对象。 二、使用 class Counter:def __init__(self):self.count 0def __call__(self):sel…

【LeetCode-面试经典150题-day18】

目录 17.电话号码的字母组合 77.组合 46.全排列 52.N皇后Ⅱ 17.电话号码的字母组合 题意&#xff1a; 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xf…