Developers working on bringing their applications to a vehicle face common challenges, like how to get data in and out of the heterogeneous system architecture. Solving these challenges for each application and each model binds a lot of development time without adding much value for the driver. Therefore, it is reasonable to work with a reliable software stack that solves and abstracts many of these recurring issues. The participants of the Eclipse SDV working group aim to build such an open technology platform to accelerate the innovation of automotive-grade in-car software stacks.
During this tutorial, we want to help developers to get familiar with using and adopting some of the Eclipse SDV technologies.
We first introduce the development model around using the Vehicle Signal Specification (VSS) and guide the participants through setting up and utilizing an Eclipse SDV stack to create their own applications.
The setup relies on an Eclipse Leda based Linux image as the operating system and Eclipse Kanto to manage the execution of containers on the vehicle. We will then use the DBC provider from Kuksa.val to write VSS signals derived from a CAN-trace into the Kuksa.val data broker. This way, an application can interact with CAN data using abstract signals defined by VSS, and the application developers do not require much knowledge about the underlying embedded vehicle layers. In addition, we show how to use Eclipse Velocitas to accelerate the development of specific vehicle applications.
With this tutorial, we share our learnings and look for feedback for setting up a technology stack for an SDV. We intend this tutorial for other open-source developers and technology teams looking for a base technology stack to build their SDV applications or options to add in more technologies.
On your machine, you need to be able to run OCI Container Images and Docker Compose configurations. In addition, you will need QEMU to run Eclipse Leda. As an alternative to using QEMU for device emulation, you can also bring your own RaspberryPi 4B (64 Bit) with at least 2 GB and recommended 8 GB.