|
suave_requirements 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_requirements suave_runner suave_tools |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | Apache-2.0 |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/kas-lab/suave.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-18 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- gus
Authors
suave_requirements
Runtime monitoring of the SUAVE RELAX requirements (requirement_monitor) and
offline plotting of their fulfillment from recorded campaign bags.
Plotting requirement fulfillment
scripts/plot_requirement_fulfillment.py writes one comparison figure per
requirement topic (thruster availability, search footprint, and the combined,
thruster, water-visibility and battery reaction times) plus a
coverage.json provenance report. Run it with the workspace sourced:
B=~/suave/results/batches/<batch>
python3 src/suave/suave_requirements/scripts/plot_requirement_fulfillment.py $B
python3 src/suave/suave_requirements/scripts/plot_requirement_fulfillment.py \
$B/campaigns/<campaign>
The path may be a batch, its campaigns/ folder, its state.json, or one
campaign folder (with runs.json). Each campaign gets its own folder, by
default <batch>/campaign_results/<campaign>/requirement_fulfillment/ (a
campaign outside a batch uses its parent folder instead of <batch>);
--output-dir DIR writes to DIR/<campaign>/ instead.
Options: --managers (default: all six exp3 managers), --samples (grid
points per run, default 1001, minimum 2), --formats (default png pdf).
The rebetmc manager is labelled TacticalRetreat in figures.
Which bags are used
Bags are selected from each campaign folder with
suave_tools.runs.accepted_runs, never by scanning directory names:
- A trial counts only if its entry in the campaign’s
runs.json(schema_version: 2) has"status": "completed". - A completed trial must have
"bag": "accepted"; its bag isrosbags/<manager>_<mission>_<run_id>_<attempt_id>/. A completed trial without an accepted bag, or an unsupportedruns.json, is an error, not a silent omission. - Trials run with recording disabled (
"bag": null) are reported asrecording_disabled. - Bags under
rosbags/pending/orrosbags/failed/are never loaded.
An unreadable selected bag is an error. A bag that is readable but lacks a
topic is allowed and reported in coverage.json.
Timing and statistics
- Time is normalized recording time: 0–100 % of each bag’s metadata start/duration, using the same origin for every topic. This is not mission time; mission boundaries are not inferred.
- Each run is resampled with previous-value hold: no interpolation and no lookahead. Before a topic’s first message the value is unknown (gap), never zero. At duplicate timestamps the last message wins.
- Non-finite values, and values outside
[0, 1]by more than1e-6, are counted as invalid samples and excluded. - Curves are the mean over runs with a value at that grid point. Bands are
approximate 95 % confidence intervals (
1.96 * SD / sqrt(n),ddof=1) forn >= 2; withn = 1only the mean is drawn. Legends show the number of contributing runs, andcoverage.jsonholds per-grid-point counts. - Managers with no observations for a topic are named in the figure caption
and listed under
no_observationsincoverage.json; managers with no accepted runs at all are listed separately underno_accepted_runs. A topic with no data at all gets an explicit no-data figure.
Package Dependencies
| Deps | Name |
|---|---|
| rosbag2_py | |
| rosbag2_storage_mcap | |
| ament_copyright | |
| ament_flake8 | |
| ament_pep257 | |
| diagnostic_msgs | |
| rclpy | |
| std_msgs | |
| suave_msgs | |
| suave_tools |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| suave_base |
Launch files
Messages
Services
Plugins
Recent questions tagged suave_requirements at Robotics Stack Exchange
|
suave_requirements 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_requirements suave_runner suave_tools |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | Apache-2.0 |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/kas-lab/suave.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-18 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- gus
Authors
suave_requirements
Runtime monitoring of the SUAVE RELAX requirements (requirement_monitor) and
offline plotting of their fulfillment from recorded campaign bags.
Plotting requirement fulfillment
scripts/plot_requirement_fulfillment.py writes one comparison figure per
requirement topic (thruster availability, search footprint, and the combined,
thruster, water-visibility and battery reaction times) plus a
coverage.json provenance report. Run it with the workspace sourced:
B=~/suave/results/batches/<batch>
python3 src/suave/suave_requirements/scripts/plot_requirement_fulfillment.py $B
python3 src/suave/suave_requirements/scripts/plot_requirement_fulfillment.py \
$B/campaigns/<campaign>
The path may be a batch, its campaigns/ folder, its state.json, or one
campaign folder (with runs.json). Each campaign gets its own folder, by
default <batch>/campaign_results/<campaign>/requirement_fulfillment/ (a
campaign outside a batch uses its parent folder instead of <batch>);
--output-dir DIR writes to DIR/<campaign>/ instead.
Options: --managers (default: all six exp3 managers), --samples (grid
points per run, default 1001, minimum 2), --formats (default png pdf).
The rebetmc manager is labelled TacticalRetreat in figures.
Which bags are used
Bags are selected from each campaign folder with
suave_tools.runs.accepted_runs, never by scanning directory names:
- A trial counts only if its entry in the campaign’s
runs.json(schema_version: 2) has"status": "completed". - A completed trial must have
"bag": "accepted"; its bag isrosbags/<manager>_<mission>_<run_id>_<attempt_id>/. A completed trial without an accepted bag, or an unsupportedruns.json, is an error, not a silent omission. - Trials run with recording disabled (
"bag": null) are reported asrecording_disabled. - Bags under
rosbags/pending/orrosbags/failed/are never loaded.
An unreadable selected bag is an error. A bag that is readable but lacks a
topic is allowed and reported in coverage.json.
Timing and statistics
- Time is normalized recording time: 0–100 % of each bag’s metadata start/duration, using the same origin for every topic. This is not mission time; mission boundaries are not inferred.
- Each run is resampled with previous-value hold: no interpolation and no lookahead. Before a topic’s first message the value is unknown (gap), never zero. At duplicate timestamps the last message wins.
- Non-finite values, and values outside
[0, 1]by more than1e-6, are counted as invalid samples and excluded. - Curves are the mean over runs with a value at that grid point. Bands are
approximate 95 % confidence intervals (
1.96 * SD / sqrt(n),ddof=1) forn >= 2; withn = 1only the mean is drawn. Legends show the number of contributing runs, andcoverage.jsonholds per-grid-point counts. - Managers with no observations for a topic are named in the figure caption
and listed under
no_observationsincoverage.json; managers with no accepted runs at all are listed separately underno_accepted_runs. A topic with no data at all gets an explicit no-data figure.
Package Dependencies
| Deps | Name |
|---|---|
| rosbag2_py | |
| rosbag2_storage_mcap | |
| ament_copyright | |
| ament_flake8 | |
| ament_pep257 | |
| diagnostic_msgs | |
| rclpy | |
| std_msgs | |
| suave_msgs | |
| suave_tools |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| suave_base |
Launch files
Messages
Services
Plugins
Recent questions tagged suave_requirements at Robotics Stack Exchange
|
suave_requirements 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_requirements suave_runner suave_tools |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | Apache-2.0 |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/kas-lab/suave.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-18 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- gus
Authors
suave_requirements
Runtime monitoring of the SUAVE RELAX requirements (requirement_monitor) and
offline plotting of their fulfillment from recorded campaign bags.
Plotting requirement fulfillment
scripts/plot_requirement_fulfillment.py writes one comparison figure per
requirement topic (thruster availability, search footprint, and the combined,
thruster, water-visibility and battery reaction times) plus a
coverage.json provenance report. Run it with the workspace sourced:
B=~/suave/results/batches/<batch>
python3 src/suave/suave_requirements/scripts/plot_requirement_fulfillment.py $B
python3 src/suave/suave_requirements/scripts/plot_requirement_fulfillment.py \
$B/campaigns/<campaign>
The path may be a batch, its campaigns/ folder, its state.json, or one
campaign folder (with runs.json). Each campaign gets its own folder, by
default <batch>/campaign_results/<campaign>/requirement_fulfillment/ (a
campaign outside a batch uses its parent folder instead of <batch>);
--output-dir DIR writes to DIR/<campaign>/ instead.
Options: --managers (default: all six exp3 managers), --samples (grid
points per run, default 1001, minimum 2), --formats (default png pdf).
The rebetmc manager is labelled TacticalRetreat in figures.
Which bags are used
Bags are selected from each campaign folder with
suave_tools.runs.accepted_runs, never by scanning directory names:
- A trial counts only if its entry in the campaign’s
runs.json(schema_version: 2) has"status": "completed". - A completed trial must have
"bag": "accepted"; its bag isrosbags/<manager>_<mission>_<run_id>_<attempt_id>/. A completed trial without an accepted bag, or an unsupportedruns.json, is an error, not a silent omission. - Trials run with recording disabled (
"bag": null) are reported asrecording_disabled. - Bags under
rosbags/pending/orrosbags/failed/are never loaded.
An unreadable selected bag is an error. A bag that is readable but lacks a
topic is allowed and reported in coverage.json.
Timing and statistics
- Time is normalized recording time: 0–100 % of each bag’s metadata start/duration, using the same origin for every topic. This is not mission time; mission boundaries are not inferred.
- Each run is resampled with previous-value hold: no interpolation and no lookahead. Before a topic’s first message the value is unknown (gap), never zero. At duplicate timestamps the last message wins.
- Non-finite values, and values outside
[0, 1]by more than1e-6, are counted as invalid samples and excluded. - Curves are the mean over runs with a value at that grid point. Bands are
approximate 95 % confidence intervals (
1.96 * SD / sqrt(n),ddof=1) forn >= 2; withn = 1only the mean is drawn. Legends show the number of contributing runs, andcoverage.jsonholds per-grid-point counts. - Managers with no observations for a topic are named in the figure caption
and listed under
no_observationsincoverage.json; managers with no accepted runs at all are listed separately underno_accepted_runs. A topic with no data at all gets an explicit no-data figure.
Package Dependencies
| Deps | Name |
|---|---|
| rosbag2_py | |
| rosbag2_storage_mcap | |
| ament_copyright | |
| ament_flake8 | |
| ament_pep257 | |
| diagnostic_msgs | |
| rclpy | |
| std_msgs | |
| suave_msgs | |
| suave_tools |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| suave_base |
Launch files
Messages
Services
Plugins
Recent questions tagged suave_requirements at Robotics Stack Exchange
|
suave_requirements 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_requirements suave_runner suave_tools |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | Apache-2.0 |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/kas-lab/suave.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-18 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- gus
Authors
suave_requirements
Runtime monitoring of the SUAVE RELAX requirements (requirement_monitor) and
offline plotting of their fulfillment from recorded campaign bags.
Plotting requirement fulfillment
scripts/plot_requirement_fulfillment.py writes one comparison figure per
requirement topic (thruster availability, search footprint, and the combined,
thruster, water-visibility and battery reaction times) plus a
coverage.json provenance report. Run it with the workspace sourced:
B=~/suave/results/batches/<batch>
python3 src/suave/suave_requirements/scripts/plot_requirement_fulfillment.py $B
python3 src/suave/suave_requirements/scripts/plot_requirement_fulfillment.py \
$B/campaigns/<campaign>
The path may be a batch, its campaigns/ folder, its state.json, or one
campaign folder (with runs.json). Each campaign gets its own folder, by
default <batch>/campaign_results/<campaign>/requirement_fulfillment/ (a
campaign outside a batch uses its parent folder instead of <batch>);
--output-dir DIR writes to DIR/<campaign>/ instead.
Options: --managers (default: all six exp3 managers), --samples (grid
points per run, default 1001, minimum 2), --formats (default png pdf).
The rebetmc manager is labelled TacticalRetreat in figures.
Which bags are used
Bags are selected from each campaign folder with
suave_tools.runs.accepted_runs, never by scanning directory names:
- A trial counts only if its entry in the campaign’s
runs.json(schema_version: 2) has"status": "completed". - A completed trial must have
"bag": "accepted"; its bag isrosbags/<manager>_<mission>_<run_id>_<attempt_id>/. A completed trial without an accepted bag, or an unsupportedruns.json, is an error, not a silent omission. - Trials run with recording disabled (
"bag": null) are reported asrecording_disabled. - Bags under
rosbags/pending/orrosbags/failed/are never loaded.
An unreadable selected bag is an error. A bag that is readable but lacks a
topic is allowed and reported in coverage.json.
Timing and statistics
- Time is normalized recording time: 0–100 % of each bag’s metadata start/duration, using the same origin for every topic. This is not mission time; mission boundaries are not inferred.
- Each run is resampled with previous-value hold: no interpolation and no lookahead. Before a topic’s first message the value is unknown (gap), never zero. At duplicate timestamps the last message wins.
- Non-finite values, and values outside
[0, 1]by more than1e-6, are counted as invalid samples and excluded. - Curves are the mean over runs with a value at that grid point. Bands are
approximate 95 % confidence intervals (
1.96 * SD / sqrt(n),ddof=1) forn >= 2; withn = 1only the mean is drawn. Legends show the number of contributing runs, andcoverage.jsonholds per-grid-point counts. - Managers with no observations for a topic are named in the figure caption
and listed under
no_observationsincoverage.json; managers with no accepted runs at all are listed separately underno_accepted_runs. A topic with no data at all gets an explicit no-data figure.
Package Dependencies
| Deps | Name |
|---|---|
| rosbag2_py | |
| rosbag2_storage_mcap | |
| ament_copyright | |
| ament_flake8 | |
| ament_pep257 | |
| diagnostic_msgs | |
| rclpy | |
| std_msgs | |
| suave_msgs | |
| suave_tools |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| suave_base |
Launch files
Messages
Services
Plugins
Recent questions tagged suave_requirements at Robotics Stack Exchange
|
suave_requirements 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_requirements suave_runner suave_tools |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | Apache-2.0 |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/kas-lab/suave.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-18 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- gus
Authors
suave_requirements
Runtime monitoring of the SUAVE RELAX requirements (requirement_monitor) and
offline plotting of their fulfillment from recorded campaign bags.
Plotting requirement fulfillment
scripts/plot_requirement_fulfillment.py writes one comparison figure per
requirement topic (thruster availability, search footprint, and the combined,
thruster, water-visibility and battery reaction times) plus a
coverage.json provenance report. Run it with the workspace sourced:
B=~/suave/results/batches/<batch>
python3 src/suave/suave_requirements/scripts/plot_requirement_fulfillment.py $B
python3 src/suave/suave_requirements/scripts/plot_requirement_fulfillment.py \
$B/campaigns/<campaign>
The path may be a batch, its campaigns/ folder, its state.json, or one
campaign folder (with runs.json). Each campaign gets its own folder, by
default <batch>/campaign_results/<campaign>/requirement_fulfillment/ (a
campaign outside a batch uses its parent folder instead of <batch>);
--output-dir DIR writes to DIR/<campaign>/ instead.
Options: --managers (default: all six exp3 managers), --samples (grid
points per run, default 1001, minimum 2), --formats (default png pdf).
The rebetmc manager is labelled TacticalRetreat in figures.
Which bags are used
Bags are selected from each campaign folder with
suave_tools.runs.accepted_runs, never by scanning directory names:
- A trial counts only if its entry in the campaign’s
runs.json(schema_version: 2) has"status": "completed". - A completed trial must have
"bag": "accepted"; its bag isrosbags/<manager>_<mission>_<run_id>_<attempt_id>/. A completed trial without an accepted bag, or an unsupportedruns.json, is an error, not a silent omission. - Trials run with recording disabled (
"bag": null) are reported asrecording_disabled. - Bags under
rosbags/pending/orrosbags/failed/are never loaded.
An unreadable selected bag is an error. A bag that is readable but lacks a
topic is allowed and reported in coverage.json.
Timing and statistics
- Time is normalized recording time: 0–100 % of each bag’s metadata start/duration, using the same origin for every topic. This is not mission time; mission boundaries are not inferred.
- Each run is resampled with previous-value hold: no interpolation and no lookahead. Before a topic’s first message the value is unknown (gap), never zero. At duplicate timestamps the last message wins.
- Non-finite values, and values outside
[0, 1]by more than1e-6, are counted as invalid samples and excluded. - Curves are the mean over runs with a value at that grid point. Bands are
approximate 95 % confidence intervals (
1.96 * SD / sqrt(n),ddof=1) forn >= 2; withn = 1only the mean is drawn. Legends show the number of contributing runs, andcoverage.jsonholds per-grid-point counts. - Managers with no observations for a topic are named in the figure caption
and listed under
no_observationsincoverage.json; managers with no accepted runs at all are listed separately underno_accepted_runs. A topic with no data at all gets an explicit no-data figure.
Package Dependencies
| Deps | Name |
|---|---|
| rosbag2_py | |
| rosbag2_storage_mcap | |
| ament_copyright | |
| ament_flake8 | |
| ament_pep257 | |
| diagnostic_msgs | |
| rclpy | |
| std_msgs | |
| suave_msgs | |
| suave_tools |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| suave_base |
Launch files
Messages
Services
Plugins
Recent questions tagged suave_requirements at Robotics Stack Exchange
|
suave_requirements 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_requirements suave_runner suave_tools |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | Apache-2.0 |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/kas-lab/suave.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-18 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- gus
Authors
suave_requirements
Runtime monitoring of the SUAVE RELAX requirements (requirement_monitor) and
offline plotting of their fulfillment from recorded campaign bags.
Plotting requirement fulfillment
scripts/plot_requirement_fulfillment.py writes one comparison figure per
requirement topic (thruster availability, search footprint, and the combined,
thruster, water-visibility and battery reaction times) plus a
coverage.json provenance report. Run it with the workspace sourced:
B=~/suave/results/batches/<batch>
python3 src/suave/suave_requirements/scripts/plot_requirement_fulfillment.py $B
python3 src/suave/suave_requirements/scripts/plot_requirement_fulfillment.py \
$B/campaigns/<campaign>
The path may be a batch, its campaigns/ folder, its state.json, or one
campaign folder (with runs.json). Each campaign gets its own folder, by
default <batch>/campaign_results/<campaign>/requirement_fulfillment/ (a
campaign outside a batch uses its parent folder instead of <batch>);
--output-dir DIR writes to DIR/<campaign>/ instead.
Options: --managers (default: all six exp3 managers), --samples (grid
points per run, default 1001, minimum 2), --formats (default png pdf).
The rebetmc manager is labelled TacticalRetreat in figures.
Which bags are used
Bags are selected from each campaign folder with
suave_tools.runs.accepted_runs, never by scanning directory names:
- A trial counts only if its entry in the campaign’s
runs.json(schema_version: 2) has"status": "completed". - A completed trial must have
"bag": "accepted"; its bag isrosbags/<manager>_<mission>_<run_id>_<attempt_id>/. A completed trial without an accepted bag, or an unsupportedruns.json, is an error, not a silent omission. - Trials run with recording disabled (
"bag": null) are reported asrecording_disabled. - Bags under
rosbags/pending/orrosbags/failed/are never loaded.
An unreadable selected bag is an error. A bag that is readable but lacks a
topic is allowed and reported in coverage.json.
Timing and statistics
- Time is normalized recording time: 0–100 % of each bag’s metadata start/duration, using the same origin for every topic. This is not mission time; mission boundaries are not inferred.
- Each run is resampled with previous-value hold: no interpolation and no lookahead. Before a topic’s first message the value is unknown (gap), never zero. At duplicate timestamps the last message wins.
- Non-finite values, and values outside
[0, 1]by more than1e-6, are counted as invalid samples and excluded. - Curves are the mean over runs with a value at that grid point. Bands are
approximate 95 % confidence intervals (
1.96 * SD / sqrt(n),ddof=1) forn >= 2; withn = 1only the mean is drawn. Legends show the number of contributing runs, andcoverage.jsonholds per-grid-point counts. - Managers with no observations for a topic are named in the figure caption
and listed under
no_observationsincoverage.json; managers with no accepted runs at all are listed separately underno_accepted_runs. A topic with no data at all gets an explicit no-data figure.
Package Dependencies
| Deps | Name |
|---|---|
| rosbag2_py | |
| rosbag2_storage_mcap | |
| ament_copyright | |
| ament_flake8 | |
| ament_pep257 | |
| diagnostic_msgs | |
| rclpy | |
| std_msgs | |
| suave_msgs | |
| suave_tools |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| suave_base |
Launch files
Messages
Services
Plugins
Recent questions tagged suave_requirements at Robotics Stack Exchange
|
suave_requirements 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_requirements suave_runner suave_tools |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | Apache-2.0 |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/kas-lab/suave.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-18 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- gus
Authors
suave_requirements
Runtime monitoring of the SUAVE RELAX requirements (requirement_monitor) and
offline plotting of their fulfillment from recorded campaign bags.
Plotting requirement fulfillment
scripts/plot_requirement_fulfillment.py writes one comparison figure per
requirement topic (thruster availability, search footprint, and the combined,
thruster, water-visibility and battery reaction times) plus a
coverage.json provenance report. Run it with the workspace sourced:
B=~/suave/results/batches/<batch>
python3 src/suave/suave_requirements/scripts/plot_requirement_fulfillment.py $B
python3 src/suave/suave_requirements/scripts/plot_requirement_fulfillment.py \
$B/campaigns/<campaign>
The path may be a batch, its campaigns/ folder, its state.json, or one
campaign folder (with runs.json). Each campaign gets its own folder, by
default <batch>/campaign_results/<campaign>/requirement_fulfillment/ (a
campaign outside a batch uses its parent folder instead of <batch>);
--output-dir DIR writes to DIR/<campaign>/ instead.
Options: --managers (default: all six exp3 managers), --samples (grid
points per run, default 1001, minimum 2), --formats (default png pdf).
The rebetmc manager is labelled TacticalRetreat in figures.
Which bags are used
Bags are selected from each campaign folder with
suave_tools.runs.accepted_runs, never by scanning directory names:
- A trial counts only if its entry in the campaign’s
runs.json(schema_version: 2) has"status": "completed". - A completed trial must have
"bag": "accepted"; its bag isrosbags/<manager>_<mission>_<run_id>_<attempt_id>/. A completed trial without an accepted bag, or an unsupportedruns.json, is an error, not a silent omission. - Trials run with recording disabled (
"bag": null) are reported asrecording_disabled. - Bags under
rosbags/pending/orrosbags/failed/are never loaded.
An unreadable selected bag is an error. A bag that is readable but lacks a
topic is allowed and reported in coverage.json.
Timing and statistics
- Time is normalized recording time: 0–100 % of each bag’s metadata start/duration, using the same origin for every topic. This is not mission time; mission boundaries are not inferred.
- Each run is resampled with previous-value hold: no interpolation and no lookahead. Before a topic’s first message the value is unknown (gap), never zero. At duplicate timestamps the last message wins.
- Non-finite values, and values outside
[0, 1]by more than1e-6, are counted as invalid samples and excluded. - Curves are the mean over runs with a value at that grid point. Bands are
approximate 95 % confidence intervals (
1.96 * SD / sqrt(n),ddof=1) forn >= 2; withn = 1only the mean is drawn. Legends show the number of contributing runs, andcoverage.jsonholds per-grid-point counts. - Managers with no observations for a topic are named in the figure caption
and listed under
no_observationsincoverage.json; managers with no accepted runs at all are listed separately underno_accepted_runs. A topic with no data at all gets an explicit no-data figure.
Package Dependencies
| Deps | Name |
|---|---|
| rosbag2_py | |
| rosbag2_storage_mcap | |
| ament_copyright | |
| ament_flake8 | |
| ament_pep257 | |
| diagnostic_msgs | |
| rclpy | |
| std_msgs | |
| suave_msgs | |
| suave_tools |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| suave_base |
Launch files
Messages
Services
Plugins
Recent questions tagged suave_requirements at Robotics Stack Exchange
|
suave_requirements 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_requirements suave_runner suave_tools |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | Apache-2.0 |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/kas-lab/suave.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-18 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- gus
Authors
suave_requirements
Runtime monitoring of the SUAVE RELAX requirements (requirement_monitor) and
offline plotting of their fulfillment from recorded campaign bags.
Plotting requirement fulfillment
scripts/plot_requirement_fulfillment.py writes one comparison figure per
requirement topic (thruster availability, search footprint, and the combined,
thruster, water-visibility and battery reaction times) plus a
coverage.json provenance report. Run it with the workspace sourced:
B=~/suave/results/batches/<batch>
python3 src/suave/suave_requirements/scripts/plot_requirement_fulfillment.py $B
python3 src/suave/suave_requirements/scripts/plot_requirement_fulfillment.py \
$B/campaigns/<campaign>
The path may be a batch, its campaigns/ folder, its state.json, or one
campaign folder (with runs.json). Each campaign gets its own folder, by
default <batch>/campaign_results/<campaign>/requirement_fulfillment/ (a
campaign outside a batch uses its parent folder instead of <batch>);
--output-dir DIR writes to DIR/<campaign>/ instead.
Options: --managers (default: all six exp3 managers), --samples (grid
points per run, default 1001, minimum 2), --formats (default png pdf).
The rebetmc manager is labelled TacticalRetreat in figures.
Which bags are used
Bags are selected from each campaign folder with
suave_tools.runs.accepted_runs, never by scanning directory names:
- A trial counts only if its entry in the campaign’s
runs.json(schema_version: 2) has"status": "completed". - A completed trial must have
"bag": "accepted"; its bag isrosbags/<manager>_<mission>_<run_id>_<attempt_id>/. A completed trial without an accepted bag, or an unsupportedruns.json, is an error, not a silent omission. - Trials run with recording disabled (
"bag": null) are reported asrecording_disabled. - Bags under
rosbags/pending/orrosbags/failed/are never loaded.
An unreadable selected bag is an error. A bag that is readable but lacks a
topic is allowed and reported in coverage.json.
Timing and statistics
- Time is normalized recording time: 0–100 % of each bag’s metadata start/duration, using the same origin for every topic. This is not mission time; mission boundaries are not inferred.
- Each run is resampled with previous-value hold: no interpolation and no lookahead. Before a topic’s first message the value is unknown (gap), never zero. At duplicate timestamps the last message wins.
- Non-finite values, and values outside
[0, 1]by more than1e-6, are counted as invalid samples and excluded. - Curves are the mean over runs with a value at that grid point. Bands are
approximate 95 % confidence intervals (
1.96 * SD / sqrt(n),ddof=1) forn >= 2; withn = 1only the mean is drawn. Legends show the number of contributing runs, andcoverage.jsonholds per-grid-point counts. - Managers with no observations for a topic are named in the figure caption
and listed under
no_observationsincoverage.json; managers with no accepted runs at all are listed separately underno_accepted_runs. A topic with no data at all gets an explicit no-data figure.
Package Dependencies
| Deps | Name |
|---|---|
| rosbag2_py | |
| rosbag2_storage_mcap | |
| ament_copyright | |
| ament_flake8 | |
| ament_pep257 | |
| diagnostic_msgs | |
| rclpy | |
| std_msgs | |
| suave_msgs | |
| suave_tools |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| suave_base |
Launch files
Messages
Services
Plugins
Recent questions tagged suave_requirements at Robotics Stack Exchange
|
suave_requirements 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_requirements suave_runner suave_tools |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | Apache-2.0 |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/kas-lab/suave.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-18 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- gus
Authors
suave_requirements
Runtime monitoring of the SUAVE RELAX requirements (requirement_monitor) and
offline plotting of their fulfillment from recorded campaign bags.
Plotting requirement fulfillment
scripts/plot_requirement_fulfillment.py writes one comparison figure per
requirement topic (thruster availability, search footprint, and the combined,
thruster, water-visibility and battery reaction times) plus a
coverage.json provenance report. Run it with the workspace sourced:
B=~/suave/results/batches/<batch>
python3 src/suave/suave_requirements/scripts/plot_requirement_fulfillment.py $B
python3 src/suave/suave_requirements/scripts/plot_requirement_fulfillment.py \
$B/campaigns/<campaign>
The path may be a batch, its campaigns/ folder, its state.json, or one
campaign folder (with runs.json). Each campaign gets its own folder, by
default <batch>/campaign_results/<campaign>/requirement_fulfillment/ (a
campaign outside a batch uses its parent folder instead of <batch>);
--output-dir DIR writes to DIR/<campaign>/ instead.
Options: --managers (default: all six exp3 managers), --samples (grid
points per run, default 1001, minimum 2), --formats (default png pdf).
The rebetmc manager is labelled TacticalRetreat in figures.
Which bags are used
Bags are selected from each campaign folder with
suave_tools.runs.accepted_runs, never by scanning directory names:
- A trial counts only if its entry in the campaign’s
runs.json(schema_version: 2) has"status": "completed". - A completed trial must have
"bag": "accepted"; its bag isrosbags/<manager>_<mission>_<run_id>_<attempt_id>/. A completed trial without an accepted bag, or an unsupportedruns.json, is an error, not a silent omission. - Trials run with recording disabled (
"bag": null) are reported asrecording_disabled. - Bags under
rosbags/pending/orrosbags/failed/are never loaded.
An unreadable selected bag is an error. A bag that is readable but lacks a
topic is allowed and reported in coverage.json.
Timing and statistics
- Time is normalized recording time: 0–100 % of each bag’s metadata start/duration, using the same origin for every topic. This is not mission time; mission boundaries are not inferred.
- Each run is resampled with previous-value hold: no interpolation and no lookahead. Before a topic’s first message the value is unknown (gap), never zero. At duplicate timestamps the last message wins.
- Non-finite values, and values outside
[0, 1]by more than1e-6, are counted as invalid samples and excluded. - Curves are the mean over runs with a value at that grid point. Bands are
approximate 95 % confidence intervals (
1.96 * SD / sqrt(n),ddof=1) forn >= 2; withn = 1only the mean is drawn. Legends show the number of contributing runs, andcoverage.jsonholds per-grid-point counts. - Managers with no observations for a topic are named in the figure caption
and listed under
no_observationsincoverage.json; managers with no accepted runs at all are listed separately underno_accepted_runs. A topic with no data at all gets an explicit no-data figure.
Package Dependencies
| Deps | Name |
|---|---|
| rosbag2_py | |
| rosbag2_storage_mcap | |
| ament_copyright | |
| ament_flake8 | |
| ament_pep257 | |
| diagnostic_msgs | |
| rclpy | |
| std_msgs | |
| suave_msgs | |
| suave_tools |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| suave_base |
Launch files
Messages
Services
Plugins
Recent questions tagged suave_requirements at Robotics Stack Exchange
|
suave_requirements 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_requirements suave_runner suave_tools |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | Apache-2.0 |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/kas-lab/suave.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-18 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- gus
Authors
suave_requirements
Runtime monitoring of the SUAVE RELAX requirements (requirement_monitor) and
offline plotting of their fulfillment from recorded campaign bags.
Plotting requirement fulfillment
scripts/plot_requirement_fulfillment.py writes one comparison figure per
requirement topic (thruster availability, search footprint, and the combined,
thruster, water-visibility and battery reaction times) plus a
coverage.json provenance report. Run it with the workspace sourced:
B=~/suave/results/batches/<batch>
python3 src/suave/suave_requirements/scripts/plot_requirement_fulfillment.py $B
python3 src/suave/suave_requirements/scripts/plot_requirement_fulfillment.py \
$B/campaigns/<campaign>
The path may be a batch, its campaigns/ folder, its state.json, or one
campaign folder (with runs.json). Each campaign gets its own folder, by
default <batch>/campaign_results/<campaign>/requirement_fulfillment/ (a
campaign outside a batch uses its parent folder instead of <batch>);
--output-dir DIR writes to DIR/<campaign>/ instead.
Options: --managers (default: all six exp3 managers), --samples (grid
points per run, default 1001, minimum 2), --formats (default png pdf).
The rebetmc manager is labelled TacticalRetreat in figures.
Which bags are used
Bags are selected from each campaign folder with
suave_tools.runs.accepted_runs, never by scanning directory names:
- A trial counts only if its entry in the campaign’s
runs.json(schema_version: 2) has"status": "completed". - A completed trial must have
"bag": "accepted"; its bag isrosbags/<manager>_<mission>_<run_id>_<attempt_id>/. A completed trial without an accepted bag, or an unsupportedruns.json, is an error, not a silent omission. - Trials run with recording disabled (
"bag": null) are reported asrecording_disabled. - Bags under
rosbags/pending/orrosbags/failed/are never loaded.
An unreadable selected bag is an error. A bag that is readable but lacks a
topic is allowed and reported in coverage.json.
Timing and statistics
- Time is normalized recording time: 0–100 % of each bag’s metadata start/duration, using the same origin for every topic. This is not mission time; mission boundaries are not inferred.
- Each run is resampled with previous-value hold: no interpolation and no lookahead. Before a topic’s first message the value is unknown (gap), never zero. At duplicate timestamps the last message wins.
- Non-finite values, and values outside
[0, 1]by more than1e-6, are counted as invalid samples and excluded. - Curves are the mean over runs with a value at that grid point. Bands are
approximate 95 % confidence intervals (
1.96 * SD / sqrt(n),ddof=1) forn >= 2; withn = 1only the mean is drawn. Legends show the number of contributing runs, andcoverage.jsonholds per-grid-point counts. - Managers with no observations for a topic are named in the figure caption
and listed under
no_observationsincoverage.json; managers with no accepted runs at all are listed separately underno_accepted_runs. A topic with no data at all gets an explicit no-data figure.
Package Dependencies
| Deps | Name |
|---|---|
| rosbag2_py | |
| rosbag2_storage_mcap | |
| ament_copyright | |
| ament_flake8 | |
| ament_pep257 | |
| diagnostic_msgs | |
| rclpy | |
| std_msgs | |
| suave_msgs | |
| suave_tools |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| suave_base |