This project designs and implements a fully autonomous robot to transform a traditional food warehouse into a smart, human-free logistics system. The robot handles picking, placing, navigation, and inventory updates while ensuring food safety compliance (e.g., HACCP).
- Pick and place food packages without human intervention.
- Navigate safely around the warehouse.
- Communicate with a central inventory system.
- Automatically return to charge when idle.
The robot follows a detailed algorithm with food safety considerations:
- Run diagnostics (battery, sensors, arm).
- Scan warehouse layout using LIDAR and Cartographer SLAM.
- Read QR codes using OpenCV for item localization.
- Ensure gripper hygiene with UV sterilization.
- Monitor temperature for cold storage (0–5°C).
- Receive tasks from WMS via REST API.
- Plan paths using A* in ROS.
- Avoid obstacles using LIDAR and ultrasonic sensors.
- Pick items with a 6-DOF arm and soft gripper.
- Navigate to drop-off zone.
- Place items accurately, verify with camera.
- Update inventory via MQTT.
- Return to charging station if idle.
See algorithm/warehouse_robot_algorithm.txt and code/algorithm.py.
- Base: 4 Mecanum wheels (100mm, DC motors), stainless steel chassis (1m x 0.6m x 0.3m).
- Arm: 6-DOF manipulator, food-safe silicone gripper, 5 kg payload.
- Sensors: RPLIDAR A1, HC-SR04 ultrasonic, Raspberry Pi Camera v2, DS18B20 temperature sensor.
- Controller: Raspberry Pi 4 (ROS2), Arduino Uno (motor control).
- Power: 24V, 20Ah Li-ion battery, auto-docking charger.
- Comms: Wi-Fi (MQTT/REST for WMS integration).
See design/robot_design_diagram.txt for details. CAD diagram pending at design/robot_design_diagram.png.
| Component | Specification |
|---|---|
| Operating Area | 50m x 30m floor, 0.8m min aisle width |
| Arm Reach | 0.6–1.0m horizontal, 0–2.0m vertical |
| Payload | Up to 5 kg |
| Navigation | 360° LIDAR, 5cm map resolution |
| Vision Range | 1–5m (60° FOV) |
| Docking Range | ±5cm (IR-guided) |
| Temperature | 0–5°C (cold storage) |
See docs/working_envelope.md and design/working_envelope_diagram.txt.
- Raspberry Pi 4 (4GB)
- Arduino Uno
- RPLIDAR A1
- HC-SR04 ultrasonic sensors
- Raspberry Pi Camera v2
- DS18B20 temperature sensor
- 6-DOF arm with silicone gripper
- Mecanum wheels (100mm)
- 24V Li-ion battery
- ROS2 (Humble): Navigation, arm control
- Python: Vision (OpenCV), WMS communication
- Arduino IDE: Motor and sensor control
- Gazebo: Simulation environment
.gitignore→ Excludes build artifacts and temporary filesalgorithm/→ Execution logicwarehouse_robot_algorithm.txt→ Algorithm overview
code/→ Source codealgorithm.py→ Pseudocode for robot controlarduino/→ Arduino sketchesmotor_control.ino→ Mecanum wheel control
ros_workspace/src/warehouse_robot/→ ROS nodes and launch filesnav_node.py→ Navigation nodelaunch/simulate_robot.launch.py→ Simulation launch file
simulation/→ Gazebo fileswarehouse.world→ Warehouse environmentwarehouse_robot.urdf→ Robot model
vision/→ Vision processingqr_scanner.py→ QR code detection
design/→ Robot and envelope diagramsrobot_design_diagram.txt→ Robot design placeholderworking_envelope_diagram.txt→ Working envelope placeholder
docs/→ Documentationsimulation_setup.md→ Simulation setup guidetest_plan.md→ Testing strategytest_results.md→ Test results logworking_envelope.md→ Working envelope specs
README.md→ Project overview
- Algorithm: Detailed pseudocode with food safety steps.
- Design: Chassis, arm, and sensor specs; URDF for simulation.
- Working Envelope: Detailed specs with food safety constraints.
- Code: ROS navigation, Arduino motor control, QR scanner.
- Simulation: Gazebo world and launch file.
- Testing: Test plan and results placeholder.
- Next Steps: Create CAD diagrams, run simulation tests, assemble hardware.
- Clone the repository:
git clone https://github.com/FaisalSWE/automated-warehouse-robot.git - Install ROS2 Humble and Gazebo (see
docs/simulation_setup.md). - Build ROS workspace:
cd code/ros_workspace && colcon build - Run simulation:
ros2 launch warehouse_robot simulate_robot.launch.py - Run QR scanner:
ros2 run warehouse_robot qr_scanner.py
- Follow
docs/test_plan.mdfor simulation and hardware tests. - Log results in
docs/test_results.md.