Skip to content

ETHZ-RobotX/smb_ros2_workspace

Repository files navigation

SMB ROS2 Workspace 🤖

This is the development workspace for Robotics Summer School 2025.

Use devcontainer to open this workspace. 🐳

Installation 🛠️

gitman install

Docker Build 🐳

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 .

Network Configuration (Ubuntu Only) 🌐

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

VSCode Dev Container Setup 🛠️

  1. Install the "Dev Containers" extension in VSCode
  2. Open the command palette (Ctrl+Shift+P)
  3. Select "Dev Containers: Reopen in Container"
  4. 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.

Available Aliases 🚀

ROS2 Recording 📹

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

Package Building 🏗️

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 📺

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.

TMux Keys ⌨️

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

About

The ROS2 workspace used for SMB robot

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors 7