Hi everyone,
I’d like to share my first complete autonomous mobile robot project: an Autonomous Warehouse AMR simulation built with ROS 2 Jazzy, Gazebo Harmonic and Nav2.
The robot is a differential-drive AMR equipped with a simulated 2D GPU LiDAR and can autonomously navigate inside a warehouse environment using:
- AMCL for localization
- robot_localization EKF for odometry / TF
- SmacPlanner2D for global path planning
- Regulated Pure Pursuit for path tracking
- Local and global obstacle-aware costmaps
- Nav2 Collision Monitor for safety
I also built a small mission system where missions are defined in YAML files, for example:
PICKUP → SHELFA → DROPOFF → HOME
The mission manager supports retries, pause/resume, cancellation, status tracking and mission logging.
For testing dynamic obstacles, the simulation includes a moving warehouse worker. The robot detects the worker through LiDAR, updates the Nav2 costmaps and reacts accordingly.
I also created a simple Tkinter operator dashboard for selecting missions, monitoring mission progress, viewing the current/next station, elapsed time, event logs and Nav2 lifecycle status.
The complete system can be launched with a single ROS 2 launch command.
The project is available on GitHub:
https://github.com/Anastasios03git/autonomous-warehouse-amr
I’d be very interested in feedback, especially regarding the ROS 2 / Nav2 architecture and ideas for improving the project further.
Thanks!