A streamlined development environment for ROS 2 projects. It automates ROS 2
setup, manages dependencies via rosdep, and persists build artefacts on the
host.
A minimal workshop:
# workshop.yaml
name: ros2-jazzy
base: [email protected]
sdks:
- name: ros2-minimal
channel: jazzy/stable
actions:
build: |
colcon buildThis demonstrates a basic ROS 2 build workflow with persistent build artefacts.
-
No prerequisite SDKs are required.
-
Clone your ROS 2 source code into your project directory (by default,
colconuses~/workspace/src, so no extra configuration is needed):git clone https://github.com/ros2/examples -b jazzy workshop shell colcon build
-
On launch, the SDK installs ROS 2 tools, configures
colcon, and runsrosdep installto fetch your project's dependencies. This may take several minutes on first launch.
Once the workshop is ready:
workshop shell
colcon buildBuild artefacts are stored in ~/workspace/ inside the workshop, mapped to
your host via the colcon-artefacts mount plug.
To see where the build artifacts are stored on the host:
workshop infoFrom within the workshop shell:
workshop shell
colcon test
colcon test-result --allUse ros2 run and ros2 launch to execute your nodes as you would with a
standard ROS 2 installation.
- Interface:
mount - Workshop target:
/home/workshop/.ros - Purpose: Persists ROS 2 runtime configuration and log files between sessions.
- Interface:
mount - Workshop target:
/home/workshop/workspace(24.04) or/home/workshop/colcon(22.04) - Purpose: Stores
colconbuild outputs, install directories, and logs so builds persist across workshop updates.
- Interface:
mount - Workshop target:
/home/workshop/.cache/ccache - Purpose: Caches compiled objects to speed up subsequent builds.
- Interface:
gpu - Purpose: Provides GPU pass-through for visualization tools and GPU-accelerated computation (e.g., Gazebo, RViz).
- Interface:
desktop - Purpose: Enables GUI application support for ROS 2 visualization and simulation tools.
This SDK doesn't define any slots.
- ROS community forum: ROS Discourse
- Workshop forum: Discourse
- Please review our Code of Conduct before participating.
All contributions, including code, documentation updates, and issue reports, are welcome!
- See
CONTRIBUTING.mdfor guidelines. - Open issues or pull requests on the official repository.
Copyright 2025 Canonical Ltd.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 (GPLv3) as published by the Free Software Foundation.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.