taorobot — a mobile robot stack written from scratch (SLAM, localization, planning, control) as a learning project

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:

graph_pose_slam

localization

navigation

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!

2 Likes