This repository provides a ready-to-use Docker-based ROS 2 Humble development environment for Windows and Linux machines (amd based systems) for TurtleBot3 simulation and development.
It includes:
- ROS 2 Humble preinstalled with navigation, SLAM, teleop, Gazebo, and visualization packages
- VS Code Dev Container configuration with useful extensions
- Integrated noVNC support for GUI access from your browser
- Persistent build and install caches for faster rebuilds
Whether you're running on Linux, macOS, or Windows, this container lets you start working with TurtleBot development in minutes.
- Docker (with your user in the
dockergroup) - Visual Studio Code
- Dev Containers extension
git clone --branch main --single-branch https://github.com/RobotTeaching/UON-CS-robotlab-simulation-container.gitBefore opening the devcontainer, make sure the shared Docker network and noVNC service are running.
Run:
cd ~/UON-CS-robotlab-simulation-container/src/.devcontainer/
./start_vnc.sh startThis will:
- Create a
rosDocker network if it doesn't exist - Launch a
theasp/novnc:latestcontainer mapped tohttp://localhost:8080
Once running, open:
➡ http://localhost:8080/vnc.html and click Connect to access the container’s desktop GUI.
Launch VS Code → open the src/ directory → press Ctrl+Shift+P → select:
Dev Containers: Reopen in Container
VS Code will now build and launch the ROS 2 development container, automatically attaching it to the ros network so it can reach the noVNC container.
Inside the VS Code terminal:
source /opt/ros/humble/setup.bash
ros2 topic listIf ROS 2 is installed correctly, you’ll see a list of topics (or an empty list if nothing is publishing).
| Issue | Solution |
|---|---|
| Permission denied: docker | Add your user to the docker group:sudo usermod -aG docker $USER && newgrp docker |
| Gazebo spawn service failed | Don’t Ctrl+C — let it fail completely, then close and restart. |
| Cannot connect to noVNC | Run ./start_novnc.sh status to check if the container is running. |
| Unable to create file [..]: Filename too long on clone | Run git config --system core.longpaths true in a administrator terminal. |
| ASLA error or any other gazebo error | Press Ctrl + Shift + P, choose Reopen folder locally and then again Ctrl + Shift + P and mow choose Rebuild and Reopen in container |
- Default user inside container:
team-beta - Workspace is mounted to
/home/ros2_ws/src - Network:
ros(shared between devcontainer and noVNC container) - GUI apps (RViz2, Gazebo) accessible via browser at
http://localhost:8080/vnc.html - Includes:
- Navigation2, SLAM Toolbox, Teleop
- Gazebo + plugins
- Cartographer, RViz2
- VS Code extensions preinstalled for:
- ROS
- C++
- Python
- Git integration