Developing and maintaining an autonomous software stack is a long-term, multidisciplinary endeavour. Unlike conventional software, autonomy stacks must handle:
These constraints make the software lifecycle for autonomy uniquely complex — spanning from initial research prototypes to industrial-grade, certified systems.
Even with knowledge of autonomous software stacks, their development is still associated with significant and challenging problems. Through their mitigation and applications of different solutions, the autonomous systems become both expensive to design and develop as well as hard to maintain. The following are the most significant challenges.
Real-Time Performance and Determinism Autonomous systems require deterministic behaviour: decisions must be made within fixed, guaranteed time frames. However, high computational demands from AI algorithms often conflict with real-time guarantees [1]. Key Issues:
Timing mismatches across sensor and control loops. Mitigation:
Scalability and Software Complexity As systems evolve, the number of nodes, processes, and data streams grows exponentially. For instance, a modern L4 autonomous vehicle may contain >200 software nodes exchanging gigabytes of data per second. Problems:
Solutions:
Integration of AI and Classical Control AI-based perception and classical control must coexist smoothly. While AI modules (e.g., neural networks) handle high-dimensional perception, classical modules (e.g., PID, MPC) ensure predictable control. Challenge:
Best Practices:
Safety, Verification, and Certification Autonomous systems must conform to standards like the mentioned ISO 26262 (automotive functional safety), DO-178C (aerospace software certification) and IEC 61508 (industrial safety). Challenges:
Emerging Solutions:
Cybersecurity and Software Integrity Autonomous platforms are connected via V2X, cloud APIs, and OTA updates — creating multiple attack surfaces [4]. Risks:
Countermeasures:
Continuous Maintenance and Updates Unlike static embedded systems, autonomy software evolves continuously. Developers must maintain compatibility across versions, hardware platforms, and fleets already deployed in the field. Maintenance Practices:
Data Management and Scalability AI-driven autonomy relies on vast datasets for training, simulation, and validation. Managing, labelling, and securing this data is an ongoing challenge [7]. Issues:
Approaches:
Human–Machine Collaboration and Ethical Oversight Autonomy software doesn’t exist in isolation — it interacts with human operators, passengers, and society. Thus, software design must incorporate transparency, accountability, and explainability. Key Considerations:
The software lifecycle typically follows a continuous evolution model:
| Phase | Purpose | Typical Tools |
|---|---|---|
| Design and Simulation | Define architecture, run models, and simulate missions. | MATLAB/Simulink, Gazebo, CARLA, AirSim. |
| Implementation and Integration | Develop and combine software modules. | ROS 2, AUTOSAR, GitLab CI, Docker. |
| Testing and Validation | Perform SIL/HIL and system-level tests. | Jenkins, Digital Twins, ISO safety audits. |
| Deployment | Distribute to field systems with OTA updates. | Kubernetes, AWS Greengrass, Edge IoT. |
| Monitoring and Maintenance | Collect telemetry and update models. | Prometheus, Grafana, ROS diagnostics. |
The goal is continuous evolution with stability, where systems can adapt without losing certification or reliability.