How environmental parity accelerates automotive software development | Ubuntu

How environmental parity accelerates automotive software development | Ubuntu

A lot of people, like myself, believe automotive is the most innovative sector today, especially when it comes to software. We are living a critical moment in automotive, where evolution is being pushed onto the market. This rapid software shift is posing challenges that are complicating developers’ progress. Most of these challenges are hardware-related.

Gaining access to target development hardware has become an impossible task, the recent global microchip shortage did not help. Representative hardware benches are, therefore, becoming a rare resource. 

Thanks to cloud computing, engineers and developers can gain access to remote, performant, collaborative environments. Unfortunately, these powerful cloud-based environments don’t match with the physical in-vehicle systems. The cloud performance surpasses those found in embedded systems by far. Therefore, the results and outcomes obtained by cloud based development tests do not accurately reflect how the software would behave in real-world conditions within a vehicle. On top of that, the complexity of the hardware vehicle interfaces and memory management are not represented. 

Enter the concept of environmental parity. 

What is environmental parity? 

What exactly is environmental parity? And why is it crucial in automotive?

Environmental parity enables a cloud environment that replicates the properties, constraints, and behaviour of the physical components found in an actual vehicle. The goal is to ensure that the software being developed in the cloud functions seamlessly and reliably when deployed in the real-world environment of a vehicle.

This concept allows developers to obtain tested and validated software results in a realistic setting. Obviously, achieving a 1:1 replica of every physical property is an ambitious (some would say impossible) feat, but the goal is to come as close as possible to the conditions that the software will run under in the physical world.

Efficiency and confidence: the benefits of environmental parity

As mentioned above, environmental parity allows code testing and validation under conditions that mimic the physical target. This is very important for the automotive industry, where small bugs can have serious safety-related consequences. By replicating the target environment as much as possible, it is possible to spot and fix issues earlier in the development process. 

When you can confidently run code in a cloud environment that mirrors the target hardware, development cycles can be shortened and become more efficient. It removes the need for back and forth deployments with hardware benches. This approach adds confidence to the code and to how it will perform once integrated in a vehicle.

It’s highly unlikely that environmental parity will make prototypes and benches disappear all together. But, considering the high cost and expertise required for building and maintaining hardware benches, which are often not representative due to misconfiguration, being confident in the software’s behaviour during development, reduces the risk of unexpected issues at the physical testing stage. Consequently, this could reduce the need for hardware benches.

How does environmental parity fit with software-defined vehicles?

The main focus of software defined vehicles (SDVs) are in the vehicle itself, but with environmental parity comes the notion of hardware abstraction. Indeed, in a way, environmental parity pushes for cloud-native approaches that can encourage developers to follow a more modular approach to their development, not only reducing the hardware constraints that can apply to their systems, but also enables possibilities for cross-platform software.

How does environmental parity compare to digital twins?

We mention digital twins quite a lot, but even in the automotive industry, there is a lot of confusion between digital twins and environmental parity. Digital twins are virtual representations of physical systems. In the context of automotive, a digital twin is a virtual counterpart of a vehicle or one of its components (this could be a mechanical, electronic, software, etc). Digital twins can be used for simulations that are used throughout the vehicle’s lifecycle, estimating impacts under specific conditions, predicting maintenance operations, evaluating the performance of certain algorithms, etc.

Digital twins do not necessarily replicate the physical component itself, they rely on data for simulations and are useful to assess how this data can have a physical impact. While both digital twins and environmental parity can be used throughout the vehicle’s lifecycle, digital twins are mostly used for simulation, analysis and optimisations, whereas environmental parity is used for testing and validating code.

In summary, environmental parity addresses the challenges of developing software within a cloud environment. Digital twins are virtual representations of physical models that provide a way to simulate behaviours, but don’t require 1:1 replication of the hardware constraints and performance.

Implementing environmental parity

Achieving environmental parity requires a strategic and meticulous approach to create a cloud-based development environment that faithfully replicates the physical properties of a vehicle. Let’s explore some key aspects of implementing environmental parity.

To replicate real-world conditions accurately, real-time capabilities are often essential, especially in applications like autonomous driving. Ubuntu can be tailored to meet these requirements by applying real-time kernel patches. These patches enhance the predictability and determinism of the operating system, ensuring that software can meet stringent timing constraints. You can try out Ubuntu’s real-time kernel patch set on AWS today. 

To achieve environmental parity, it’s vital to simulate the hardware constraints that software will encounter in a physical vehicle. This includes mimicking factors such as sensor inputs, computing hardware capabilities, and communication protocols. In the coming months, we expect most cloud-based development platforms to provide tools and services that will help to set up these hardware “configurations”.

The future of automotive software development 

Develop and validate first in the cloud, try it in the streets later, recaps the future of automotive software development. This approach not only accelerates the development process but also paves the way for the increased use of digital twins, which become more reliable and closely resemble the final product.

In a nutshell, environmental parity is the key to a more efficient, reliable, and innovative future in automotive software development. It represents a shift where software can be thoroughly tested and validated in a virtual environment that faithfully mirrors reality. As the automotive industry continues its journey towards greater automation and sophistication, environmental parity emerges as an indispensable tool for those who strive to revolutionise the way we drive and interact with vehicles.