Skip to content

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:

  • DiffBot from the front, with its RPLidar, camera and ultrasonic sensor

    DiffBot: your own two- or four-wheeled differential drive robot.

  • Remo with its 3D printed frame, RPLidar, Raspberry Pi and camera

    Remo: a modular platform based on NVIDIA's JetBot, with a 3D printed frame.

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
git clone https://github.com/ros-mobile-robots/diffbot.git
code diffbot

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
roslaunch diffbot_control diffbot.launch

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:

  1. Raspberry Pi Setup: Ubuntu MATE 20.04, and an SSH server so you can log in from your PC.
  2. ROS Setup: ROS Noetic and catkin tools.
  3. Hardware Interfaces: USB, GPIO and I2C for the motor driver and the sensors.
  4. 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.