Skip to content
[ICRA19] Crowd-aware Robot Navigation with Attention-based Deep Reinforcement Learning
Branch: master
Clone or download
Latest commit fe12f1a Apr 12, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
crowd_nav fix a bug in reward calculation in IL phase Mar 16, 2019
crowd_sim fix a bug in one step lookahead Mar 14, 2019
.gitignore reformat the codes Sep 28, 2018
.pylintrc reformat the codes Sep 28, 2018 Update Apr 11, 2019 modify setup and requirements and add pylintrc support [currently fai… Sep 27, 2018


This repository contains the codes for our ICRA 2018 paper. For more details, please refer to the paper Crowd-Robot Interaction: Crowd-aware Robot Navigation with Attention-based Deep Reinforcement Learning.


Mobility in an effective and socially-compliant manner is an essential yet challenging task for robots operating in crowded spaces. Recent works have shown the power of deep reinforcement learning techniques to learn socially cooperative policies. However, their cooperation ability deteriorates as the crowd grows since they typically relax the problem as a one-way Human-Robot interaction problem. In this work, we want to go beyond first-order Human-Robot interaction and more explicitly model Crowd-Robot Interaction (CRI). We propose to (i) rethink pairwise interactions with a self-attention mechanism, and (ii) jointly model Human-Robot as well as Human-Human interactions in the deep reinforcement learning framework. Our model captures the Human-Human interactions occurring in dense crowds that indirectly affects the robot's anticipation capability. Our proposed attentive pooling mechanism learns the collective importance of neighboring humans with respect to their future states. Various experiments demonstrate that our model can anticipate human dynamics and navigate in crowds with time efficiency, outperforming state-of-the-art methods.

Method Overview


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

Getting started

This repository is organized in two parts: gym_crowd/ 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 sarl
  1. Test policies with 500 test cases.
python --policy orca --phase test
python --policy sarl --model_dir data/output --phase test
  1. Run policy for one episode and visualize the result.
python --policy orca --phase test --visualize --test_case 0
python --policy sarl --model_dir data/output --phase test --visualize --test_case 0
  1. Visualize a test case.
python --policy sarl --model_dir data/output --phase test --visualize --test_case 0
  1. Plot training curve.
python utils/ data/output/output.log

Simulation Videos


Learning Curve

Learning curve comparison between different methods in an invisible setting.


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

Author = {Changan Chen and Yuejiang Liu and Sven Kreiss and Alexandre Alahi},
Title = {Crowd-Robot Interaction: Crowd-aware Robot Navigation with Attention-based Deep Reinforcement Learning},
Year = {2018},
Eprint = {arXiv:1809.08835},
You can’t perform that action at this time.