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

    文章

    2864

    浏览量

    107337
  • 编辑器
    +关注

    关注

    1

    文章

    803

    浏览量

    31127
  • 自动驾驶
    +关注

    关注

    783

    文章

    13694

    浏览量

    166165

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

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

收藏 人收藏

    评论

    相关推荐

    自动驾驶中常提的SLAM到底是个啥?

    ?这两个问题。目前,自动驾驶技术主要依赖高精地图和RTK(实时动态定位)系统完成高精度定位。然而,这种方法的实现成本高昂,需要依赖于完善的基础设施,且动态环境适应性不足。为此
    的头像 发表于 11-21 15:17 775次阅读
    <b class='flag-5'>自动驾驶</b>中常提的SLAM到底是个啥?

    MEMS技术自动驾驶汽车的应用

    MEMS技术自动驾驶汽车的应用主要体现在传感器方面,这些传感器为自动驾驶汽车提供了关键的环境
    的头像 发表于 11-20 10:19 217次阅读

    PWM控制自动驾驶汽车的重要性

    随着科技的飞速发展,自动驾驶汽车逐渐成为现实。在这领域中,精确的控制技术是确保车辆安全、高效运行的关键。脉冲宽度调制(PWM)控制作为一种广泛应用的控制技术,
    的头像 发表于 11-19 09:05 233次阅读

    自动驾驶汽车安全吗?

    随着未来汽车变得更加互联,汽车逐渐变得更加依赖技术,并且逐渐变得更加自动化——最终实现自动驾驶,了解自动驾驶
    的头像 发表于 10-29 13:42 443次阅读
    <b class='flag-5'>自动驾驶</b><b class='flag-5'>汽车</b>安全吗?

    自动驾驶技术的典型应用 自动驾驶技术涉及到哪些技术

    自动驾驶技术的典型应用 自动驾驶技术是一种依赖计算机、无人驾驶设备以及各种传感器,实现汽车自主行驶的技术。它通过使用人工智能、视觉计算、雷达
    的头像 发表于 10-18 17:31 533次阅读

    FPGA自动驾驶领域有哪些优势?

    FPGA(Field-Programmable Gate Array,现场可编程门阵列)自动驾驶领域具有显著的优势,这些优势使得FPGA成为自动驾驶技术不可或缺的
    发表于 07-29 17:11

    FPGA自动驾驶领域有哪些应用?

    是FPGA自动驾驶领域的主要应用: 、感知算法加速 图像处理:自动驾驶需要通过摄像头获取并识别道路信息和行驶环境,这涉及到大量的图像处
    发表于 07-29 17:09

    自动驾驶汽车传感器有哪些

    自动驾驶汽车传感器是实现自动驾驶功能的关键组件,它们通过采集和处理车辆周围环境的信息,为自动驾驶系统提供必要的感知和决策依据。以下是对自动驾驶
    的头像 发表于 07-23 16:00 2106次阅读

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

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

    大众汽车和Mobileye加强自动驾驶合作

    美国智能驾驶芯片巨头Mobileye与大众汽车集团近日宣布,自动驾驶领域深化合作,共同推动全新自动驾驶功能在大众旗下量产车型的应用。Mob
    的头像 发表于 03-22 11:46 877次阅读

    自动驾驶发展问题及解决方案浅析

    汽车的发展提供有益的参考。   自动驾驶汽车发展的现状与挑战 ()技术难题 自动驾驶汽车的核心
    的头像 发表于 03-14 08:38 1076次阅读

    北京三大文化建筑试行自动驾驶接驳服务

    该项目所采用的L4级自动驾驶小巴由文远知行设计生产,无方向盘、油门和刹车踏板,最多可搭载9位乘客,速度限制每小时40公里内。这款自动驾驶汽车已经
    的头像 发表于 03-04 15:19 505次阅读

    动态自动驾驶数据量身定制的NeRF:NeuRAD

    神经辐射场( NeRFs )自动驾驶( AD )社区得到了广泛的应用。最近的方法显示了NeRFs
    发表于 01-11 09:41 488次阅读
    动态<b class='flag-5'>自动驾驶</b>数据量身定制的NeRF:NeuRAD

    语音数据集自动驾驶的应用与挑战

    随着人工智能技术的快速发展,自动驾驶汽车已经成为交通领域的研究热点。语音数据集自动驾驶中发挥着重要的作用,为驾驶员和乘客提供了更加便捷和安
    的头像 发表于 12-25 09:48 526次阅读

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

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