自动驾驶汽车横向控制方法研究综述

【摘要】 为实现精确、稳定的横向控制,提高车辆自主行驶的安全性和保障乘坐舒适性,综述了近年来自动驾驶汽车横向控制方法的最新进展,包括经典控制方法和基于深度学习的方法,讨论了各类方法的性能特点及在应用中的优缺点,并针对自动驾驶汽车横向控制方法的发展趋势进行了展望。
关键词:自动驾驶汽车 横向控制 经典控制方法 深度学习 多传感器融合

1 前言

随着计算能力的提高和传感器技术的发展,自动驾驶汽车在实现高精度定位、环境感知和智能决策方面取得了显著进展。然而,为了实现完全自动驾驶,汽车需要在复杂的道路环境和多样化的驾驶任务中表现出高度的自主性和适应性。自动驾驶横向控制作为自动驾驶系统的关键部分,具有提高
驾驶安全性、减轻驾驶员疲劳、提高乘坐舒适性等功能,有助于提高道路通行效率、降低交通事故风险,并在自动泊车、车队协同等方面发挥重要作用。为实现车道保持、车道变更和紧急避障等功
能,横向控制需要克服复杂道路环境、不确定性工况和噪声等挑战。近年来,针对横向控制的研究受到越来越多的关注,在前人的工作基础上,本文对自动驾驶汽车横向控制方法的最新进展进行综述,包括经典控制方法和基于深度学习的方法,并讨论相关方法的优缺点和未来发展趋势。

2 自动驾驶横向控制方法的发展历史

自动驾驶横向控制方法的研究始于 20 世纪 80年代。在早期阶段,研究者主要关注传统的控制方法,如比例- 积分 - 微分( PID )控制 和模糊控制 。这些方法在自动驾驶横向控制中取得了一定的成果,奠定了自动驾驶控制系统的基础 进入 21世纪,随着计算能力的提高和传感器术的发展,自动驾驶横向控制方法开始涉及更复杂的算法。预瞄控制 、滑模控制 和神经网络控制 等方法逐渐成为研究热点。
预瞄控制( Preview Control )常用于自动驾驶系统,其基本思想是通过预测车辆的未来轨迹,确定当前时刻的控制指令。它利用车辆模型和环境信息,通过计算车辆在未来一段时间内的轨迹,来规
划和生成控制指令。这种控制方法可以考虑到车辆动力学和运动约束,提供较好的轨迹跟踪性能。近年来,深度学习[6] 、强化学习 [7] 和模型预测控制(Model Predictive Control MPC [8] 等先进的控制方法在自动驾驶横向控制领域取得了显著进展。这些方法通过大量数据和复杂的算法来实现高度自适应和智能化的横向控制。尤其是深度学习和强化学习方法,可以从大量的驾驶数据中学习控制策略,提高控制性能和泛化能力。与此同时,MPC 在处理系统的不确定性和约束方面具有优势,为自动驾驶横向控制任务提供了更精确的实时解决方案。
随着驾驶场景的多样化发展和交通场景控制难度的提高,研究人员逐渐意识到单一的控制策略很难满足各种驾驶场景的需求。因此,混合控制方法[9] 应运而生。这些方法通常将不同类型的控制算法相结合,以充分发挥各自的优势,如:将模糊控制与神经网络控制相结合,可以提高系统的鲁棒性和自适应性;将深度学习与 MPC 相结合 ,可以实现更精确的实时横向控制;将纯跟踪(Pure Pursuit )算法与斯坦利(Stanley )算法相结合,可大幅提升跟踪平滑性。

3 经典控制方法

经典控制方法在自动驾驶汽车横向控制领域广泛应用。这些方法具有简单、易于实现的优点,但在复杂场景中可能表现出较低的适应性。

3.1 PID控制器

如图 1 所示的 PID 控制器是一种常见的经典控制方法,其中,r 为参考输入或期望值, e 为误差信号,K p 为比例增益, T ds 为导数时间常数, T is 为积分时间常数。该控制器的输出控制信号是误差项的比例、积分和微分 3 个部分加权结果的加和。在自动驾驶汽车横向控制中,PID 控制器可以根据车辆与期望轨迹间的偏差来调整转向盘转角。PID 控制器的主要优点是简单、易于实现,但其性能会受到系统参数变化、非线性和不确定性的影响
针对 PID 控制存在的问题,研究人员提出了多种改进方法,最常见的改进方法为模糊 PID 控制 [14]和自适应 PID 控制 [15] 。其中模糊 PID 控制结合了模糊逻辑控制与传统 PID 控制的优点,能够有效解决非线性和时变问题。模糊PID 控制通过模糊逻辑对PID 参数进行在线调整,以适应系统的动态变化。其不足之处是需要设计合适的模糊控制规则,且计算复杂度较高,可能导致系统响应速度降低。自适应 PID 控制是一种在线调整 PID 参数的方法,它通过实时监测系统的误差和性能来自动调整控制参数,使系统在不同工况下保持良好的控制性能。其不足之处为算法实现相对复杂,可能导致计算负担加重,以及自适应调整可能引入不稳定性,需要仔细设计以确保系统稳定性。

3.2 模糊逻辑控制器

如图 2 所示,模糊逻辑控制器是一种基于模糊集合论和模糊推理的控制方法,可以处理不确定性和模糊性问题。模糊逻辑控制器通过将输入变量(如车辆与期望轨迹的偏差和车速)映射到输出变量(如转向盘转角)来生成控制信号[16] 。模糊逻辑控制器的优点是对系统参数变化和非线性具有较好的鲁棒性,但其性能可能受到规则库设计和推理机制的影响
针对模糊控制存在的问题,研究人员提出了多种改进方法。其中最常见的方法为模糊神经网络控制[18] 和模型预测控制 [19-20] 。其中,模糊神经网络控制结合了模糊控制和神经网络的优点,能够更好地应对非线性和时变问题。模糊神经网络控制通过训练神经网络来自动调整模糊控制规则和参数,以适应系统的动态变化。其缺点为计算复杂度较高,可能导致系统响应速度降低,且需要大量的训练 据和合适的训练方法以实现有效控制。 MPC 是种基于优化的控制策略,它利用系统模型预测未来一段时间内的系统行为,并根据预测结果计算最优控制输入。MPC 可以处理多输入多输出问题,同时考虑系统约束和非线性特性。其缺点是计算复杂度较高,对实时性要求较高的系统可能存在响应速度问题,同时,需要准确的系统模型。

3.3 遗传控制算法

遗传算法( Genetic Algorithm GA )是一种启发式搜索和优化算法,它模拟了自然界中的生物进化过程,可用于自动驾驶横向控制中的参数优化或策略优化,以实现更好的控制结果。
遗传算法可对控制器参数进行优化,通过对不同参数组合的个体进行遗传操作(如选择、交叉和变异),逐代搜索出最优参数组合。除控制器参数外,遗传算法还可用于优化控制策略。例如,在特定的驾驶场景下,可以通过遗传算法搜索最佳的路径规划策略或车道保持策略,以实现更安全和高效的横向控制。
如图 3 所示,遗传算法的基本步骤包括:
a. 初始化种群。随机生成一组初始个体,代表参数或策略的不同组合。
b. 适应度评估。对每个个体应用横向控制算法,并评估其性能,通常使用目标函数或评估指标来度量控制结果的优劣。
c. 选择操作。根据适应度评估结果,选择较优秀的个体作为下一代的父代。
d. 交叉操作。对选定的父代个体进行交叉操作,生成子代个体,将父代的某些特征组合起来。
e. 变异操作。对子代个体进行变异操作,引入随机性,增加种群的多样性。
f. 重复步骤 b~ 步骤 e ,直到满足终止准则,如达到最大迭代次数或达到期望的优化目标。

通过迭代进化的过程,遗传算法能够搜索出较优的控制参数或策略,其优点包括:全局搜索能力强,利用种群的多样性和全局搜索能力,可以在复杂的搜索空间中找到全局最优解;并行性,可以轻松应用并行计算,加速搜索过程;适应性强,适用于不规则、非线性和高度动态的问题;对于大规模问题有效,相对于一些传统优化算法,在处理大规模问题时表现较好。
遗传算法的缺点在于,收敛速度相对较慢、参数选择敏感、不能保证全局最优解,以及对于某些问题,特别是具有明显结构的问题的有效性不如其他优化方法。
针对多目标优化问题,研究者提出了许多改进的多目标遗传算法,如多目标粒子群算法等,也有研究人员尝试将遗传算法与其他优化算法相结合,形成混合算法,以提高性能。针对参数选择敏感的问题,自适应遗传算法的研究受到了关注,可通过动态调整参数来提高算法性能。同时,随着算力的提升,研究者对并行遗传算法的研究也在不断深入。

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

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

相关文章

使用transformers调用owlv2实现开放目标检测

目录 安装Demo 安装 pip install transformersDemo from PIL import Image, ImageDraw, ImageFont import numpy as np import torch from transformers import AutoProcessor, Owlv2ForObjectDetection from transformers.utils.constants import OPENAI_CLIP_MEAN, OPENAI_…

PTA L1-079 天梯赛的善良

L1-079 天梯赛的善良(20分) 天梯赛是个善良的比赛。善良的命题组希望将题目难度控制在一个范围内,使得每个参赛的学生都有能做出来的题目,并且最厉害的学生也要非常努力才有可能得到高分。 于是命题组首先将编程能力划分成了 10…

Python日常搜索_random

random.random() 返回随机生成的一个实数&#xff0c;它在[0,1)范围内random.uniform random.uniform(a, b)&#xff0c;用于生成一个指定范围内的随机符点数&#xff0c;两个参数其中一个是上限&#xff0c;一个是下限。如果a > b&#xff0c;则生成的随机数n: b < n &l…

现实的谷歌SEO服务商是怎样的?

许多客户在咨询SEO服务时&#xff0c;常常会问到如何在短时间内将某个关键词推上谷歌首页&#xff0c;甚至是第一名。对于这种问题&#xff0c;专业的SEO服务商通常无言以对。SEO的基础是网站本身&#xff0c;而并非凭空捏造或者一夜之间就能实现效果的 SEO需要从网站的基本情况…

CNES实时轨道、钟差,硬件延迟精度评估

CNES实时产品评估以COD事后产品作为参考&#xff0c;采用cnt文件产品&#xff0c;目前最精确的轨道是GPS&#xff0c;但由于伽利略最稳定的原子钟弥补了伽利略轨道上的系统误差&#xff0c;Galileo的轨道钟差SISRE低于GPS,Galileo和GPS的SISRE分别为1.6cm和2.3cm&#xff0c;GL…

【HTML5】html5开篇基础(2)

1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; Hello, Hello~ 亲爱的朋友们&#x1f44b;&#x1f44b;&#xff0c;这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章&#xff0c;请别吝啬你的点赞❤️❤️和收藏&#x1f4d6;&#x1f4d6;。如果你对我的…

《深度学习》OpenCV 指纹验证、识别

目录 一、指纹验证 1、什么是指纹验证 2、步骤 1&#xff09;图像采集 2&#xff09;图像预处理 3&#xff09;特征提取 4&#xff09;特征匹配 5&#xff09;相似度比较 6&#xff09;结果输出 二、案例实现 1、完整代码 2、实现结果 调试模式&#xff1a; 三、…

基于Hadoop的微博舆情监测分析系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

Python并发之道:解锁`concurrent.futures`模块的秘密

引言 concurrent.futures模块是Python标准库的一部分&#xff0c;它提供了高层次的接口来执行异步操作。与传统的多线程或多进程编程相比&#xff0c;使用concurrent.futures可以更加简单、高效地管理并行任务。无论是对于初学者还是有经验的开发者来说&#xff0c;掌握这个模…

传统操作系统和分布式操作系统的区别

分布式操作系统和传统操作系统之间的区别&#xff0c;根植于它们各自的设计哲学和目标。要理解这些差异&#xff0c;需要从操作系统的基本定义、结构、功能以及它们在不同计算环境中的表现进行分析。每种系统都试图解决特定的计算挑战&#xff0c;因此在不同的使用场景下具有各…

C++的6种构造函数

在 C 中&#xff0c;构造函数是一种特殊的成员函数&#xff0c;用于初始化类对象。在对象创建时自动调用&#xff0c;构造函数的主要作用是分配资源、初始化数据成员等。根据不同的功能和使用场景&#xff0c;C 提供了多种类型的构造函数&#xff1a; 1. 默认构造函数 (Defaul…

【MySQL】视图、用户和权限管理

目录 视图创建视图数据修改影响删除视图视图优点 用户和权限管理查看当前的数据库拥有用户信息创建用户修改密码删除用户权限授权回收权限 视图 视图就是相当于创建一个表&#xff0c;将查询到的结果集给存储起来。像使用复杂的多表查询查询到的结果集就不可以对结果集操作。而…

揭秘网络钓鱼:如何识破并防范这场数字时代的诈骗游戏

网络钓鱼是一种网络攻击&#xff0c;它利用伪装的电子邮件欺骗收件人提供信息、下载恶意软件或采取其他期望的行动。 网络钓鱼是网络害虫&#xff0c;自20世纪90年代初从暗网出现以来&#xff0c;至今仍危害全球。根据SlashNext的报告&#xff0c;2023年平均每天有31,000次网络…

SpringCloud 2023 LoadBalancer介绍、使用、获取服务列表原理、负载均衡算法

目录 1. 介绍2. 使用3 获取服务列表原理4. 负载均衡算法 1. 介绍 功能: 提供客户端的负载均衡算法&#xff0c;将请求均摊到多个服务器上。属于客户端负载均衡(Nginx属于服务端负载均衡)&#xff0c;会将服务列表缓存到JVM本地&#xff0c;然后客户端自己选择请求服务器支持S…

头戴式耳机性价比排名怎样?头戴式耳机性价比之王推荐!

在音频设备日益普及的今天&#xff0c;头戴式耳机因其出色的音质和舒适的佩戴体验&#xff0c;成为了许多音乐爱好者和游戏玩家的首选。然而&#xff0c;很多人比较关心的是头戴式耳机性价比排名怎样&#xff1f;依据这一排名来进行选购&#xff0c;今天就给大家带来头戴式耳机…

使用TiDB企业版Lightning导入ORC文件到TiDB

作者&#xff1a; 数据源的TiDB学习之路 原文来源&#xff1a; https://tidb.net/blog/818f84f0 TiDB Lightning 是用于从静态文件导入 TB 级数据到 TiDB 集群的工具&#xff0c;常用于 TiDB 集群的初始化数据导入。在开源社区版本中&#xff0c;TiDB Lightning 支持以下文件…

python并发编程实战

python并发编程有三种 多线程Thread多进程Process多协程Coroutine cpu密集型计算 cpu密集型也叫计算密集型&#xff0c;是指I/O在很短的时间就可以完成&#xff0c;cpu需要大量的计算处理&#xff0c;特点是cpu占用率相当高 例如&#xff1a;压缩解压缩、加密解密、正则表达…

你知道吗?这四种关机重启情况,有更好解决办法

一、太长不看&#xff1a; 给4G模组VBAT断电关机&#xff0c;模组关机前未能及时退出当前基站&#xff0c;会有什么影响呢&#xff1f; 基站会误以为设备还在线&#xff0c;下次开机仍会拿着上次驻网信息去连基站。基站一看&#xff0c;上次链接还在——认为你是非法设备&…

天线工作原理:【图文讲解】

在信息传输过程中&#xff0c;我们习惯了PCB线路&#xff0c;线揽等&#xff0c;这些有线连接传输方式&#xff0c;而天线这个无线的传输方式相对不是那么好理解。但它确实在实际应用中&#xff0c;占据了很重要的位置。你有多久没有用有线电话了&#xff1f;&#xff08;20年前…

gateway--网关

在微服务架构中&#xff0c;Gateway&#xff08;网关&#xff09;是一个至关重要的组件&#xff0c;它扮演着多种关键角色&#xff0c;包括路由、负载均衡、安全控制、监控和日志记录等。 Gateway网关的作用 统一访问入口&#xff1a; Gateway作为微服务的统一入口&#xff0c…