通往2.4亿虚拟公里的道路:宝马借助Unity进行自动驾驶之旅

Before BMW’s autonomous driving (AD) technology is mass production-ready, it will need to drive 240 million virtual kilometers. Learn how Unity is helping BMW put more on its odometer every day.

在宝马的自动驾驶(AD)技术投入量产之前,它需要驱动2.4亿虚拟公里。 了解Unity如何每天帮助宝马增加里程表的功能。

In our first post, we covered how a team at BMW Fully Autonomous Driving & Driver Assistance Systems has used Unity to develop custom tools for simulation visualization and scenario creation. With these tools, the BMW Group is well-equipped to tackle the most daunting daily challenges in AD development. 

我们的第一篇文章中 ,我们介绍了BMW全自动驾驶和驾驶员辅助系统团队如何使用Unity开发用于模拟可视化和场景创建的自定义工具。 借助这些工具,宝马集团已做好充分的准备,可以应对广告开发中最艰巨的日常挑战。

Let’s walk through a few areas where Unity is helping out in a major way.

让我们来看一下Unity在主要方面提供帮助的几个方面。

昼夜连续测试 (Enabling continuous testing day and night)

BMW’s Unity-based scenario editor lets its AD developers test with precise control. These images show a simulated test parameterized across different times of day and weather conditions.

BMW的基于Unity的场景编辑器可让其AD开发人员通过精确的控制进行测试。 这些图像显示了在一天的不同时间和天气条件下参数化的模拟测试。

The same scenario at night.

晚上也一样。

The same scenario in the rain.

雨中的情况相同。

By combining simulation with key performance indicators (e.g., continually maintaining a safe distance from traffic vehicles), BMW can assess how complete its features actually are. As individual components of its AD function master basic scenarios, BMW can conduct mass validation of its entire AD system in more complex situations.

通过将仿真与关键性能指标相结合(例如,持续保持与交通车辆的安全距离),宝马可以评估其功能的实际完整性。 作为其AD功能的各个组成部分掌握基本情况,宝马可以在更复杂的情况下对其整个AD系统进行大规模验证。

These tests come in multiple forms:

这些测试有多种形式:

  • Small-scale feature tests – These tests are the most common type of testing, and they enable BMW to rapidly evaluate portions of its AD system, such as vehicle trajectory planning. In a typical day, BMW’s team will log tens of thousands of virtual kilometers; the majority of these are short-distance tests (from hundreds of meters to 1 kilometer) in increments of less than a minute.

    小型特征测试 –这些测试是最常见的测试类型,它们使BMW能够快速评估其AD系统的各个部分,例如车辆轨迹规划。 在典型的一天中,宝马的团队将记录数万个虚拟公里。 其中大多数是短距离测试(从几百米到1公里),增量不到一分钟。

  • Large-scale system tests – Instead of a series of mini-tests for a specific feature, this type of simulation is designed to test the broader AD system. It plays out as an extended scenario that can run for hours and strives to replicate real-world scenarios; for example, an autobahn trip between the German cities Munich and Stuttgart. These simulations are more complex, often involving a virtual world complete with moving vehicles, pedestrians, and variable weather conditions, as well as map data, sensor models as inputs to perception algorithms, vehicle trajectory planning, vehicle dynamics, and much more.

    大型系统测试 –此类模拟旨在测试更广泛的AD系统,而不是针对特定功能进行一系列的小型测试。 它作为可以持续运行数小时的扩展方案发挥作用,并努力复制真实的方案。 例如,德国城市慕尼黑和斯图加特之间的高速公路之旅。 这些模拟更为复杂,通常涉及一个虚拟世界,其中包括行驶中的车辆,行人和多变的天气状况,以及地图数据,传感器模型(作为感知算法的输入),车辆轨迹规划,车辆动力学等。

Because driving situations can be repeated as often as required in simulation, BMW runs tests throughout each day, including “night drives.” After using the Unity-based scenario editor to set up tests, developers can review the results the next morning, leverage analytics to pinpoint exactly when functions failed, and bring up the exact point of failure in a frame rendered from Unity. The team can automatically extract those problematic situations as small-scale scenarios, and then visualize them to better understand why the situation was problematic.

由于可以根据模拟要求重复多次驾驶情况,因此BMW每天都会进行测试,包括“夜间驾驶”。 使用基于Unity的场景编辑器设置测试后,开发人员可以在第二天早上查看结果,利用分析来精确确定功能何时失败,并在从Unity渲染的框架中提出确切的失败点。 团队可以自动将那些有问题的情况提取为小规模的情况,然后将其可视化以更好地了解该情况为何有问题。

For instance, in this scenario, a traffic vehicle cuts in suddenly, yet the host vehicle does not decelerate immediately, resulting in a near accident. The scenario can be subsequently replayed after each incremental code update until the AD function reacts properly.

例如,在这种情况下,交通车辆突然切入,但主车辆没有立即减速,从而导致险些事故。 每次更新增量代码后,都可以随后重播该方案,直到AD功能正确React为止。

After an initial failure in this scenario, improvements ensure that this vehicle brakes properly in response to a traffic vehicle merging into its lane aggressively.

在这种情况下最初出现故障后,需要进行改进以确保该车辆能够正确响应制动的交通车辆并入车道。

创建极端案例 (Creating corner cases)

BMW’s AD developers can test with zero risks in simulation. Here they evaluate how well a host vehicle traveling at nearly 120 km/h detects an unexpected pedestrian (highlighted in orange) emerging from behind a truck parked on the shoulder.

BMW的AD开发人员可以在模拟中进行零风险测试。 在这里,他们评估了以近120 km / h的速度行驶的本车检测到停在路肩上的卡车后面出现的意外行人(橙色突出显示)的情况。

To reach the high automation level for their vehicles, BMW’s developers need to identify the limitations of their AD functions in as many situations as possible. Yet scenarios like the ones simulated in the video below are too cost-prohibitive, difficult, or dangerous to replicate in the real world.

为了达到车辆的高度自动化水平,宝马的开发人员需要在尽可能多的情况下确定其广告功能的局限性。 但是,如以下视频中模拟的场景那样,在现实世界中复制成本太高,困难或危险。

Using the Unity-based scenario editor, the developers can devise edge-case scenarios, such as a traffic vehicle running a stop sign. Uncovering these corner cases in the confines of a virtual world is much more cost-effective and safe while allowing for the opportunity to test reproducibly.

使用基于Unity的场景编辑器,开发人员可以设计极端情况下的场景,例如运行停车标志的交通车辆。 在虚拟世界范围内发现这些极端情况不仅更具成本效益和安全性,同时还提供了可重复测试的机会。

演示地址

BMW uses simulation to test scenarios that are too unusual to occur or too risky to create in a real-world driving environment. Here three edge cases are shown: 1) A pedestrian unexpectedly appearing in the host vehicle’s lane in a high-speed, highway setting; 2) A traffic vehicle cutting in suddenly; 3) A stopped vehicle in the host vehicle’s lane.

宝马使用仿真来测试在现实驾驶环境中不常见或风险太大的场景。 这里显示了三个边缘情况:1)一名行人意外地出现在高速公路环境中的本车车道中; 2)一辆交通车辆突然驶入; 3)停在本车车道上的车辆。

通过可视化测试和调试提高代码质量 (Improving code quality with visual testing and debugging)

Unity is used on a daily basis to help the 1,800 AD developers in the BMW Group continuously improve the code for which they are individually responsible. As they make changes to the codebase to add a new function or improve an existing one, they run integration tests before merging into the master.

每天使用Unity来帮助BMW集团的1,800名AD开发人员不断改进他们各自负责的代码。 当他们更改代码库以添加新功能或改进现有功能时,他们在集成到母版之前运行集成测试。

For instance, a developer focused on perception can use the Unity-based scenario editor to design multiple scenarios in which the vehicle passes a speed limit sign. These small-scale tests are simulated on the developer’s PC and can be visualized with Unity live as they are being run.

例如,专注于感知的开发人员可以使用基于Unity的方案编辑器来设计车辆通过限速标志的多个方案。 这些小型测试是在开发人员的PC上模拟的,并且可以在运行时通过Unity live进行可视化。

The developer can visually validate their results as well as use evaluation metrics to identify improvements or confirm that the feature is ready to be merged into the master (i.e., the vehicle adjusts to the posted limit every time).

开发人员可以直观地验证其结果,并使用评估指标来识别改进或确认该功能已准备好合并到母版中(即,车辆每次都调整到发布的限制)。

Developers can simultaneously test and visualize the results of their incremental code updates.

开发人员可以同时测试和可视化其增量代码更新的结果。

Post-merge, they can run acceptance tests to identify failures in other functions that arise as a result of their commit or vice versa. For instance, a merge from their peer could introduce a bug that affects the perception of speed limit signage. The developers can use Unity for visual debugging and easily inspect what is happening so they can fix things faster.

合并后,他们可以运行验收测试来确定由于提交而引起的其他功能的失败,反之亦然。 例如,来自其同行的合并可能会引入一个错误,该错误会影响对限速标志的感知。 开发人员可以使用Unity进行视觉调试,并轻松检查正在发生的事情,从而可以更快地解决问题。

BMW’s system is set up in such a way that developers can set breakpoints within the driving function and within the simulation code. The AD function and simulation are always in sync with one another, so the team can step through the code line by line and swap between the two worlds as they debug.

宝马的系统设置方式使开发人员可以在驾驶功能和仿真代码中设置断点。 AD功能和模拟始终彼此同步,因此团队可以逐行浏览代码,并在调试时在两个世界之间切换。

The synchronicity is also mirrored by the visualization, allowing simultaneous inspection of the code and the simulated world. Because developers can still move around and inspect values in the Unity-based application, they can reduce the number of tools needing to be open at the same time, while still keeping the data as transparent as possible.

可视化也反映了同步性,允许同时检查代码和模拟世界。 由于开发人员仍然可以在基于Unity的应用程序中移动并检查值,因此他们可以减少需要同时打开的工具数量,同时仍保持数据尽可能透明。

All these elements ensure that the production code that will ultimately power BMW’s autonomous vehicles meets its standards for safety and reliability.

所有这些要素确保了最终为宝马自动驾驶汽车提供动力的生产法规符合其安全性和可靠性标准。

-

Learn more about the ways that Unity is used for AD simulation in our whitepaper: Top 5 Ways Real-Time 3D Is Revolutionizing the Automotive Product Lifecycle.

在我们的白皮书中了解有关Unity用于AD模拟的方法的更多信息: 实时3D改变汽车产品生命周期的五种主要方法。

翻译自: https://blogs.unity3d.com/2020/08/10/the-road-to-240-million-virtual-kilometers-bmws-autonomous-driving-journey-with-unity/

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值