作者:AviNehemiah、PeterFryscak 和 MikeSasena, MathWorks
此篇博客将介绍 MathWorks 的三个平台(MATLAB、Simulink 和 RoadRunner)如何帮助无人驾驶汽车 (AV) 开发者集成和支持使用 NVIDIA DRIVE Sim 的工作流, 而 NVIDIA DRIVE Sim 是一个可扩展的、支持物理上精确和多元化仿真的平台。
本篇博客由两部分组成,包括 MathWorks 平台支持 AV 开发者的两种方式:一种是使用 NVIDIA DRIVE Sim,另一种是将算法部署到 NVIDIA 硬件。第 1 部分 - 集成 DRIVE Sim 用于创建环境模型和车辆动力学:MathWorks 工具如何与 DRIVE Sim 集成来完成以下任务:
使用 RoadRunner 及其 DRIVE Sim 连接器来设计用于仿真的 3D 网络和场景,再将仿真环境导出到 Omniverse。
将 Simulink Vehicle Dynamics Blockset 工具箱中的高保真车辆动力学模型与 DRIVE Sim 自动驾驶车辆结合使用。
第 2 部分 - 将算法部署到 DRIVE 平台:如何通过 GPU Coder 和 Embedded Coder 从 MATLAB 代码和 Simulink 模型生成优化的 CUDA 代码, 旨在部署到 NVIDIA DRIVE 硬件上。
环境建模
AV 开发者需要开发逼真的 3D 环境来仿真和测试感知、规划和控制算法。他们面临的一个主要挑战是现实世界的道路很复杂,创建可用于仿真的 3D 场景非常耗时。RoadRunner 是一款交互式编辑器, 可用于针对自动驾驶系统仿真和测试设计 3D 场景。开发者可以创建区域特定的道路标志和标记来自定义道路场景,也可以插入标志、信号、护栏、道路损坏、绿化、建筑物和其他三维模型。复杂的真实路网(左)和 RoadRunner 创建的仿真环境(右)AV 开发者可以通过“DRIVE Sim 匹配的 RoadRunner 连接器”,在 30 分钟内创建以下 3D环境,并且导出到 NVIDIA Omniverse 进行仿真或与其他3D制作流程集成。
使用 RoadRunner 创建 3D 环境,并通过“DRIVE Sim 匹配的 RoadRunner 连接器”导出到 Omniverse。
以上环境可分为以下几个组成部分:
添加道路、车道和人行道
创建路口
添加路口标记和道具
放置绿化
首先,让我们创建路网以及相关的车道标记和人行道。要实现这一目标,我们可以使用 RoadRunner 中的 Road Plan Tool 道路规划工具来创建和布置道路。然后,使用 Lane Tool 车道工具配置不同车道和设置道路属性,包括行进方向和车道类型。在本例中,更改了车道的宽度,并且移除了一侧的人行道以匹配航空图像。RoadRunner 用户通常会利用场景的航拍图像或激光雷达图像作为路网的模板。
现在我们已创建了路网,随后我们将创建 T 型路口。当道路相交时,RoadRunner 会自动创建路口;在这个例子中,我们将使用 Custom Junction Tool 自定义路口工具创建T型路口。RoadRunner 包含多种 junction tools 路口工具,可自定义路口在仿真中的外观和行为。
现在,我们使用 Prop Point Tool 道具点工具更新有停车标志的路口,使用 Marking Point Tool 标记点工具在道路上绘制“Stop”字样,并使用 Marking Curve Tool 标记曲线工具创建一条停车线。
在创建路网和交叉路口后,可以插入一些绿化以更形象地模拟环境。RoadRunner 提供了一组预置的道具,同时也可以将外部创建的素材导入 RoadRunner。此场景使用了一组称为 Prop Set 道具集的对象。可以将道具集拖动到现有的道具多边形上,也可以使用 Prop Polygon Tool 道具多边形工具填充新区域。
3D环境准备就绪后,现在就可以使用“DRIVE Sim 匹配的 RoadRunner 连接器”将场景从 RoadRunner 导出到 Omniverse。到目前为止,该示例还是基于一个简单的场景。以下是 DRIVE Sim 中针对更复杂场景的一些效果图片:
车辆动力学
为了进行整车级研究,开发者需要确定车辆模型本身所需的保真度水平。在某些情况下,车辆模型可能微不足道。例如,交通仿真通常将每辆车视为沿指定轨迹在空间中移动的简单物体。然而,在紧急制动测试等情况下,则需要使用更高保真度的车辆模型。Vehicle Dynamics Blockset 是 Simulink 的附加产品,可帮助解决此类问题。以下是有关其应用的一些示例。Vehicle Dynamics Blockset 附带了几个预置的参考应用,使其更易于上手。例如,参考应用 Constant Radius Maneuver 等半径控制包含车辆模型,以及驾驶员、控制器、传感器、动力总成、车轮、制动器、转向、悬架和底盘。
这类车辆模型可以非常详细,并且可以参数化,以便更准确地反映相关系统。例如, 映射的火花点火发动机(SI Engine) 模型可以通过导入测试数据来标定发动机。
同样,开发者可以使用运动学与柔顺性(Kinematics and Compliance)参考应用从悬架测试或多体动力学仿真中导入数据,拟合响应曲面模型,并参数化映射的悬架模型,从而逼真地模拟真实系统的行为。
对车辆模型进行参数化后,让我们进行一些实验来表征其行为。Constant Radius 等半径参考应用包括一个参考发生器模块库,允许开发者从预定义的标准测试(如双车道变更或缓慢增加的转向控制)列表中进行选择。此过程从恒定半径测试开始,以评估车辆在指定速度下保持固定转弯半径的能力。通过扫描越来越高的车速,可以查看车速、横向加速度和车辆打滑等信号,以确定车辆是否满足系统要求。
在测试了一组转向操作之后,可以进行制动测试操作,以评估车辆在指定初始速度下的停车距离。该参考应用包括ABS控制器和对话框等功能,可用于指定路面条件来做不同附着系数路面的制动测试。
通过此制动测试,可以比较不同制动控制器和不同条件下生成的结果,以评估车辆的性能。
由于 Vehicle Dynamics Blockset 是基于 Simulink平台开发的,因此这些类型的仿真都可以在 NVDIA DRIVE Sim 平台上运行,这不仅为开发者更有效地进行研究增加了全新的性能和灵活性,又能充分利用 DRIVE Sim 生态系统的其他功能。点击“阅读原文”,查看本系列博客的第二部分(英文版),了解如何将 MATLAB 和 Simulink 中创建的算法部署到 NVIDIA DRIVE 平台。要了解更多有关如何使用不同的 MathWorks 平台进行自动驾驶开发以及其他 AV 开发者如何使用 MathWorks 平台进行开发,您可以注册参加将于 2021 年 6 月 8 日在北京举办的MATLAB EXPO 中国用户大会。该活动包括来自 MathWorks 的其他汽车与自动驾驶用户的演讲:
原文标题:创建无人驾驶汽车(AV)仿真工具链
文章出处:【微信公众号:MATLAB】欢迎添加关注!文章转载请注明出处。
责任编辑:haq
全部0条评论
快来发表一下你的评论吧 !