0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一种在封闭环路中自动驾驶汽车的方法

MATLAB 来源:MATLAB 作者:MATLAB 2021-05-18 14:54 次阅读

今天要给大家分享的是如何在 3D 环境中仿真自动驾驶汽车。原文是一篇在德国大学生方程式大赛网站上的博客文章:https://www.formulastudent.de/pr/news/details/article/driving-an-autonomous-vehicle-in-a-3d-simulation-environment-with-recorded-synthetic-data/。
在本文中,我们将演示一种在封闭环路中自动驾驶汽车的方法。我们的任务是在未知的环境中驾驶汽车,避免与锥桶碰撞,确保完成必要的圈数。

场景创建

第一步是创建一个由车辆,赛道和锥桶组成的3D仿真环境。Vehicle Dynamics Blockset(https://ww2.mathworks.cn/products/vehicle-dynamics.html) 工具箱带有预建的 3D 场景,以仿真和可视化Simulink中建模的车辆。这些 3D 场景是使用 Epic Games 的虚幻引擎可视化的。 由于当前问题需要自定义场景,因此我们使用了虚幻编辑器和用于虚幻4引擎工程的 Vehicle Dynamics Blockset 支持包来构建场景。 要了解如何自定义场景(图2),请按照文档中说明的步骤进行操作。当然,您也可以使用 RoadRunner 设计 3D 场景以进行自动驾驶的仿真。

图1. 虚幻编辑器中的自定义场景

40c1aed8-b4f2-11eb-bf61-12bb97331649.png

图2. 创建自定义场景的步骤

第一圈:环境建图

40d002d0-b4f2-11eb-bf61-12bb97331649.png

图3.用于环境建图的 Simulink 模型

下一个任务是环境建图。如上一节所述,无人驾驶车辆处于未知环境中,该环境由放置在赛道两侧的锥桶组成。为了检测锥桶并为第一圈生成参考路径,我们建立了 Simulink 模型,如图3所示。图4显示了该模型在第一圈中执行的步骤:

40d8f1b0-b4f2-11eb-bf61-12bb97331649.png

图4. 环境建图的框图表达

· 激光雷达安装:激光雷达的目的是测量车辆到锥桶的距离。在 3D 仿真环境中,Simulation 3D Lidar(https://ww2.mathworks.cn/help/driving/ref/simulation3dlidar.html)模块提供了激光雷达传感器。使用 Epic Games 的虚幻引擎渲染环境, 该模块返回具有指定视场和角分辨率的点云。· 锥桶检测(图6):锥桶检测算法的目标是对属于一个锥桶的所有点进行聚类,并确定锥桶的位置。这是通过计算点云中相邻点之间的距离来完成的。属于同一个锥桶的点彼此靠近,而锥桶彼此相距相对较远。聚类后,锥桶的中点是锥桶中所有点的位置的平均值。

40e34408-b4f2-11eb-bf61-12bb97331649.png

图5.激光雷达处理和控制

40ee0596-b4f2-11eb-bf61-12bb97331649.png

图6. 显示在点云中检测到的锥桶

· 驾驶控制:驾驶控制器算法基于理解锥桶在激光雷达点云中的位置。该算法有两个目标:

确定车辆前方的两个最重要的锥桶

避免撞到任何锥桶

这是通过找到两个最接近的锥桶并计算两个锥桶的中点来完成的。该算法生成加速,转向指令通往该中点。该算法还将车辆的最大速度限制为一个预设值。· 车辆动力学(图7):车辆动力学模型由车身,简化的动力总成,传动系统,纵向车轮和转向运动学组成。该模型的目的是根据转向,加速和减速命令来计算车辆的位置和方向。Simulation 3D Vehicle with Ground Following(https://ww2.mathworks.cn/help/vdynblks/ref/simulation3dvehiclewithgroundfollowing.html)和 Simulation 3D Scene Configuration(https://ww2.mathworks.cn/help/vdynblks/ref/simulation3dsceneconfiguration.html)用于在虚幻引擎中设置 3D 仿真环境。

40f5d780-b4f2-11eb-bf61-12bb97331649.png

图7.车辆模型·输出:运行仿真后,激光雷达成功检测到锥桶。此外,车辆绘制环境图并生成参考轨迹。车辆以最大 8m/s 的速度缓慢行驶。

第二圈:跟随参考轨迹

在第二圈中,车辆跟随从第一圈仿真中获得的参考路径。图8 显示了 Simulink 模型。与上一个模型相比,在此模型中,我们删除了激光雷达模块,并增加了纵向和横向控制器。

4122d14a-b4f2-11eb-bf61-12bb97331649.png

图8. 用于跟随参考轨迹的 Simulink 模型

现在,这是一个经典的闭环控制系统问题,控制器的任务是输出所需的转向命令,加速命令和减速命令,以更高的速度跟随参考路径。

412d1efc-b4f2-11eb-bf61-12bb97331649.png

图9. 第二圈的闭环控制框图

·横向控制器:Pure pursuit 控制器用于车辆的横向控制。为了在 Simulink 中实现控制器,我们使用了 Pure Pursuit 模块来瞄准目标方向。此外,使用车轮转角公式将目标方向转换为所需的转向角。要了解有关使用 Pure pursuit 控制器的车辆路径跟随的更多信息,请参考:https://ww2.mathworks.cn/help/robotics/ref/purepursuit.html。

41385bfa-b4f2-11eb-bf61-12bb97331649.png

图10. Pure pursuit 控制器

·纵向驾驶员模块用于调节车辆的速度(https://ww2.mathworks.cn/help/vdynblks/ref/longitudinaldriver.htmlhttps:/www.mathworks.com/help/vdynblks/ref/longitudinaldriver.html)。具体来说,它是一个 PI 控制器,可为参考速度生成执行信号

4169f6ec-b4f2-11eb-bf61-12bb97331649.png

图11. 纵向驾驶员

请注意,目前,我们通过使用查表来定义不同区域的速度,从而简化了速度曲线的创建过程。但是,更推荐使用 Velocity Profiler(https://ww2.mathworks.cn/help/driving/ref/velocityprofiler.html)来自动化速度曲线生成过程。·结果:图12 显示了仿真轨迹和参考轨迹的比较。从结果可以明显看出,横向控制器成功跟随了参考路径。除了横向控制外,纵向驾驶员还可以调节所需的速度。

41969314-b4f2-11eb-bf61-12bb97331649.png

图12. 第二圈获得的车辆轨迹

总结

这篇文章展示了 MathWorks 工具如何在存在障碍物的情况下用于在封闭赛道上自主驾驶车辆。您可以扩展此方法,并利用文档中提供的示例来设计和仿真自动驾驶汽车:https://ww2.mathworks.cn/help/driving/examples.html。 随着汽车行业的进步和发展,各种学生竞赛中也开始引入了无人驾驶类别,中国大学生方程式无人车(FSAC)竞赛就是其中之一。该类比赛的目的是让同学们利用不同学科知识设计和制造可以自动行驶的汽车。使用 MATLAB 和 Simulink,您可以设计自动驾驶系统功能,包括传感,路径规划,传感器融合和控制系统。

责任编辑:lq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 3D
    3D
    +关注

    关注

    9

    文章

    2750

    浏览量

    106416
  • 编辑器
    +关注

    关注

    1

    文章

    787

    浏览量

    30115
  • 自动驾驶
    +关注

    关注

    773

    文章

    12978

    浏览量

    163094

原文标题:如何在 3D 环境中仿真自动驾驶汽车

文章出处:【微信号:MATLAB,微信公众号:MATLAB】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    未来已来,多传感器融合感知是自动驾驶破局的关键

    的Robotaxi运营。这标志着L4级自动驾驶迎来了新的里程碑,朝着商业化落地迈进了大步。中国的车企也不甘落后:4月7日,广汽埃安与滴滴自动驾驶宣布合资公司——广州安滴科技有限公司获批工商执照。广汽埃安
    发表于 04-11 10:26

    Waymo自愿召回444辆自动驾驶汽车 L4的自动驾驶还有很多路要走

    近日,谷歌旗下的自动驾驶部门Waymo自愿召回了444辆自动驾驶汽车,原因是其软件可能无法准确预测拖曳车辆的运动轨迹
    的头像 发表于 02-26 10:22 674次阅读
    Waymo自愿召回444辆<b class='flag-5'>自动驾驶</b><b class='flag-5'>汽车</b> L4的<b class='flag-5'>自动驾驶</b>还有很多路要走

    LabVIEW开发自动驾驶的双目测距系统

    挑战,包括激光雷达、单目测距和双目视觉技术等。在当前的高级辅助驾驶技术(ADAS),双目视觉技术距离检测方面表现出色,它可以精确地测量物体的距离,提供更客观的数据。 为了应对这
    发表于 12-19 18:02

    自动驾驶标准与认证研究:标准化体系助力高阶自动驾驶落地和汽车出海

    自动驾驶标准的建设具有前瞻性和约束性,对国家自动驾驶汽车发展具有深远的意义,目前自动驾驶标准主要围绕L3级及以上自动驾驶展开。在
    的头像 发表于 09-27 16:15 709次阅读
    <b class='flag-5'>自动驾驶</b>标准与认证研究:标准化体系助力高阶<b class='flag-5'>自动驾驶</b>落地和<b class='flag-5'>汽车</b>出海

    【KV260视觉入门套件试用体验】八、VITis AI自动驾驶多任务执行MultiTask V3

    一种模型,旨在同时执行自动驾驶场景的不同任务,同时实现优异的性能和效率。这些任务包括对象检测、分割、车道检测、可行驶区域分割和深度估算,这些都是自动驾驶感知模块的重要组成部分。
    发表于 09-26 16:43

    汽车自动驾驶现状及挑战

    可以授权部分控制权给系统管理,某些功能可以自动进行。L2:半自动驾驶。人类驾驶员和汽车来分享控制权,驾驶员在某些预设环境下可以不操作
    的头像 发表于 08-19 08:30 488次阅读
    <b class='flag-5'>汽车</b><b class='flag-5'>自动驾驶</b>现状及挑战

    MPS自动驾驶产品满足日益复杂的自动驾驶系统需求

    了发展快车道。   自动驾驶 定义 自动驾驶汽车(Autonomous Vehicle),是指一种通过传感器和运算单元实现无人驾驶的智能
    的头像 发表于 08-18 17:25 523次阅读
    MPS<b class='flag-5'>自动驾驶</b>产品满足日益复杂的<b class='flag-5'>自动驾驶</b>系统需求

    新能源汽车自动驾驶的六个级别

    新能源汽车自动驾驶是指搭载自动驾驶技术的电动汽车。随着人工智能和传感器技术的进步,越来越多的新能源汽车制造商积极开发和推出
    的头像 发表于 06-28 17:04 1476次阅读

    自动驾驶测试场景技术发展与应用

    测试方法主要分为 基于场景的测试方法 和 基于里程的测试方法 从统计学角度出发,要验证自动驾驶汽车 比人类
    发表于 06-06 14:53 5次下载
    <b class='flag-5'>自动驾驶</b>测试场景技术发展与应用

    自动驾驶汽车如何工作 有什么好处

    如今,自动驾驶汽车已成为一个热门话题,理由很充分:无人驾驶汽车可能会带来自工业革命以来最大的社会革命,而且似乎 每个人都在参与其中。 从有关 Apple
    发表于 06-06 14:18 0次下载
    <b class='flag-5'>自动驾驶</b><b class='flag-5'>汽车</b>如何工作 有什么好处

    案例研究:什么是自动驾驶

    自动驾驶,是一个根植于人类内心深处的梦想。随着科技的发展,近年来,自动驾驶已逐步成为现实。纵使如此,它仍然面临不小的挑战。本文结合案例对自动驾驶展开了梳理分析,一起来看看~ 摘要: 手动驾驶
    发表于 06-06 11:46 1次下载
    案例研究:什么是<b class='flag-5'>自动驾驶</b>

    自动驾驶汽车纵向和横向控制设计

    本项目是多伦多大学在Coursera上提供的自动驾驶汽车入门课程的最终项目作业。“controller2d.py”文件包含一个控制器对象。我在 update_controls 方法中实现了控制器。[视频]
    发表于 06-02 15:22 0次下载
    <b class='flag-5'>自动驾驶</b><b class='flag-5'>汽车</b>纵向和横向控制设计

    自动驾驶技术概述

    自动驾驶汽车,通过技术实现车辆自动驾驶,目的是减少驾驶疲劳、增强驾驶安全。 自动驾驶
    发表于 06-01 14:50 1次下载
    <b class='flag-5'>自动驾驶</b>技术概述

    汽车自动驾驶等级

    汽车工程师协会)制定的划分方法,按照分级标准,自动驾驶从L0至L5总共被分为 6个级别,L0代表没有自动驾驶的传统人类驾驶,L1至L5则随
    发表于 06-01 14:32 0次下载
    <b class='flag-5'>汽车</b><b class='flag-5'>自动驾驶</b>等级