Teaching robots to not bump into each other, the hard way
A 2018 MIT project that trained ground robots to dodge moving obstacles using deep reinforcement learning, wrapped in a ROS package with a side of TensorFlow 1.x nostalgia.

What it does
This is a ROS package that implements a collision-avoidance policy for ground robots, trained via deep RL to navigate among dynamic, decision-making agents. The core value is in network.py and the pre-trained TensorFlow checkpoints — a ready-to-evaluate policy from an IROS 2018 paper. There’s also a ROS node that was tested on a Clearpath Jackal robot, though the authors are upfront that it’s tightly coupled to their system.
The interesting bit
The authors trained the policy with goals under 10 meters away, which means the robot thinks in sprints, not marathons. For longer journeys you’d need to feed it local subgoals yourself — a charmingly honest limitation that most papers bury. The Jupyter notebook demo runs in a Docker container with nvidia-docker, which tells you exactly when this code was born.
Key highlights
- Pre-trained TensorFlow model and checkpoints included, so you can benchmark against it directly
- Jupyter notebook (
ga3c_cadrl_demo.ipynb) provides a minimal working example without ROS overhead - Docker setup provided, though it expects
nvidia-docker(the pre-Docker-GPU era) - ROS node subscribes to pose, velocity, goal, and obstacle clusters; publishes commanded twist
- Datasets and test scenarios available via Dropbox for training your own networks
Caveats
- TensorFlow 1.4.0 — you’ll need to resurrect some old Python environments
- ROS Kinetic on Ubuntu 16.04; the authors note the ROS node “may not be particularly useful for other systems”
- Several topics marked TODO in the README, suggesting the ROS interface isn’t fully polished
Verdict
Grab this if you’re doing collision-avoidance research and need a published baseline to beat. Skip it if you want a drop-in navigation module for a modern ROS 2 robot — this is research code with 2018 dependencies, not a product.