Skip to main content

Welcome to TurtleBot3 ROS2 Jazzy Dev Container

This project provides a complete, ready-to-use ROS2 Jazzy development environment running inside a Docker container. No need to install ROS2, Gazebo, or manage dependencies on your host system—everything runs in an isolated, reproducible environment that works identically on Windows, macOS, and Linux.

Prerequisites

Required software and system requirements to get started

Installation

Step-by-step guide to install Docker, VS Code, and set up the project

Quick start

Launch your first TurtleBot3 simulation in minutes

Development

Learn how to build packages and develop with ROS2

Features

This development container comes fully equipped with everything you need for robotics development:
  • ROS2 Jazzy on Ubuntu 24.04 Noble with complete desktop installation
  • Gazebo Harmonic simulator with GPU support for realistic physics simulation
  • TurtleBot3 Burger robot packages ready to use
  • Navigation2 stack for autonomous navigation
  • SLAM with Cartographer for mapping and localization
  • noVNC Desktop for browser-based GUI access at http://localhost:6080
  • Pre-configured VS Code extensions for ROS2, Python, and C++ development
  • Platform-agnostic design works seamlessly on Windows, macOS, and Linux

How it works

Technology stack

Docker Containers: Lightweight, portable environments that package your entire development setup (OS, ROS2, Gazebo, dependencies) into a reproducible unit that runs identically everywhere. VS Code Dev Containers: Develop inside a Docker container seamlessly—your code editor, terminal, and debugger work as if running locally. ROS2 (Robot Operating System): A flexible framework for robot software providing libraries and tools for robot application development. Gazebo: A 3D robot simulator with accurate physics, sensors, and actuator simulation. noVNC: Browser-based VNC client for accessing a full Linux desktop through your web browser without installing additional software.

Why use containers?

Consistency

Everyone gets the exact same environment, eliminating “works on my machine” issues

Isolation

No conflicts with other software on your system—keep your host clean

Portability

Works identically on Windows, macOS, and Linux without platform-specific changes

Version control

The entire environment is defined in code and can be versioned with your project

Data persistence

Your workspace folder is “mounted” into the container:
  • Files you create and edit are saved on your real computer
  • Deleting the container doesn’t delete your code
  • Files are accessible from both inside and outside the container
The container provides the environment, but your code lives safely on your host machine.

Environment configuration

The development container automatically configures these environment variables:
ROS_DISTRO=jazzy                    # ROS2 version
ROS_DOMAIN_ID=30                    # Network isolation
TURTLEBOT3_MODEL=burger             # Robot model
RMW_IMPLEMENTATION=rmw_cyclonedds_cpp # DDS implementation
GZ_VERSION=harmonic                 # Gazebo version
DISPLAY=:1                          # VNC display
QT_QPA_PLATFORM=xcb                 # Qt platform

Quick launch aliases

The container includes pre-configured shortcuts for common tasks:
AliasDescription
cbBuild workspace with colcon
sbSource workspace environment
tb3_emptyLaunch empty world
tb3_worldLaunch TurtleBot3 world (obstacles)
tb3_houseLaunch house environment
tb3_teleopKeyboard teleoperation control
tb3_slamStart SLAM with Cartographer
tb3_navStart Navigation2

Next steps

1

Check prerequisites

Verify your system meets the requirements before installation
2

Install the tools

Follow the installation guide to set up Docker and VS Code
3

Launch simulation

Use the quick start guide to run your first TurtleBot3 simulation

Community and support

This project is maintained by Prakash Aryan and welcomes contributions from the community.

Build docs developers (and LLMs) love