This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| en:safeav:softsys:softstacks [2026/04/01 10:18] – [Autonomy Software Stacks] airi | en:safeav:softsys:softstacks [2026/04/24 09:47] (current) – raivo.sell | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Autonomy Software Stacks ====== | ====== Autonomy Software Stacks ====== | ||
| - | {{: | ||
| 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, | 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, | ||
| Line 14: | Line 13: | ||
| ===== Core Functional Requirements of Autonomy Software ===== | ===== Core Functional Requirements of Autonomy Software ===== | ||
| + | Autonomy software must achieve four key functional objectives [68,69]: | ||
| + | * **Perception: | ||
| + | * **Localization: | ||
| + | * **Planning: | ||
| + | * **Control: | ||
| - | |||
| - | |||
| - | ====== 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, | ||
| - | 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 ((Thrun, S. (2010). Toward robotic cars. Communications of the ACM, 53(4), 99–106))((Lee, | ||
| - | * It operates under strict real-time constraints. | ||
| - | * It must integrate data from heterogeneous sensors. | ||
| - | * It needs robust fault tolerance and safety compliance. | ||
| - | * It supports continuous learning and adaptation through AI. | ||
| - | * It often spans distributed systems, connecting vehicles, edge servers, 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. | ||
| - | |||
| - | ===== Core Functional Requirements of Autonomy Software ===== | ||
| - | |||
| - | Autonomy software must achieve four key functional objectives ((Russell, S. J., & Norvig, P. (2021). Artificial Intelligence: | ||
| - | * **Perception** – sensing and interpreting the environment (via LiDAR, radar, cameras, sonar, etc.). | ||
| - | * **Localisation** – estimating the system’s precise position and orientation in the world. | ||
| - | * **Planning** – generating paths or behaviours that fulfil 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 42: | 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 | + | | Determinism | Predictable behaviour under defined conditions. | Required for validation |
| | 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, | + | | Interoperability | Integrates diverse hardware, |
| | Resilience | Must continue functioning despite partial failures. | Critical for mission continuity. | | | Resilience | Must continue functioning despite partial failures. | Critical for mission continuity. | | ||
| - | | Adaptivity | + | | Adaptability |
| 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 |
| 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** | + | * **Middleware and communication |
| * **High-level AI algorithms** (perception, | * **High-level AI algorithms** (perception, | ||
| * **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, | + | 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, |
| * 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, | + | 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, |
| - | * 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, | * System management (diagnostics, | ||
| + | |||
| 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, | 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, | ||
| - | ==== 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 | + | * Deterministic scheduling using RTOS kernels or real-time Linux patches |
| * 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 | + | 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 |
| - | ==== 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, | + | From a software engineering management perspective, |
| - | 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, | |
| - | **Reusability and Version Control** | + | |
| - | Reusable modules and APIs speed up development. | + | |
| - | Tools like Git, Docker, and CI/CD pipelines ensure traceability, | + | |
| - | **Scalability and Lifecycle Management** | + | **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 systems, AUTOSAR Adaptive manifests) maintain version consistency and dependency control. |
| - | 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** | + | **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 separately, simplifying documentation and certification workflows. |
| - | 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 separately, simplifying documentation and certification workflows. | + | |
| - | **Cost and Risk Reduction** | + | **Cost and Risk Reduction** 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. |
| - | 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 | + | **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 137: | Line 121: | ||
| * Hardware Abstraction: | * Hardware Abstraction: | ||
| * 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 149: | 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. |
| - | Autonomy software stack and Development and Maintenance challenges are discussed in the following chapters: | + | |
| <WRAP excludefrompdf> | <WRAP excludefrompdf> | ||