This is the development workspace for Robotics Summer School 2025.
Use devcontainer to open this workspace. 🐳
gitman install
Note: For Linux users, please install Docker Engine instead of Docker Desktop. See Docker Engine installation guide.
[Recommended] Pull from github container registry:
docker pull ghcr.io/ethz-robotx/smb_ros2_workspace:main
or
To build the Docker image manually:
docker build --file .github/docker/Dockerfile --tag ghcr.io/ethz-robotx/smb_ros2_workspace:main .
For optimal performance with high-bandwidth topics (like camera feeds), run this configuration script on your Ubuntu host machine (not inside the container):
sudo ./scripts/setup/setup-desktop-host.sh
- Install the "Dev Containers" extension in VSCode
- Open the command palette (Ctrl+Shift+P)
- Select "Dev Containers: Reopen in Container"
- VSCode will automatically:
- Pulls the base image
- Build the container if not already built
- Mount your workspace
- Install all required extensions
- Configure the development environment
Note: Make sure Docker is running on your system before opening the dev container.
The workspace provides a convenient alias for recording ROS2 topics to MCAP format:
smb_ros_record [OPTIONS] [SUFFIX]
Options:
-t, --topics
: Space-separated list of topics to record-i, --ignore
: Space-separated list of topics to ignore-a, --all
: Record all topics-h, --help
: Show help message
Examples:
# Record specific topics
smb_ros_record -t '/cmd_vel /odom /imu/data'
# Record all topics except some
smb_ros_record -a -i '/camera/image_raw /diagnostics'
# Record all topics with a suffix
smb_ros_record -a test # Creates smb_bag_TIMESTAMP_test
Build specific packages and their dependencies:
smb_build_packages_up_to <package_name>
This command will build the specified package and all its dependencies using colcon.
TMux is a terminal multiplexer that allows you to manage multiple terminal sessions from a single window. It is already installed in the devcontainer. To start a new session, run tmux
in the terminal.
Command key - Ctrl+a (similar to screen)
The following needs to be pressed after the command key is released:
Key | Functionality |
---|---|
h | 🔄 Split pane horizontally |
v | 🔂 Split pane vertically |
x | 🚫 Close pane |
X | 🚪 Close window |
c | ✨ New window |
r | 📝 Rename window |
R | 📋 Rename session |
arrow keys | 🔍 Focus panes in a window |
d | 👋 Detach from session |
s | 🔎 Session chooser |
I | 📦 Install plugins |
z | 🔍 Toggle zoom in pane |
Ctrl+l | 🧹 Clear the terminal |
Alt+number → Open the window with that number