This coursebook teaches robotics engineers how to design, analyze, and evolve the software behind real robotic systems, developing a coherent, architectural way of thinking that considers how combinations of factors determine whether a robot's software is robust, maintainable, and able to scale.
The book pairs theoretical chapters with hands-on practical exercises of increasing complexity, using ROS 2 throughout as a concrete, widely adopted vehicle for architectural reasoning. Beyond isolated algorithms and tool-specific tutorials, the authors explain the implications behind decisions about components, communication, concurrency, state, and time. Readers progress from middleware fundamentals, reactive execution, and spatial representation through hybrid deliberative architectures, finite-state machines, and behavior trees, arriving at a synthesis chapter that compares reference architectures such as Nav2, PlanSys2, and EasyNav alongside a deep dive into ROS 2 executors, lifecycle, and real-time behavior. The practical track mirrors this progression, building toward an open-ended capstone in which students design and justify a complete mission-task-capability architecture of their own.
Ideal for a Bachelor's degree program in Software Robotics Engineering, or for personal development within industry settings, the book provides a framework for reasoning that will enable future and early-stage professionals to tackle, design, and improve real-world robotic systems with confidence.
A range of online resources can be found at https://github.com/IntelligentRoboticsLabs/ASR-Software.