Skip to content

CI bisect: does the camera resolution change alone break the gripper?#657

Draft
davetcoleman wants to merge 2 commits into
mainfrom
ci-bisect-camera-only
Draft

CI bisect: does the camera resolution change alone break the gripper?#657
davetcoleman wants to merge 2 commits into
mainfrom
ci-bisect-camera-only

Conversation

@davetcoleman
Copy link
Copy Markdown
Member

Not for merge — second bisection step for #648.

#655 showed that 9.3.0-rc9 itself is fine (34 pass / 82 skip / 2 unrelated flakes with no scene changes). So the gripper-bringup failure in #648 must come from the scene XML changes.

This PR is main + commit 3 from #648 (CI yaml + conftest, same as #655) + commit 2 from #648 (camera resolution standardization to 1280×720, plus the matching <global offwidth offheight> bumps that have to go with it). No timestep change.

If this PR's CI fails the same way (every test times out at 180 s on gripper wait) → camera resolution is the trigger.
If this PR passes → keep going, bisect the timestep next.

The lab_sim/description/scene.xml cherry-pick had one conflict — commit 2 incidentally reformatted the <option> block from one line to multi-line because commit 1 had added timestep="0.003" to it. I resolved by keeping main's single-line <option> (no timestep). The camera/offwidth changes — the actual point of commit 2 — landed cleanly.

davetcoleman and others added 2 commits May 21, 2026 17:07
…ive test progress

Two CI-infra changes folded together:

1. Bump the reusable workflow ref to PickNikRobotics/moveit_pro_ci v0.3.1, set enable_gpu: true, and switch the runner label from picknik-16-amd64 to picknik-16-amd64-gpu. v0.3.1 appends the CUDA image suffix when enable_gpu is true (moveit_pro_ci#26) -- without it, v0.3.0 set the label but kept the non-CUDA image, so MuJoCo's EGL rendering still ran through llvmpipe on CPU.

2. Add src/lab_sim/test/conftest.py with two pytest hooks (logstart, logreport) that write directly to fd 2, bypassing pytest's --capture=fd. Without this, a CTest timeout kills pytest before any per-test output is flushed, leaving the CI log silent past 'collected N items'. The hooks emit START / PASSED|FAILED|SKIPPED + duration for every test, so the next timeout (if any) names the offending objective.
…obot configs

Sets `resolution="1280 720"` on every <camera> in the workspace's MJCF scene
files, and ensures every top-level scene's <global offwidth/offheight> is at
least 1280x720 so the offscreen render buffer fits the largest camera.

Previously inconsistent:
- 1280x720 (lunar_sim, hangar_sim, picknik_accessories/ur5e wrist_camera)
- 640x480  (lab_sim, kitchen_sim, grinding_sim, april_tag_sim, dual_arm_sim,
            factory_sim, space_satellite_sim, kinova_sim and variants)

This was discovered when `lab_sim` failed to start with:

    [ros2_control_node] [ERROR] The published robot description file (urdf)
    seems not to be genuine. ... Camera resolution mismatch, set:
    <global offwidth="1280" offheight="720"/> in the MJCF model.

The wrist_camera in picknik_accessories/mujoco_assets/ur5e/ur5e.xml was
already at 1280x720, but lab_sim's scene declared the global offscreen
buffer at only 640x480, so the hardware plugin rejected the URDF.
Standardizing to 1280x720 everywhere keeps the included ur5e wrist_camera
working in every UR-based config and avoids the same trap silently waiting
in the others.

space_satellite_sim_camera_cal kept at 1920x1080 (intentional higher
resolution for camera-intrinsics calibration data).

phoebe_sim (submodule) is not included; it needs a separate PR in
PickNikRobotics/phoebe_ws (and was already at 1280x720 anyway).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

⚠️ 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