Getting Started
This page takes you from a new PC to a driving robot. The steps are the same for both robots, because they share their code in the diffbot repository, and both run ROS 1 Noetic:
Hardware describes both robots and what you need to build them.
The steps below build on each other. The first three set up your PC and run the robot in simulation, without any hardware. The real robot continues with step 4, and your PC is then already prepared for it. Go to step 1.
Quick start, if Docker and VS Code are already set up
In a Linux terminal, or on Windows in the Ubuntu in WSL 2:
1 2 | |
In VS Code, choose Reopen in Container; the first start takes a few minutes. Then, in a terminal in VS Code, start the simulation:
1 | |
If something is missing, follow the steps below.
Simulation
1. Set up your PC
Linux, or Windows with WSL 2, and Docker: see Set Up Your PC.
2. Get the code
Install Git and clone diffbot: see Git and GitHub.
3. Run the simulation
The dev container has ROS Noetic, Gazebo and RViz, and builds the workspace: see Use the Dev Container. With that, your PC is also ready for the real robot.
Real robot
4. Build the robot
The Components to buy, and for Remo the hardware setup: 3D printing, electronics and assembly.
5. Set up the robot's computer
The robot's computer is a Raspberry Pi 4 B:
- Raspberry Pi Setup: Ubuntu MATE 20.04, and an SSH server so you can log in from your PC.
- ROS Setup: ROS Noetic and catkin tools.
- Hardware Interfaces: USB, GPIO and I2C for the motor driver and the sensors.
- Packages Setup: install Git, clone diffbot, and build the workspace with its dependencies.
Jetson Nano Setup describes an older setup with Ubuntu 18.04 and ROS Melodic.
6. Flash the microcontroller
The microcontroller, a Teensy, drives the motors and reads the encoders.
7. Connect your PC and the robot
See ROS Network Setup.
8. Drive the robot
Bring up the hardware, then map and navigate, as described in the diffbot README under Navigating and Mapping on the real Robot.
What you need
| Simulation | Real robot | |
|---|---|---|
| PC | Linux, for example Ubuntu 24.04; or Windows 10 build 19044 or later, or Windows 11, with WSL 2 | The same. With Windows, connecting to the robot needs Windows 11 22H2 or later (why) |
| Robot | – | DiffBot or Remo parts, a Raspberry Pi 4 B and a Teensy, see Components |
| 3D printing | – | For Remo: a 3D printer with a build volume of about 15×15×15 cm, or a print service. The STL files come from the Gumroad download or Remo Insiders |
ROS on your PC without the container
If you prefer to install ROS directly on an Ubuntu 20.04 PC: ROS Setup, then Packages Setup. The dev container is the recommended way, because it sets up the same environment for everyone.
Comments
Comments are GitHub Discussions, shown with giscus. Loading them connects to giscus.app (hosted by Vercel, USA) and GitHub (USA); you need a GitHub account to comment.

