This is the development workspace for Robotics Summer School 2025.
Use devcontainer to open this workspace. 🐳
gitman installNote: 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:mainor
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_testBuild 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