Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
en:safeav:softsys:softstacks [2025/10/17 14:47] – [Software Characteristics Unique to Autonomy] agrisniken:safeav:softsys:softstacks [2026/04/24 09:47] (current) raivo.sell
Line 1: Line 1:
 ====== Autonomy Software Stacks ====== ====== Autonomy Software Stacks ======
-{{:en:iot-open:czapka_b.png?50| Bachelors (1st level) classification icon }} 
  
-====== Software architectures ====== +Modern autonomous systems — from self-driving cars and unmanned aerial vehicles (UAVs) to marine robots and industrial co-bots — depend fundamentally on software architectures capable of real-time sensing, decision-making, and control. While mechanical and electronic components define what a system can do, the software stack defines how it does it — how it perceives the world, interprets data, plans actions, and interacts safely with its environment [66,67]. Autonomy software differs from conventional embedded or enterprise software in several critical ways: 
-  +
-Modern autonomous systems — from self-driving cars and unmanned aerial vehicles (UAVs) to marine robots and industrial co-bots — depend fundamentally on software architectures capable of real-time sensing, decision-making, and control.  +
-While mechanical and electronic components define what a system can do, the software stack defines how it does it — how it perceives the world, interprets data, plans actions, and interacts safely with its environment ((ThrunS. (2010). Toward robotic cars. Communications of the ACM, 53(4), 99–106))((Lee, E. A., & Seshia, S. A. (2020). Introduction to Embedded Systems: A Cyber-Physical Systems Approach (3rd ed.). MIT Press.)). Autonomy software differs from conventional embedded or enterprise software in several critical ways:+
   * It operates under strict real-time constraints.   * It operates under strict real-time constraints.
   * It must integrate data from heterogeneous sensors.   * It must integrate data from heterogeneous sensors.
-  * It needs robust fault tolerance and safety compliance.+  * It must support fault tolerance and safety compliance.
   * It supports continuous learning and adaptation through AI.   * It supports continuous learning and adaptation through AI.
-  * It often spans distributed systems, connecting vehicles, edge servers, and cloud services.+  * It interacts with physical systems, connected networks, edge devices, and cloud services. 
 This combination of safety-critical engineering and AI-driven decision-making makes autonomy software one of the most challenging areas in modern computing. This combination of safety-critical engineering and AI-driven decision-making makes autonomy software one of the most challenging areas in modern computing.
  
 ===== Core Functional Requirements of Autonomy Software ===== ===== Core Functional Requirements of Autonomy Software =====
  
-Autonomy software must achieve four key functional objectives ((RussellS. J., & Norvig, P. (2021). Artificial Intelligence: A Modern Approach (4th ed.). Pearson))((Brooks, R. A. (1991). Intelligence without representation. Artificial Intelligence, 47(1–3), 139–159.))+Autonomy software must achieve four key functional objectives [68,69]: 
-  * **Perception** – sensing and interpreting the environment (via LiDAR, radar, cameras, sonar, etc.). + 
-  * **Localisation** – estimating the system’s precise position and orientation in the world. +  * **Perception:** sensing and interpreting the environment (via LiDAR, radar, cameras, sonar, etc.). 
-  * **Planning** – generating paths or behaviours that fulfil mission goals while avoiding obstacles. +  * **Localization:** estimating the system’s precise position and orientation in the world. 
-  * **Control** – executing actions safely and stably, compensating for environmental changes.+  * **Planning:** generating paths or behaviors that fulfill mission goals while avoiding obstacles. 
 +  * **Control:** executing actions safely and stably, compensating for environmental changes. 
 Each of these objectives corresponds to distinct software layers and modules in the autonomy stack. Each of these objectives corresponds to distinct software layers and modules in the autonomy stack.
  
Line 26: Line 26:
 ^ Characteristic ^ Description ^ Importance ^ ^ Characteristic ^ Description ^ Importance ^
 | Real-time Execution | Must process sensor data and react within milliseconds. | Ensures safety and stability. | | Real-time Execution | Must process sensor data and react within milliseconds. | Ensures safety and stability. |
-| Determinism | Predictable behaviour under defined conditions. | Enables certification and trust. |+| Determinism | Predictable behaviour under defined conditions. | Required for validation and trust. |
 | Scalability | Supports increased sensor data and compute complexity. | Allows future upgrades. | | Scalability | Supports increased sensor data and compute complexity. | Allows future upgrades. |
-| Interoperability | Integrates diverse hardware, OSs, and middleware. | Facilitates reusability. |+| Interoperability | Integrates diverse hardware, OS, and middleware. | Facilitates modularity. |
 | Resilience | Must continue functioning despite partial failures. | Critical for mission continuity. | | Resilience | Must continue functioning despite partial failures. | Critical for mission continuity. |
-Adaptivity | Learns from data or updates behaviour dynamically. | Key for AI-driven autonomy. |+Adaptability | Learns from data or updates behaviour dynamically. | Key for AI-driven autonomy. |
  
 These characteristics drive architectural decisions and the choice of frameworks (e.g., ROS, AUTOSAR Adaptive, DDS). These characteristics drive architectural decisions and the choice of frameworks (e.g., ROS, AUTOSAR Adaptive, DDS).
  
-===== Software as a Multi-Layered System =====+===== Autonomy Software as a Multi-Layered System =====
  
 Autonomy software is layered, combining multiple software technologies: Autonomy software is layered, combining multiple software technologies:
 +
   * **Low-level embedded firmware** (real-time control and drivers).   * **Low-level embedded firmware** (real-time control and drivers).
-  * **Middleware and communication** frameworks (data exchange and scheduling).+  * **Middleware and communication frameworks** (data exchange and scheduling).
   * **High-level AI algorithms** (perception, decision-making).   * **High-level AI algorithms** (perception, decision-making).
   * **Supervisory or cloud-level systems** (fleet management, updates, data analytics).   * **Supervisory or cloud-level systems** (fleet management, updates, data analytics).
  
-The combination of these layers forms the autonomy software stack, which enables complex behaviour while maintaining reliability. A defining aspect of autonomy software is its reliance on middleware — frameworks that manage interprocess communication (IPC), data distribution, and time synchronisation across distributed computing nodes.  Some of the widely used standards: +The combination of these layers forms the autonomy software stack, which enables complex behaviour while maintaining reliability. A defining aspect of autonomy software is its reliance on middleware — frameworks that manage interprocess communication (IPC), data distribution, and time synchronisation across distributed computing nodes. Some of the widely used standards: 
   * ROS / ROS 2 (Robot Operating System): Modular publish-subscribe communication.   * ROS / ROS 2 (Robot Operating System): Modular publish-subscribe communication.
   * DDS (Data Distribution Service): Real-time, QoS-based messaging standard.   * DDS (Data Distribution Service): Real-time, QoS-based messaging standard.
   * MQTT / ZeroMQ: Lightweight protocols for cloud and IoT integration.   * MQTT / ZeroMQ: Lightweight protocols for cloud and IoT integration.
  
-A complete software stack is a layered collection of software components, frameworks, and libraries that work together to deliver a complete set of system functionalities. Each layer provides services to the layer above it and depends on the layer below it. Middleware, which is an essential part of the multi-layered architectures, ensures that all layers of the software stack can exchange information deterministically and safely ((Object Management Group. (2023). Data Distribution Service (DDS) Standard. OMG)). In autonomous systems, the software stack enables integration between: +A complete software stack is a layered collection of software components, frameworks, and libraries that work together to deliver a complete set of system functionalities. Each layer provides services to the layer above it and depends on the layer below it. Middleware, which is an essential part of the multi-layered architectures, ensures that all layers of the software stack can exchange information deterministically and safely [70]. In autonomous systems, the software stack enables integration between: 
-  * Hardware abstraction (sensors, actuators, compute units), + 
-  * Middleware (communication and data exchange), +  * Hardware abstraction (sensors, actuators, compute units). 
-  * Application-level modules (AI perception, planning, control), and+  * Middleware (communication and data exchange). 
 +  * Application-level modules (AI perception, planning, control).
   * System management (diagnostics, simulation, fleet updates).   * System management (diagnostics, simulation, fleet updates).
 +
 It’s the backbone that allows autonomy to function as a cohesive system rather than a set of disconnected modules (Quigley et al., 2009; Maruyama et al., 2016). From a technical perspective, the software stack defines how functionality, data flow, and control are structured within the system. It’s the backbone that allows autonomy to function as a cohesive system rather than a set of disconnected modules (Quigley et al., 2009; Maruyama et al., 2016). From a technical perspective, the software stack defines how functionality, data flow, and control are structured within the system.
  
-==== Modularity and Abstraction ==== +**Modularity and Abstraction**
  
 Each layer isolates complexity by providing a clean interface to the one above. Each layer isolates complexity by providing a clean interface to the one above.
 +
   * Developers can modify one layer (e.g., perception algorithms) without altering lower layers (e.g., drivers).   * Developers can modify one layer (e.g., perception algorithms) without altering lower layers (e.g., drivers).
   * Enables easier testing, debugging, and reuse across multiple vehicles or applications.   * Enables easier testing, debugging, and reuse across multiple vehicles or applications.
  
-==== Real-Time and Deterministic Behaviour ====+**Real-Time and Deterministic Behaviour**
  
 Autonomous systems rely on real-time responses. The stack architecture ensures: Autonomous systems rely on real-time responses. The stack architecture ensures:
 +
   * Timely communication between perception, planning, and control.   * Timely communication between perception, planning, and control.
-  * Deterministic scheduling using RTOS kernels or real-time Linux patches ((Baruah, S., Baker, T. P., & Burns, A. (2012). Real-time scheduling theory: A historical perspective. Real-Time Systems, 28(2–3), 101–155)).+  * Deterministic scheduling using RTOS kernels or real-time Linux patches [71].
   * Synchronisation of data streams from multiple sensors using timestamping and time-sensitive networking (TSN).   * Synchronisation of data streams from multiple sensors using timestamping and time-sensitive networking (TSN).
  
-==== Interoperability ====+**Interoperability**
  
-Middleware such as ROS 2 or DDS standardises interprocess communication. +Middleware such as ROS 2 or DDS standardises interprocess communication. This allows different vendors’ software modules (e.g., LiDAR driver from Company A and planner from Company B) to work together.
-This allows different vendors’ software modules (e.g., LiDAR driver from Company A and planner from Company B) to work together.+
  
-==== Fault Tolerance and Redundancy ====+**Fault Tolerance and Redundancy**
  
-Stack layering supports redundant paths for safety-critical functions. If a perception node fails, a backup process may take over seamlessly — ensuring resilience, especially in aerospace and automotive systems ((AUTOSAR Consortium. (2023). AUTOSAR Adaptive Platform Specification. AUTOSAR.)).+Stack layering supports redundant paths for safety-critical functions. If a perception node fails, a backup process may take over seamlessly — ensuring resilience, especially in aerospace and automotive systems [72].
  
-==== Continuous Integration and Simulation ====+**Continuous Integration and Simulation**
  
 A layered design allows developers to: A layered design allows developers to:
 +
   * Integrate software components progressively.   * Integrate software components progressively.
   * Test them using Hardware-in-the-Loop (HIL) and Software-in-the-Loop (SIL) methods.   * Test them using Hardware-in-the-Loop (HIL) and Software-in-the-Loop (SIL) methods.
   * Use simulators (e.g., CARLA, Gazebo, AirSim) to validate upper-layer modules without risking hardware damage.   * Use simulators (e.g., CARLA, Gazebo, AirSim) to validate upper-layer modules without risking hardware damage.
  
-==== Management and Organisational Importance ====+**Management and Organisational Importance**
  
-From a software engineering management perspective, a defined software stack provides structure and governance for the development process, which provides the following main advantages: +From a software engineering management perspective, a defined software stack provides structure and governance for the development process, which provides the following main advantages: Division of Labour. Teams can specialise by layer — e.g., one group handles perception, another control, another middleware. This parallelises development and allows use of domain expertise without interference
-Division of Labour. Teams can specialise by layer — e.g., one group handles perception, another control, another middleware. This parallelises development and allows use of domain expertise without interference.+  
 +**Reusability and Version Control** Reusable modules and APIs speed up development. Tools like Git, Docker, and CI/CD pipelines ensure traceability, maintainability, and fast updates across distributed teams.
  
-**Reusability and Version Control** +**Scalability and Lifecycle Management** A well-structured stack can be extended with new sensors or algorithms without re-architecting the entire system. Lifecycle management tools (e.g., ROS 2 launch systemsAUTOSAR Adaptive manifests) maintain version consistency and dependency control.
-Reusable modules and APIs speed up development. +
-Tools like Git, Docker, and CI/CD pipelines ensure traceabilitymaintainability, and fast updates across distributed teams.+
  
-**Scalability and Lifecycle Management** +**Quality Assurance (QA) and Certification** Layered software stacks make it easier to apply quality control and compliance frameworks, such as: ISO 26262 (Automotive safety software), DO-178C (Aerospace software) or IEC 61508 (Functional safety in automation)Each layer can be validated separatelysimplifying documentation and certification workflows.
-A well-structured stack can be extended with new sensors or algorithms without re-architecting the entire system. +
-Lifecycle management tools (e.g., ROS 2 launch systems, AUTOSAR Adaptive manifests) maintain version consistency and dependency control.+
  
-**Quality Assurance (QA) and Certification** +**Cost and Risk Reduction** When multiple projects share a unified software stackthe cost of testingvalidation, and maintenance drops significantly. This approach underpins industry-wide initiatives like AUTOSAR, which standardises vehicle software to lower integration costs.
-Layered software stacks make it easier to apply quality control and compliance frameworkssuch as: +
-ISO 26262 (Automotive safety software)DO-178C (Aerospace software) or  IEC 61508 (Functional safety in automation). Each layer can be validated separately, simplifying documentation and certification workflows.+
  
-**Cost and Risk Reduction** +**The Layered Stack as an Organisational Blueprint**
-When multiple projects share a unified software stack, the cost of testing, validation, and maintenance drops significantly. This approach underpins industry-wide initiatives like AUTOSAR, which standardises vehicle software to lower integration costs. +
- +
-==== The Layered Stack as an Organisational Blueprint ====+
  
 In large autonomy projects (e.g., Waymo, Tesla), the software stack also serves as an organisational structure. Teams are aligned with layers: In large autonomy projects (e.g., Waymo, Tesla), the software stack also serves as an organisational structure. Teams are aligned with layers:
 +
   * Perception team handles sensor fusion and computer vision.   * Perception team handles sensor fusion and computer vision.
   * Planning & Control team develops behavioural logic and trajectory generation.   * Planning & Control team develops behavioural logic and trajectory generation.
   * Systems team manages middleware and data distribution.   * Systems team manages middleware and data distribution.
   * Infrastructure team maintains OS builds, simulation, and DevOps pipelines.   * Infrastructure team maintains OS builds, simulation, and DevOps pipelines.
-Thus, the software stack doubles as both a technical architecture and an organisational map for coordination and accountability ((Fowler, M. (2021). Patterns of Enterprise Software Architecture. Addison-Wesley.)). 
  
-==== Real-World Example: ROS 2 as a Layered Stack ====+Thus, the software stack doubles as both a technical architecture and an organisational map for coordination and accountability [73]. 
 + 
 +**Real-World Example: ROS 2 as a Layered Stack**
  
 The Robot Operating System 2 (ROS 2) exemplifies how modular software stacks are implemented: The Robot Operating System 2 (ROS 2) exemplifies how modular software stacks are implemented:
 +
   * Application Layer: Navigation, mapping, perception nodes.   * Application Layer: Navigation, mapping, perception nodes.
   * Middleware Layer: DDS for data exchange, QoS configuration.   * Middleware Layer: DDS for data exchange, QoS configuration.
Line 121: Line 121:
   * Hardware Abstraction: Drivers for cameras, IMUs, LiDARs.   * Hardware Abstraction: Drivers for cameras, IMUs, LiDARs.
   * Build & Deployment Layer: CMake, Colcon, Docker for reproducibility.   * Build & Deployment Layer: CMake, Colcon, Docker for reproducibility.
-This layered model has become the foundation for numerous autonomous systems in academia and industry — from mobile robots to autonomous vehicles ((Maruyama, Y., Kato, S., & Azumi, T. (2016). Exploring the performance of ROS 2. Proceedings of the 13th Embedded Real-Time Systems Workshop (ERTS 2016))). 
  
-==== Advantages of a Well-Defined Software Stack ====+This layered model has become the foundation for numerous autonomous systems in academia and industry 
 +— from mobile robots to autonomous vehicles [74]). 
 + 
 +**Advantages of a Well-Defined Software Stack**
  
 ^ Advantage ^ Description ^ ^ Advantage ^ Description ^
Line 133: Line 135:
 | Efficiency | Reduces cost, redundancy, and integration risk. | | Efficiency | Reduces cost, redundancy, and integration risk. |
  
-In essence, a software stack is not merely a technical artefact — it’s a strategic enabler that aligns engineering processes, organisational structure, and long-term sustainability of autonomous platforms.+In essence, a software stack is not merely a technical artefact — it’s a strategic enabler that aligns engineering processes, organisational structure, and long-term sustainability of autonomous platforms. Autonomy software stack and Development and Maintenance challenges are discussed in the following chapters. 
  
 +<WRAP excludefrompdf>
 +  * [[en:safeav:softsys:autonomysoftstack]]
 +  * [[en:safeav:softsys:developmentchalenges]]
 +</WRAP>
en/safeav/softsys/softstacks.1760701663.txt.gz · Last modified: by agrisnik
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0