Eclipse Software Defined Vehicle

The Eclipse Software Defined Vehicle (SDV) Working Group provides a forum for individuals and organizations to build and promote open source software, specifications, and open collaboration models needed to create a scalable, modular, extensible, industry-ready open source licensed vehicle software platform to support in-vehicle and around the vehicle applications development and deployment.

Working Group ID
sdv
Status
Active

Eclipse SDV Blueprints

The Eclipse SDV Blueprints project hosts different blueprints of how to apply technologies developed in the scope of the projects of the Eclipse SDV working group (sdv.eclipse.org). This makes it

Eclipse OpenXilEnv

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
Created
Background

SIL (Software In the Loop) is becoming increasingly important during the embedded software development cycle. At the time, there was no fitting SIL environment available, aiming for the support of the embedded classic software development.

Furthermore, a demand for interconnection of software of different organizations inside the SIL environment was established.

Scope

Eclipse OpenXilEnv provides an environment for creating SIL systems for the Software Defined Vehicle ecosystem. It doesn't specificly base on or supply a pre-defined model. Through its versatile nature it is also possible to use it in a HIL environment.

Why Here?

ZF believes as founding member of the Eclipse SDV community in the principle of sharing software. By allowing others to use and contribute, this will benefit all, including ZF.

A lightweight SIL/HIL environment will be of great use by others developing embedded software functions. We would contribute the environment that supported us with many projects. In return we hope for the contribution from others especially towards achieving better interoperability with other SIL users/systems.

Project Scheduling

First public version of OpenXilEnv available Q4 2023.

Future Work

Interface to CARLA

Extend FMI interface to version 3.0

More virtual networking (automotive ethernet).

Description

Eclipse OpenXilEnv is a lightweight SIL/HIL environment that allows running embedded software functions on a PC without a target platform and compiler.

Eclipse OpenXilEnv will provide a configurable graphical user interface and an API for automation.

Use case scenarios:

  • Software in the Loop
  • Model in the Loop
  • Open Loop
  • Hardware in the Loop
  • Module tests
  • Network tests
  • Complete digital twin test
  • Manual tests
  • Automated tests
  • Rapid prototyping
  • Offline calibration

Some highlights are:

  • Easy integration of the code under test
  • Clean separation in own executables (memory protection) Communication over a network layer
  • Platform independent (Windows/Linux)
  • User interface (Qt) with a lot of display items (text, oscilloscope, tacho, ...),  items for manual intervention (text, slider, knob, ...)  and calibration items for single, curve and map parameters
  • Tree view of all static parameter and variables (debug information)
  • Can be extensively automated with a remote procedure call interface (Python) or a build-in script interpreter
  • GUI less variant exist for automation (Headless Variant)
  • Parallel execution (multi core) of test code 
  • Support of FMUs with FMI2.0 interface (64 and 32 bit)
  • Residual bus simulation of non-existing CAN (FD) bus members
  • Recording and replay in stimulation is possible with text or MDF3 files
  • Debug information parser (dwarf)
  •  A small A2L parser is included for calibration.A XCP over ethernet port to connect a calibration system
  •  Parallel execution (multi core) support with barriers for synchronisation.

OpenXilEnv was developed and maintained at ZF for the last 25 years and used in numerous projects.

Initial Contribution

ZF Friedrichshafen AG has the code ownership and holds the copyright of the intial contribution.

Used third-party libraries and associated licenses:

  • Qt6 Library (LGPL3 License)

optional:

  • pugixml (MIT License)
  • esmini (Mozilla Public License Version 2.0)
Source Repository Type

Eclipse Autowrx

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.
Project
Parent Project
Proposal State
Created
Background

Eclipse Autowrx is the open source implementation of digital.auto (http://digital.auto), an industry-wide initiative enabling the automotive industry to establish a new, digital-first approach for the creation of next-generation customer experiences and data-driven mobility services. Designed as an open ecosystem with a very use-case-centric approach, Eclipse Autowrx is bringing together automotive original equipment manufacturers (OEMs), suppliers and partners to drive transformation of the industry.

Scope

Eclipse Autowrx provides an in-browser, rapid prototyping and collaboration platform for connected vehicles, utilizing the COVESA APIs.

Why Here?

The Eclipse Foundation provides a professional environment (governance, licensing, intellectual property management) for the future development and Eclipse Autowrx matches with the SDV working group.

Eclipse Autowrx has a strong relation and interfaces to Eclipse Velocitas, means, you can start prototyping in the Playground and handover to Velocitas to continue development in a productive environment.

Description

Eclipse Autowrx is the open source implementation of digital.auto (http://digital.auto), an industry-wide initiative enabling the automotive industry to establish a new, digital-first approach for the creation of next-generation customer experiences and data-driven mobility services. Designed as an open ecosystem with a very use-case-centric approach, digital.auto is bringing together automotive original equipment manufacturers (OEMs), suppliers and partners to drive transformation of the industry. The global initiative builds on two key pillars of automotive technology development: the software-defined vehicle (SDV) and standardized vehicle APIs. Eclipse Autowrx aims to combine existing standards with appropriate methods and best practices to translate technology into business value. Co-initiators include Robert Bosch GmbH as well as software companies Dassault Systèmes and LeanIX. The initiative is hosted by Heilbronn-based Ferdinand-Steinbeis-Institut (FSTI) as a neutral, non-profit facilitator and was launched in November 2022.

The ultimate goal of Eclipse Autowrx is to support digital value creation for OEMs in close alignment with the development of the physical elements of the vehicle.

Initial Contribution

As the project is available internally, after some clean-up activites the project should be available as initial contribution in the second half oif 2023.

Source Repository Type

Eclipse SDV Blueprints

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
Created
Background

The Eclipse SDV working group (https://sdv.eclipse.org) wants to be “An open technology platform for the software defined vehicle of the future; focused on accelerating innovation of automotive-grade in-car software stacks using open source and open specifications developed by a vibrant community.” In that scope, we develop several Eclipse projects. Within the Eclipse SDV Blueprints we now want to have a place to discuss, develop, and highlight the potentials and capabilities of combining these developed technologies. Given the complexity of the SDV projects landscape, the SDV blueprints also serve as examples, offering easily adaptable templates that effectively cater to comparable use cases.

Scope

The Eclipse SDV Blueprints project hosts blueprints, deployment descriptors and configuration for combining and demonstrating Eclipse SDV technology.

The scope of this project is to host blueprints utilizing Eclipse SDV technology. So, we do not plan to develop new Eclipse SDV technology within this project other than elements directly supporting the implementation of the specific use case. Main deliverables will thus usually be deployment descriptors and configuration for combining the utilized projects.

Why Here?

The Eclipse SDV working group creates the blueprints and most of the used projects are developed within the Eclipse Foundation which is why it makes most sense to place the Eclipse SDV Blueprints project under the Eclipse Foundation too.

Project Scheduling

The code for the Truck Fleet Management blueprint is already developed in a private repository so we plan to have this released as an initial contribution. Over time, we might add further blueprints but there is no exact timing for that yet.

Future Work

For future work we plan to extend the existing use case, e.g. by integrating additional Eclipse SDV projects. We also expect the Eclipse SDV community to come up with further blueprints that could be published under the proposed project.

Description

The Eclipse SDV Blueprints project hosts different blueprints of how to apply technologies developed in the scope of the projects of the Eclipse SDV working group (sdv.eclipse.org). This makes it possible to highlight the capabilities and features of the software provided by the Eclipse SDV working group and explore potential for collaboration and integration of these technologies.

A blueprint is an examplatory use case implementation based on artifacts created in the scope of participating SDV projects and adjacent OSS technologies together with some blueprint specific code that ties it all together.

Adopters of a blueprint can then see all the moving parts and can participate in the future development of the software to ensure it meets their future needs as well. With these blueprints, the goal is not to define how everyone will tackle these problems, but to get something usable out, see how people make use of it, and to get feedback on it. This feedback can either be channeled backed into the blueprint or forwarded to the utilized projects.

Project Leads
Mentors
Interested Parties

Projects involved in the Eclipse SDV Working Group.

Initial Contribution

For the initial contribution, we plan the implementation of two Blueprints described in further details in https://newsroom.eclipse.org/eclipse-newsletter/2023/april/eclipse-sdv-releasing-its-first-blueprints and https://gitlab.eclipse.org/eclipse-wg/sdv-wg/sdv-technical-alignment/sdv-technical-topics/sdv-distro-usecases.

For the Truck Fleet Management blueprint, the idea is to combine Eclipse Leda, Eclipse Kuksa, and Eclipse Velocitas to enable the retrieval of fleet management relevant data from vehicles into a back end.

In the Autonomous Racers blueprint we show how to orchestrate ROS-based software stacks on F1Tenth racers through the usage of Eclipse Muto, Eclipse Ditto and Eclipse Chariott and potentially Eclipse Kuksa and Eclipse Velocitas.

Source Repository Type

Eclipse Ankaios

Eclipse Ankaios manages multiple nodes and virtual machines with a single unique API in order to start, stop, configure, and update containers and workloads. It provides a central place to manage

Eclipse uProtocol

Eclipse uProtocol provides a transport agnostic, layered communication protocol that is deployment, OS, and device (vehicle, cloud, mobile phone, charging station, etc...) agnostic, leveraging well

Eclipse SDV Developer Console

Eclipse SDV Developer Console (DCO) integrates necessary sources for software lifecycle management and there by optimizes the complete process from development to release of software. The core of DCO

Eclipse Heimlig

Eclipse Heimlig is a Hardware Security Module (HSM) firmware for embedded platforms written in Rust. As an HSM, Eclipse Heimlig typically runs on dedicated hardware and provides cryptographic services

Eclipse Ankaios

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.
Project
Parent Project
Proposal State
Created
Background

Modern automotive vehicle architecture is getting more and more complex, which comes with various challenges. Lots of applications and functionality need to be managed and updated frequently for many years, in areas such as cockpit, body and safety, and driving functions. Traditional automotive architecture mostly provides updates for whole images, which requires huge download volumes and long update times. The larger number of applications increases the resource consumption, even though not all applications are needed at the same time. Software orchestration provides several benefits to overcome these challenges. However, technologies like Kubernetes, which are proven in the cloud native world, do not match the specific requirements of automotive HPC software. Kubernetes is designed for huge distributed data centers with eventual consistency. Neither its performance nor resource usage is suited for an in-vehicle platform. A large share of functionality of existing cloud-native tools, like load balancing in Kubernetes, is not required for automotive.

Scope

Eclipse Ankaios provides workload and container orchestration for automotive High Performance Computing Software (HPCs). While it can be used for various fields of applications, it is developed from scratch for automotive use cases. It is build using Elektrobit's experience with in-vehicle software and provides a slim yet powerful solution to manage containerized applications. It supports various container runtimes with Podman as the first one, but other container runtimes and even native applications can be supported. Eclipse Ankaios is independent of existing communication frameworks like SOME/IP, DDS, or REST API.

Why Here?

Eclipse SDV is the foundation of a community-driven ecosystem that consists of automotive software components and solutions for a Software Defined Vehicle. Eclipse Ankaios contributes to that open technology platform with an automotive grade component for managing complexity and software update requirements of modern automotive HPC software architectures by applying cloud native concepts to in-vehicle use cases.

As a long-term automotive software supplier, Elektrobit strives to evolve and improve the value proposition of modern cars and to develop the Software Defined Vehicle. Eclipse SDV is the perfect community for contributing Eclipse Ankaios as a vital component for making the idea of the SDV a reality.

Eclipse Ankaios can be used by existing Eclipse projects (e.g. Eclipse Kanto) but can also attract other projects and new Eclipse SDV members.

Project Scheduling
  • Initial contribution planned for Q3/2023
  • New releases are planned frequently at least once per quarter
Future Work
  • Access control
  • Cloud connector sample
  • Addtional runtimes like native applications or web assembly
  • Dependency management
  • Resource quotas for applicable workloads
Description

Eclipse Ankaios manages multiple nodes and virtual machines with a single unique API in order to start, stop, configure, and update containers and workloads. It provides a central place to manage automotive applications with a setup consisting of one server and multiple agents. Usually one agent per node connects to one or more runtimes that are running the workloads.

Eclipse Ankaios follows the UNIX philosophy to have one tool for one job and do that job well. It does not depend on a specific init system like systemd but can be started with any init system. It also does not handle persistency but can use an existing automotive persistency handling, e.g. provided by AUTOSAR Adaptive.

The workloads are provided access to the Eclipse Ankaios API using access control and thus are able to dynamically reconfigure the system. One possible use case is the dynamic startup of an application that is only required in a particular situation such as a parking assistant. When the driver wants to park the car, a control workload can start the parking assistant application. When the parking is finished, the parking assistant workload is stopped again.

Eclipse Ankaios also provides a CLI that allows developers to develop and test configurations. In order to gain compatibility with Kubernetes, Eclipse Ankaios accepts pod specifications.

A cloud connector can use the Eclipse Ankaios API to connect to a cloud-based software update system, which allows an OEM to manage a fleet of vehicles and provide new states to Eclipse Ankaios in order to update single or all applications. The cloud connection is optional, Eclipse Ankaios also works as standalone component.

In order to support the Automotive SPICE process, Eclipse Ankaios comes with requirements tracing supported by OpenFastTrace.

Project Leads
Mentors
Interested Parties
  • Eclipse Kanto
  • Continental
Initial Contribution

Ankaios MVP with Linux support

  • Server and agent (Rust)
  • CLI (Rust)
  • VSCode development container
  • Workload examples (Rust)
  • Documentation
    • Getting started
    • Reference documentation
  • Podman runtime support
Source Repository Type

Eclipse uProtocol-Android

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
Withdrawn
Background

A software defined vehicle requires the design and development of software entities(uEs) that are distributed by nature, and deployed in many different os/hw environments such as vehicle-mechatronics, vehicle-high-compute SoCs, mobile phones, infrastructure, the cloud, etc.... 

Each environment has their own software development languages, deployment solutions, and communication protocols making application and service development for connected vehicles challenging and often OEM/vendor specific.

The currently are no common protocols that cross automotive and cloud boundaries for messaging/RPC, existing solutions are tailored for specific use cases and each come with their own pro's and cons (ex. it works in the cloud but not for safety critical ASIL-D messages).

Finally, given the lack of connections between the embedded automotive and Internet/cloud worlds, there is no standard way to safely and securely discover, connect, and communicate with software across the various above mentioned deployments so more often than not OEMs are left with implementing proprietary communication solutions.

Scope

Eclipse uProtocol-Android provides a reference Android implementation of uProtocol, a communication protocol that connects Software Defined vehicles components, running on top of AAOS (Android Automotive OS).

In-Scope:

  • Reference Android implementation of uProtocol using the uProtocol-SDK
Why Here?

The value we hope to give (and get) are:

  • Collect valueable feedback and insite from the industry
  • Avoid fragmentation (OEM/vendor specific solutions)
  • Rally around a common vision for the software defined vehicle
  • Harmonize across the automotive projects to a common vision such that we can expand the deployments and functionality supported by this underlining protocol
Project Scheduling

Release of the source code will be in September (post incubation period to allow for feedback from the community)

Future Work

Add-ons for uProtocol for Android 

Description

Connecting Automotive Apps and Services, Everywhere

A software defined vehicle requires the design and development of software entities  (uEs) that are distributed by nature and deployed in many different os/hw environments such as vehicle-mechatronics, vehicle-high-compute SoCs, mobile phones, infrastructure, the cloud, etc.... 

Every environment have their own software development languages, deployment platforms, and communication protocols making application and service development for connected vehicles very complex. Currently there are no common protocols that cross automotive and cloud boundaries as many of the existing messaging/RPC solutions come with various pro's and cons not to mention their own "baggage" (i.e. it works in the cloud but not for safety critical ASIL-D use cases and vice versa. Furthermore, given the lack of connections between the embedded automotive and Internet/cloud worlds, there is no standard way to safely discover, connect, and communicate with software between these environments so OEMs are left with implementing proprietary solutions.    

The purpose of this project shall be to provide the reference Android implementation of uProtocol that runs on top of AAOS (Android Automotive OS)

Project Leads
Mentors
Interested Parties

This project is backed by General Motors and is part of the SDV initiative.

Initial Contribution

We will release the following initially:

  • Application Layer (uP-L3) Core Platform uEs: uSubscription, uDiscovery, etc...
  • Communication Layer (uP-L2) dispatchers: uBus and uStreamer
  • Transport Layer (uP-L1): Binder (iwithin Android) & MQTT (Android to the cloud)
Source Repository Type