Skip to content

Repository files navigation

WareOps Bot Simulation โ€” Autonomous Warehouse Robotics Suite

ROS 2 Gazebo Ignition License GitHub Repository

An end-to-end ROS 2 Humble autonomous warehouse robotics system featuring Gazebo Ignition simulation, Nav2 autonomous navigation, a 2-DOF active vision QR/barcode scanner, inventory verification, gamepad teleoperation, autonomous delivery dispatching, and web-based management dashboards.


๐Ÿ“บ Simulation Demonstration

WareOps Bot Simulation Demonstration

๐ŸŽฌ Watch the full video demonstration on YouTube: WareOps Bot Simulation Video


๐ŸŒŸ Key Features

  • ๐Ÿค– Mobile Robot Simulation: Differential drive robot with a 2-DOF active camera mast (Yaw pan + Pitch tilt) spawned in a multi-aisle warehouse environment (warehouse.sdf).
  • ๐Ÿ—บ๏ธ Nav2 Autonomous Navigation: Integrated AMCL localization, static occupancy grid mapping (New_map.pgm), costmaps, and path planning for precise rack-to-rack transit.
  • ๐Ÿš€ Unified System Launch Orchestration (wareops_system_launch): Centralized ROS 2 launch package with delayed initial pose estimation, automatic browser tab launcher, and multi-node lifecycle synchronization.
  • ๐Ÿ‘๏ธ Active Vision Rack Scanning: Dual-engine vision pipeline (OpenCV WeChat QR + standard barcode decoders) with automated vertical and horizontal gimbal sweeps across 4-tier warehouse racks.
  • ๐Ÿ“ฆ Automated Stock Audit & Logging: Compares scanned QR codes with ground-truth inventory database (warehouse_database.xlsx), generating verified inventory reports (scanned_inventory.csv) and error logs (mismatch_log.csv).
  • ๐ŸŒ Two Web Dashboard Suites:
    1. Stock Navigation & Inventory Audit Web Dashboard (warehouse_stock_navigation_bot): Real-time camera overlay, interactive layout map, product search catalog, and one-click "Full Warehouse Detection" tour trigger.
    2. Autonomous Delivery & Teleop Web Dashboard (scripts/web_dashboard.py): Interactive 2D facility map with corner positions (NW, NE, SW, SE) and waypoints, real-time /delivery_status and /delivered event logging, virtual teleop joystick, and camera gimbal pan/tilt sliders.
  • ๐ŸŽฎ Joystick Teleoperation: Dual-stick controller driving, speed scaling, camera angle adjustments, and one-touch target triggers.
  • ๐Ÿ”„ Autonomous Tour & Dispatch Scripts:
    • scripts_1/full_tour.py: Master automated warehouse inspection tour that sequentially visits all target racks, commands gimbal sweeps, waits for verification completion, and returns home.
    • scripts/: Modular navigation scripts for targeted positions (Rack R4 A3, R4 A2, R3 B3), corner locations (NE, SE), waypoints (Alpha, Beta), and home docking.

๐Ÿ“ Repository & Package Architecture

WareOps/
โ””โ”€โ”€ src/
    โ”œโ”€โ”€ wareops_system_launch/                  # Centralized System Launch Orchestration
    โ”‚   โ”œโ”€โ”€ launch/
    โ”‚   โ”‚   โ”œโ”€โ”€ full_system.launch.py           # Full system: Gazebo + Nav2 + Teleop + Scanner + Stock Web Dashboard
    โ”‚   โ”‚   โ””โ”€โ”€ robot_webcontroller.launch.py   # Simulation + Nav2 + Delivery & Teleop Web Dashboard
    โ”‚   โ”œโ”€โ”€ package.xml
    โ”‚   โ””โ”€โ”€ setup.py
    โ”‚
    โ”œโ”€โ”€ Simulation/                             # Gazebo environment, URDFs, Nav2 config, RViz
    โ”‚   โ”œโ”€โ”€ config/                             # Nav2, SLAM, and Gazebo bridge parameters
    โ”‚   โ”œโ”€โ”€ launch/                             # Core simulation launch files (display_navigation.launch.xml)
    โ”‚   โ”œโ”€โ”€ maps/                               # Warehouse 2D occupancy grid maps (New_map.pgm / New_map.yaml)
    โ”‚   โ”œโ”€โ”€ rviz/                               # Custom RViz2 display profiles
    โ”‚   โ”œโ”€โ”€ urdf/                               # Robot Xacro model with 2-DOF camera mast
    โ”‚   โ””โ”€โ”€ world/                              # Warehouse SDF world model with QR racks
    โ”‚
    โ”œโ”€โ”€ active_vision_scanner_simulation/       # Autonomous Active Vision Scanner Node
    โ”‚   โ”œโ”€โ”€ active_vision_scanner_simulation/   # Multi-candidate vision pipeline & state machine
    โ”‚   โ””โ”€โ”€ launch/                             # Active scanner launch configuration (scanner_system.launch.py)
    โ”‚
    โ”œโ”€โ”€ joy_teleop_simulation/                  # Gamepad / Controller Teleop Node
    โ”‚   โ”œโ”€โ”€ joy_teleop_simulation/              # Axis/button velocity & gimbal command mapper
    โ”‚   โ””โ”€โ”€ launch/                             # Teleop launch configuration (teleop_sim.launch.py)
    โ”‚
    โ”œโ”€โ”€ Warehouse_stock_navigation_bot/         # Inventory Database & Stock Web Dashboard Server
    โ”‚   โ”œโ”€โ”€ warehouse_stock_navigation_bot/     # Flask web app & stock navigator node
    โ”‚   โ””โ”€โ”€ config/                             # Map assets (New_map.pgm), partition grids & catalog JSON
    โ”‚
    โ”œโ”€โ”€ scripts/                                # Autonomous Delivery, Waypoint Navigation & Web Dashboard
    โ”‚   โ”œโ”€โ”€ web_dashboard.py                    # Autonomous Robot Ready & Delivery Web Dashboard (Port 5000)
    โ”‚   โ”œโ”€โ”€ navigate_to.py                      # CLI argument-based target navigation runner
    โ”‚   โ”œโ”€โ”€ initialise.py                       # Delayed Nav2 initial pose setter
    โ”‚   โ”œโ”€โ”€ go_to_home.py                       # Navigates to home origin (0.0, 0.0)
    โ”‚   โ”œโ”€โ”€ go_to_rack_r4_a3.py                 # Navigates to Position 1 (Rack R4 A3)
    โ”‚   โ”œโ”€โ”€ go_to_rack_r4_a2.py                 # Navigates to Position 2 (Rack R4 A2)
    โ”‚   โ”œโ”€โ”€ go_to_rack_r3_b3.py                 # Navigates to Position 3 (Rack R3 B3)
    โ”‚   โ”œโ”€โ”€ go_to_waypoint_alpha.py             # Navigates to Central Aisle Waypoint Alpha
    โ”‚   โ”œโ”€โ”€ go_to_waypoint_beta.py              # Navigates to East Corridor Waypoint Beta
    โ”‚   โ”œโ”€โ”€ go_to_ne_corner.py                  # Navigates to North-East Corner
    โ”‚   โ””โ”€โ”€ go_to_se_corner.py                  # Navigates to South-East Corner
    โ”‚
    โ”œโ”€โ”€ scripts_1/                              # Barcode & QR Inspection Tour Scripts Suite
    โ”‚   โ”œโ”€โ”€ full_tour.py                        # Automated inspection loop triggered by Stock Web Dashboard
    โ”‚   โ”œโ”€โ”€ initialise.py                       # Initial pose setter
    โ”‚   โ”œโ”€โ”€ go_to_rack_r4_a3.py                 # Targeted inspection script for Rack R4 A3
    โ”‚   โ”œโ”€โ”€ go_to_rack_r4_a2.py                 # Targeted inspection script for Rack R4 A2
    โ”‚   โ””โ”€โ”€ go_to_rack_r3_b3.py                 # Targeted inspection script for Rack R3 B3
    โ”‚
    โ””โ”€โ”€ warehouse_database.xlsx                 # Ground truth stock inventory Excel database

๐Ÿ“ฆ Package Summary

Package / Directory Description Primary Launch / Executable
wareops_system_launch Master launch orchestration coordinating simulation, navigation, scanner, and web interfaces. ros2 launch wareops_system_launch full_system.launch.py
Simulation Gazebo warehouse world, robot URDF/Xacro, Nav2 costmaps, AMCL, and RViz profiles. ros2 launch Simulation display_navigation.launch.xml
Warehouse_stock_navigation_bot Stock navigator node, inventory catalog search, and full warehouse tour trigger on Port 5000. ros2 launch warehouse_stock_navigation_bot stock_navigator.launch.py
active_vision_scanner_simulation Active vision QR/barcode scanner with 2-DOF gimbal sweep logic and inventory audit logger. ros2 launch active_vision_scanner_simulation scanner_system.launch.py
joy_teleop_simulation Gamepad driver mapping axes/buttons to robot drive velocity and camera gimbal angles. ros2 launch joy_teleop_simulation teleop_sim.launch.py
scripts Autonomous delivery dashboard, waypoint transit scripts, and delivery event publishers. python3 scripts/web_dashboard.py
scripts_1 Automated barcode/QR code active rack inspection tour scripts suite. python3 scripts_1/full_tour.py

๐Ÿ› ๏ธ Prerequisites & Installation

1. System Requirements

  • Ubuntu 22.04 LTS
  • ROS 2 Humble Hawksbill (Desktop Installation)
  • Gazebo Ignition (Fortress / Garden)

2. ROS 2 Dependencies

Install required ROS 2 packages:

sudo apt update
sudo apt install -y \
  ros-humble-ros-gz-sim \
  ros-humble-ros-gz-bridge \
  ros-humble-navigation2 \
  ros-humble-nav2-bringup \
  ros-humble-joy \
  ros-humble-tf-transformations \
  ros-humble-rmw-cyclonedds-cpp

3. Python Dependencies

Install required Python libraries:

pip3 install opencv-python pandas openpyxl flask pyzbar transforms3d

๐Ÿš€ Quick Start Guide

1. Build the Workspace

Clone the repository and build using colcon:

mkdir WareOps
cd WareOps
git clone https://github.com/WareOps/WareOps_bot-Simulation-.git
mv WareOps_bot-Simulation- src
colcon build
source install/setup.bash

2. Launch Option A: Full Warehouse System (Stock Tracking & Inspection)

Launch the complete autonomous inspection stack (Gazebo, Nav2, Teleop, Active Scanner Node, Stock Web Dashboard, Auto Pose Init, and rqt_image_view):

ros2 launch wareops_system_launch full_system.launch.py
  • Stock Web Dashboard: Automatically opens at http://localhost:5000.
  • Click "๐Ÿš€ Full Warehouse Detection" to trigger the autonomous inspection tour (scripts_1/full_tour.py).
  • Monitor live scanner annotated feeds via rqt_image_view or the web dashboard.

3. Launch Option B: Delivery & Teleop Web Dashboard System

Launch Gazebo, Nav2, Teleoperation, Auto Pose Init, and the standalone Delivery Web Dashboard:

ros2 launch wareops_system_launch robot_webcontroller.launch.py
  • Delivery Web Dashboard: Open http://localhost:5000.
  • Select predefined positions (Position 1, Position 2, Position 3, Waypoint Alpha, Waypoint Beta, Corners, Home).
  • Drive the robot manually using the virtual joystick or adjust the camera gimbal pan/tilt sliders.
  • Track real-time dispatch progress via the /delivery_status and /delivered event log.

๐Ÿ“ Target Positions & Waypoints Reference

Target ID Name / Description Target Coordinates $(x, y, \text{yaw})$ Navigation Script
position_1 Position 1 (Rack R4 A3) (1.922, -2.745, 0.051) python3 scripts/go_to_rack_r4_a3.py
position_2 Position 2 (Rack R4 A2) (3.658, -2.684, 0.044) python3 scripts/go_to_rack_r4_a2.py
position_3 Position 3 (Rack R3 B3) (2.981, -2.825, 3.097) python3 scripts/go_to_rack_r3_b3.py
waypoint_alpha Waypoint Alpha (Central Aisle) (0.613, -2.945, 0.067) python3 scripts/go_to_waypoint_alpha.py
waypoint_beta Waypoint Beta (East Corridor) (7.692, -2.926, 3.139) python3 scripts/go_to_waypoint_beta.py
ne_corner North-East Corner (7.500, 4.800, -2.356) python3 scripts/go_to_ne_corner.py
se_corner South-East Corner (7.500, -4.800, 2.356) python3 scripts/go_to_se_corner.py
home Home Position / Origin (0.000, 0.000, 3.141) python3 scripts/go_to_home.py

You can also dispatch the robot from the terminal using the argument-based CLI runner:

python3 scripts/navigate_to.py --target position_1
python3 scripts/navigate_to.py --target ne_corner
python3 scripts/navigate_to.py --target home

๐ŸŽฎ Manual Teleoperation Controls

If a USB gamepad or controller is connected:

ros2 launch joy_teleop_simulation teleop_sim.launch.py
  • Left Joystick: Linear velocity (Forward/Backward)
  • Right Joystick: Angular velocity (Rotation)
  • Y / A Buttons: Pitch camera tilt UP / DOWN
  • X / B Buttons: Yaw camera pan LEFT / RIGHT
  • SELECT / START: Reset camera to Parked / Default Scan positions
  • L1 / R1 / L2 / R2: Trigger rack scan triggers for specific warehouse aisles

๐Ÿ“Š System Topics Architecture

[ Web Dashboard / Joystick ] ---> /diff_cont/cmd_vel_unstamped ---> [ Robot Base (Gazebo) ]
                                            |
                                            +---> /delivery_status & /delivered <---> [ Delivery Log ]
                                            |
                                            +---> /bot_status (Reached / Succeeded) <---> [ scripts_1/full_tour.py ]
                                                        ^
                                                        |
[ Gazebo Camera ] ---> /camera/image_raw ---> [ active_vision_scanner_simulation ] ---> /annotated_image
                                                        |
                                                        +---> CSV Audit Files (scanned_inventory.csv)

๐Ÿ“„ License

This repository is licensed under the MIT License.

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages