|
suave_cli package from suave reposuave suave_base suave_bringup suave_cli suave_bt suave_metacontrol suave_none suave_random suave_metrics suave_missions suave_monitor suave_msgs suave_runner suave_tools |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/kas-lab/suave.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-03 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Gustavo Rezende
Authors
suave CLI
One command for everyday SUAVE work: Docker images and the container, colcon build/test, experiment campaigns and batches, and the analysis scripts.
The CLI wraps existing tools and does not replace them. Each subcommand builds a docker,
colcon, ros2 launch or ros2 run command line and runs it. build_docker_images.sh, the
launch files and the runner configs are still the source of truth. Add --dry-run to any
command to see what it would run.
- Plain Python (>= 3.10, stdlib only). It runs from the checkout and needs no build or
pip. - It never imports ROS, so it also works on a host that has only Docker.
-
suave --helpandsuave COMMAND --helpare the full option reference. This file covers the concepts, workflows and pitfalls.
Contents
- Put it on PATH
- Quick start
- Commands
- Where ROS commands run
- Paths and the container
- Configuration
- Extra mounts
- Scripting and automation
- Troubleshooting
- Development
Put it on PATH
Pick one:
| Method | Notes |
|---|---|
source <repo>/env.sh |
bash only; add it to ~/.bashrc to keep it |
build the workspace, then source install/setup.bash
|
the suave_cli colcon package only installs a hook that sets SUAVE_ROOT and PATH
|
ln -s <repo>/suave_cli/bin/suave ~/.local/bin/suave |
works in any shell |
Without any of these, call <repo>/suave_cli/bin/suave directly. Inside the SUAVE images
suave is already on PATH, and SUAVE_CLI_CONTEXT=container tells it that it runs in a
container.
Which checkout is used: --suave-root PATH, else $SUAVE_ROOT, else the checkout that
contains the suave launcher that was run. That checkout’s .config/ holds the settings,
and it is the tree suave docker build builds from (it must contain
build_docker_images.sh and docker/versions.env).
Quick start
A typical first session on a host with Docker:
suave docker build # build suave-headless:latest from this checkout
suave docker run # start container 'suave' in the background
suave test suave_runner # colcon build + test inside the container
suave run # one campaign with the installed runner_config.yml
suave campaign list # result folders and how many runs finished
suave docker shell # interactive shell in the container, ROS sourced
suave docker stop # stop it (add --rm to remove it)
On the first interactive run the CLI offers a short setup. You can skip it: the defaults
work, and suave config init asks the questions again later.
Commands
suave docker (host only)
| Command | What it does |
|---|---|
docker build [--all] [--tag T] [--no-cache] |
Builds suave-headless:latest with the SHAs pinned in docker/versions.env. --all also builds the Kasm GUI images (kasm-jammy:dev, suave:dev). --tag sets the tag for all of them. |
docker run |
Starts the container, or reuses it (see below). Arguments after -- go to docker run, for example -- --network host. |
docker shell |
Opens a login shell in the running container with ROS and the workspace sourced. |
docker stop [--rm] |
Stops the container, and removes it with --rm. |
docker status |
Shows whether the container exists and is running, and what it mounts. |
docker mount add\|remove\|list |
Manages saved extra bind mounts. See Extra mounts. |
What suave docker run does depends on the container’s current state:
| Container state | Result |
|---|---|
| running | reused as is |
| exists, stopped | restarted with docker start; image and mount changes are not applied (it warns if they differ) |
missing, or --recreate given |
created with the selected image and mounts |
When no image is given (--image or the image setting), the CLI uses the first match:
suave-headless:latestsuave-headless:dev- any other local
suave-headlesstag (with a warning) -
ghcr.io/kas-lab/suave-headless:main, pulled after you confirm, or with--yes
By default the container gets these mounts:
- this checkout at
/home/ubuntu-user/suave_ws/src/suave -
~/suave/resultsat/home/ubuntu-user/suave/results, created if missing - any saved extra mounts
The container also gets access to the host display and GPU:
| Setup | docker run options | |—|—|
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged suave_cli at Robotics Stack Exchange
|
suave_cli package from suave reposuave suave_base suave_bringup suave_cli suave_bt suave_metacontrol suave_none suave_random suave_metrics suave_missions suave_monitor suave_msgs suave_runner suave_tools |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/kas-lab/suave.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-03 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Gustavo Rezende
Authors
suave CLI
One command for everyday SUAVE work: Docker images and the container, colcon build/test, experiment campaigns and batches, and the analysis scripts.
The CLI wraps existing tools and does not replace them. Each subcommand builds a docker,
colcon, ros2 launch or ros2 run command line and runs it. build_docker_images.sh, the
launch files and the runner configs are still the source of truth. Add --dry-run to any
command to see what it would run.
- Plain Python (>= 3.10, stdlib only). It runs from the checkout and needs no build or
pip. - It never imports ROS, so it also works on a host that has only Docker.
-
suave --helpandsuave COMMAND --helpare the full option reference. This file covers the concepts, workflows and pitfalls.
Contents
- Put it on PATH
- Quick start
- Commands
- Where ROS commands run
- Paths and the container
- Configuration
- Extra mounts
- Scripting and automation
- Troubleshooting
- Development
Put it on PATH
Pick one:
| Method | Notes |
|---|---|
source <repo>/env.sh |
bash only; add it to ~/.bashrc to keep it |
build the workspace, then source install/setup.bash
|
the suave_cli colcon package only installs a hook that sets SUAVE_ROOT and PATH
|
ln -s <repo>/suave_cli/bin/suave ~/.local/bin/suave |
works in any shell |
Without any of these, call <repo>/suave_cli/bin/suave directly. Inside the SUAVE images
suave is already on PATH, and SUAVE_CLI_CONTEXT=container tells it that it runs in a
container.
Which checkout is used: --suave-root PATH, else $SUAVE_ROOT, else the checkout that
contains the suave launcher that was run. That checkout’s .config/ holds the settings,
and it is the tree suave docker build builds from (it must contain
build_docker_images.sh and docker/versions.env).
Quick start
A typical first session on a host with Docker:
suave docker build # build suave-headless:latest from this checkout
suave docker run # start container 'suave' in the background
suave test suave_runner # colcon build + test inside the container
suave run # one campaign with the installed runner_config.yml
suave campaign list # result folders and how many runs finished
suave docker shell # interactive shell in the container, ROS sourced
suave docker stop # stop it (add --rm to remove it)
On the first interactive run the CLI offers a short setup. You can skip it: the defaults
work, and suave config init asks the questions again later.
Commands
suave docker (host only)
| Command | What it does |
|---|---|
docker build [--all] [--tag T] [--no-cache] |
Builds suave-headless:latest with the SHAs pinned in docker/versions.env. --all also builds the Kasm GUI images (kasm-jammy:dev, suave:dev). --tag sets the tag for all of them. |
docker run |
Starts the container, or reuses it (see below). Arguments after -- go to docker run, for example -- --network host. |
docker shell |
Opens a login shell in the running container with ROS and the workspace sourced. |
docker stop [--rm] |
Stops the container, and removes it with --rm. |
docker status |
Shows whether the container exists and is running, and what it mounts. |
docker mount add\|remove\|list |
Manages saved extra bind mounts. See Extra mounts. |
What suave docker run does depends on the container’s current state:
| Container state | Result |
|---|---|
| running | reused as is |
| exists, stopped | restarted with docker start; image and mount changes are not applied (it warns if they differ) |
missing, or --recreate given |
created with the selected image and mounts |
When no image is given (--image or the image setting), the CLI uses the first match:
suave-headless:latestsuave-headless:dev- any other local
suave-headlesstag (with a warning) -
ghcr.io/kas-lab/suave-headless:main, pulled after you confirm, or with--yes
By default the container gets these mounts:
- this checkout at
/home/ubuntu-user/suave_ws/src/suave -
~/suave/resultsat/home/ubuntu-user/suave/results, created if missing - any saved extra mounts
The container also gets access to the host display and GPU:
| Setup | docker run options | |—|—|
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged suave_cli at Robotics Stack Exchange
|
suave_cli package from suave reposuave suave_base suave_bringup suave_cli suave_bt suave_metacontrol suave_none suave_random suave_metrics suave_missions suave_monitor suave_msgs suave_runner suave_tools |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/kas-lab/suave.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-03 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Gustavo Rezende
Authors
suave CLI
One command for everyday SUAVE work: Docker images and the container, colcon build/test, experiment campaigns and batches, and the analysis scripts.
The CLI wraps existing tools and does not replace them. Each subcommand builds a docker,
colcon, ros2 launch or ros2 run command line and runs it. build_docker_images.sh, the
launch files and the runner configs are still the source of truth. Add --dry-run to any
command to see what it would run.
- Plain Python (>= 3.10, stdlib only). It runs from the checkout and needs no build or
pip. - It never imports ROS, so it also works on a host that has only Docker.
-
suave --helpandsuave COMMAND --helpare the full option reference. This file covers the concepts, workflows and pitfalls.
Contents
- Put it on PATH
- Quick start
- Commands
- Where ROS commands run
- Paths and the container
- Configuration
- Extra mounts
- Scripting and automation
- Troubleshooting
- Development
Put it on PATH
Pick one:
| Method | Notes |
|---|---|
source <repo>/env.sh |
bash only; add it to ~/.bashrc to keep it |
build the workspace, then source install/setup.bash
|
the suave_cli colcon package only installs a hook that sets SUAVE_ROOT and PATH
|
ln -s <repo>/suave_cli/bin/suave ~/.local/bin/suave |
works in any shell |
Without any of these, call <repo>/suave_cli/bin/suave directly. Inside the SUAVE images
suave is already on PATH, and SUAVE_CLI_CONTEXT=container tells it that it runs in a
container.
Which checkout is used: --suave-root PATH, else $SUAVE_ROOT, else the checkout that
contains the suave launcher that was run. That checkout’s .config/ holds the settings,
and it is the tree suave docker build builds from (it must contain
build_docker_images.sh and docker/versions.env).
Quick start
A typical first session on a host with Docker:
suave docker build # build suave-headless:latest from this checkout
suave docker run # start container 'suave' in the background
suave test suave_runner # colcon build + test inside the container
suave run # one campaign with the installed runner_config.yml
suave campaign list # result folders and how many runs finished
suave docker shell # interactive shell in the container, ROS sourced
suave docker stop # stop it (add --rm to remove it)
On the first interactive run the CLI offers a short setup. You can skip it: the defaults
work, and suave config init asks the questions again later.
Commands
suave docker (host only)
| Command | What it does |
|---|---|
docker build [--all] [--tag T] [--no-cache] |
Builds suave-headless:latest with the SHAs pinned in docker/versions.env. --all also builds the Kasm GUI images (kasm-jammy:dev, suave:dev). --tag sets the tag for all of them. |
docker run |
Starts the container, or reuses it (see below). Arguments after -- go to docker run, for example -- --network host. |
docker shell |
Opens a login shell in the running container with ROS and the workspace sourced. |
docker stop [--rm] |
Stops the container, and removes it with --rm. |
docker status |
Shows whether the container exists and is running, and what it mounts. |
docker mount add\|remove\|list |
Manages saved extra bind mounts. See Extra mounts. |
What suave docker run does depends on the container’s current state:
| Container state | Result |
|---|---|
| running | reused as is |
| exists, stopped | restarted with docker start; image and mount changes are not applied (it warns if they differ) |
missing, or --recreate given |
created with the selected image and mounts |
When no image is given (--image or the image setting), the CLI uses the first match:
suave-headless:latestsuave-headless:dev- any other local
suave-headlesstag (with a warning) -
ghcr.io/kas-lab/suave-headless:main, pulled after you confirm, or with--yes
By default the container gets these mounts:
- this checkout at
/home/ubuntu-user/suave_ws/src/suave -
~/suave/resultsat/home/ubuntu-user/suave/results, created if missing - any saved extra mounts
The container also gets access to the host display and GPU:
| Setup | docker run options | |—|—|
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged suave_cli at Robotics Stack Exchange
|
suave_cli package from suave reposuave suave_base suave_bringup suave_cli suave_bt suave_metacontrol suave_none suave_random suave_metrics suave_missions suave_monitor suave_msgs suave_runner suave_tools |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/kas-lab/suave.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-03 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Gustavo Rezende
Authors
suave CLI
One command for everyday SUAVE work: Docker images and the container, colcon build/test, experiment campaigns and batches, and the analysis scripts.
The CLI wraps existing tools and does not replace them. Each subcommand builds a docker,
colcon, ros2 launch or ros2 run command line and runs it. build_docker_images.sh, the
launch files and the runner configs are still the source of truth. Add --dry-run to any
command to see what it would run.
- Plain Python (>= 3.10, stdlib only). It runs from the checkout and needs no build or
pip. - It never imports ROS, so it also works on a host that has only Docker.
-
suave --helpandsuave COMMAND --helpare the full option reference. This file covers the concepts, workflows and pitfalls.
Contents
- Put it on PATH
- Quick start
- Commands
- Where ROS commands run
- Paths and the container
- Configuration
- Extra mounts
- Scripting and automation
- Troubleshooting
- Development
Put it on PATH
Pick one:
| Method | Notes |
|---|---|
source <repo>/env.sh |
bash only; add it to ~/.bashrc to keep it |
build the workspace, then source install/setup.bash
|
the suave_cli colcon package only installs a hook that sets SUAVE_ROOT and PATH
|
ln -s <repo>/suave_cli/bin/suave ~/.local/bin/suave |
works in any shell |
Without any of these, call <repo>/suave_cli/bin/suave directly. Inside the SUAVE images
suave is already on PATH, and SUAVE_CLI_CONTEXT=container tells it that it runs in a
container.
Which checkout is used: --suave-root PATH, else $SUAVE_ROOT, else the checkout that
contains the suave launcher that was run. That checkout’s .config/ holds the settings,
and it is the tree suave docker build builds from (it must contain
build_docker_images.sh and docker/versions.env).
Quick start
A typical first session on a host with Docker:
suave docker build # build suave-headless:latest from this checkout
suave docker run # start container 'suave' in the background
suave test suave_runner # colcon build + test inside the container
suave run # one campaign with the installed runner_config.yml
suave campaign list # result folders and how many runs finished
suave docker shell # interactive shell in the container, ROS sourced
suave docker stop # stop it (add --rm to remove it)
On the first interactive run the CLI offers a short setup. You can skip it: the defaults
work, and suave config init asks the questions again later.
Commands
suave docker (host only)
| Command | What it does |
|---|---|
docker build [--all] [--tag T] [--no-cache] |
Builds suave-headless:latest with the SHAs pinned in docker/versions.env. --all also builds the Kasm GUI images (kasm-jammy:dev, suave:dev). --tag sets the tag for all of them. |
docker run |
Starts the container, or reuses it (see below). Arguments after -- go to docker run, for example -- --network host. |
docker shell |
Opens a login shell in the running container with ROS and the workspace sourced. |
docker stop [--rm] |
Stops the container, and removes it with --rm. |
docker status |
Shows whether the container exists and is running, and what it mounts. |
docker mount add\|remove\|list |
Manages saved extra bind mounts. See Extra mounts. |
What suave docker run does depends on the container’s current state:
| Container state | Result |
|---|---|
| running | reused as is |
| exists, stopped | restarted with docker start; image and mount changes are not applied (it warns if they differ) |
missing, or --recreate given |
created with the selected image and mounts |
When no image is given (--image or the image setting), the CLI uses the first match:
suave-headless:latestsuave-headless:dev- any other local
suave-headlesstag (with a warning) -
ghcr.io/kas-lab/suave-headless:main, pulled after you confirm, or with--yes
By default the container gets these mounts:
- this checkout at
/home/ubuntu-user/suave_ws/src/suave -
~/suave/resultsat/home/ubuntu-user/suave/results, created if missing - any saved extra mounts
The container also gets access to the host display and GPU:
| Setup | docker run options | |—|—|
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged suave_cli at Robotics Stack Exchange
|
suave_cli package from suave reposuave suave_base suave_bringup suave_cli suave_bt suave_metacontrol suave_none suave_random suave_metrics suave_missions suave_monitor suave_msgs suave_runner suave_tools |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/kas-lab/suave.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-03 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Gustavo Rezende
Authors
suave CLI
One command for everyday SUAVE work: Docker images and the container, colcon build/test, experiment campaigns and batches, and the analysis scripts.
The CLI wraps existing tools and does not replace them. Each subcommand builds a docker,
colcon, ros2 launch or ros2 run command line and runs it. build_docker_images.sh, the
launch files and the runner configs are still the source of truth. Add --dry-run to any
command to see what it would run.
- Plain Python (>= 3.10, stdlib only). It runs from the checkout and needs no build or
pip. - It never imports ROS, so it also works on a host that has only Docker.
-
suave --helpandsuave COMMAND --helpare the full option reference. This file covers the concepts, workflows and pitfalls.
Contents
- Put it on PATH
- Quick start
- Commands
- Where ROS commands run
- Paths and the container
- Configuration
- Extra mounts
- Scripting and automation
- Troubleshooting
- Development
Put it on PATH
Pick one:
| Method | Notes |
|---|---|
source <repo>/env.sh |
bash only; add it to ~/.bashrc to keep it |
build the workspace, then source install/setup.bash
|
the suave_cli colcon package only installs a hook that sets SUAVE_ROOT and PATH
|
ln -s <repo>/suave_cli/bin/suave ~/.local/bin/suave |
works in any shell |
Without any of these, call <repo>/suave_cli/bin/suave directly. Inside the SUAVE images
suave is already on PATH, and SUAVE_CLI_CONTEXT=container tells it that it runs in a
container.
Which checkout is used: --suave-root PATH, else $SUAVE_ROOT, else the checkout that
contains the suave launcher that was run. That checkout’s .config/ holds the settings,
and it is the tree suave docker build builds from (it must contain
build_docker_images.sh and docker/versions.env).
Quick start
A typical first session on a host with Docker:
suave docker build # build suave-headless:latest from this checkout
suave docker run # start container 'suave' in the background
suave test suave_runner # colcon build + test inside the container
suave run # one campaign with the installed runner_config.yml
suave campaign list # result folders and how many runs finished
suave docker shell # interactive shell in the container, ROS sourced
suave docker stop # stop it (add --rm to remove it)
On the first interactive run the CLI offers a short setup. You can skip it: the defaults
work, and suave config init asks the questions again later.
Commands
suave docker (host only)
| Command | What it does |
|---|---|
docker build [--all] [--tag T] [--no-cache] |
Builds suave-headless:latest with the SHAs pinned in docker/versions.env. --all also builds the Kasm GUI images (kasm-jammy:dev, suave:dev). --tag sets the tag for all of them. |
docker run |
Starts the container, or reuses it (see below). Arguments after -- go to docker run, for example -- --network host. |
docker shell |
Opens a login shell in the running container with ROS and the workspace sourced. |
docker stop [--rm] |
Stops the container, and removes it with --rm. |
docker status |
Shows whether the container exists and is running, and what it mounts. |
docker mount add\|remove\|list |
Manages saved extra bind mounts. See Extra mounts. |
What suave docker run does depends on the container’s current state:
| Container state | Result |
|---|---|
| running | reused as is |
| exists, stopped | restarted with docker start; image and mount changes are not applied (it warns if they differ) |
missing, or --recreate given |
created with the selected image and mounts |
When no image is given (--image or the image setting), the CLI uses the first match:
suave-headless:latestsuave-headless:dev- any other local
suave-headlesstag (with a warning) -
ghcr.io/kas-lab/suave-headless:main, pulled after you confirm, or with--yes
By default the container gets these mounts:
- this checkout at
/home/ubuntu-user/suave_ws/src/suave -
~/suave/resultsat/home/ubuntu-user/suave/results, created if missing - any saved extra mounts
The container also gets access to the host display and GPU:
| Setup | docker run options | |—|—|
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged suave_cli at Robotics Stack Exchange
|
suave_cli package from suave reposuave suave_base suave_bringup suave_cli suave_bt suave_metacontrol suave_none suave_random suave_metrics suave_missions suave_monitor suave_msgs suave_runner suave_tools |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/kas-lab/suave.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-03 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Gustavo Rezende
Authors
suave CLI
One command for everyday SUAVE work: Docker images and the container, colcon build/test, experiment campaigns and batches, and the analysis scripts.
The CLI wraps existing tools and does not replace them. Each subcommand builds a docker,
colcon, ros2 launch or ros2 run command line and runs it. build_docker_images.sh, the
launch files and the runner configs are still the source of truth. Add --dry-run to any
command to see what it would run.
- Plain Python (>= 3.10, stdlib only). It runs from the checkout and needs no build or
pip. - It never imports ROS, so it also works on a host that has only Docker.
-
suave --helpandsuave COMMAND --helpare the full option reference. This file covers the concepts, workflows and pitfalls.
Contents
- Put it on PATH
- Quick start
- Commands
- Where ROS commands run
- Paths and the container
- Configuration
- Extra mounts
- Scripting and automation
- Troubleshooting
- Development
Put it on PATH
Pick one:
| Method | Notes |
|---|---|
source <repo>/env.sh |
bash only; add it to ~/.bashrc to keep it |
build the workspace, then source install/setup.bash
|
the suave_cli colcon package only installs a hook that sets SUAVE_ROOT and PATH
|
ln -s <repo>/suave_cli/bin/suave ~/.local/bin/suave |
works in any shell |
Without any of these, call <repo>/suave_cli/bin/suave directly. Inside the SUAVE images
suave is already on PATH, and SUAVE_CLI_CONTEXT=container tells it that it runs in a
container.
Which checkout is used: --suave-root PATH, else $SUAVE_ROOT, else the checkout that
contains the suave launcher that was run. That checkout’s .config/ holds the settings,
and it is the tree suave docker build builds from (it must contain
build_docker_images.sh and docker/versions.env).
Quick start
A typical first session on a host with Docker:
suave docker build # build suave-headless:latest from this checkout
suave docker run # start container 'suave' in the background
suave test suave_runner # colcon build + test inside the container
suave run # one campaign with the installed runner_config.yml
suave campaign list # result folders and how many runs finished
suave docker shell # interactive shell in the container, ROS sourced
suave docker stop # stop it (add --rm to remove it)
On the first interactive run the CLI offers a short setup. You can skip it: the defaults
work, and suave config init asks the questions again later.
Commands
suave docker (host only)
| Command | What it does |
|---|---|
docker build [--all] [--tag T] [--no-cache] |
Builds suave-headless:latest with the SHAs pinned in docker/versions.env. --all also builds the Kasm GUI images (kasm-jammy:dev, suave:dev). --tag sets the tag for all of them. |
docker run |
Starts the container, or reuses it (see below). Arguments after -- go to docker run, for example -- --network host. |
docker shell |
Opens a login shell in the running container with ROS and the workspace sourced. |
docker stop [--rm] |
Stops the container, and removes it with --rm. |
docker status |
Shows whether the container exists and is running, and what it mounts. |
docker mount add\|remove\|list |
Manages saved extra bind mounts. See Extra mounts. |
What suave docker run does depends on the container’s current state:
| Container state | Result |
|---|---|
| running | reused as is |
| exists, stopped | restarted with docker start; image and mount changes are not applied (it warns if they differ) |
missing, or --recreate given |
created with the selected image and mounts |
When no image is given (--image or the image setting), the CLI uses the first match:
suave-headless:latestsuave-headless:dev- any other local
suave-headlesstag (with a warning) -
ghcr.io/kas-lab/suave-headless:main, pulled after you confirm, or with--yes
By default the container gets these mounts:
- this checkout at
/home/ubuntu-user/suave_ws/src/suave -
~/suave/resultsat/home/ubuntu-user/suave/results, created if missing - any saved extra mounts
The container also gets access to the host display and GPU:
| Setup | docker run options | |—|—|
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged suave_cli at Robotics Stack Exchange
|
suave_cli package from suave reposuave suave_base suave_bringup suave_cli suave_bt suave_metacontrol suave_none suave_random suave_metrics suave_missions suave_monitor suave_msgs suave_runner suave_tools |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/kas-lab/suave.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-03 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Gustavo Rezende
Authors
suave CLI
One command for everyday SUAVE work: Docker images and the container, colcon build/test, experiment campaigns and batches, and the analysis scripts.
The CLI wraps existing tools and does not replace them. Each subcommand builds a docker,
colcon, ros2 launch or ros2 run command line and runs it. build_docker_images.sh, the
launch files and the runner configs are still the source of truth. Add --dry-run to any
command to see what it would run.
- Plain Python (>= 3.10, stdlib only). It runs from the checkout and needs no build or
pip. - It never imports ROS, so it also works on a host that has only Docker.
-
suave --helpandsuave COMMAND --helpare the full option reference. This file covers the concepts, workflows and pitfalls.
Contents
- Put it on PATH
- Quick start
- Commands
- Where ROS commands run
- Paths and the container
- Configuration
- Extra mounts
- Scripting and automation
- Troubleshooting
- Development
Put it on PATH
Pick one:
| Method | Notes |
|---|---|
source <repo>/env.sh |
bash only; add it to ~/.bashrc to keep it |
build the workspace, then source install/setup.bash
|
the suave_cli colcon package only installs a hook that sets SUAVE_ROOT and PATH
|
ln -s <repo>/suave_cli/bin/suave ~/.local/bin/suave |
works in any shell |
Without any of these, call <repo>/suave_cli/bin/suave directly. Inside the SUAVE images
suave is already on PATH, and SUAVE_CLI_CONTEXT=container tells it that it runs in a
container.
Which checkout is used: --suave-root PATH, else $SUAVE_ROOT, else the checkout that
contains the suave launcher that was run. That checkout’s .config/ holds the settings,
and it is the tree suave docker build builds from (it must contain
build_docker_images.sh and docker/versions.env).
Quick start
A typical first session on a host with Docker:
suave docker build # build suave-headless:latest from this checkout
suave docker run # start container 'suave' in the background
suave test suave_runner # colcon build + test inside the container
suave run # one campaign with the installed runner_config.yml
suave campaign list # result folders and how many runs finished
suave docker shell # interactive shell in the container, ROS sourced
suave docker stop # stop it (add --rm to remove it)
On the first interactive run the CLI offers a short setup. You can skip it: the defaults
work, and suave config init asks the questions again later.
Commands
suave docker (host only)
| Command | What it does |
|---|---|
docker build [--all] [--tag T] [--no-cache] |
Builds suave-headless:latest with the SHAs pinned in docker/versions.env. --all also builds the Kasm GUI images (kasm-jammy:dev, suave:dev). --tag sets the tag for all of them. |
docker run |
Starts the container, or reuses it (see below). Arguments after -- go to docker run, for example -- --network host. |
docker shell |
Opens a login shell in the running container with ROS and the workspace sourced. |
docker stop [--rm] |
Stops the container, and removes it with --rm. |
docker status |
Shows whether the container exists and is running, and what it mounts. |
docker mount add\|remove\|list |
Manages saved extra bind mounts. See Extra mounts. |
What suave docker run does depends on the container’s current state:
| Container state | Result |
|---|---|
| running | reused as is |
| exists, stopped | restarted with docker start; image and mount changes are not applied (it warns if they differ) |
missing, or --recreate given |
created with the selected image and mounts |
When no image is given (--image or the image setting), the CLI uses the first match:
suave-headless:latestsuave-headless:dev- any other local
suave-headlesstag (with a warning) -
ghcr.io/kas-lab/suave-headless:main, pulled after you confirm, or with--yes
By default the container gets these mounts:
- this checkout at
/home/ubuntu-user/suave_ws/src/suave -
~/suave/resultsat/home/ubuntu-user/suave/results, created if missing - any saved extra mounts
The container also gets access to the host display and GPU:
| Setup | docker run options | |—|—|
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged suave_cli at Robotics Stack Exchange
|
suave_cli package from suave reposuave suave_base suave_bringup suave_cli suave_bt suave_metacontrol suave_none suave_random suave_metrics suave_missions suave_monitor suave_msgs suave_runner suave_tools |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/kas-lab/suave.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-03 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Gustavo Rezende
Authors
suave CLI
One command for everyday SUAVE work: Docker images and the container, colcon build/test, experiment campaigns and batches, and the analysis scripts.
The CLI wraps existing tools and does not replace them. Each subcommand builds a docker,
colcon, ros2 launch or ros2 run command line and runs it. build_docker_images.sh, the
launch files and the runner configs are still the source of truth. Add --dry-run to any
command to see what it would run.
- Plain Python (>= 3.10, stdlib only). It runs from the checkout and needs no build or
pip. - It never imports ROS, so it also works on a host that has only Docker.
-
suave --helpandsuave COMMAND --helpare the full option reference. This file covers the concepts, workflows and pitfalls.
Contents
- Put it on PATH
- Quick start
- Commands
- Where ROS commands run
- Paths and the container
- Configuration
- Extra mounts
- Scripting and automation
- Troubleshooting
- Development
Put it on PATH
Pick one:
| Method | Notes |
|---|---|
source <repo>/env.sh |
bash only; add it to ~/.bashrc to keep it |
build the workspace, then source install/setup.bash
|
the suave_cli colcon package only installs a hook that sets SUAVE_ROOT and PATH
|
ln -s <repo>/suave_cli/bin/suave ~/.local/bin/suave |
works in any shell |
Without any of these, call <repo>/suave_cli/bin/suave directly. Inside the SUAVE images
suave is already on PATH, and SUAVE_CLI_CONTEXT=container tells it that it runs in a
container.
Which checkout is used: --suave-root PATH, else $SUAVE_ROOT, else the checkout that
contains the suave launcher that was run. That checkout’s .config/ holds the settings,
and it is the tree suave docker build builds from (it must contain
build_docker_images.sh and docker/versions.env).
Quick start
A typical first session on a host with Docker:
suave docker build # build suave-headless:latest from this checkout
suave docker run # start container 'suave' in the background
suave test suave_runner # colcon build + test inside the container
suave run # one campaign with the installed runner_config.yml
suave campaign list # result folders and how many runs finished
suave docker shell # interactive shell in the container, ROS sourced
suave docker stop # stop it (add --rm to remove it)
On the first interactive run the CLI offers a short setup. You can skip it: the defaults
work, and suave config init asks the questions again later.
Commands
suave docker (host only)
| Command | What it does |
|---|---|
docker build [--all] [--tag T] [--no-cache] |
Builds suave-headless:latest with the SHAs pinned in docker/versions.env. --all also builds the Kasm GUI images (kasm-jammy:dev, suave:dev). --tag sets the tag for all of them. |
docker run |
Starts the container, or reuses it (see below). Arguments after -- go to docker run, for example -- --network host. |
docker shell |
Opens a login shell in the running container with ROS and the workspace sourced. |
docker stop [--rm] |
Stops the container, and removes it with --rm. |
docker status |
Shows whether the container exists and is running, and what it mounts. |
docker mount add\|remove\|list |
Manages saved extra bind mounts. See Extra mounts. |
What suave docker run does depends on the container’s current state:
| Container state | Result |
|---|---|
| running | reused as is |
| exists, stopped | restarted with docker start; image and mount changes are not applied (it warns if they differ) |
missing, or --recreate given |
created with the selected image and mounts |
When no image is given (--image or the image setting), the CLI uses the first match:
suave-headless:latestsuave-headless:dev- any other local
suave-headlesstag (with a warning) -
ghcr.io/kas-lab/suave-headless:main, pulled after you confirm, or with--yes
By default the container gets these mounts:
- this checkout at
/home/ubuntu-user/suave_ws/src/suave -
~/suave/resultsat/home/ubuntu-user/suave/results, created if missing - any saved extra mounts
The container also gets access to the host display and GPU:
| Setup | docker run options | |—|—|
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged suave_cli at Robotics Stack Exchange
|
suave_cli package from suave reposuave suave_base suave_bringup suave_cli suave_bt suave_metacontrol suave_none suave_random suave_metrics suave_missions suave_monitor suave_msgs suave_runner suave_tools |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/kas-lab/suave.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-03 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Gustavo Rezende
Authors
suave CLI
One command for everyday SUAVE work: Docker images and the container, colcon build/test, experiment campaigns and batches, and the analysis scripts.
The CLI wraps existing tools and does not replace them. Each subcommand builds a docker,
colcon, ros2 launch or ros2 run command line and runs it. build_docker_images.sh, the
launch files and the runner configs are still the source of truth. Add --dry-run to any
command to see what it would run.
- Plain Python (>= 3.10, stdlib only). It runs from the checkout and needs no build or
pip. - It never imports ROS, so it also works on a host that has only Docker.
-
suave --helpandsuave COMMAND --helpare the full option reference. This file covers the concepts, workflows and pitfalls.
Contents
- Put it on PATH
- Quick start
- Commands
- Where ROS commands run
- Paths and the container
- Configuration
- Extra mounts
- Scripting and automation
- Troubleshooting
- Development
Put it on PATH
Pick one:
| Method | Notes |
|---|---|
source <repo>/env.sh |
bash only; add it to ~/.bashrc to keep it |
build the workspace, then source install/setup.bash
|
the suave_cli colcon package only installs a hook that sets SUAVE_ROOT and PATH
|
ln -s <repo>/suave_cli/bin/suave ~/.local/bin/suave |
works in any shell |
Without any of these, call <repo>/suave_cli/bin/suave directly. Inside the SUAVE images
suave is already on PATH, and SUAVE_CLI_CONTEXT=container tells it that it runs in a
container.
Which checkout is used: --suave-root PATH, else $SUAVE_ROOT, else the checkout that
contains the suave launcher that was run. That checkout’s .config/ holds the settings,
and it is the tree suave docker build builds from (it must contain
build_docker_images.sh and docker/versions.env).
Quick start
A typical first session on a host with Docker:
suave docker build # build suave-headless:latest from this checkout
suave docker run # start container 'suave' in the background
suave test suave_runner # colcon build + test inside the container
suave run # one campaign with the installed runner_config.yml
suave campaign list # result folders and how many runs finished
suave docker shell # interactive shell in the container, ROS sourced
suave docker stop # stop it (add --rm to remove it)
On the first interactive run the CLI offers a short setup. You can skip it: the defaults
work, and suave config init asks the questions again later.
Commands
suave docker (host only)
| Command | What it does |
|---|---|
docker build [--all] [--tag T] [--no-cache] |
Builds suave-headless:latest with the SHAs pinned in docker/versions.env. --all also builds the Kasm GUI images (kasm-jammy:dev, suave:dev). --tag sets the tag for all of them. |
docker run |
Starts the container, or reuses it (see below). Arguments after -- go to docker run, for example -- --network host. |
docker shell |
Opens a login shell in the running container with ROS and the workspace sourced. |
docker stop [--rm] |
Stops the container, and removes it with --rm. |
docker status |
Shows whether the container exists and is running, and what it mounts. |
docker mount add\|remove\|list |
Manages saved extra bind mounts. See Extra mounts. |
What suave docker run does depends on the container’s current state:
| Container state | Result |
|---|---|
| running | reused as is |
| exists, stopped | restarted with docker start; image and mount changes are not applied (it warns if they differ) |
missing, or --recreate given |
created with the selected image and mounts |
When no image is given (--image or the image setting), the CLI uses the first match:
suave-headless:latestsuave-headless:dev- any other local
suave-headlesstag (with a warning) -
ghcr.io/kas-lab/suave-headless:main, pulled after you confirm, or with--yes
By default the container gets these mounts:
- this checkout at
/home/ubuntu-user/suave_ws/src/suave -
~/suave/resultsat/home/ubuntu-user/suave/results, created if missing - any saved extra mounts
The container also gets access to the host display and GPU:
| Setup | docker run options | |—|—|
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged suave_cli at Robotics Stack Exchange
|
suave_cli package from suave reposuave suave_base suave_bringup suave_cli suave_bt suave_metacontrol suave_none suave_random suave_metrics suave_missions suave_monitor suave_msgs suave_runner suave_tools |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/kas-lab/suave.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-03 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Gustavo Rezende
Authors
suave CLI
One command for everyday SUAVE work: Docker images and the container, colcon build/test, experiment campaigns and batches, and the analysis scripts.
The CLI wraps existing tools and does not replace them. Each subcommand builds a docker,
colcon, ros2 launch or ros2 run command line and runs it. build_docker_images.sh, the
launch files and the runner configs are still the source of truth. Add --dry-run to any
command to see what it would run.
- Plain Python (>= 3.10, stdlib only). It runs from the checkout and needs no build or
pip. - It never imports ROS, so it also works on a host that has only Docker.
-
suave --helpandsuave COMMAND --helpare the full option reference. This file covers the concepts, workflows and pitfalls.
Contents
- Put it on PATH
- Quick start
- Commands
- Where ROS commands run
- Paths and the container
- Configuration
- Extra mounts
- Scripting and automation
- Troubleshooting
- Development
Put it on PATH
Pick one:
| Method | Notes |
|---|---|
source <repo>/env.sh |
bash only; add it to ~/.bashrc to keep it |
build the workspace, then source install/setup.bash
|
the suave_cli colcon package only installs a hook that sets SUAVE_ROOT and PATH
|
ln -s <repo>/suave_cli/bin/suave ~/.local/bin/suave |
works in any shell |
Without any of these, call <repo>/suave_cli/bin/suave directly. Inside the SUAVE images
suave is already on PATH, and SUAVE_CLI_CONTEXT=container tells it that it runs in a
container.
Which checkout is used: --suave-root PATH, else $SUAVE_ROOT, else the checkout that
contains the suave launcher that was run. That checkout’s .config/ holds the settings,
and it is the tree suave docker build builds from (it must contain
build_docker_images.sh and docker/versions.env).
Quick start
A typical first session on a host with Docker:
suave docker build # build suave-headless:latest from this checkout
suave docker run # start container 'suave' in the background
suave test suave_runner # colcon build + test inside the container
suave run # one campaign with the installed runner_config.yml
suave campaign list # result folders and how many runs finished
suave docker shell # interactive shell in the container, ROS sourced
suave docker stop # stop it (add --rm to remove it)
On the first interactive run the CLI offers a short setup. You can skip it: the defaults
work, and suave config init asks the questions again later.
Commands
suave docker (host only)
| Command | What it does |
|---|---|
docker build [--all] [--tag T] [--no-cache] |
Builds suave-headless:latest with the SHAs pinned in docker/versions.env. --all also builds the Kasm GUI images (kasm-jammy:dev, suave:dev). --tag sets the tag for all of them. |
docker run |
Starts the container, or reuses it (see below). Arguments after -- go to docker run, for example -- --network host. |
docker shell |
Opens a login shell in the running container with ROS and the workspace sourced. |
docker stop [--rm] |
Stops the container, and removes it with --rm. |
docker status |
Shows whether the container exists and is running, and what it mounts. |
docker mount add\|remove\|list |
Manages saved extra bind mounts. See Extra mounts. |
What suave docker run does depends on the container’s current state:
| Container state | Result |
|---|---|
| running | reused as is |
| exists, stopped | restarted with docker start; image and mount changes are not applied (it warns if they differ) |
missing, or --recreate given |
created with the selected image and mounts |
When no image is given (--image or the image setting), the CLI uses the first match:
suave-headless:latestsuave-headless:dev- any other local
suave-headlesstag (with a warning) -
ghcr.io/kas-lab/suave-headless:main, pulled after you confirm, or with--yes
By default the container gets these mounts:
- this checkout at
/home/ubuntu-user/suave_ws/src/suave -
~/suave/resultsat/home/ubuntu-user/suave/results, created if missing - any saved extra mounts
The container also gets access to the host display and GPU:
| Setup | docker run options | |—|—|
File truncated at 100 lines see the full file