← Back to Blog
navigationnavigationmulti-robotoutdoormapfvda5050

Outdoor Navigation and Multi-Robot Coordination

GPS-denied navigation, terrain classification, multi-robot traffic management with VDA5050, and MAPF algorithms for robot fleet.

Nguyen Anh Tuan20 tháng 2, 202610 min read
Outdoor Navigation and Multi-Robot Coordination

From Indoor to Outdoor, From 1 Robot to Many

In previous 4 posts of this series, we went from SLAM to Nav2, learning-based navigation, and vision-language navigation. All focused on single robot operating indoors. But real industrial deployments demand more:

These are 2 hardest problems in real-world navigation, and topics of final post in this series.

Robot operating outdoors on complex terrain

Part 1: Outdoor Navigation

Challenges When Going Outside

Indoor navigation (Nav2 + LiDAR SLAM) works well because environment is structured: straight walls, flat floor, stable lighting. Outdoors is different story:

Challenge Indoor Outdoor
Terrain Flat Rough, slopes, mud, sand
GPS Not needed Might be unavailable (GPS-denied)
Weather Stable Rain, fog, bright sun
Dynamic obstacles People, carts Cars, animals, vegetation
Map Can pre-map Changes constantly
Lighting Stable Changes with time, weather

GPS-Denied Navigation

In many situations, GPS is unavailable or unreliable:

Solution: Sensor Fusion

Without GPS, robot relies on sensor fusion -- combining multiple information sources:

                ┌──────────┐
                │   IMU    │  ← Short-term accurate, long-term drift
                └────┬─────┘
                     │
┌──────────┐   ┌────▼─────┐   ┌──────────┐
│  LiDAR   │──▶│  Fusion  │◀──│ Camera   │
│  SLAM    │   │  (EKF/   │   │ (Visual  │
└──────────┘   │  Factor   │   │  Odom)   │
                │  Graph)  │   └──────────┘
┌──────────┐   └────┬─────┘
│  Wheel   │───────▶│
│  Odom    │        │
└──────────┘   ┌────▼─────┐
                │ Fused    │
                │ Pose     │
                └──────────┘

LIO-SAM (discussed in Part 1) is excellent for outdoor because it supports factor graph allowing adding any sensor: LiDAR, IMU, wheel odometry, and GPS (when available).

Visual Place Recognition

When robot revisits location, visual place recognition helps recognize and correct drift. Modern methods:

Terrain Classification

Outdoor robot must understand terrain to choose safe, efficient path:

Method

Semantic segmentation from camera:

# Use pre-trained model for terrain classification
import torch
from torchvision.models.segmentation import deeplabv3_resnet101

model = deeplabv3_resnet101(pretrained=True).eval()

# Terrain classes: road, grass, dirt, gravel, water, obstacle
# Fine-tune on off-road dataset (RUGD, RELLIS-3D)

Point cloud analysis from LiDAR:

Traversability map: combine visual + geometric into cost map for planning:

Traversability score = w1 * terrain_type + w2 * slope + w3 * roughness

This feeds into Nav2 costmap for planner to avoid dangerous terrain.

Outdoor SLAM: Solutions

Method Sensor Outdoor Performance Notes
LIO-SAM LiDAR + IMU Excellent Factor graph, optional GPS
FAST-LIO2 LiDAR + IMU Excellent Incremental kd-tree, fast
ORB-SLAM3 Camera + IMU Good (textured) Fails with low texture
VILENS Visual-Inertial-LiDAR Best Multi-sensor, most robust

Outdoor terrain classification and traversability mapping

Part 2: Multi-Robot Coordination

Why Multi-Robot?

One AMR does 1 m/s, carries 100 kg. Want throughput of 1000 deliveries/hour? Need 20-50 robots operating simultaneously. Now problems start:

VDA5050 -- Standard Protocol for AGV/AMR Fleet

VDA5050 is open communication standard between AGV/AMR and fleet management software, developed by VDA (German Auto Association) and VDMA (German Machine Builders).

Why VDA5050?

Before VDA5050, each manufacturer had proprietary protocol. Want 10 MiR robots + 5 KUKA robots in one warehouse? Need 2 fleet managers, can't talk to each other. VDA5050 solves with common protocol.

VDA5050 Architecture

┌─────────────────────────────────┐
│       Master Control            │  ← Fleet Management Software
│  (Fleet Manager / Supervisor)   │
└──────────┬──────────────────────┘
           │ MQTT (JSON messages)
           │
    ┌──────┼──────┬──────────┐
    │      │      │          │
┌───▼──┐┌──▼──┐┌──▼──┐  ┌───▼──┐
│AGV 1 ││AGV 2││AGV 3│  │AGV N │
│(MiR) ││(KUKA)││(Custom)│(Any) │
└──────┘└─────┘└─────┘  └──────┘

Main Messages

From Master Control → AGV:

{
  "headerId": 1,
  "timestamp": "2026-02-20T10:00:00Z",
  "version": "2.0.0",
  "manufacturer": "vnrobo",
  "serialNumber": "AMR-001",
  "orderId": "order-123",
  "orderUpdateId": 1,
  "nodes": [
    {
      "nodeId": "node-1",
      "sequenceId": 0,
      "released": true,
      "nodePosition": { "x": 10.5, "y": 3.2, "mapId": "warehouse-A" },
      "actions": [
        { "actionType": "pick", "actionId": "pick-1", "blockingType": "HARD" }
      ]
    },
    {
      "nodeId": "node-2",
      "sequenceId": 2,
      "released": true,
      "nodePosition": { "x": 15.0, "y": 3.2, "mapId": "warehouse-A" }
    }
  ],
  "edges": [
    {
      "edgeId": "edge-1",
      "sequenceId": 1,
      "startNodeId": "node-1",
      "endNodeId": "node-2",
      "released": true,
      "maxSpeed": 1.0
    }
  ]
}

From AGV → Master Control (State):

VDA5050 Advantages

MAPF -- Multi-Agent Path Finding

MAPF solves problem: find paths for multiple agents simultaneously such that no collisions and total cost optimized (minimize total path length or makespan).

Problem

Input:
- Graph G (map with nodes and edges)
- N agents, each with start and goal
- Constraint: 2 agents cannot occupy same node or swap positions

Output:
- Sequence of actions for each agent
- No conflicts
- Optimal (shortest total path length)

Difficulty: optimal MAPF is NP-hard when optimizing makespan. Practice needs fast, near-optimal algorithms.

CBS -- Conflict-Based Search

CBS (Sharon et al., 2015) is most widely used MAPF algorithm:

CBS Algorithm:
1. [Low-level]: Find shortest path for each agent (independent A*)
2. [High-level]: Check conflicts between paths
3. If conflict exists (2 agents at same location at same time):
   a. Create 2 child nodes: 
      - Node 1: forbid agent A at conflict location
      - Node 2: forbid agent B at conflict location
   b. Re-plan for forbidden agent
4. Repeat until no conflicts

Complexity: optimal but exponential worst case. With heuristics (ECBS, EECBS), runs fast for hundreds of agents.

Practice MAPF with Python

# Use python-mapf library
# pip install cbs-mapf

from cbs import CBSSolver

# Define map (0 = free, 1 = obstacle)
grid = [
    [0, 0, 0, 0, 0],
    [0, 1, 1, 0, 0],
    [0, 0, 0, 0, 0],
    [0, 0, 1, 1, 0],
    [0, 0, 0, 0, 0],
]

# Define agents: (start, goal)
agents = [
    ((0, 0), (4, 4)),  # Agent 0: top-left to bottom-right
    ((4, 0), (0, 4)),  # Agent 1: bottom-left to top-right
    ((2, 0), (2, 4)),  # Agent 2: mid-left to mid-right
]

solver = CBSSolver(grid, agents)
paths = solver.solve()

for i, path in enumerate(paths):
    print(f"Agent {i}: {path}")

MAPF in Practice

Algorithm Optimality Speed Scale Use case
CBS Optimal Slow (>50 agents) ~50 agents Research, small
ECBS Bounded sub-optimal Fast ~200 agents Production
Priority-Based Sub-optimal Very fast ~1000 agents Large warehouse
ORCA Local (reactive) Real-time Unlimited Dynamic obstacles

Traffic Management in Warehouse

MAPF solves offline planning. Real warehouse needs online traffic management:

Zone-Based Control

┌─────────┬─────────┬─────────┐
│ Zone A  │ Zone B  │ Zone C  │
│ (max 3  │ (max 2  │ (max 3  │
│ robots) │ robots) │ robots) │
├─────────┼─────────┼─────────┤
│ Zone D  │ Zone E  │ Zone F  │
│ (max 2  │ (max 1) │ (max 2  │
│ robots) │ ONE-WAY │ robots) │
└─────────┴─────────┴─────────┘

Deadlock Prevention

4 conditions for deadlock (Coffman):

  1. Mutual exclusion: only 1 robot per location
  2. Hold and wait: robot holds current and waits for next
  3. No preemption: cannot force robot to back up
  4. Circular wait: A waits for B, B waits for C, C waits for A

Solution: break condition 4 (circular wait) with priority ordering -- lower ID robot always defers.

Open-RMF -- Fleet Management for ROS 2

Open-RMF (Open Robotics Middleware Framework) is ROS 2 fleet management framework supporting multi-robot coordination.

# Install Open-RMF
sudo apt install ros-humble-rmf-demos

# Launch demo with 2 fleets (TinyRobot + DeliveryRobot)
ros2 launch rmf_demos office.launch.xml

Open-RMF provides:

See Open-RMF Fleet Management for details.

Multi-robot fleet coordination in warehouse

Combining Outdoor + Multi-Robot

Some applications combine both:

Autonomous Agriculture

Last-Mile Delivery

Search and Rescue

Wrapping Up Modern Navigation Series

Over 5 posts, we covered entire landscape of modern robot navigation:

Post Topic Keywords
Part 1 SLAM EKF, Cartographer, LIO-SAM, ORB-SLAM3
Part 2 Nav2 Path planning, behavior trees, costmap
Part 3 Learning-based GNM, ViNT, NoMaD, diffusion
Part 4 VLN R2R, LLM planning, NaVILA
Part 5 Outdoor + Multi-Robot GPS-denied, VDA5050, MAPF

Key Takeaways:


Related Posts

Related Posts

ResearchVision-Language Navigation: Robot đi theo chỉ dẫn
vlnnavigationllmvision-languagePart 4

Vision-Language Navigation: Robot đi theo chỉ dẫn

Khám phá VLN -- cách robot hiểu và thực hiện chỉ dẫn ngôn ngữ tự nhiên, từ R2R benchmark đến NaVILA và LLM-based planning.

16/2/20269 min read
ResearchLearning-based Navigation: GNM, ViNT và NoMaD
navigationdeep-learningfoundation-modelsvintPart 3

Learning-based Navigation: GNM, ViNT và NoMaD

Khám phá foundation models cho robot navigation -- GNM, ViNT, NoMaD từ Berkeley và cách chúng thay đổi cách robot di chuyển.

12/2/202610 min read
ROS 2 từ A đến Z (Phần 3): Nav2 — Robot tự hành đầu tiên
ros2tutorialamrnavigationPart 3

ROS 2 từ A đến Z (Phần 3): Nav2 — Robot tự hành đầu tiên

Cấu hình Nav2 stack để robot tự lập bản đồ SLAM và di chuyển tự động — từ simulation đến thực tế.

11/2/202611 min read