Skip to content

Krrish/coord pr#350

Open
krrishj18 wants to merge 60 commits intomainfrom
krrish/coord-pr
Open

Krrish/coord pr#350
krrishj18 wants to merge 60 commits intomainfrom
krrish/coord-pr

Conversation

@krrishj18
Copy link
Copy Markdown
Collaborator

What does this pull request do?

  • Foxglove panels (gcs/foxglove_extensions/): robot-commands (per-robot task tabs with multi-feedback feed), waypoint-editor, polygon-editor. Auto-installed into Foxglove on container start via install.sh.
  • Action relay (gcs/ros_ws/src/action_relay/): bridges Foxglove JSON-on-String goals to per-robot action servers across DDS domains; cancel-aware with 10 s timeout fallback.
  • GCS visualizer (gcs/ros_ws/src/gcs_visualizer/): multi-robot markers in one 3D namespace, per-robot /gcs/<robot>/location republisher with map frame, save markers for waypoints/polygons, sim_ground TRIANGLE_LIST from the sim overhead camera.
  • Coordination layer (common/ros_packages/coordination/): gossip node + PeerProfile + configurable typed payloads (gossip_payloads.yaml).
  • Top-down sim camera (simulation/isaac-sim/utils/scene_prep.py): add_orthographic_camera + add_overhead_camera_publisher (publishes /sim/overhead/{image,spec});
  • Polygon-bounded random walk (robot/ros_ws/src/global/planners/random_walk/): point-in-polygon search bounds, auto-navigate to nearest inside point pre-flight.
  • Persisted GCS waypoint/polygon editor saves: gcs/saves/ mounted into the GCS container.

Which issue number does this address?

Video can be found here

foxglove_full_screen

Videos + photos in the updated docs

How did you implement it?

  • Two-context relay (relay_node.py): a single Python process spins up a ctx0 (GCS, domain 0) executor and one ctxN (per-robot, domain N) executor; reads JSON goal/cancel from /<robot>/tasks/<task> String topics, builds the typed action goal,
    forwards to the robot-domain action client, and re-publishes feedback/result as JSON. NUM_ROBOTS env spawns the right set of relays.
  • Foxglove panels are TS extensions packaged via install.sh, which copies each unpacked extension into
    ~/.foxglove-studio/extensions/<publisher>.<name>-<version>/ at container start (mounted read-only from
    gcs/foxglove_extensions/).
  • Multi-robot visualizer auto-discovers robots by scanning /<robot>/odometry_conversion/odometry topics; per-robot color from a fixed palette; world→map static TF published once on the GCS side.
  • Top-down map: USD orthographic camera at OVERHEAD_ALTITUDE_M over (0,0); OmniGraph ROS2CameraHelper publishes a JPEG to /sim/overhead/image and a Float32 coverage spec to /sim/overhead/spec. GCS side downsamples to a Marker.TRIANGLE_LIST grid (overhead_grid_per_m, capped at overhead_max_grid_resolution) so it stays cheap in Foxglove's 3D panel.
  • Random walk polygon bounds: ray-cast 2D PIP in random_walk_logic.cpp::point_in_search_bounds; nearest-inside-point pre-flight dispatched via the navigate action client.

Testing

How do you run the tests?

  • Foxglove panels — created waypoints and polygons of varying shapes, saved them, assigned to multiple drones, then cancelled / reassigned / restarted tasks repeatedly to confirm relay state stays in sync.
  • Top-down sim map — verified the textured ground renders correctly across 3 different Isaac Sim scenes.
  • Gossip payloads — confirmed GPS and goal-position payloads propagate between peers; verified both via Foxglove rendering and the peer_profile terminal viewer.
  • Custom payload extensibility — added rayfronts-style entries to gossip_payloads.yaml and a VDB map payload to confirm the gossip layer handles arbitrary user-declared types end-to-end.

What do the tests do?

Cover the GCS-side critical paths added by this PR: action relay (goal / feedback / result / cancel), polygon + waypoint editor + saves persistence, multi-robot visualizer, top-down sim map publisher, and the gossip payload pipeline.

What are the expected results of the tests?

  • Task tabs flip yellow while executing → green on success
  • Saved polygons / waypoints survive container restarts via the gcs/saves mount.
  • sim_ground renders without dropping frames in Foxglove 3D across all tested scenes.
  • Each robot's PeerProfile reaches every other robot with all declared payloads attached, regardless of payload type.

Did you update the docs (and under what path)?

New pages:

  • docs/gcs/foxglove.md — GCS Foxglove visualization (multi-robot markers, payload republishing, sim ground)
  • docs/gcs/waypoints_and_geofences.md — click-to-place Waypoint and Polygon editor workflow + saves persistence
  • docs/simulation/isaac_sim/spawning_drones.md — multi-drone scene authoring with gps_utils.set_gps_origins
  • docs/simulation/isaac_sim/overhead_camera.md — 2D world map in Foxglove (real-world satellite tiles + simulated overhead
    camera)

Updated:

  • docs/robot/autonomy/coordination/index.md — gossip protocol overview (already wired in nav)
  • docs/robot/autonomy/coordination/payloads.md — how to add a custom payload + Foxglove handler
  • mkdocs.yml — nav entries for the four new pages, under Ground Control Station → Foxglove and Simulation → Isaac Sim

Skills (.agents/skills/):

  • attach-gossip-payload/ — agent workflow for adding a payload end-to-end
  • visualize-in-foxglove/ — agent workflow for adding a topic to the GCS visualizer

krrishj18 and others added 30 commits April 8, 2026 12:06
…ion/raw/fix(not my topic, it was already publishing to that)
…d vizualizes it,currently works for rayfronts
…added non-world prims to save in flattened manner
- Take main: .env, .gitignore (union), airstack.sh, mkdocs.yml,
  desktop_bringup/rviz/robot.rviz, base Docker compose files.
- Keep multi-raven everywhere else (gcs_visualizer, action_relay,
  foxglove_extensions, random_walk_planner with polygon bounds,
  semantic_search_task, global_bringup, scene_prep helpers).
- tasks_panel.cpp: take main's reworked structure, re-applied
  multi-raven Semantic Search tweaks (background_queries field,
  alt default 15, confidence_threshold default 0.95, simple feedback,
  drop time_limit_sec/target_count).
- SemanticSearchTask.action: union of comments, multi-raven field set.
- Accept deletion of unused ObjectCounting/ObjectSearch action files
  (Foxglove panel publishes JSON; never had a robot executor).
# Conflicts:
#	simulation/isaac-sim/extensions/PegasusSimulator
#	simulation/isaac-sim/utils/scene_prep.py
- Restore main's robot.rviz (drop redundant robot_1/robot_2.rviz)
- Restore ms-airsim include in root docker-compose.yaml
- Restore airsim sections in docs/simulation/index.md
- Restore docs/gcs/docker/index.md (VERSION env name)
- Restore robot/docker/{.bashrc, Dockerfile.robot} to main
- Restore SIM_IP in robot/docker/docker-compose.yaml
- Restore takeoff_landing_planner takeoff_height: 8.0
- Drop docs/action_bridging.md (internal design memo)
- Drop personal launch scripts (two_drone_fire*, three_drone_scene_import, two_drone_RetroNeighbourhood)
- Trim verbose comments in gps_utils.py and example_multi_drone_scene_import.py
@krrishj18 krrishj18 marked this pull request as ready for review May 1, 2026 00:16
@krrishj18 krrishj18 marked this pull request as draft May 1, 2026 00:23
@krrishj18 krrishj18 marked this pull request as ready for review May 1, 2026 03:10
@castacks castacks deleted a comment from github-actions Bot May 1, 2026
@castacks castacks deleted a comment from github-actions Bot May 1, 2026
@castacks castacks deleted a comment from github-actions Bot May 1, 2026
@castacks castacks deleted a comment from github-actions Bot May 1, 2026
@krrishj18
Copy link
Copy Markdown
Collaborator Author

/pytest -m "liveliness or takeoff_hover_land"

@krrishj18
Copy link
Copy Markdown
Collaborator Author

/pytest

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 2, 2026

Running pytest tests/view run. Status will appear as a check on this PR.

Note: build_packages is automatically prepended whenever any marks are specified, to ensure code is built before launch tests run.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 2, 2026

Test Metrics — c46c4a4cc1dd7dc9a6aaf922b38d89884ddd0053

Pass rates

Test Pass Fail Skip Rate (baseline → current)
isaac-sim.extensions.PegasusSimulator.extensions.pegasus.simulator.pegasus.simulator.tests.test_hello_world 0 → 0 0 → 1 0 → 0 — → 0%
isaac-sim.standalone_examples.replicator.pose_generation.pose_tests.test_utils 0 → 0 0 → 1 0 → 0 — → 0%
isaac-sim.standalone_examples.testing.isaacsim.benchmark.services.test_no_rendering 0 → 0 0 → 1 0 → 0 — → 0%
isaac-sim.standalone_examples.testing.isaacsim.core.api.test_articulation_determinism 0 → 0 0 → 1 0 → 0 — → 0%
isaac-sim.standalone_examples.testing.isaacsim.core.api.test_articulation_root 0 → 0 0 → 1 0 → 0 — → 0%
isaac-sim.standalone_examples.testing.isaacsim.core.api.test_delete_in_contact 0 → 0 0 → 1 0 → 0 — → 0%
isaac-sim.standalone_examples.testing.isaacsim.core.api.test_rendering 0 → 0 0 → 1 0 → 0 — → 0%
isaac-sim.standalone_examples.testing.isaacsim.core.api.test_save_stage 0 → 0 0 → 1 0 → 0 — → 0%
isaac-sim.standalone_examples.testing.isaacsim.core.api.test_time_stepping 0 → 0 0 → 1 0 → 0 — → 0%
isaac-sim.standalone_examples.testing.isaacsim.cortex.framework.cortex_bringup_test 0 → 0 0 → 1 0 → 0 — → 0%
isaac-sim.standalone_examples.testing.isaacsim.ros1.bridge.test_carter_lidar 0 → 0 0 → 1 0 → 0 — → 0%
isaac-sim.standalone_examples.testing.isaacsim.ros2.bridge.test_carter_camera_multi_robot_nav 0 → 0 0 → 1 0 → 0 — → 0%
isaac-sim.standalone_examples.testing.isaacsim.ros2.bridge.test_people_sim 0 → 0 0 → 1 0 → 0 — → 0%
isaac-sim.standalone_examples.testing.isaacsim.sensors.physics.contact_sensor_test 0 → 0 0 → 1 0 → 0 — → 0%
isaac-sim.standalone_examples.testing.isaacsim.sensors.rtx.rtx_lidar_test 0 → 0 0 → 1 0 → 0 — → 0%
isaac-sim.standalone_examples.testing.isaacsim.sensors.rtx.rtx_radar_test 0 → 0 0 → 1 0 → 0 — → 0%
isaac-sim.standalone_examples.testing.isaacsim.simulation_app.test_createstage_config 0 → 0 0 → 1 0 → 0 — → 0%
isaac-sim.standalone_examples.testing.isaacsim.simulation_app.test_extension_count 0 → 0 0 → 1 0 → 0 — → 0%
isaac-sim.standalone_examples.testing.isaacsim.simulation_app.test_external 0 → 0 0 → 1 0 → 0 — → 0%
isaac-sim.standalone_examples.testing.isaacsim.simulation_app.test_extra_args 0 → 0 0 → 1 0 → 0 — → 0%
isaac-sim.standalone_examples.testing.isaacsim.simulation_app.test_fabric_frame_delay 0 → 0 0 → 1 0 → 0 — → 0%
isaac-sim.standalone_examples.testing.isaacsim.simulation_app.test_fetch_results 0 → 0 0 → 1 0 → 0 — → 0%
isaac-sim.standalone_examples.testing.isaacsim.simulation_app.test_frame_delay 0 → 0 0 → 1 0 → 0 — → 0%
isaac-sim.standalone_examples.testing.isaacsim.simulation_app.test_ogn 0 → 0 0 → 1 0 → 0 — → 0%
isaac-sim.standalone_examples.testing.isaacsim.simulation_app.test_ovd 0 → 0 0 → 1 0 → 0 — → 0%
isaac-sim.standalone_examples.testing.isaacsim.simulation_app.test_syntheticdata 0 → 0 0 → 1 0 → 0 — → 0%
isaac-sim.standalone_examples.testing.isaacsim.simulation_app.test_unsaved_on_exit 0 → 0 0 → 1 0 → 0 — → 0%
isaac-sim.standalone_examples.testing.omni.isaac.dynamic_control.test_zero_step 0 → 0 0 → 1 0 → 0 — → 0%
isaac-sim.standalone_examples.testing.omni.replicator.agent.test_scripting 0 → 0 0 → 1 0 → 0 — → 0%
isaac-sim.standalone_examples.testing.omni.syntheticdata.test_basic 0 → 0 0 → 1 0 → 0 — → 0%
ros_packages.gui.rviz.rviz_behavior_tree_panel.scripts.test_behavior_tree_publisher 0 → 0 0 → 1 0 → 0 — → 0%
ros_packages.logging.bag_recorder_pid.test.test_copyright 0 → 0 0 → 1 0 → 0 — → 0%
ros_packages.logging.bag_recorder_pid.test.test_flake8 0 → 0 0 → 1 0 → 0 — → 0%
ros_packages.logging.bag_recorder_pid.test.test_pep257 0 → 0 0 → 1 0 → 0 — → 0%
ros_ws.src.local.planners.takeoff_landing_planner.test.scripts.test_takeoff_landing_planner 0 → 0 0 → 1 0 → 0 — → 0%
ros_ws.src.perception.macvo_ros2.macvo_ros2.macvo.Baseline.DPVO.Pangolin.components.pango_python.pybind11.tests 0 → 0 0 → 1 0 → 0 — → 0%
ros_ws.src.perception.macvo_ros2.macvo_ros2.macvo.Scripts.UnitTest.test_circular_buffer 0 → 0 0 → 1 0 → 0 — → 0%
ros_ws.src.perception.macvo_ros2.macvo_ros2.macvo.Scripts.UnitTest.test_config_loadable 0 → 0 0 → 1 0 → 0 — → 0%
ros_ws.src.perception.macvo_ros2.macvo_ros2.macvo.Scripts.UnitTest.test_config_macvo 0 → 0 0 → 1 0 → 0 — → 0%
ros_ws.src.perception.macvo_ros2.macvo_ros2.macvo.Scripts.UnitTest.test_config_modules 0 → 0 0 → 1 0 → 0 — → 0%
ros_ws.src.perception.macvo_ros2.macvo_ros2.macvo.Scripts.UnitTest.test_config_sequence 0 → 0 0 → 1 0 → 0 — → 0%
ros_ws.src.perception.macvo_ros2.macvo_ros2.macvo.Scripts.UnitTest.test_config_tartanvo 0 → 0 0 → 1 0 → 0 — → 0%
ros_ws.src.perception.macvo_ros2.macvo_ros2.macvo.Scripts.UnitTest.test_frontend 0 → 0 0 → 1 0 → 0 — → 0%
ros_ws.src.perception.macvo_ros2.macvo_ros2.macvo.Scripts.UnitTest.test_matching 0 → 0 0 → 1 0 → 0 — → 0%
ros_ws.src.perception.macvo_ros2.macvo_ros2.macvo.Scripts.UnitTest.test_performance_macvo 0 → 0 0 → 1 0 → 0 — → 0%
ros_ws.src.perception.macvo_ros2.macvo_ros2.macvo.Scripts.UnitTest.test_stereo_depth 0 → 0 0 → 1 0 → 0 — → 0%
ros_ws.src.ros2tak_tools.test.test_copyright 0 → 0 0 → 1 0 → 0 — → 0%
ros_ws.src.ros2tak_tools.test.test_flake8 0 → 0 0 → 1 0 → 0 — → 0%
ros_ws.src.ros2tak_tools.test.test_pep257 0 → 0 0 → 1 0 → 0 — → 0%
ros_ws.src.sensors.camera_param_server.test.test_copyright 0 → 0 0 → 1 0 → 0 — → 0%
ros_ws.src.sensors.camera_param_server.test.test_flake8 0 → 0 0 → 1 0 → 0 — → 0%
ros_ws.src.sensors.camera_param_server.test.test_pep257 0 → 0 0 → 1 0 → 0 — → 0%
ros_ws.src.sensors.gimbal_stabilizer.test.test_copyright 0 → 0 0 → 1 0 → 0 — → 0%
ros_ws.src.sensors.gimbal_stabilizer.test.test_flake8 0 → 0 0 → 1 0 → 0 — → 0%
ros_ws.src.sensors.gimbal_stabilizer.test.test_pep257 0 → 0 0 → 1 0 → 0 — → 0%

Metrics

Test Metric Baseline Current Change
ros_packages.gui.rviz.rviz_behavior_tree_panel.scripts.test_behavior_tree_publisher duration_s 0s new
ros_packages.logging.bag_recorder_pid.test.test_copyright duration_s 0s new
ros_packages.logging.bag_recorder_pid.test.test_flake8 duration_s 0s new
ros_packages.logging.bag_recorder_pid.test.test_pep257 duration_s 0s new
ros_ws.src.ros2tak_tools.test.test_copyright duration_s 0s new
ros_ws.src.ros2tak_tools.test.test_flake8 duration_s 0s new
ros_ws.src.ros2tak_tools.test.test_pep257 duration_s 0s new
ros_ws.src.local.planners.takeoff_landing_planner.test.scripts.test_takeoff_landing_planner duration_s 0s new
ros_ws.src.perception.macvo_ros2.macvo_ros2.macvo.Baseline.DPVO.Pangolin.components.pango_python.pybind11.tests duration_s 0s new
ros_ws.src.perception.macvo_ros2.macvo_ros2.macvo.Scripts.UnitTest.test_circular_buffer duration_s 0s new
ros_ws.src.perception.macvo_ros2.macvo_ros2.macvo.Scripts.UnitTest.test_config_loadable duration_s 0s new
ros_ws.src.perception.macvo_ros2.macvo_ros2.macvo.Scripts.UnitTest.test_config_macvo duration_s 0s new
ros_ws.src.perception.macvo_ros2.macvo_ros2.macvo.Scripts.UnitTest.test_config_modules duration_s 0s new
ros_ws.src.perception.macvo_ros2.macvo_ros2.macvo.Scripts.UnitTest.test_config_sequence duration_s 0s new
ros_ws.src.perception.macvo_ros2.macvo_ros2.macvo.Scripts.UnitTest.test_config_tartanvo duration_s 0s new
ros_ws.src.perception.macvo_ros2.macvo_ros2.macvo.Scripts.UnitTest.test_frontend duration_s 0s new
ros_ws.src.perception.macvo_ros2.macvo_ros2.macvo.Scripts.UnitTest.test_matching duration_s 0s new
ros_ws.src.perception.macvo_ros2.macvo_ros2.macvo.Scripts.UnitTest.test_performance_macvo duration_s 0s new
ros_ws.src.perception.macvo_ros2.macvo_ros2.macvo.Scripts.UnitTest.test_stereo_depth duration_s 0s new
ros_ws.src.sensors.camera_param_server.test.test_copyright duration_s 0s new
ros_ws.src.sensors.camera_param_server.test.test_flake8 duration_s 0s new
ros_ws.src.sensors.camera_param_server.test.test_pep257 duration_s 0s new
ros_ws.src.sensors.gimbal_stabilizer.test.test_copyright duration_s 0s new
ros_ws.src.sensors.gimbal_stabilizer.test.test_flake8 duration_s 0s new
ros_ws.src.sensors.gimbal_stabilizer.test.test_pep257 duration_s 0s new
isaac-sim.extensions.PegasusSimulator.extensions.pegasus.simulator.pegasus.simulator.tests.test_hello_world duration_s 0s new
isaac-sim.standalone_examples.replicator.pose_generation.pose_tests.test_utils duration_s 0s new
isaac-sim.standalone_examples.testing.isaacsim.benchmark.services.test_no_rendering duration_s 0s new
isaac-sim.standalone_examples.testing.isaacsim.core.api.test_articulation_determinism duration_s 0s new
isaac-sim.standalone_examples.testing.isaacsim.core.api.test_articulation_root duration_s 0s new
isaac-sim.standalone_examples.testing.isaacsim.core.api.test_delete_in_contact duration_s 0s new
isaac-sim.standalone_examples.testing.isaacsim.core.api.test_rendering duration_s 0s new
isaac-sim.standalone_examples.testing.isaacsim.core.api.test_save_stage duration_s 0s new
isaac-sim.standalone_examples.testing.isaacsim.core.api.test_time_stepping duration_s 0s new
isaac-sim.standalone_examples.testing.isaacsim.cortex.framework.cortex_bringup_test duration_s 0s new
isaac-sim.standalone_examples.testing.isaacsim.ros1.bridge.test_carter_lidar duration_s 0s new
isaac-sim.standalone_examples.testing.isaacsim.ros2.bridge.test_carter_camera_multi_robot_nav duration_s 0s new
isaac-sim.standalone_examples.testing.isaacsim.ros2.bridge.test_people_sim duration_s 0s new
isaac-sim.standalone_examples.testing.isaacsim.sensors.physics.contact_sensor_test duration_s 0s new
isaac-sim.standalone_examples.testing.isaacsim.sensors.rtx.rtx_lidar_test duration_s 0s new
isaac-sim.standalone_examples.testing.isaacsim.sensors.rtx.rtx_radar_test duration_s 0s new
isaac-sim.standalone_examples.testing.isaacsim.simulation_app.test_createstage_config duration_s 0s new
isaac-sim.standalone_examples.testing.isaacsim.simulation_app.test_extension_count duration_s 0s new
isaac-sim.standalone_examples.testing.isaacsim.simulation_app.test_external duration_s 0s new
isaac-sim.standalone_examples.testing.isaacsim.simulation_app.test_extra_args duration_s 0s new
isaac-sim.standalone_examples.testing.isaacsim.simulation_app.test_fabric_frame_delay duration_s 0s new
isaac-sim.standalone_examples.testing.isaacsim.simulation_app.test_fetch_results duration_s 0s new
isaac-sim.standalone_examples.testing.isaacsim.simulation_app.test_frame_delay duration_s 0s new
isaac-sim.standalone_examples.testing.isaacsim.simulation_app.test_ogn duration_s 0s new
isaac-sim.standalone_examples.testing.isaacsim.simulation_app.test_ovd duration_s 0s new
isaac-sim.standalone_examples.testing.isaacsim.simulation_app.test_syntheticdata duration_s 0s new
isaac-sim.standalone_examples.testing.isaacsim.simulation_app.test_unsaved_on_exit duration_s 0s new
isaac-sim.standalone_examples.testing.omni.isaac.dynamic_control.test_zero_step duration_s 0s new
isaac-sim.standalone_examples.testing.omni.replicator.agent.test_scripting duration_s 0s new
isaac-sim.standalone_examples.testing.omni.syntheticdata.test_basic duration_s 0s new

test_takeoff_hover_land

Pass rates

Test Pass Fail Skip Rate (baseline → current)
test_hover[msairsim-rob#1-v0.5] 1 → 0 0 → 0 0 → 0 100% → —
test_hover[msairsim-rob#1-v1.0] 1 → 0 0 → 0 0 → 0 100% → —
test_hover[msairsim-rob#1-v2.0] 1 → 0 0 → 0 0 → 0 100% → —
test_landing[msairsim-rob#1-v0.5] 1 → 0 0 → 0 0 → 0 100% → —
test_landing[msairsim-rob#1-v1.0] 1 → 0 0 → 0 0 → 0 100% → —
test_landing[msairsim-rob#1-v2.0] 1 → 0 0 → 0 0 → 0 100% → —
test_px4_ready[msairsim-rob#1-v0.5] 1 → 0 0 → 0 0 → 0 100% → —
test_px4_ready[msairsim-rob#1-v1.0] 1 → 0 0 → 0 0 → 0 100% → —
test_px4_ready[msairsim-rob#1-v2.0] 1 → 0 0 → 0 0 → 0 100% → —
test_takeoff[msairsim-rob#1-v0.5] 1 → 0 0 → 0 0 → 0 100% → —
test_takeoff[msairsim-rob#1-v1.0] 1 → 0 0 → 0 0 → 0 100% → —
test_takeoff[msairsim-rob#1-v2.0] 1 → 0 0 → 0 0 → 0 100% → —

Metrics

Test Metric Baseline Current Change
test_px4_ready[msairsim-rob#1-v0.5] duration_s 215.2s removed
test_px4_ready[msairsim-rob#1-v0.5] airstack_up_duration_s 3.22s removed
test_px4_ready[msairsim-rob#1-v0.5] airstack_down_duration_s 11.02s removed
test_px4_ready[msairsim-rob#1-v0.5] robot.ready_duration_sys_s 211.3s removed
test_takeoff[msairsim-rob#1-v0.5] duration_s 24.1s removed
test_takeoff[msairsim-rob#1-v0.5] robot.altitude_error_m -0.089m removed
test_takeoff[msairsim-rob#1-v0.5] robot.overshoot_m 0m removed
test_takeoff[msairsim-rob#1-v0.5] robot.takeoff_duration_sim_s 18.64s removed
test_takeoff[msairsim-rob#1-v0.5] robot.velocity_rmse_m_sim_s 0.217m/s removed
test_takeoff[msairsim-rob#1-v0.5] robot.odometry_error_mean_m 0.579m removed
test_takeoff[msairsim-rob#1-v0.5] robot.odometry_error_max_m 0.669m removed
test_takeoff[msairsim-rob#1-v0.5] robot.odometry_altitude_bias_m 0.575m removed
test_hover[msairsim-rob#1-v0.5] duration_s 10.06s removed
test_hover[msairsim-rob#1-v0.5] robot.hover_altitude_mean_error_m 0.046m removed
test_hover[msairsim-rob#1-v0.5] robot.hover_position_stddev_m 0.023m removed
test_hover[msairsim-rob#1-v0.5] robot.odometry_error_mean_m 0.674m removed
test_hover[msairsim-rob#1-v0.5] robot.odometry_error_max_m 0.696m removed
test_hover[msairsim-rob#1-v0.5] robot.odometry_altitude_bias_m 0.674m removed
test_landing[msairsim-rob#1-v0.5] duration_s 26.44s removed
test_landing[msairsim-rob#1-v0.5] robot.final_altitude_m -0.097m removed
test_landing[msairsim-rob#1-v0.5] robot.land_duration_sim_s 14.8s removed
test_landing[msairsim-rob#1-v0.5] robot.velocity_rmse_m_sim_s 0.226m/s removed
test_landing[msairsim-rob#1-v0.5] robot.odometry_error_mean_m 0.707m removed
test_landing[msairsim-rob#1-v0.5] robot.odometry_error_max_m 0.803m removed
test_landing[msairsim-rob#1-v0.5] robot.odometry_altitude_bias_m 0.706m removed
test_px4_ready[msairsim-rob#1-v1.0] duration_s 0.001s removed
test_takeoff[msairsim-rob#1-v1.0] duration_s 16.82s removed
test_takeoff[msairsim-rob#1-v1.0] robot.altitude_error_m -0.048m removed
test_takeoff[msairsim-rob#1-v1.0] robot.overshoot_m 0m removed
test_takeoff[msairsim-rob#1-v1.0] robot.takeoff_duration_sim_s 10.22s removed
test_takeoff[msairsim-rob#1-v1.0] robot.velocity_rmse_m_sim_s 0.393m/s removed
test_takeoff[msairsim-rob#1-v1.0] robot.odometry_error_mean_m 0.538m removed
test_takeoff[msairsim-rob#1-v1.0] robot.odometry_error_max_m 0.684m removed
test_takeoff[msairsim-rob#1-v1.0] robot.odometry_altitude_bias_m 0.538m removed
test_hover[msairsim-rob#1-v1.0] duration_s 10.07s removed
test_hover[msairsim-rob#1-v1.0] robot.hover_altitude_mean_error_m 0.127m removed
test_hover[msairsim-rob#1-v1.0] robot.hover_position_stddev_m 0.06m removed
test_hover[msairsim-rob#1-v1.0] robot.odometry_error_mean_m 0.697m removed
test_hover[msairsim-rob#1-v1.0] robot.odometry_error_max_m 0.734m removed
test_hover[msairsim-rob#1-v1.0] robot.odometry_altitude_bias_m 0.696m removed
test_landing[msairsim-rob#1-v1.0] duration_s 17.34s removed
test_landing[msairsim-rob#1-v1.0] robot.final_altitude_m -0.149m removed
test_landing[msairsim-rob#1-v1.0] robot.land_duration_sim_s 7.2s removed
test_landing[msairsim-rob#1-v1.0] robot.velocity_rmse_m_sim_s 0.436m/s removed
test_landing[msairsim-rob#1-v1.0] robot.odometry_error_mean_m 0.679m removed
test_landing[msairsim-rob#1-v1.0] robot.odometry_error_max_m 0.935m removed
test_landing[msairsim-rob#1-v1.0] robot.odometry_altitude_bias_m 0.679m removed
test_px4_ready[msairsim-rob#1-v2.0] duration_s 0.001s removed
test_takeoff[msairsim-rob#1-v2.0] duration_s 15.89s removed
test_takeoff[msairsim-rob#1-v2.0] robot.altitude_error_m -0.042m removed
test_takeoff[msairsim-rob#1-v2.0] robot.overshoot_m 0m removed
test_takeoff[msairsim-rob#1-v2.0] robot.takeoff_duration_sim_s 10.36s removed
test_takeoff[msairsim-rob#1-v2.0] robot.velocity_rmse_m_sim_s 1.086m/s removed
test_takeoff[msairsim-rob#1-v2.0] robot.odometry_error_mean_m 0.541m removed
test_takeoff[msairsim-rob#1-v2.0] robot.odometry_error_max_m 0.684m removed
test_takeoff[msairsim-rob#1-v2.0] robot.odometry_altitude_bias_m 0.541m removed
test_hover[msairsim-rob#1-v2.0] duration_s 10.07s removed
test_hover[msairsim-rob#1-v2.0] robot.hover_altitude_mean_error_m 0.165m removed
test_hover[msairsim-rob#1-v2.0] robot.hover_position_stddev_m 0.083m removed
test_hover[msairsim-rob#1-v2.0] robot.odometry_error_mean_m 0.712m removed
test_hover[msairsim-rob#1-v2.0] robot.odometry_error_max_m 0.748m removed
test_hover[msairsim-rob#1-v2.0] robot.odometry_altitude_bias_m 0.712m removed
test_landing[msairsim-rob#1-v2.0] duration_s 26.67s removed
test_landing[msairsim-rob#1-v2.0] robot.final_altitude_m -0.143m removed
test_landing[msairsim-rob#1-v2.0] robot.land_duration_sim_s 6.678s removed
test_landing[msairsim-rob#1-v2.0] robot.velocity_rmse_m_sim_s 0.944m/s removed
test_landing[msairsim-rob#1-v2.0] robot.odometry_error_mean_m 0.684m removed
test_landing[msairsim-rob#1-v2.0] robot.odometry_error_max_m 0.963m removed
test_landing[msairsim-rob#1-v2.0] robot.odometry_altitude_bias_m 0.684m removed

@castacks castacks deleted a comment from github-actions Bot May 2, 2026
@castacks castacks deleted a comment from github-actions Bot May 2, 2026
@andrewjong
Copy link
Copy Markdown
Member

/pytest -m "build_docker or build_packages or liveliness or takeoff_hover_land"

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 2, 2026

Running pytest tests/ -m 'build_docker or build_packages or liveliness or takeoff_hover_land'view run. Status will appear as a check on this PR.

Note: build_packages is automatically prepended whenever any marks are specified, to ensure code is built before launch tests run.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 2, 2026

Test Metrics — c46c4a4cc1dd7dc9a6aaf922b38d89884ddd0053

test_build_docker

Pass rates

Test Pass Fail Skip Rate (baseline → current)
test_build_gcs 0 → 1 0 → 0 0 → 0 — → 100%
test_build_isaac_sim 0 → 1 0 → 0 0 → 0 — → 100%
test_build_ms_airsim 0 → 1 0 → 0 0 → 0 — → 100%
test_build_robot_desktop 0 → 1 0 → 0 0 → 0 — → 100%

Metrics

Test Metric Baseline Current Change
test_build_robot_desktop duration_s 75.78s new
test_build_gcs duration_s 38.24s new
test_build_isaac_sim duration_s 147s new
test_build_ms_airsim duration_s 31.35s new

test_build_packages

Pass rates

Test Pass Fail Skip Rate (baseline → current)
test_colcon_build_gcs 0 → 1 0 → 0 0 → 0 — → 100%
test_colcon_build_ms_airsim 0 → 1 0 → 0 0 → 0 — → 100%
test_colcon_build_robot 0 → 1 0 → 0 0 → 0 — → 100%

Metrics

Test Metric Baseline Current Change
test_colcon_build_robot duration_s 170s new
test_colcon_build_gcs duration_s 57.39s new
test_colcon_build_ms_airsim duration_s 12.49s new

test_liveliness

Pass rates

Test Pass Fail Skip Rate (baseline → current)
test_compute_usage[isaacsim-rob#1] 0 → 1 0 → 0 0 → 0 — → 100%
test_compute_usage[isaacsim-rob#3] 0 → 1 0 → 0 0 → 0 — → 100%
test_compute_usage[msairsim-rob#1] 0 → 1 0 → 0 0 → 0 — → 100%
test_compute_usage[msairsim-rob#3] 0 → 1 0 → 0 0 → 0 — → 100%
test_gcs_container_running[isaacsim-rob#1] 0 → 1 0 → 0 0 → 0 — → 100%
test_gcs_container_running[isaacsim-rob#3] 0 → 1 0 → 0 0 → 0 — → 100%
test_gcs_container_running[msairsim-rob#1] 0 → 1 0 → 0 0 → 0 — → 100%
test_gcs_container_running[msairsim-rob#3] 0 → 1 0 → 0 0 → 0 — → 100%
test_realtime_factor[isaacsim-rob#1] 0 → 0 0 → 1 0 → 0 — → 0%
test_realtime_factor[isaacsim-rob#3] 0 → 1 0 → 0 0 → 0 — → 100%
test_realtime_factor[msairsim-rob#1] 0 → 1 0 → 0 0 → 0 — → 100%
test_realtime_factor[msairsim-rob#3] 0 → 1 0 → 0 0 → 0 — → 100%
test_robot_containers_running[isaacsim-rob#1] 0 → 1 0 → 0 0 → 0 — → 100%
test_robot_containers_running[isaacsim-rob#3] 0 → 1 0 → 0 0 → 0 — → 100%
test_robot_containers_running[msairsim-rob#1] 0 → 1 0 → 0 0 → 0 — → 100%
test_robot_containers_running[msairsim-rob#3] 0 → 1 0 → 0 0 → 0 — → 100%
test_sentinel_nodes_present[isaacsim-rob#1] 0 → 1 0 → 0 0 → 0 — → 100%
test_sentinel_nodes_present[isaacsim-rob#3] 0 → 1 0 → 0 0 → 0 — → 100%
test_sentinel_nodes_present[msairsim-rob#1] 0 → 1 0 → 0 0 → 0 — → 100%
test_sentinel_nodes_present[msairsim-rob#3] 0 → 1 0 → 0 0 → 0 — → 100%
test_sim_container_running[isaacsim-rob#1] 0 → 1 0 → 0 0 → 0 — → 100%
test_sim_container_running[isaacsim-rob#3] 0 → 1 0 → 0 0 → 0 — → 100%
test_sim_container_running[msairsim-rob#1] 0 → 1 0 → 0 0 → 0 — → 100%
test_sim_container_running[msairsim-rob#3] 0 → 1 0 → 0 0 → 0 — → 100%
test_sim_publishing[isaacsim-rob#1] 0 → 0 0 → 1 0 → 0 — → 0%
test_sim_publishing[isaacsim-rob#3] 0 → 1 0 → 0 0 → 0 — → 100%
test_sim_publishing[msairsim-rob#1] 0 → 1 0 → 0 0 → 0 — → 100%
test_sim_publishing[msairsim-rob#3] 0 → 1 0 → 0 0 → 0 — → 100%
test_sim_ready_time[isaacsim-rob#1] 0 → 1 0 → 0 0 → 0 — → 100%
test_sim_ready_time[isaacsim-rob#3] 0 → 1 0 → 0 0 → 0 — → 100%
test_sim_ready_time[msairsim-rob#1] 0 → 1 0 → 0 0 → 0 — → 100%
test_sim_ready_time[msairsim-rob#3] 0 → 1 0 → 0 0 → 0 — → 100%
test_stable[isaacsim-rob#1] 0 → 0 0 → 0 0 → 1 — → —
test_stable[isaacsim-rob#3] 0 → 1 0 → 0 0 → 0 — → 100%
test_stable[msairsim-rob#1] 0 → 1 0 → 0 0 → 0 — → 100%
test_stable[msairsim-rob#3] 0 → 1 0 → 0 0 → 0 — → 100%
test_tmux_panes_have_expected_processes[isaacsim-rob#1] 0 → 1 0 → 0 0 → 0 — → 100%
test_tmux_panes_have_expected_processes[isaacsim-rob#3] 0 → 1 0 → 0 0 → 0 — → 100%
test_tmux_panes_have_expected_processes[msairsim-rob#1] 0 → 1 0 → 0 0 → 0 — → 100%
test_tmux_panes_have_expected_processes[msairsim-rob#3] 0 → 1 0 → 0 0 → 0 — → 100%

Metrics

Test Metric Baseline Current Change
test_robot_containers_running[msairsim-rob#1] duration_s 2.004s new
test_robot_containers_running[msairsim-rob#1] airstack_up_duration_s 1.59s new
test_robot_containers_running[msairsim-rob#1] airstack_down_duration_s 10.92s new
test_sim_container_running[msairsim-rob#1] duration_s 0.017s new
test_gcs_container_running[msairsim-rob#1] duration_s 0.045s new
test_sim_ready_time[msairsim-rob#1] duration_s 8.117s new
test_sim_ready_time[msairsim-rob#1] sim_ready_duration_s 9.82s new
test_tmux_panes_have_expected_processes[msairsim-rob#1] duration_s 0.194s new
test_sim_publishing[msairsim-rob#1] duration_s 10.44s new
test_compute_usage[msairsim-rob#1] duration_s 2.691s new
test_realtime_factor[msairsim-rob#1] duration_s 23.02s new
test_realtime_factor[msairsim-rob#1] sim.realtime_factor 0.995 new
test_sentinel_nodes_present[msairsim-rob#1] duration_s 1.445s new
test_stable[msairsim-rob#1] duration_s 288.4s new
test_robot_containers_running[msairsim-rob#3] duration_s 14.18s new
test_robot_containers_running[msairsim-rob#3] airstack_up_duration_s 2.66s new
test_robot_containers_running[msairsim-rob#3] airstack_down_duration_s 11.3s new
test_sim_container_running[msairsim-rob#3] duration_s 0.03s new
test_gcs_container_running[msairsim-rob#3] duration_s 0.094s new
test_sim_ready_time[msairsim-rob#3] duration_s 4.573s new
test_sim_ready_time[msairsim-rob#3] sim_ready_duration_s 7.5s new
test_tmux_panes_have_expected_processes[msairsim-rob#3] duration_s 0.429s new
test_sim_publishing[msairsim-rob#3] duration_s 10.55s new
test_compute_usage[msairsim-rob#3] duration_s 2.687s new
test_realtime_factor[msairsim-rob#3] duration_s 22.44s new
test_realtime_factor[msairsim-rob#3] sim.realtime_factor 1.001 new
test_sentinel_nodes_present[msairsim-rob#3] duration_s 11.53s new
test_stable[msairsim-rob#3] duration_s 311.8s new
test_robot_containers_running[isaacsim-rob#1] duration_s 13.53s new
test_robot_containers_running[isaacsim-rob#1] airstack_up_duration_s 1.77s new
test_robot_containers_running[isaacsim-rob#1] airstack_down_duration_s 12.32s new
test_sim_container_running[isaacsim-rob#1] duration_s 0.018s new
test_gcs_container_running[isaacsim-rob#1] duration_s 0.045s new
test_sim_ready_time[isaacsim-rob#1] duration_s 47.8s new
test_sim_ready_time[isaacsim-rob#1] sim_ready_duration_s 49.68s new
test_tmux_panes_have_expected_processes[isaacsim-rob#1] duration_s 0.195s new
test_sim_publishing[isaacsim-rob#1] duration_s 10.68s new
test_compute_usage[isaacsim-rob#1] duration_s 2.629s new
test_realtime_factor[isaacsim-rob#1] duration_s 5.509s new
test_sentinel_nodes_present[isaacsim-rob#1] duration_s 7.054s new
test_stable[isaacsim-rob#1] duration_s 0s new
test_robot_containers_running[isaacsim-rob#3] duration_s 15.57s new
test_robot_containers_running[isaacsim-rob#3] airstack_up_duration_s 2.67s new
test_robot_containers_running[isaacsim-rob#3] airstack_down_duration_s 12.52s new
test_sim_container_running[isaacsim-rob#3] duration_s 0.029s new
test_gcs_container_running[isaacsim-rob#3] duration_s 0.08s new
test_sim_ready_time[isaacsim-rob#3] duration_s 68.67s new
test_sim_ready_time[isaacsim-rob#3] sim_ready_duration_s 71.58s new
test_tmux_panes_have_expected_processes[isaacsim-rob#3] duration_s 0.385s new
test_sim_publishing[isaacsim-rob#3] duration_s 10.66s new
test_compute_usage[isaacsim-rob#3] duration_s 2.671s new
test_realtime_factor[isaacsim-rob#3] duration_s 22.64s new
test_realtime_factor[isaacsim-rob#3] sim.realtime_factor 0.746 new
test_sentinel_nodes_present[isaacsim-rob#3] duration_s 11.69s new
test_stable[isaacsim-rob#3] duration_s 324.5s new

Sim publishing rates (baseline n=None, current n=1; baseline → current, per-topic)

Test Topic mean start_mean end_mean min max
test_stable[msairsim-rob#1] clock 46.24Hz 45.49Hz (t=10-60s) 46.99Hz (t=70-120s) 31.2Hz 56.8Hz
test_stable[msairsim-rob#1] robot.sensors.front_stereo.left.image_rect 4.17Hz 3.56Hz (t=10-60s) 4.79Hz (t=70-120s) 2.852Hz 9.372Hz
test_stable[msairsim-rob#1] robot.sensors.front_stereo.right.image_rect 3.96Hz 3.65Hz (t=10-60s) 4.28Hz (t=70-120s) 3.344Hz 5.354Hz
test_stable[msairsim-rob#1] robot.sensors.front_stereo.left.depth_ground_truth 3.34Hz 3.25Hz (t=10-60s) 3.43Hz (t=70-120s) 2.308Hz 3.858Hz
test_stable[msairsim-rob#1] robot.sensors.front_stereo.right.depth_ground_truth 4.8Hz 3.85Hz (t=10-60s) 5.75Hz (t=70-120s) 2.882Hz 10.26Hz
test_stable[msairsim-rob#3] clock 48.59Hz 41.76Hz (t=10-60s) 55.41Hz (t=70-120s) 33.47Hz 73.88Hz
test_stable[msairsim-rob#3] robot.sensors.front_stereo.left.image_rect 3.28Hz 3.43Hz (t=10-60s) 3.14Hz (t=70-120s) 2.244Hz 7.447Hz
test_stable[msairsim-rob#3] robot.sensors.front_stereo.right.image_rect 3.66Hz 3.79Hz (t=10-60s) 3.52Hz (t=70-120s) 2.315Hz 8.6Hz
test_stable[msairsim-rob#3] robot.sensors.front_stereo.left.depth_ground_truth 2.87Hz 2.88Hz (t=10-60s) 2.85Hz (t=70-120s) 1.915Hz 3.137Hz
test_stable[msairsim-rob#3] robot.sensors.front_stereo.right.depth_ground_truth 3.35Hz 3.18Hz (t=10-60s) 3.51Hz (t=70-120s) 1.873Hz 8.698Hz
test_stable[isaacsim-rob#3] clock 23.36Hz 23.95Hz (t=10-60s) 22.78Hz (t=70-120s) 21.66Hz 25.18Hz
test_stable[isaacsim-rob#3] robot.sensors.front_stereo.left.image_rect 23.11Hz 23.43Hz (t=10-60s) 22.8Hz (t=70-120s) 17.49Hz 25.78Hz
test_stable[isaacsim-rob#3] robot.sensors.front_stereo.right.image_rect 22.24Hz 22.94Hz (t=10-60s) 21.54Hz (t=70-120s) 16.43Hz 25.36Hz
test_stable[isaacsim-rob#3] robot.sensors.front_stereo.left.depth_ground_truth 18.48Hz 18.68Hz (t=10-60s) 18.28Hz (t=70-120s) 10.32Hz 25.17Hz
test_stable[isaacsim-rob#3] robot.sensors.front_stereo.right.depth_ground_truth 20.61Hz 20.25Hz (t=10-60s) 20.97Hz (t=70-120s) 15.1Hz 25.24Hz

Compute usage (baseline n=None, current n=1; baseline → current, per-container and global)

Test Entity Metric mean start_mean end_mean min max
test_stable[msairsim-rob#1] ms-airsim cpu_pct 309.7% 308.5% (t=10-60s) 310.9% (t=70-120s) 302.8% 315.8%
test_stable[msairsim-rob#1] ms-airsim mem_mb 668.1MB 666.3MB (t=10-60s) 669.9MB (t=70-120s) 663.4MB 671.7MB
test_stable[msairsim-rob#1] ms-airsim disk_io_mb 517.5MB 490.5MB (t=10-60s) 544.5MB (t=70-120s) 468MB 567MB
test_stable[msairsim-rob#1] ms-airsim net_io_mb 3771MB 2456MB (t=10-60s) 5086MB (t=70-120s) 1390MB 6193MB
test_stable[msairsim-rob#1] host cpu_pct 14.16% 13.88% (t=10-60s) 14.43% (t=70-120s) 12.3% 16.6%
test_stable[msairsim-rob#1] host mem_mb 3831MB 3810MB (t=10-60s) 3852MB (t=70-120s) 3774MB 3866MB
test_stable[msairsim-rob#1] host gpu_pct 66% 65.17% (t=10-60s) 66.83% (t=70-120s) 58% 71%
test_stable[msairsim-rob#1] host vram_mb 727.8MB 728MB (t=10-60s) 727.5MB (t=70-120s) 727MB 728MB
test_stable[msairsim-rob#1] host gpu_temp_c 38°C 37°C (t=10-60s) 39°C (t=70-120s) 35°C 39°C
test_stable[msairsim-rob#1] host gpu_power_w 99.44W 98.6W (t=10-60s) 100.3W (t=70-120s) 97.4W 102W
test_stable[msairsim-rob#1] airstack-robot-desktop cpu_pct 198.9% 198.8% (t=10-60s) 199% (t=70-120s) 167.8% 229.8%
test_stable[msairsim-rob#1] airstack-robot-desktop mem_mb 867.6MB 862MB (t=10-60s) 873.1MB (t=70-120s) 854.6MB 881.9MB
test_stable[msairsim-rob#1] airstack-robot-desktop disk_io_mb 303.1MB 302.9MB (t=10-60s) 303.2MB (t=70-120s) 302.5MB 303.3MB
test_stable[msairsim-rob#1] airstack-robot-desktop net_io_mb 3694MB 2353MB (t=10-60s) 5034MB (t=70-120s) 1266MB 6169MB
test_stable[msairsim-rob#1] airstack-gcs cpu_pct 51.15% 46.78% (t=10-60s) 55.53% (t=70-120s) 13.35% 94.06%
test_stable[msairsim-rob#1] airstack-gcs mem_mb 422.4MB 421.8MB (t=10-60s) 423MB (t=70-120s) 420.5MB 423.6MB
test_stable[msairsim-rob#1] airstack-gcs disk_io_mb 167.1MB 167.1MB (t=10-60s) 167.2MB (t=70-120s) 167MB 167.3MB
test_stable[msairsim-rob#1] airstack-gcs net_io_mb 93.64MB 58MB (t=10-60s) 129.3MB (t=70-120s) 30.1MB 158.5MB
test_stable[msairsim-rob#3] ms-airsim cpu_pct 512.1% 513.8% (t=10-60s) 510.3% (t=70-120s) 503.3% 524.2%
test_stable[msairsim-rob#3] ms-airsim mem_mb 740.4MB 735MB (t=10-60s) 745.7MB (t=70-120s) 732.4MB 749.2MB
test_stable[msairsim-rob#3] ms-airsim disk_io_mb 243.7MB 156.7MB (t=10-60s) 330.7MB (t=70-120s) 84MB 403MB
test_stable[msairsim-rob#3] ms-airsim net_io_mb 1.004e+04MB 6456MB (t=10-60s) 1.362e+04MB (t=70-120s) 3449MB 1.658e+04MB
test_stable[msairsim-rob#3] host cpu_pct 33% 32.73% (t=10-60s) 33.27% (t=70-120s) 28.6% 36.1%
test_stable[msairsim-rob#3] host mem_mb 5566MB 5548MB (t=10-60s) 5583MB (t=70-120s) 5501MB 5603MB
test_stable[msairsim-rob#3] host gpu_pct 53% 53.83% (t=10-60s) 52.17% (t=70-120s) 45% 59%
test_stable[msairsim-rob#3] host vram_mb 847MB 847MB (t=10-60s) 847MB (t=70-120s) 847MB 847MB
test_stable[msairsim-rob#3] host gpu_temp_c 36°C 36°C (t=10-60s) 36°C (t=70-120s) 36°C 36°C
test_stable[msairsim-rob#3] host gpu_power_w 88.11W 88.7W (t=10-60s) 87.52W (t=70-120s) 85.89W 90.59W
test_stable[msairsim-rob#3] airstack-robot-desktop cpu_pct 190.2% 192.5% (t=10-60s) 188% (t=70-120s) 163.9% 222.4%
test_stable[msairsim-rob#3] airstack-robot-desktop mem_mb 683.3MB 679.4MB (t=10-60s) 687.3MB (t=70-120s) 670.2MB 701.6MB
test_stable[msairsim-rob#3] airstack-robot-desktop disk_io_mb 14.71MB 14.45MB (t=10-60s) 14.96MB (t=70-120s) 13.8MB 16.6MB
test_stable[msairsim-rob#3] airstack-robot-desktop net_io_mb 3444MB 2225MB (t=10-60s) 4662MB (t=70-120s) 1132MB 5833MB
test_stable[msairsim-rob#3] airstack-gcs cpu_pct 145.3% 151% (t=10-60s) 139.6% (t=70-120s) 104% 198.8%
test_stable[msairsim-rob#3] airstack-gcs mem_mb 419.7MB 415.9MB (t=10-60s) 423.4MB (t=70-120s) 415.2MB 440.3MB
test_stable[msairsim-rob#3] airstack-gcs disk_io_mb 8.73MB 8.65MB (t=10-60s) 8.8MB (t=70-120s) 8.594MB 8.864MB
test_stable[msairsim-rob#3] airstack-gcs net_io_mb 311.3MB 200.4MB (t=10-60s) 422.2MB (t=70-120s) 112MB 516MB
test_stable[isaacsim-rob#3] isaac-sim cpu_pct 627.3% 627.3% (t=10-60s) 627.3% (t=70-120s) 594.2% 688.9%
test_stable[isaacsim-rob#3] isaac-sim mem_mb 1.193e+04MB 1.192e+04MB (t=10-60s) 1.193e+04MB (t=70-120s) 1.192e+04MB 1.194e+04MB
test_stable[isaacsim-rob#3] isaac-sim disk_io_mb 513.3MB 465.1MB (t=10-60s) 561.6MB (t=70-120s) 425.1MB 601.1MB
test_stable[isaacsim-rob#3] isaac-sim net_io_mb 4.381e+04MB 2.828e+04MB (t=10-60s) 5.934e+04MB (t=70-120s) 1.506e+04MB 7.228e+04MB
test_stable[isaacsim-rob#3] host cpu_pct 31.88% 31.9% (t=10-60s) 31.85% (t=70-120s) 28.3% 37%
test_stable[isaacsim-rob#3] host mem_mb 1.836e+04MB 1.835e+04MB (t=10-60s) 1.836e+04MB (t=70-120s) 1.83e+04MB 1.841e+04MB
test_stable[isaacsim-rob#3] host gpu_pct 29.17% 30.33% (t=10-60s) 28% (t=70-120s) 25% 32%
test_stable[isaacsim-rob#3] host vram_mb 3560MB 3560MB (t=10-60s) 3560MB (t=70-120s) 3560MB 3560MB
test_stable[isaacsim-rob#3] host gpu_temp_c 35.58°C 35.33°C (t=10-60s) 35.83°C (t=70-120s) 35°C 36°C
test_stable[isaacsim-rob#3] host gpu_power_w 85.52W 85.2W (t=10-60s) 85.83W (t=70-120s) 84.01W 88.76W
test_stable[isaacsim-rob#3] airstack-robot-desktop cpu_pct 173.5% 171.9% (t=10-60s) 175% (t=70-120s) 116% 211.5%
test_stable[isaacsim-rob#3] airstack-robot-desktop mem_mb 686.8MB 683.3MB (t=10-60s) 690.3MB (t=70-120s) 673.3MB 703MB
test_stable[isaacsim-rob#3] airstack-robot-desktop disk_io_mb 18.18MB 18.05MB (t=10-60s) 18.3MB (t=70-120s) 14.7MB 23MB
test_stable[isaacsim-rob#3] airstack-robot-desktop net_io_mb 1.471e+04MB 9504MB (t=10-60s) 1.991e+04MB (t=70-120s) 5063MB 2.427e+04MB
test_stable[isaacsim-rob#3] airstack-gcs cpu_pct 88.22% 88.97% (t=10-60s) 87.47% (t=70-120s) 77.51% 108.6%
test_stable[isaacsim-rob#3] airstack-gcs mem_mb 416.2MB 416.1MB (t=10-60s) 416.3MB (t=70-120s) 415.9MB 416.7MB
test_stable[isaacsim-rob#3] airstack-gcs disk_io_mb 10.07MB 10MB (t=10-60s) 10.15MB (t=70-120s) 9.93MB 10.2MB
test_stable[isaacsim-rob#3] airstack-gcs net_io_mb 372.6MB 267MB (t=10-60s) 478.2MB (t=70-120s) 180.1MB 566MB

test_takeoff_hover_land

Pass rates

Test Pass Fail Skip Rate (baseline → current)
test_hover[isaacsim-rob#1-v0.5] 0 → 1 0 → 0 0 → 0 — → 100%
test_hover[isaacsim-rob#3-v0.5] 0 → 1 0 → 0 0 → 0 — → 100%
test_hover[msairsim-rob#1-v0.5] 1 → 1 0 → 0 0 → 0 100% → 100%
test_hover[msairsim-rob#1-v1.0] 1 → 0 0 → 0 0 → 0 100% → —
test_hover[msairsim-rob#1-v2.0] 1 → 0 0 → 0 0 → 0 100% → —
test_hover[msairsim-rob#3-v0.5] 0 → 1 0 → 0 0 → 0 — → 100%
test_landing[isaacsim-rob#1-v0.5] 0 → 1 0 → 0 0 → 0 — → 100%
test_landing[isaacsim-rob#3-v0.5] 0 → 1 0 → 0 0 → 0 — → 100%
test_landing[msairsim-rob#1-v0.5] 1 → 1 0 → 0 0 → 0 100% → 100%
test_landing[msairsim-rob#1-v1.0] 1 → 0 0 → 0 0 → 0 100% → —
test_landing[msairsim-rob#1-v2.0] 1 → 0 0 → 0 0 → 0 100% → —
test_landing[msairsim-rob#3-v0.5] 0 → 1 0 → 0 0 → 0 — → 100%
test_px4_ready[isaacsim-rob#1-v0.5] 0 → 1 0 → 0 0 → 0 — → 100%
test_px4_ready[isaacsim-rob#3-v0.5] 0 → 1 0 → 0 0 → 0 — → 100%
test_px4_ready[msairsim-rob#1-v0.5] 1 → 1 0 → 0 0 → 0 100% → 100%
test_px4_ready[msairsim-rob#1-v1.0] 1 → 0 0 → 0 0 → 0 100% → —
test_px4_ready[msairsim-rob#1-v2.0] 1 → 0 0 → 0 0 → 0 100% → —
test_px4_ready[msairsim-rob#3-v0.5] 0 → 1 0 → 0 0 → 0 — → 100%
test_takeoff[isaacsim-rob#1-v0.5] 0 → 1 0 → 0 0 → 0 — → 100%
test_takeoff[isaacsim-rob#3-v0.5] 0 → 1 0 → 0 0 → 0 — → 100%
test_takeoff[msairsim-rob#1-v0.5] 1 → 1 0 → 0 0 → 0 100% → 100%
test_takeoff[msairsim-rob#1-v1.0] 1 → 0 0 → 0 0 → 0 100% → —
test_takeoff[msairsim-rob#1-v2.0] 1 → 0 0 → 0 0 → 0 100% → —
test_takeoff[msairsim-rob#3-v0.5] 0 → 1 0 → 0 0 → 0 — → 100%

Metrics

Test Metric Baseline Current Change
test_px4_ready[isaacsim-rob#1-v0.5] duration_s 74.69s new
test_px4_ready[isaacsim-rob#1-v0.5] airstack_up_duration_s 1.89s new
test_px4_ready[isaacsim-rob#1-v0.5] airstack_down_duration_s 12.41s new
test_px4_ready[isaacsim-rob#1-v0.5] robot.ready_duration_sys_s 72.3s new
test_takeoff[isaacsim-rob#1-v0.5] duration_s 16.86s new
test_takeoff[isaacsim-rob#1-v0.5] robot.altitude_error_m -0.113m new
test_takeoff[isaacsim-rob#1-v0.5] robot.overshoot_m 0m new
test_takeoff[isaacsim-rob#1-v0.5] robot.takeoff_duration_sim_s 17.88s new
test_takeoff[isaacsim-rob#1-v0.5] robot.velocity_rmse_m_sim_s 0.111m/s new
test_hover[isaacsim-rob#1-v0.5] duration_s 10.06s new
test_hover[isaacsim-rob#1-v0.5] robot.hover_altitude_mean_error_m 0.011m new
test_hover[isaacsim-rob#1-v0.5] robot.hover_position_stddev_m 0.052m new
test_landing[isaacsim-rob#1-v0.5] duration_s 18.49s new
test_landing[isaacsim-rob#1-v0.5] robot.final_altitude_m -0.002m new
test_landing[isaacsim-rob#1-v0.5] robot.land_duration_sim_s 14.79s new
test_landing[isaacsim-rob#1-v0.5] robot.velocity_rmse_m_sim_s 0.1m/s new
test_px4_ready[isaacsim-rob#3-v0.5] duration_s 106.1s new
test_px4_ready[isaacsim-rob#3-v0.5] airstack_up_duration_s 2.64s new
test_px4_ready[isaacsim-rob#3-v0.5] airstack_down_duration_s 12.53s new
test_px4_ready[isaacsim-rob#3-v0.5] robot.ready_duration_sys_s 80.28s new
test_takeoff[isaacsim-rob#3-v0.5] duration_s 32.85s new
test_takeoff[isaacsim-rob#3-v0.5] robot.altitude_error_m -0.149m new
test_takeoff[isaacsim-rob#3-v0.5] robot.overshoot_m 0m new
test_takeoff[isaacsim-rob#3-v0.5] robot.takeoff_duration_sim_s 17.73s new
test_takeoff[isaacsim-rob#3-v0.5] robot.velocity_rmse_m_sim_s 0.105m/s new
test_hover[isaacsim-rob#3-v0.5] duration_s 10.11s new
test_hover[isaacsim-rob#3-v0.5] robot.hover_altitude_mean_error_m 0.019m new
test_hover[isaacsim-rob#3-v0.5] robot.hover_position_stddev_m 0.017m new
test_landing[isaacsim-rob#3-v0.5] duration_s 38.73s new
test_landing[isaacsim-rob#3-v0.5] robot.final_altitude_m -0.004m new
test_landing[isaacsim-rob#3-v0.5] robot.land_duration_sim_s 14.52s new
test_landing[isaacsim-rob#3-v0.5] robot.velocity_rmse_m_sim_s 0.097m/s new
test_px4_ready[msairsim-rob#1-v0.5] duration_s 215.2s 25.15s -88.3% 🟢
test_px4_ready[msairsim-rob#1-v0.5] airstack_up_duration_s 3.22s 1.79s -44.4% 🟢
test_px4_ready[msairsim-rob#1-v0.5] airstack_down_duration_s 11.02s 10.93s -0.8%
test_px4_ready[msairsim-rob#1-v0.5] robot.ready_duration_sys_s 211.3s 10.35s -95.1% 🟢
test_takeoff[msairsim-rob#1-v0.5] duration_s 24.1s 24.01s -0.4%
test_takeoff[msairsim-rob#1-v0.5] robot.altitude_error_m -0.089m -0.095m +6.7%
test_takeoff[msairsim-rob#1-v0.5] robot.overshoot_m 0m 0m +0.0%
test_takeoff[msairsim-rob#1-v0.5] robot.takeoff_duration_sim_s 18.64s 18.66s +0.1%
test_takeoff[msairsim-rob#1-v0.5] robot.velocity_rmse_m_sim_s 0.217m/s 0.213m/s -1.8%
test_takeoff[msairsim-rob#1-v0.5] robot.odometry_error_mean_m 0.579m 0.576m -0.5%
test_takeoff[msairsim-rob#1-v0.5] robot.odometry_error_max_m 0.669m 0.669m +0.0%
test_takeoff[msairsim-rob#1-v0.5] robot.odometry_altitude_bias_m 0.575m 0.571m -0.7%
test_hover[msairsim-rob#1-v0.5] duration_s 10.06s 10.09s +0.3%
test_hover[msairsim-rob#1-v0.5] robot.hover_altitude_mean_error_m 0.046m 0.091m +97.8% 🔴
test_hover[msairsim-rob#1-v0.5] robot.hover_position_stddev_m 0.023m 0.053m +130.4% 🔴
test_hover[msairsim-rob#1-v0.5] robot.odometry_error_mean_m 0.674m 0.685m +1.6%
test_hover[msairsim-rob#1-v0.5] robot.odometry_error_max_m 0.696m 0.703m +1.0%
test_hover[msairsim-rob#1-v0.5] robot.odometry_altitude_bias_m 0.674m 0.685m +1.6%
test_landing[msairsim-rob#1-v0.5] duration_s 26.44s 26.59s +0.6%
test_landing[msairsim-rob#1-v0.5] robot.final_altitude_m -0.097m -0.081m -16.5%
test_landing[msairsim-rob#1-v0.5] robot.land_duration_sim_s 14.8s 14.8s -0.0%
test_landing[msairsim-rob#1-v0.5] robot.velocity_rmse_m_sim_s 0.226m/s 0.242m/s +7.1%
test_landing[msairsim-rob#1-v0.5] robot.odometry_error_mean_m 0.707m 0.722m +2.1%
test_landing[msairsim-rob#1-v0.5] robot.odometry_error_max_m 0.803m 0.81m +0.9%
test_landing[msairsim-rob#1-v0.5] robot.odometry_altitude_bias_m 0.706m 0.722m +2.3%
test_px4_ready[msairsim-rob#3-v0.5] duration_s 38.37s new
test_px4_ready[msairsim-rob#3-v0.5] airstack_up_duration_s 2.6s new
test_px4_ready[msairsim-rob#3-v0.5] airstack_down_duration_s 11.28s new
test_px4_ready[msairsim-rob#3-v0.5] robot.ready_duration_sys_s 17.77s new
test_takeoff[msairsim-rob#3-v0.5] duration_s 26.14s new
test_takeoff[msairsim-rob#3-v0.5] robot.altitude_error_m -0.093m new
test_takeoff[msairsim-rob#3-v0.5] robot.overshoot_m 0m new
test_takeoff[msairsim-rob#3-v0.5] robot.takeoff_duration_sim_s 18.66s new
test_takeoff[msairsim-rob#3-v0.5] robot.velocity_rmse_m_sim_s 0.207m/s new
test_takeoff[msairsim-rob#3-v0.5] robot.odometry_error_mean_m 0.578m new
test_takeoff[msairsim-rob#3-v0.5] robot.odometry_error_max_m 0.671m new
test_takeoff[msairsim-rob#3-v0.5] robot.odometry_altitude_bias_m 0.574m new
test_hover[msairsim-rob#3-v0.5] duration_s 10.22s new
test_hover[msairsim-rob#3-v0.5] robot.hover_altitude_mean_error_m 0.074m new
test_hover[msairsim-rob#3-v0.5] robot.hover_position_stddev_m 0.038m new
test_hover[msairsim-rob#3-v0.5] robot.odometry_error_mean_m 0.683m new
test_hover[msairsim-rob#3-v0.5] robot.odometry_error_max_m 0.707m new
test_hover[msairsim-rob#3-v0.5] robot.odometry_altitude_bias_m 0.683m new
test_landing[msairsim-rob#3-v0.5] duration_s 39.25s new
test_landing[msairsim-rob#3-v0.5] robot.final_altitude_m -0.095m new
test_landing[msairsim-rob#3-v0.5] robot.land_duration_sim_s 14.8s new
test_landing[msairsim-rob#3-v0.5] robot.velocity_rmse_m_sim_s 0.208m/s new
test_landing[msairsim-rob#3-v0.5] robot.odometry_error_mean_m 0.72m new
test_landing[msairsim-rob#3-v0.5] robot.odometry_error_max_m 0.83m new
test_landing[msairsim-rob#3-v0.5] robot.odometry_altitude_bias_m 0.719m new
test_px4_ready[msairsim-rob#1-v1.0] duration_s 0.001s removed
test_takeoff[msairsim-rob#1-v1.0] duration_s 16.82s removed
test_takeoff[msairsim-rob#1-v1.0] robot.altitude_error_m -0.048m removed
test_takeoff[msairsim-rob#1-v1.0] robot.overshoot_m 0m removed
test_takeoff[msairsim-rob#1-v1.0] robot.takeoff_duration_sim_s 10.22s removed
test_takeoff[msairsim-rob#1-v1.0] robot.velocity_rmse_m_sim_s 0.393m/s removed
test_takeoff[msairsim-rob#1-v1.0] robot.odometry_error_mean_m 0.538m removed
test_takeoff[msairsim-rob#1-v1.0] robot.odometry_error_max_m 0.684m removed
test_takeoff[msairsim-rob#1-v1.0] robot.odometry_altitude_bias_m 0.538m removed
test_hover[msairsim-rob#1-v1.0] duration_s 10.07s removed
test_hover[msairsim-rob#1-v1.0] robot.hover_altitude_mean_error_m 0.127m removed
test_hover[msairsim-rob#1-v1.0] robot.hover_position_stddev_m 0.06m removed
test_hover[msairsim-rob#1-v1.0] robot.odometry_error_mean_m 0.697m removed
test_hover[msairsim-rob#1-v1.0] robot.odometry_error_max_m 0.734m removed
test_hover[msairsim-rob#1-v1.0] robot.odometry_altitude_bias_m 0.696m removed
test_landing[msairsim-rob#1-v1.0] duration_s 17.34s removed
test_landing[msairsim-rob#1-v1.0] robot.final_altitude_m -0.149m removed
test_landing[msairsim-rob#1-v1.0] robot.land_duration_sim_s 7.2s removed
test_landing[msairsim-rob#1-v1.0] robot.velocity_rmse_m_sim_s 0.436m/s removed
test_landing[msairsim-rob#1-v1.0] robot.odometry_error_mean_m 0.679m removed
test_landing[msairsim-rob#1-v1.0] robot.odometry_error_max_m 0.935m removed
test_landing[msairsim-rob#1-v1.0] robot.odometry_altitude_bias_m 0.679m removed
test_px4_ready[msairsim-rob#1-v2.0] duration_s 0.001s removed
test_takeoff[msairsim-rob#1-v2.0] duration_s 15.89s removed
test_takeoff[msairsim-rob#1-v2.0] robot.altitude_error_m -0.042m removed
test_takeoff[msairsim-rob#1-v2.0] robot.overshoot_m 0m removed
test_takeoff[msairsim-rob#1-v2.0] robot.takeoff_duration_sim_s 10.36s removed
test_takeoff[msairsim-rob#1-v2.0] robot.velocity_rmse_m_sim_s 1.086m/s removed
test_takeoff[msairsim-rob#1-v2.0] robot.odometry_error_mean_m 0.541m removed
test_takeoff[msairsim-rob#1-v2.0] robot.odometry_error_max_m 0.684m removed
test_takeoff[msairsim-rob#1-v2.0] robot.odometry_altitude_bias_m 0.541m removed
test_hover[msairsim-rob#1-v2.0] duration_s 10.07s removed
test_hover[msairsim-rob#1-v2.0] robot.hover_altitude_mean_error_m 0.165m removed
test_hover[msairsim-rob#1-v2.0] robot.hover_position_stddev_m 0.083m removed
test_hover[msairsim-rob#1-v2.0] robot.odometry_error_mean_m 0.712m removed
test_hover[msairsim-rob#1-v2.0] robot.odometry_error_max_m 0.748m removed
test_hover[msairsim-rob#1-v2.0] robot.odometry_altitude_bias_m 0.712m removed
test_landing[msairsim-rob#1-v2.0] duration_s 26.67s removed
test_landing[msairsim-rob#1-v2.0] robot.final_altitude_m -0.143m removed
test_landing[msairsim-rob#1-v2.0] robot.land_duration_sim_s 6.678s removed
test_landing[msairsim-rob#1-v2.0] robot.velocity_rmse_m_sim_s 0.944m/s removed
test_landing[msairsim-rob#1-v2.0] robot.odometry_error_mean_m 0.684m removed
test_landing[msairsim-rob#1-v2.0] robot.odometry_error_max_m 0.963m removed
test_landing[msairsim-rob#1-v2.0] robot.odometry_altitude_bias_m 0.684m removed

docker

Metrics

Test Metric Baseline Current Change
docker.gcs image_size_mb 2024MB new
docker.isaac-sim image_size_mb 1.253e+04MB new
docker.ms-airsim image_size_mb 4010MB new

Regression detected — some metrics exceeded the threshold.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants