← all repositories
mit-acl/cadrl_ros

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.

709 stars Python AgentsDomain AppsML Frameworks
cadrl_ros
Velocity · 7d
+0.2
★ / day
Trend
steady
star history

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.

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