Hi everyone,
I’d like to share a personal learning project I just open-sourced: a mobile robot software stack for
ROS 2 Humble + Gazebo, where every layer is written from scratch.
Why I built it: I wanted to really understand robotics, not just configure tools. I started with Nav2
and SLAM Toolbox like everyone else, but as a student I found them hard to learn from — too many layers and parameters between me and the actual algorithm. So I tried the opposite approach: implement everything myself, one plain ROS 2 node per algorithm, with as few dependencies as possible.
What’s inside: simulation with realistic noisy odometry, occupancy-grid mapping, particle-filter
localization, graph-pose SLAM (correlative scan matching + g2o loop closure), FastSLAM, A* planning with spline smoothing, and pure-pursuit control. The layers compose into three demo scenarios:



The core algorithms are C++, each package has a README explaining the design, and the config YAMLs try to explain why each parameter has its value, not just what it does.
What it is not: a Nav2 replacement. It’s only been validated on one simulated robot in one world, there are no recovery behaviors yet, and I’m sure there are mistakes in it. It’s the code I wish I could have read when I started.
I’m still learning, so corrections and criticism are very welcome — if you spot something wrong in my math or my ROS patterns, I’d honestly love to hear it. Thanks for reading!