Eclipse Safe Open Vehicle Core

Tuesday, October 1, 2024 - 03:41 by Thilo Schmitt
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Parent Project
Proposal State
Community Review
Background

With the upcoming of central EE architectures in vehicles, computing power has been upgraded on few central components called 'High Performance Computers' or HPC. Together with these computing units comes an upgrade of operating systems towards multi-threaded schedulers with memory and resource separation in processes (QNX, Linux). Between these operating systems and the application opens a gap of required functions and features common to all applications and application domains. The sum of these common and domain-agnostic functions we generally call "Middleware". In this proposal we speak of a "Core Software Stack" in differentiation to domain specific software stacks.

Scope

Eclipse Safe Open Vehicle Core provides an open-source core stack for Software Defined Vehicles (SDVs), specifically targeting embedded high-performance Electronic Control Units (ECUs).

Safe Open Vehicle Core is targeting to be the non-differentiating core of a software stack running on HPC ECUs of a software-defined vehicle. Consequently, this project's scope are the "inner layers" of such a stack between a hardware abstraction as its 'lower bound', 'southbound interface' and a platform API towards vehicle function applications as its 'upper bound', 'northbound interface'. 

Out of scope are said applications running on this stack (those carry the differentiating aspects covered by adopters of the stack). As well out of scope are any aspects related to a concrete hardware target, which will be freely chosen by each adopter individually, as per the needs of and as they see fit with their vehicle architecture - with the exception of support for a potential reference hardware. Furthermore, any off-board functionality (e.g. cloud services, etc.) is considered out of scope. Looking beyond mere implementations in code, the project very well considers establishing concepts and implementations of processes, or a "way of doing things", or best practices to be in scope - but only as long as it pertains to making code fit for automotive grade.

Description

The Eclipse Safe Open Vehicle Core project aims to develop an open-source core stack for Software Defined Vehicles (SDVs), specifically targeting embedded high-performance Electronic Control Units (ECUs).

As these ECUs carry multiple processors, the project also targets for interoperability between these processors.

To ensure applicability in the automotive domain we ensure compliance with relevant safety standards, such as ISO 26262 for functional safety, providing a reliable foundation for safety-critical applications and adherence to stringent security standards, implementing robust cybersecurity measures in accordance with ISO/SAE 21434 and UNECE WP.29.

A key aspect of the project is the design of a modular and extensible architecture, allowing easy integration and customization for various automotive applications, ensuring flexibility and scalability. Additionally, the project focuses on end-to-end optimization throughout the stack to achieve maximum efficiency and performance.

The project is guided by several key principles:

Common Stack & Industry-Wide Collaboration

The Safe Open Vehicle Core project aims to create a common full stack solution of a software runtime that serves as the best possible solution for shared industry problems. By achieving efficiencies through a single, joint solution instead of multiple specific ones, the project addresses non-differentiating scopes and ensures that the scope is significant for multiple parties, rather than catering to singular interests.

Speed

The project accelerates development by working in open source, focusing on code-centric and iterative methods rather than primarily on textual specifications.

Abstraction and Extensibility

The project emphasizes the decoupling of hardware (HW) and software (SW), ensuring that applications do not depend on specific hardware characteristics. It establishes predetermined breaking points to enable the exchange of implementations of individual layers, aspects, and components, such as ECU communication protocols. Additionally, it focuses on enabling project-specific extensions of the stack, providing a flexible framework that can be customized and extended to meet the specific requirements of different projects.

Quality & Efficiency

The Safe Open Vehicle Core project aims for a lean, no-frills solution to lower complexity and increase efficiency. The project strives for support of modern implementation paradigms and languages like Rust or C++, uses human-readable specification languages that are domain and target-driven, and avoids complex exchange data formats. It seeks the optimal balance between modularity and resource consumption and follows state-of-the-art processes to develop safe and secure software in an open-source environment.

By achieving these goals and adhering to these key principles, the [SafeOpenVehicleCore] Project aims to deliver a versatile and secure core stack that supports the evolving needs of the automotive industry and accelerates the adoption of software-defined vehicle technologies.

Why Here?

Eclipse's SDV Working Group has summoned a lot of players in the automotive industry with a common interest in shaping the future of open-source collaboration in automotive. Members of said WG have discussed in its Technical Advisory Committee body how this might look like and are in some agreement in certain aspects, which this project intends to fuel with code. Through this pre-established connect creating this project here within this community appears to be a straight-forward, most effective approach.

Future Work

The intent is to bring together as many aspects of the "upper layers" of the HPC SDV Core Stack as possible. A concrete, exhaustive list of those aspects isn't available or even agreed on by the community, yet at least. It would also change and adapt over time as discussions in the community proceed.

Project Scheduling

A minimal first step, often called MVP or a version 0.1, we anticipate to be available by end of 2024, with possible refinements and adjustments reaching into early 2025. A more broadened, intermediate revision (possibly called a version 0.5) we'd like to have available towards late 2025. A release 1.0 could follow roughly a year later.

Interested Parties

Eclipse SDV WG; various OEMs and Tiers, as well as fellow travelers in the broader audience of the automotive sector

Initial Contribution

We start very small, because the main challenge is to create a solid foundation (working model, process, tools) for automotive grade OSS. We do this by using core libraries and create an additional demo setup, that uses these libraries in a tangible use case (in connection to existing software in the OSS universe).

With reference to the high-level architecture image discussed in the Eclipse SDV WG's Technical Advisory Committee we choose to contribute the components "OS Abstraction" and "JSON library" (or rather an integration thereof) initially.

Source Repository Type