Developers Guideο
The EasyNav Developers Guide provides a technical overview of the internal architecture of the framework and its main design principles. It is intended for developers who wish to understand the codebase, extend the system with new modules, or contribute to its evolution.
EasyNav is designed as a lightweight, modular navigation framework built on ROS 2. Its architecture relies on clear interfaces, shared data structures, and composable components that can operate in both simulation and real robotic platforms.
Contents
Overviewο
This guide is organized into several chapters, each covering a key subsystem of EasyNav:
Design Principles β Describes the architectural foundations of EasyNav, its modular organization, and execution model, together with the robot geometry, the velocity output (robot limits, mux and smoother), and how EasyNav can be reconfigured at runtime.
Blackboard and NavState β Explains the shared memory model that interconnects all modules.
Perceptions System β Details how sensory data is represented, processed, and accessed in a unified way.
Commanding Layer β Describes how applications send navigation goals to EasyNav and follow their progress.
Recovery System β Explains how EasyNav detects and handles problems: the recovery node, the
RecoveryManagerBaseplugin, how a recovery moves the robot, theSystemActionsit can request, and the available recovery systems.Safety β What EasyNav does for safety: stale and invalid velocity commands, configuration checks, the safety mode and its parameters, memory locking, the configuration fingerprint, and fault injection.
Each chapter provides conceptual explanations, code structure guidelines, and practical examples extracted from the current EasyNav implementation.
Further Readingο
For installation and basic usage instructions, refer to the Build & Install and Getting Started sections. For stack-specific tutorials and usage examples, see the HowTos and Practical Guides.