RACECAR Tutorial [ICRA '19]


May 24, 2019 Montreal, Canada

Setting Up Your Computer


We will be working with both the RACECAR hardware and simulator today. Although basic interactions with the hardware require only SSH, the full experience requires a local installation of Robot Operating System (ROS) on a GNU/Linux machine. (Note: Although ROS recently started supporting an official Windows 10 build, it is new and thus untested with our platform.)

What is ROS?

Despite its name, the Robot Operating System is not actually a bona fide OS. Rather it is a set of robotics middleware built on top of GNU/Linux. ROS is most commonly used in conjunction with Ubuntu, as ROS releases are tied to Ubuntu releases. For example:

That being said, Debian is also well supported since Ubuntu is derived from it.

If you have never used ROS before, it is best thought of as a standardized pub/sub messaging protocol with some handy libraries and visualization tools.


The next few sections will walk you through getting your personal machine setup with ROS as either a native install, Docker install, or Virtual Machine.

If you already have ROS installed, you’re good to go! Just make sure you have the following ROS packages installed: velodyne, ackermann-msgs, joy, and serial. Installation instructions for these packages are included at the end of the Native ROS Install section.

Setup (Native ROS - Ubuntu/Debian)

Step 1: Install ROS

Based on your flavor of GNU/Linux, follow the linked installation instructions below. Be sure to install the ros-VERSION-desktop-full version of ROS.

There is an experimental ROS installation for Arch Linux. While we love Arch, we’ve found the ROS package unreliable. If you must, you can follow the experimental instructions here.

Step 2: Install Additional ROS Packages

After ROS installation completes, install these additional ROS packages:

# install on Ubuntu 18.04 & Debian Stretch
sudo apt install ros-melodic-velodyne ros-melodic-ackermann-msgs ros-melodic-joy ros-melodic-serial

# install on Ubuntu 16.04 & Debian Jessie
sudo apt install ros-kinetic-velodyne ros-kinetic-ackermann-msgs ros-kinetic-joy ros-kinetic-serial

Step 3: Install the racecar code

First make a racecar_ws:

mkdir -p ~/racecar_ws/src

Clone the racecar code:

cd ~/racecar_ws/src
git clone https://github.com/mit-racecar/racecar_simulator.git

Make the code:

cd ~/racecar_ws
source devel/setup.bash

Setup (Docker)

Step 1: Install Docker Community Edition (CE)

Based on your OS, follow the linked installation instructions below.

Step 2: Run the Docker Image

Start the docker image by running:

sudo docker run -ti --net=host racecar/racecar

This will download the docker image the first time it is run and will cache it for future use.

On some operating systems (OS X?) the --net=host flag does not properly forward ports. This can be fixed by manually specifying:

sudo docker run -tip 6080:6080 -p 5900:5900 racecar/racecar

For more instructions on using the docker image see here.

Setup (VMWare)

Unless you have a strong preference for VMs and your own copy of VMWare, we recommend using the Docker image. Docker CE is free, VMWare is not.

Step 1: Check VMWare is Installed

Confirm you have VMWare installed on your computer. We do not have product keys for this.

Step 2: Download the Image

You can download the RACECAR virtual machine here.

Step 3: Import and Run

Import and run the .ova file. This changes based on which copy of VMWare you personally own.