Skip to content

Latest commit

 

History

History
50 lines (39 loc) · 2.71 KB

goals-non-goals.md

File metadata and controls

50 lines (39 loc) · 2.71 KB

Goals and non-goals

Contents

Goals

  • High-performance inter-process-communication for various operating systems
  • Safe and flexible API
  • Service discovery functionality with dynamic connections
  • Data agnostic without restrictions on payload data
  • Compatibility with AUTOSAR Adaptive and ROS 2 communication patterns
  • Providing the building blocks for being able to build gateways to network protocols
  • Automotive-grade SW quality
  • Modern C++

Non-Goals

  • Providing a data model and things like IDL or code generators
  • Shrinking it down for being able to run on µ-Controllers (e.g. with < 1MB of memory)
  • Full compliance with the DDS standard

User personas

Andrew, the HAD developer Andrew is a software developer at a startup working on autonomous cars. Currently their project is using ROS, because it's easy to get the car driving. After some months, he's realizing that sending gigabytes around, leads to high runtime demands with ROS. A colleague mentions iceoryx during lunch, which might be interesting because it has a zero-copy mechanism and offers a ROS RMW implementation. Soon after giving iceoryx a try, Andrew is thrilled about it. He cannot only feel the runtime performance boost, but also still keep using his beloved ROS visualization tools!

Martha, the indie game developer Martha always had troubles with those silly game engines. Some are slow but free, others are fast but too expensive. It's a hard life if you're independent. When a friend who works in the automotive industry mentions he has just started using iceoryx, which offers fast shared memory communication she listens up. Iceoryx is solely passing pointers around and does avoid copies to the utmost? "I'll definitely try iceoryx in my new project and see if I can speed up the performance with my low cost engine" she thinks while wandering home at night after the meetup with her friend.

Robby, the lonely robot Robby is an autonomous robot built during a research project at a university. He has a great set of features and can astonish the crowds by creating a detailed map of the university building in under an hour. However, they made him use that slow self-made IPC to communicate with his sensors because his parents wanted to get started fast. Though that makes it hard for him to react in real-time to dangerous incidents like flying coffee cups. When strolling through the interwebs on a lonely evening, he finds out about iceoryx: Free-to-use, high-performance data transfer with low runtime overhead, real-time support! Brilliant! Maybe even Robby's biggest wish for a network binding will come true, so he can stream his favorite videos even faster!