Wednesday, December 21, 2022 - 05:00

The Eclipse Enhanced Communication Abstraction Layer (eCAL) project got a chance to debut its capabilities at the recent SDV Hackathon at the Bosch ConnectedExperience (BCX). As part of the hackathon, the Eclipse eCAL group brought in a hardware platform for teams to work on: a truck. One of those teams using this truck actually ended up winning the hackathon, and it was a great showcase for what eCAL is capable of. 

But what is the eCAL project exactly? And where does it fit into the software-defined vehicle (SDV) paradigm?

Created as an Alternative to DDS, ROS, and AUTOSAR 

The open source project started out as an internal one at Continental Automotive Technologies, one of the founding members of the SDV Working Group. We were working on building up prototypes for automated driving use cases. 

At the time, there were three options. We could use the Robot Operating System (ROS), which these days is a huge project and very prominent in robotics. There were also the regular Data Distribution Service (DDS) systems, as well as the Automotive Open System Architecture (AUTOSAR). 

ROS was only usable on non-Windows devices, lacked backwards compatibility, and struggled to handle large amounts of data. The issue with DDS systems is that they’re hard to configure and difficult to use in a rapid prototyping environment. And AUTOSAR was not well-suited to managing data from more sophisticated sensors, which require more processing power but place less emphasis on extremely tight responsiveness. 

So, we set out to develop something better suited to our use case, which is how eCAL was born. As the project evolved and we had more and more external partnerships with other companies and with universities, we started to think it could fill a role in the open source world. The project ultimately went open source in 2018. It was presented at the first contribution day on June 30, 2022, and onboarded to the Eclipse Foundation as an SDV-associated project to take advantage of their vendor neutral governance and wide adopter base.

eCAL Facilitates Rapid Prototyping During Development

Where eCAL really has its place is in the rapid prototyping scenario during development. It comes with a set of tools that allow you to measure the complete traffic of a system and use that for replay and resimulation of algorithms. And using the replay tooling, you can optimize algorithms, you can have digital twins setups, and other useful things. 

The utility of eCAL relies on the following base features: 

  • Intraprocess, interprocess, and interhost communication
  • Different transport layer implementations (shared memory, UDP, TCP)
  • Different communication patterns as publish/subscribe and server/client
  • Built-in support for multiple standard message protocols like Google protobuf, flatbuffers, or capnproto
  • Support for Windows as well as POSIX operating systems
  • Language bindings to C, C++, C#, Python, Rust, Go, and M-Script
  • Powerful additional tools for live data monitoring, recording, and replay

These features make eCAL well-suited to handling the high-level software behaviors and interactions that are happening as in-vehicle software gets more sophisticated. In the SDV environment, eCAL simplifies and accelerates development, maintenance, deployment, integration, and testing of an overall AD system by providing a distributed setup and enabling components to communicate with each other.

Hackathon Demonstrated eCAL’s Utility and Flexibility 

The recent hackathon was the perfect test case for eCAL. 

We brought in a truck as a hardware platform, equipped with a variety of sensors for teams to work on: a camera, basic sensors on the steering wheel and brakes, and a lightbar on top of the truck that could be turned on and off. From there, we let developers get creative and work on anything they’d like. 

One of the most interesting projects that came out of it, and the one that won the entire hackathon, was actually three projects in one. 

The first one was building an Arduino gas pedal sensor. The second was a gamification engine that basically tracked what the driver was doing and indicated if the driver was doing something well or not so well. And the third essentially created a virtual environment to drive the truck in; it would respond appropriately to inputs on the gas pedal, the steering wheel, the brakes, and other parts of the vehicle. 

Together, the three projects enabled gamification scenarios in which companies could train and incentivize truck drivers to drive economically. It was a really interesting project and an excellent demonstration of what can be done with eCAL. 

See If eCAL Fits Your Needs

We’re always looking for people to get involved and see if they can use eCAL. If you’re interested, the first and best places to start are at the eCAL documentation page and eCAL GitHub

If you’ve been a ROS user, we really encourage you to give eCAL a try, especially if you haven’t been 100% satisfied with ROS. It’s quite similar, but also addresses some of the problems ROS still has today. It’s also worth checking out the other projects in the SDV landscape.

About the Author

Kerstin Keller

Kerstin Keller

Kerstin Keller is a committer to the Eclipse eCAL project and a software developer at Continental Automotive Technologies.

Kristof Hannemann

Kristof Hannemann

Kristof Hannemann is a committer to the Eclipse eCAL project and a software development engineer at Continental Automotive Technologies.