Warehouse tote-moving robot with ROS 2 and Nav2 in Gazebo
Build a simulated autonomous mobile robot in ROS 2 that maps a warehouse, moves totes from pick zones to pack stations with Nav2, slows near people, and hits 30 deliveries an hour.
Industry project · for Riverbend Fulfilment, a third-party logistics warehouse of 18,000 m² in Columbus, Ohio, piloting autonomous mobile robots
Riverbend picks orders for online retailers. Pickers fill totes in six pick zones and walk them to four pack stations, an average round trip of 140 m. Walking takes about 35% of each picker's shift. Riverbend wants to pilot two autonomous mobile robots (AMRs) to carry totes so pickers can stay in their zones.
Before buying a fleet, the operations director wants a simulation that answers three questions: - Can one robot deliver at least 30 totes an hour on the real layout? - Does it slow down and keep a safe distance in aisles shared with people? - Can the warehouse team change routes, keep-out zones and stations without a programmer?
The robot is a differential-drive base, 0.7 × 0.5 m, carrying up to 25 kg. It has a 2D lidar with a 12 m range and 270° field of view, wheel encoders and an IMU. Speeds are 1.2 m/s maximum in open areas and 0.5 m/s in aisles of 2.4 m where people walk. Pack stations need the robot to stop within 5 cm and 5° of a docking pose.
You will do all of this in simulation: - write a URDF model of the robot with its sensors; - build a warehouse world in Gazebo from the layout in task 1; - map it with SLAM Toolbox; - configure and tune Nav2 for localisation, planning and control; - write a mission node that takes tote requests and drives the robot through stations, using keep-out and speed-limit zones; - run a one-hour test with simulated people and report the numbers.
You need no robot. ROS 2 (Humble or Jazzy) and Gazebo run on Ubuntu or in a Docker container.
Done looks like a repo that launches the whole simulation with one command, a map, a tuned Nav2 configuration, a mission node, and a test report with deliveries per hour, docking accuracy, near-miss count and minimum distance to people.
GitHub repo with robot description, Gazebo world, map, Nav2 parameters, mission node and launch files + test results CSV + pilot report + 3-minute demo video
Stack: ROS 2 (Humble or Jazzy), Gazebo, Nav2, SLAM Toolbox, RViz, Python (rclpy), Docker (optional)
- Working simulation20
One launch command starts the world, robot, localisation, Nav2 and mission node, and it runs on a fresh machine from the README.
- Good navigation25
Nav2 is tuned so the robot follows aisles smoothly, respects keep-out and speed zones, and recovers from blocked paths.
- Mission logic20
The mission node takes tote requests, drives through pick and pack stations, and docks within 5 cm and 5°.
- Measured performance25
A one-hour test with simulated people reports deliveries per hour, docking error, minimum distance to people and failures.
- Pilot report10
A short report answers the director's three questions with numbers and lists what simulation cannot show.
Pass 60% · Merit 75% · Distinction 90%
Engineering Students
Diploma, B.Tech, B.E., BCA, MCA, or M.Tech students seeking practical experience.
Aspiring Developers
Developers who want to build proof-of-work capstone projects for tech resumes.
Job Seekers
Graduates looking for AI-evaluated code review & verified industry credentials.