← all repositories
vita-epfl/CrowdNav

Teaching robots to read a room full of pedestrians

A reinforcement learning approach that models how groups of humans actually influence each other, not just how they react to the robot.

719 stars Python Domain AppsML Frameworks
CrowdNav
Velocity · 7d
+0.2
★ / day
Trend
steady
star history

What it does

CrowdNav trains a robot to navigate through dense crowds using deep reinforcement learning. The twist: instead of treating every pedestrian as an independent obstacle that only responds to the robot, it models how humans interact with each other too. The code provides a simulation environment (gym_crowd/) and training/testing scripts (crowd_nav/) for several policies, including their proposed SARL method and a baseline ORCA implementation.

The interesting bit

The self-attention mechanism is the core insight. Rather than hand-crafting rules for crowd dynamics, the model learns which neighboring humans matter collectively for predicting future states. It’s the difference between a robot that reacts to individuals and one that reads the room.

Key highlights

  • Attention-based pooling over pairwise human-human and human-robot interactions
  • Gym-style simulation environment with ORCA, CADRL, LSTM-RL, and SARL policies for comparison
  • Training and testing pipelines included, with visualization support for single episodes
  • ICRA 2019 paper with follow-up work extending the approach (Relational Graph Learning, Social NCE)
  • ~720 stars, suggesting reasonable adoption in the crowd navigation research community

Caveats

  • Requires Python-RVO2 dependency, which is a separate C++ binding install
  • The README notes performance deteriorates as crowds grow; the attention mechanism helps but doesn’t eliminate the scaling problem
  • No explicit mention of real-world deployment or sim-to-real transfer in the provided sources

Verdict

Worth a look if you’re doing research in socially-aware robot navigation or multi-agent reinforcement learning. Skip it if you need a production-ready navigation stack for actual hardware today.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.