ROS2 Humble • Docker • Nav2 • Cartographer
Complete ROS2 development environment for the Fastbot differential drive robot. Develop in simulation, deploy to real hardware — all containerized with Docker and VS Code devcontainers.
Real Robot |
Gazebo Simulation |
# 1. Clone the repo
git clone https://github.com/legalaspro/fastbot-ros2-docker.git
cd fastbot-ros2-docker
# 2. Open in VS Code → "Reopen in Container" → "Fastbot ROS2 Simulation"
# 3. In devcontainer terminal:
ros2 launch fastbot_gazebo one_fastbot_warehouse.launch.py
# 4. Open http://localhost:6080 for noVNC desktop with RViz/Gazebo# On Raspberry Pi:
cd ~/fastbot/docker/real
docker compose up -d robot
# On Dev Machine: Open VS Code → "Reopen in Container" → "Fastbot Real Robot (Remote)"
# Requires VPN setup - see docker/real/README-REMOTE.md| Feature | Simulation | Real Robot |
|---|---|---|
| Gazebo World | ✅ Warehouse environment | — |
| SLAM | ✅ Cartographer | ✅ Cartographer |
| Navigation | ✅ Nav2 | ✅ Nav2 |
| Web Interface | ✅ ROSBridge + WebApp | ✅ ROSBridge + WebApp |
| RViz | ✅ via noVNC | ✅ via noVNC |
| Camera | ✅ Simulated | ✅ Raspberry Pi Camera |
| LiDAR | ✅ Simulated | ✅ Leishen N10 |
| Remote Access | — | ✅ Tailscale/Husarnet VPN |
fastbot-ros2-docker/
├── .devcontainer/ # VS Code devcontainer configs
│ ├── dev/ # Simple development
│ ├── simulation/ # Gazebo simulation
│ ├── real/ # Real robot (Tailscale)
│ └── real-husarnet/ # Real robot (Husarnet)
│
├── docker/ # Docker files
│ ├── real/ # Pi + remote containers
│ └── simulation/ # Gazebo containers
│
├── fastbot_description/ # URDF, meshes, robot model
├── fastbot_bringup/ # Real robot launch files
├── fastbot_gazebo/ # Simulation worlds & launch
├── fastbot_slam/ # Cartographer & Nav2 configs
├── fastbot_webapp/ # Web UI (roslibjs, ros3d)
│
├── serial_motor/ # Motor driver (Arduino bridge)
├── serial_motor_msgs/ # Motor message definitions
├── Lslidar_ROS2_driver/ # LiDAR driver
├── tf2_web_republisher_py/ # TF for web clients
│
├── docs/ # Documentation
└── Makefile # Build shortcuts
| Devcontainer | Purpose | Use Case |
|---|---|---|
| Fastbot Dev (Simple) | Basic ROS2 development | Package development, testing |
| Fastbot ROS2 Simulation | Full Gazebo simulation | SLAM, Nav2 testing, WebApp dev |
| Fastbot Real Robot (Remote) | Connect to Pi via Tailscale | Control real robot remotely |
| Fastbot Real Robot (Husarnet) | Connect to Pi via Husarnet | Self-hosted VPN option |
| Port | Service |
|---|---|
| 6080 | noVNC Desktop (RViz, Gazebo) |
| 8000 | WebApp |
| 9090 | ROSBridge WebSocket |
| 11315 | Web Video Server |
| Guide | Description |
|---|---|
| Simulation README | Gazebo setup and usage |
| Real Robot README | Pi setup, device mapping |
| Remote Access README | VPN setup (Tailscale/Husarnet) |
| SLAM README | Mapping and navigation |
The Fastbot is a differential drive robot with:
- Raspberry Pi 4/5 — Main computer
- Arduino Nano — Motor controller (ros_arduino_bridge)
- Leishen N10 LiDAR — 360° laser scanner
- Raspberry Pi Camera — Vision
- DC Motors with Encoders — Differential drive
See fastbot_ros2 docs for build guides and 3D printing files.
This project is inspired by The Construct's FastBot — an open-source ROS 2 robot kit for hands-on robotics learning.
MIT License — Copyright (c) 2025 Dmitri Manajev

