Fleet Coordinator
— Multi-Robot Navigation in Isaac Sim
A ROS 2 package that coordinates three Nova Carter robots navigating a simulated hospital environment, resolving inter-robot collisions entirely through the Nav2 action interface — no direct velocity commands.
Metadata
Tech Stack
Concept
Fleet Coordinator enables three NVIDIA Nova Carter robots to navigate a simulated hospital environment together without colliding. Rather than writing a custom motion planner or issuing direct cmd_vel commands, the coordinator node communicates exclusively through the Nav2 action server — each robot keeps using its own planner and controller, and the coordinator simply decides when a lower-priority robot should pause or resume its goal.
This keeps the system clean: no fighting between a custom controller and Nav2's own obstacle avoidance, no jittery velocity overrides. Robots either have an active goal or they don't.
Architecture
The coordinator node reads each robot's pose from its AMCL topic and tracks pairwise distances in real time. A static priority order — carter1 > carter2 > carter3 — decides who yields. When a lower-priority robot gets within 3 meters of a higher-priority one, its current Nav2 goal is cancelled and it holds position; once the distance opens back up past 5 meters, it's sent a fresh goal toward its original destination. The 3m/5m hysteresis gap prevents robots from rapidly toggling between stopped and moving when hovering near the threshold.
Demo
Three Nova Carter robots navigating a simulated hospital floor in Isaac Sim. Each robot keeps its own Nav2 goal; the coordinator only steps in to pause/resume based on proximity.
Next Steps & Future Work
-
arrow_forward
Dynamic PriorityReplace the static priority order with task-based priority (e.g. urgency of delivery, battery level) so the fleet adapts to context instead of a fixed hierarchy.
-
arrow_forward
N-Robot ScalingMove from pairwise distance checks to a spatial index (e.g. grid/KD-tree) so the coordinator scales past a handful of robots without an O(n²) blowup.
-
arrow_forward
Real-Hardware ValidationPort the coordinator from Isaac Sim onto physical Nova Carter units to validate the hysteresis thresholds against real sensor noise and latency.
Source
Coordinator node, launch files, and ROS 2 package structure all in Python.
open_in_new github.com/MadiyarM/fleet_coordinator