Differential-drive AGV navigation stack
A public differential-drive simulation with EKF localisation and Nav2. Clean-clone verified; versioned release and public demonstration pending.
Stack: ROS 2 Jazzy · Nav2 · robot_localization (EKF) · ros2_control · Gazebo Harmonic
Status as of 24 November 2026: public source is available. The latest recorded clean-clone verification was completed on 13 October 2026. The repository is available; no versioned GitHub release or tag has been published. Public demonstration and artefact publishing remain pending.
An autonomy stack on a simulated differential-drive base: URDF and a gz_ros2_control simulated joint interface, wheel-odometry and IMU fusion through a planar EKF, SLAM Toolbox mapping, saved-map AMCL localisation, and NavFn / Regulated Pure Pursuit navigation. Stamped commands follow Nav2 → Collision Monitor → health supervisor → diff-drive controller.
Recorded simulation results
- 30/30 nominal navigation goals completed across three routes and ten seeds, with zero obstacle contacts.
- 50 completed fault cases met the plan’s stopping and bounded-termination criteria. The original strict suite remains failed at 78/80 passes; one preflight failure and one contact-free obstacle progress abort are retained. An additional unchanged-source attempt completed the seed whose first startup failed before movement, bringing the assessment to 81 total attempts. Scripted obstacle goals succeeded in 4/5 trials; the remaining trial stopped without contact and ended in a bounded progress abort.
- The benchmark’s worst nominal final-position error was 0.1458 m against a 0.15 m target, leaving limited margin. Results apply to the tested world, starts and synthetic settings; they are not physical-robot validation.
Clean-clone verification, 13 October 2026
At source commit 303099d6242642d8bec8a5662878fe66228c5daf, three packages built and seven tests passed. Clear-route navigation succeeded with zero contacts and recoveries; final error was 0.0819 m / 0.0495 rad. The tested platform was an Ubuntu 24.04 container on WSL2, with software rendering and runtime networking disabled. This was one clear-route check; the full benchmark evidence is separate.
GUI/GPU operation and native Ubuntu installation remain unverified. All results concern simulation. The 150-second local demonstration is measured-data replay, not a Gazebo GUI recording, and has no verified public URL. Public JSON summaries are available; raw bags and workstation logs remain local.
Public source and evidence
Evidence links are pinned to public commit 279001ce614edd7995780fdfc1466d104b721b2b. The README and handoff’s pending-publication wording predates the confirmed public repository; versioned release remains pending. Maintainer: StrangeTiger360 <yangzinan95@163.com>.
What it demonstrates
- State estimation — EKF fusion of wheel odometry and IMU, and what actually degrades it: wheel slip, unmodelled latency, covariance that is guessed rather than measured
- Planning and control — global planner and local controller behaviour on a non-holonomic base, and the recovery behaviours that decide whether a robot is usable or merely demonstrable
-
ros2_controlintegration — simulated joints throughgz_ros2_control, with stamped commands checked by Collision Monitor and health supervision - Reproducibility — clean-clone verification passed: three packages built, seven tests passed and a contact-free clear route
Why this project
My strongest robotics work dates from 2022. Rather than claim currency, I am rebuilding it with the current toolchain. The simulation now has retained benchmark results and a verified clean clone, with public source available. A versioned release and public demonstration / artefact publishing are the remaining release steps.