This is an old revision of the document!
Autonomy Software Stacks
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 . Autonomy software differs from conventional embedded or enterprise software in several critical ways:
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 :
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.
Software Characteristics Unique to Autonomy
[1]
Thrun, S. (2010). Toward robotic cars. Communications of the ACM, 53(4), 99–106
[2]
Lee, E. A., & Seshia, S. A. (2020). Introduction to Embedded Systems: A Cyber-Physical Systems Approach (3rd ed.). MIT Press.
[3]
Russell, S. J., & Norvig, P. (2021). Artificial Intelligence: A Modern Approach (4th ed.). Pearson
[4]
Brooks, R. A. (1991). Intelligence without representation. Artificial Intelligence, 47(1–3), 139–159.