Skip to content

legalaspro/fastbot

Repository files navigation

Fastbot

ROS2 Humble • Docker • Nav2 • Cartographer

ROS 2 Humble License: MIT Docker Hub 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.

Fastbot Real Robot
Real Robot
Fastbot Simulation
Gazebo Simulation

Watch Demo on YouTube


Quick Start

Option A: Simulation (No Hardware)

# 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

Option B: Real Robot

# 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

Features

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

Repository Structure

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 Options

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

Ports

Port Service
6080 noVNC Desktop (RViz, Gazebo)
8000 WebApp
9090 ROSBridge WebSocket
11315 Web Video Server

Documentation

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

Hardware

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.


Credits

This project is inspired by The Construct's FastBot — an open-source ROS 2 robot kit for hands-on robotics learning.


License

MIT License — Copyright (c) 2025 Dmitri Manajev

About

Dockerized ROS2 env for Fastbot robot: Gazebo sim + real hardware (RPi), Nav2 SLAM, web UI & VPN remote access

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors