Skip to content
Relational graph learning for crowd navigation
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
crowd_nav Merge branch 'changan/fix_value_update' Jul 16, 2019
crowd_sim fix a bug in loading state dict Jun 21, 2019
.gitignore modified: policy/ Mar 17, 2019
.pylintrc reformat the codes Sep 28, 2018 update readme Oct 2, 2019 add residual connection Apr 13, 2019


This repository contains the codes for our paper, which is in submission to ICRA 2020. For more details, please refer to the preprint


We present a relational graph learning approach for robotic crowd navigation using model-based deep reinforcement learning that plans actions by looking into the future. Our approach reasons about the relations between all agents based on their latent features and uses a Graph Convolutional Network to encode higher-order interactions in each agent's state representation, which is subsequently leveraged for state prediction and value estimation. The ability to predict human motion allows us to perform multi-step lookahead planning, taking into account the temporal evolution of human crowds. We evaluate our approach against a state-of-the-art baseline for crowd navigation and ablations of our model to demonstrate that navigation with our approach is more efficient, results in fewer collisions, and avoids failure cases involving oscillatory and freezing behaviors.

Method Overview


  1. Install Python-RVO2 library
  2. Install socialforce library
  3. Install crowd_sim and crowd_nav into pip
pip install -e .

Getting Started

This repository are organized in two parts: crowd_sim/ folder contains the simulation environment and crowd_nav/ folder contains codes for training and testing the policies. Details of the simulation framework can be found here. Below are the instructions for training and testing policies, and they should be executed inside the crowd_nav/ folder.

  1. Train a policy.
python --policy rgl
  1. Test policies with 500 test cases.
python --policy rgl --model_dir data/output --phase test
  1. Run policy for one episode and visualize the result.
python --policy rgl --model_dir data/output --phase test --visualize --test_case 0
  1. Plot training curve
python utils/ data/output/output.log

Video Demo


If you find the codes or paper useful for your research, please cite the following papers:

    title={Relational Graph Learning for Crowd Navigation},
    author={Changan Chen and Sha Hu and Payam Nikdel and Greg Mori and Manolis Savva},
    title={Crowd-Robot Interaction: Crowd-aware Robot Navigation with Attention-based Deep Reinforcement Learning},
    author={Changan Chen and Yuejiang Liu and Sven Kreiss and Alexandre Alahi},
You can’t perform that action at this time.