Vehicle.OS

The term Vehicle.OS is currently extremely fashionable. It is representing the decoupling between in vehicle hardware and software. Nearly every big company, from automotive to tech, is jumping on the train, but what is meant with “OS”?

Due to Google Android it is

Screenshot taken from https://developers.google.com/cars/design/automotive-os, 02/10/2021

Due to Blackberry it is

Screenshot taken from https://blackberry.qnx.com/en/software-solutions/embedded-software/connected-autonomous-vehicles, 02/10/2021

Lets have a look on the definitions the popular cloud classification use:

IaaS vs PaaS vs SaaS Diagram
Source: https://www.leanix.net/en/wiki/saas/iaas-vs-paas-vs-saas

Due to that, both before given Google and Blackberry statements point to PaaS – the platform provided in a managed manner to use. Wikipedia defines a computing platform as an “environment in which a piece of software is executed“.

The cloud classification and computing platform definition have two pillars in common:

  • Middleware and
  • Runtime.

The term middleware describes “any software that allows other software to interact” – the application program interfaces (API), frameworks and runtime libraries. In comparison the runtime executes (or even supports to) the program/ application e.g., a browser in the case of web-based program such as JavaScript

The company APEX.AI gives a bit more context:

Screenshot taken from https://www.apex.ai, 02/10/2021

Out of this it gets reduced on the runtime providing the following capabilities (partially taken from APEX.ai):

  1. First class C and C++ APIs for application developer, which are compatible with ROS2
  2. Middleware abstraction, simplifies the use of complex middleware interfaces
  3. Automotive production code quality through the elimination of all unsafe code constructions
  4. Fully deterministic software execution
  5. System safety enabled through managed nodes with lifecycle management
  6. etc.
  • Development time and,
  • Run time

This abstract from APEX.ai also provides a bunch of aspects, related to

of the business logic.

Development time:

  1. Interface abstraction and APIs: The mechanism for introducing business logic and getting them interacting with the runtime and system are well defined. Due to ROS2 documentation here it fundamentally is about:
    • Nodes: A node is an executable that uses ROS to communicate with other nodes. 
    • Messages: ROS data type used when subscribing or publishing to a topic. 
    • Topics: Nodes can publish messages to a topic as well as subscribe to a topic to receive messages.”

sharing the Publish-Subscriber pattern, also use for offering services (aka remote procedure calls). For Python check the following example.

  1. Safe code constructions: Due to the Apex.ai slides here every construct that
  • dynamically allocates memory e.g., string variables
  • everything that results in blocking calls e.g., file writes

Run time:

  1. Deterministic execution: Every task runs in a separate process, bound to a separate CPU, has a well defined priority, is not interruptible etc.
  2. Lifecycle Management: A logical encapsulation programming unit, at runtime bound to a well defined lifecycle. Due to ROS2 wiki “A node is a process that performs computation”. ROS2 defines the lifecycle as follows:
The proposed node life cycle state machine
Source: https://design.ros2.org/articles/node_lifecycle.html
This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *