Skip to content

Latest commit

 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ROS2 Bootcamp

Four-session ROS2 bootcamp covering the full arc from mental model to autonomous robot behavior.

Sessions

# Title Core Skill
1 Mental Model + Survival Skills Nodes, topics, CLI tools
2 Build Real ROS Nodes Publisher, subscriber, colcon workspace
3 Simulation and Visualization Gazebo, RViz2, sensor topics
4 Integration Project Closed-loop system: sensor → decision → action

Quick Start

All sessions run in the same Docker container. No ROS2 installation needed on the student machine — only Docker.

First time only — build the image (~10 min)

cd docker/
docker compose build

Start any session

bash docker/start.sh 1     # Session 1
bash docker/start.sh 2     # Session 2
bash docker/start.sh 3     # Session 3
bash docker/start.sh 4     # Session 4

Open a terminal in the running container

docker exec -it ros2_bootcamp bash

Open as many terminals as needed — each docker exec opens a new one.

Stop

bash docker/start.sh stop

Repository Structure

ROS_bootcamp/
├── README.md
├── docker/                     ← Shared Docker setup (build once, use for all sessions)
│   ├── Dockerfile
│   ├── docker-compose.yml
│   ├── entrypoint.sh
│   ├── patch_worlds.py
│   └── start.sh
├── session_01/
│   ├── README.md               ← Session 1 outline
│   └── workspace/              ← Files available inside container at ~/workspace
│       ├── demo_publisher.py
│       ├── demo_subscriber.py
│       └── modify_me.py
├── session_02/
│   ├── README.md               ← Session 2 outline
│   └── workspace/
│       ├── fake_sensor.py
│       ├── processor.py
│       └── processor_todo.py
├── session_03/
│   ├── README.md               ← Session 3 outline
│   └── workspace/
│       ├── tb3_sim.launch.py
│       ├── scan_subscriber.py
│       ├── wall_follower_solution.py
│       ├── wall_follower_todo.py
│       └── ...
└── session_04/
    ├── README.md               ← Session 4 outline
    └── workspace/
        ├── obstacle_avoider_todo.py
        └── obstacle_avoider_solution.py

Prerequisites

  • Ubuntu (20.04 or 22.04)
  • Docker + Docker Compose
  • For sessions 3 and 4: a display (GUI required for Gazebo + RViz2)

Docker install

curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
# Log out and back in
docker run hello-world   # verify

Native ROS2 (Alternative)

If a student has ROS2 Humble installed natively:

# Install TB3 packages (needed for sessions 3 and 4)
sudo apt install ros-humble-turtlebot3 ros-humble-turtlebot3-simulations ros-humble-gazebo-ros-pkgs

# Set environment
export TURTLEBOT3_MODEL=waffle
export LIBGL_ALWAYS_SOFTWARE=1

# Run setup check (session 3 only)
bash session_03/workspace/setup_check.sh

Sessions 1 and 2 only need ROS2 Humble — no extra packages.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages