# yagnadatta25/multi-goal-logistics-amr-with-hybrid-predictive-dwa-and-directional-safety-reflex-loops. architecture

> Architecture diagram of the GitHub repository yagnadatta25/multi-goal-logistics-amr-with-hybrid-predictive-dwa-and-directional-safety-reflex-loops., generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/yagnadatta25/multi-goal-logistics-amr-with-hybrid-predictive-dwa-and-directional-safety-reflex-loops.
- Repository: https://github.com/yagnadatta25/multi-goal-logistics-amr-with-hybrid-predictive-dwa-and-directional-safety-reflex-loops.

## Overview

This ROS 2 warehouse AMR simulates a TurtleBot3 navigating a multi-goal warehouse with moving obstacles. The principal workflow sends waypoint goals through the dispatcher to Nav2; Nav2 proposes motion, and the Simulation Master uses LiDAR, odometry and obstacle predictions to supervise velocity commands before they reach the robot. Gazebo, localization, optional collision monitoring, visualization and recorded-run analysis are supporting capabilities. Some internal stages and integrations are documented in the README but their source was not sampled, so those links cite the README.

Main entry points: [`src/autonomous_logistics_sim/scripts/simulation_master.py`](https://github.com/yagnadatta25/multi-goal-logistics-amr-with-hybrid-predictive-dwa-and-directional-safety-reflex-loops./blob/main/src/autonomous_logistics_sim/scripts/simulation_master.py) (Simulation Master), [`demo_results/analyze_run.py`](https://github.com/yagnadatta25/multi-goal-logistics-amr-with-hybrid-predictive-dwa-and-directional-safety-reflex-loops./blob/main/demo_results/analyze_run.py) (Run Analysis), [`src/autonomous_logistics_sim/scripts/dispatcher_node.py`](https://github.com/yagnadatta25/multi-goal-logistics-amr-with-hybrid-predictive-dwa-and-directional-safety-reflex-loops./blob/main/src/autonomous_logistics_sim/scripts/dispatcher_node.py) (Waypoint Dispatcher), [`src/autonomous_logistics_sim/maps/warehouse_map.yaml`](https://github.com/yagnadatta25/multi-goal-logistics-amr-with-hybrid-predictive-dwa-and-directional-safety-reflex-loops./blob/main/src/autonomous_logistics_sim/maps/warehouse_map.yaml) (Warehouse Map)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_mission["Mission and Navigation"]
  node_dispatcher["Waypoint Dispatcher<br/>[dispatcher_node.py]"]
  node_nav2["Nav2 Stack"]
  node_localization["AMCL Localization"]
  node_map["Warehouse Map<br/>[warehouse_map.yaml]"]
end

subgraph group_control["Predictive Safety Control"]
  node_master["Simulation Master"]
  node_lidar["LiDAR Tracking"]
  node_dwa["Predictive DWA"]
  node_collision["Collision Monitor"]
end

subgraph group_simulation["Simulation Environment"]
  node_robot["TurtleBot3 Robot"]
  node_gazebo["Gazebo Simulation"]
  node_world["Warehouse World<br/>[warehouse.world]"]
  node_obstacles["Moving Obstacles<br/>[obstacle_pacer.py]"]
end

subgraph group_observability["Visualization and Results"]
  node_telemetry["Telemetry Viewer"]
  node_analysis["Run Analysis<br/>[analyze_run.py]"]
end

node_operator(("Mission Goals"))

node_operator -->|"sets goals"| node_dispatcher
node_dispatcher -->|"sends waypoints"| node_nav2
node_map -->|"configures map"| node_nav2
node_localization -->|"provides pose"| node_nav2
node_nav2 -->|"proposes velocity"| node_master
node_master -->|"tracks detections"| node_lidar
node_master -->|"evaluates motion"| node_dwa
node_lidar -->|"supplies obstacle estimates"| node_dwa
node_master -.->|"publishes supervised velocity"| node_collision
node_collision -.->|"filters commands"| node_robot
node_master -->|"publishes velocity"| node_robot
node_gazebo -->|"simulates robot"| node_robot
node_world -->|"defines environment"| node_gazebo
node_obstacles -->|"commands obstacle"| node_gazebo
node_robot -->|"feeds sensors"| node_master
node_robot -->|"feeds sensors"| node_nav2
node_telemetry -->|"reads shared telemetry"| node_master
node_analysis -->|"analyzes recorded odometry"| node_robot
node_analysis -->|"analyzes run logs"| node_master

click node_dispatcher "https://github.com/yagnadatta25/multi-goal-logistics-amr-with-hybrid-predictive-dwa-and-directional-safety-reflex-loops./blob/main/src/autonomous_logistics_sim/scripts/dispatcher_node.py"
click node_map "https://github.com/yagnadatta25/multi-goal-logistics-amr-with-hybrid-predictive-dwa-and-directional-safety-reflex-loops./blob/main/src/autonomous_logistics_sim/maps/warehouse_map.yaml"
click node_master "https://github.com/yagnadatta25/multi-goal-logistics-amr-with-hybrid-predictive-dwa-and-directional-safety-reflex-loops./blob/main/src/autonomous_logistics_sim/scripts/simulation_master.py"
click node_lidar "https://github.com/yagnadatta25/multi-goal-logistics-amr-with-hybrid-predictive-dwa-and-directional-safety-reflex-loops./blob/main/src/autonomous_logistics_sim/scripts/simulation_master.py"
click node_dwa "https://github.com/yagnadatta25/multi-goal-logistics-amr-with-hybrid-predictive-dwa-and-directional-safety-reflex-loops./blob/main/src/autonomous_logistics_sim/scripts/simulation_master.py"
click node_world "https://github.com/yagnadatta25/multi-goal-logistics-amr-with-hybrid-predictive-dwa-and-directional-safety-reflex-loops./blob/main/src/autonomous_logistics_sim/worlds/warehouse.world"
click node_obstacles "https://github.com/yagnadatta25/multi-goal-logistics-amr-with-hybrid-predictive-dwa-and-directional-safety-reflex-loops./blob/main/src/autonomous_logistics_sim/scripts/obstacle_pacer.py"
click node_telemetry "https://github.com/yagnadatta25/multi-goal-logistics-amr-with-hybrid-predictive-dwa-and-directional-safety-reflex-loops./blob/main/src/autonomous_logistics_sim/scripts/telemetry_viewer.py"
click node_analysis "https://github.com/yagnadatta25/multi-goal-logistics-amr-with-hybrid-predictive-dwa-and-directional-safety-reflex-loops./blob/main/demo_results/analyze_run.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_dispatcher,node_nav2,node_localization,node_map toneBlue
class node_master,node_lidar,node_dwa,node_collision toneAmber
class node_robot,node_gazebo,node_world,node_obstacles toneMint
class node_telemetry,node_analysis toneRose
class node_operator toneIndigo
```

## Components

### Mission and Navigation

- [Waypoint Dispatcher](https://github.com/yagnadatta25/multi-goal-logistics-amr-with-hybrid-predictive-dwa-and-directional-safety-reflex-loops./blob/main/src/autonomous_logistics_sim/scripts/dispatcher_node.py): `src/autonomous_logistics_sim/scripts/dispatcher_node.py`
- **Nav2 Stack**
- **AMCL Localization**
- [Warehouse Map](https://github.com/yagnadatta25/multi-goal-logistics-amr-with-hybrid-predictive-dwa-and-directional-safety-reflex-loops./blob/main/src/autonomous_logistics_sim/maps/warehouse_map.yaml): `src/autonomous_logistics_sim/maps/warehouse_map.yaml`

### Predictive Safety Control

- [Simulation Master](https://github.com/yagnadatta25/multi-goal-logistics-amr-with-hybrid-predictive-dwa-and-directional-safety-reflex-loops./blob/main/src/autonomous_logistics_sim/scripts/simulation_master.py): `src/autonomous_logistics_sim/scripts/simulation_master.py`
- [LiDAR Tracking](https://github.com/yagnadatta25/multi-goal-logistics-amr-with-hybrid-predictive-dwa-and-directional-safety-reflex-loops./blob/main/src/autonomous_logistics_sim/scripts/simulation_master.py): `src/autonomous_logistics_sim/scripts/simulation_master.py`
- [Predictive DWA](https://github.com/yagnadatta25/multi-goal-logistics-amr-with-hybrid-predictive-dwa-and-directional-safety-reflex-loops./blob/main/src/autonomous_logistics_sim/scripts/simulation_master.py): `src/autonomous_logistics_sim/scripts/simulation_master.py`
- **Collision Monitor**

### Simulation Environment

- **TurtleBot3 Robot**
- **Gazebo Simulation**
- [Warehouse World](https://github.com/yagnadatta25/multi-goal-logistics-amr-with-hybrid-predictive-dwa-and-directional-safety-reflex-loops./blob/main/src/autonomous_logistics_sim/worlds/warehouse.world): `src/autonomous_logistics_sim/worlds/warehouse.world`
- [Moving Obstacles](https://github.com/yagnadatta25/multi-goal-logistics-amr-with-hybrid-predictive-dwa-and-directional-safety-reflex-loops./blob/main/src/autonomous_logistics_sim/scripts/obstacle_pacer.py): `src/autonomous_logistics_sim/scripts/obstacle_pacer.py`

### Visualization and Results

- [Telemetry Viewer](https://github.com/yagnadatta25/multi-goal-logistics-amr-with-hybrid-predictive-dwa-and-directional-safety-reflex-loops./blob/main/src/autonomous_logistics_sim/scripts/telemetry_viewer.py): `src/autonomous_logistics_sim/scripts/telemetry_viewer.py`
- [Run Analysis](https://github.com/yagnadatta25/multi-goal-logistics-amr-with-hybrid-predictive-dwa-and-directional-safety-reflex-loops./blob/main/demo_results/analyze_run.py): `demo_results/analyze_run.py`

### Other components

- **Mission Goals**

## Connections

- Mission Goals → Waypoint Dispatcher: sets goals (evidence: `src/autonomous_logistics_sim/scripts/dispatcher_node.py`)
- Waypoint Dispatcher → Nav2 Stack: sends waypoints (evidence: `src/autonomous_logistics_sim/scripts/dispatcher_node.py`)
- Warehouse Map → Nav2 Stack: configures map
- AMCL Localization → Nav2 Stack: provides pose (evidence: `README.md`)
- Nav2 Stack → Simulation Master: proposes velocity (evidence: `README.md`)
- Simulation Master → LiDAR Tracking: tracks detections (evidence: `README.md`)
- Simulation Master → Predictive DWA: evaluates motion (evidence: `README.md`)
- LiDAR Tracking → Predictive DWA: supplies obstacle estimates (evidence: `README.md`)
- Simulation Master → Collision Monitor: publishes supervised velocity (evidence: `README.md`)
- Collision Monitor → TurtleBot3 Robot: filters commands (evidence: `README.md`)
- Simulation Master → TurtleBot3 Robot: publishes velocity (evidence: `README.md`)
- Gazebo Simulation → TurtleBot3 Robot: simulates robot
- Warehouse World → Gazebo Simulation: defines environment
- Moving Obstacles → Gazebo Simulation: commands obstacle (evidence: `src/autonomous_logistics_sim/scripts/obstacle_pacer.py`)
- TurtleBot3 Robot → Simulation Master: feeds sensors (evidence: `README.md`)
- TurtleBot3 Robot → Nav2 Stack: feeds sensors (evidence: `README.md`)
- Telemetry Viewer → Simulation Master: reads shared telemetry (evidence: `src/autonomous_logistics_sim/scripts/telemetry_viewer.py`)
- Run Analysis → TurtleBot3 Robot: analyzes recorded odometry (evidence: `demo_results/analyze_run.py`)
- Run Analysis → Simulation Master: analyzes run logs (evidence: `demo_results/analyze_run.py`)
