Skip to content

Add hangar_sim objectives integration test#692

Draft
shaur-k wants to merge 1 commit into
mainfrom
add-hangar-sim-integration-test
Draft

Add hangar_sim objectives integration test#692
shaur-k wants to merge 1 commit into
mainfrom
add-hangar-sim-integration-test

Conversation

@shaur-k
Copy link
Copy Markdown
Collaborator

@shaur-k shaur-k commented Jun 7, 2026

needs: moveit_pro/#19591

Motivation

Stream 2 of the integration-testing effort: extend the example_ws end-to-end objectives suite (today only lab_sim) to hangar_sim, so every runnable hangar_sim objective is exercised through the full stack on each PR.

Brief description

  • New src/hangar_sim/test/objectives_integration_test.py: parametrizes over every runnable hangar_sim objective, executes it via /execute_objective and asserts success; cancels the one loop-style objective (Plan Path Along Surface - Loop). Uses the fixture's wait_for_action_servers helper to gate on the /vacuum_gripper/gripper_cmd action.
  • skip_objectives drops what cannot run headless in CI, each with a per-line reason: ML/GPU-ONNX segmentation+grasp pipelines, UI-input objectives (clicked-point, pose-from-user, MTC/path approval), and the two core-library UI objectives every config aggregates (Teleoperate, Marker Visualization Example).
  • Wires the pytest into CMakeLists.txt (mirrors lab_sim, incl. ROS_LOG_DIR redirect) and adds hangar_sim to both CI matrices in ci.yaml.
  • Mirrors lab_sim's conftest.py + capture_rosout.py for per-objective progress and /rosout NDJSON capture on a TIMEOUT 600 kill.

Pairs with moveit_pro#19591, which registers hangar_sim for the MuJoCo reset hook (needs: token above pulls that PR's image so the suite runs the reset between objectives).

How it was tested

Built the moveit_pro overlay + hangar_sim in a dev container and ran python -m pytest test/objectives_integration_test.py: backend boots, reset hook fires between objectives, 17 objectives pass, the cancel path exercises, all skips apply. Two cartesian objectives (Cartesian Plan Simple Square, Cartesian Path with Collision Checking) time out under software MuJoCo rendering on a GPU-less host (a 2 s motion took 28 s); these are deferred to the GPU CI runner, which is where the real signal comes from. Solution - Draw Picknik passed on a clean isolated run.

Known follow-ups

  • publish-and-comment is still pinned to integration-test-report-lab_sim-{humble,jazzy}, so hangar_sim reports are produced as artifacts but not yet surfaced in the PR comment. Merge gating is unaffected (the aggregate example_ws / integration status covers every config_package). Follow-up templates publish-and-comment over config_package.
  • conftest.py + capture_rosout.py are now duplicated between lab_sim and hangar_sim; hoist into a shared location before more sims land.
  • The two SendPointCloudToUI objectives (Plan Path Along Surface, Plan Path Along Surface - Loop) are a jazzy watch-item (PR #19531). If the first jazzy run hits pcl::fromPCLPointCloud2: No data to copy, move them to skip_objectives.

Release notes

None

Adds an end-to-end pytest that runs every runnable hangar_sim objective
through /execute_objective and asserts success, cancelling the one
loop-style objective. Skips ML/GPU-ONNX, UI-input, and core-library UI
objectives that cannot run headless in CI, each with a per-line reason.
Wires the pytest into CMake and both example_ws CI matrices, and mirrors
lab_sim's conftest for per-objective progress + /rosout capture on timeout.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Jun 7, 2026

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: b6e46c90-ede3-4147-8993-d47201de7531

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 7, 2026

⚠️ This PR modifies 1 file(s) that also exist in PickNikRobotics/moveit_pro_empty_ws.

Consider whether the change should land upstream in moveit_pro_empty_ws first so downstream forks pick it up on the next sync.

Overlapping files
  • .github/workflows/ci.yaml

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.

1 participant