Back to blog

· By Sajeevan (Saj) Veeriah

Engineering case study · 3 min read

Building a ROS 2 navigation stack I could investigate

How I organised sensing, estimation, planning and control for a differential-drive rover, and what simulation could establish.

Conceptual illustration of a rover beside a translucent sensing plane and a suggested navigation path.
AI-generated conceptual illustration. It is not a photograph of my rover or a recorded navigation result. View full-size image

A robot reaching a goal is only part of the engineering problem. I also need to understand how it estimated its position, why it chose a path and what happened when that path became difficult to follow.

For this project, I built a differential-drive platform and integrated a modular navigation stack using ROS 2 Humble, Nav2, LiDAR SLAM, IMU sensing and EKF state estimation. Gazebo Fortress and RViz gave me a repeatable environment for checking the interactions between those parts. The validation described here is simulation-based.

The engineering question

My practical question was how to make localisation, planning and motion control work together while keeping faults traceable to a particular layer. A navigation failure can begin well before the controller: an inconsistent transform or pose estimate can make a reasonable planner appear unreliable.

I treated the system as a sequence of interfaces. Each stage needed an output that the next stage could use and that I could inspect independently.

Sources: [1]

Separating the navigation layers

I kept perception, estimation, planning and control in modular ROS 2 nodes. That separation let me tune one part and inspect its effect across the rest of the stack.

Separating the navigation layers
LayerRole in this project
Sensing and mappingLiDAR supports SLAM; the IMU contributes motion information.
State estimationEKF fusion provides the pose used downstream, with transforms inspected in RViz.
PlanningNav2 uses the map, fused pose and costmaps to produce a navigable path.
Control and recoveryMotion control follows the path; recovery behaviour handles navigation interruptions.

What I checked

I used Gazebo Fortress regression runs and RViz inspection to examine maps, transforms, fused pose, planned paths and recovery behaviour. Planning, costmap settings and controller gains could be revisited without changing every part of the system at once.

The useful result was an integrated navigation workflow whose intermediate behaviour could be inspected. I am not presenting a numerical localisation benchmark, a measured success rate or a comparison against another navigation system here; this public case study does not include the underlying run dataset needed for those claims.

Sources: [1]

What the simulation leaves open

Simulation supported integration and repeatable investigation. It does not establish performance on an unseen physical floor, under wheel slip or with the timing and sensing imperfections of a deployed robot.

A useful next experiment would hold the route and obstacle arrangement constant, repeat trials across controlled perturbations and record goal completion, path length, localisation behaviour and recovery events. I would compare those runs before claiming a particular design change improved reliability. This is a proposed extension, not a reported experiment.

What I would carry into research

This project made the interfaces between subsystems the centre of my debugging process. For future robotics work, I want an experimental question, observable intermediate states and a clear boundary between what a simulation demonstrates and what still requires a physical trial.

Sources and further reading

First-person engineering case study based on my project record. This is not a peer-reviewed paper or a claim of a novel navigation algorithm. Published 18 September 2026; this is the article date, not the project start date.

  1. My ROS 2 rover project record: architecture, ownership and simulation checks
  2. Further reading: official Nav2 navigation concepts (Rolling documentation; project used Humble)
Back to all posts