Skip to content

fix: skip GUI camera requests in server-only launches - #16

Merged
woensug-choi merged 1 commit into
mainfrom
fix/headless-camera-request-20261008
Oct 10, 2026
Merged

woensug-choi merged 1 commit into
mainfrom
fix/headless-camera-request-20261008

Conversation

@yeseorizi

@yeseorizi yeseorizi commented Oct 8, 2026 •

Copy link
Copy Markdown
Collaborator

Problem

posim_robot.launch.py enables the ocean-waves GUI camera move even when gui:=false or headless:=true. There is no GUI camera service in that mode, so each run makes an unnecessary request and prints Service call timed out.

Change

Enable zoom_camera only for posim_ocean_waves and a non-server-only launch. One file changes. The existing GUI camera pose, delay, world and robot configuration remain unchanged.

Independent validation

Base: 23bb608a9a89b9cda3472792316a81711f1ce73e; fresh posim_demos overlay only. Linux ARM64 Docker on Apple M2, ROS 2 Lyrical / Gazebo Jetty. No input, plugin-shutdown or ros_gz overlay.

  • LaunchContext matrix: ocean-waves / empty × GUI on/off × headless on/off — 8/8 expected conditions.
  • Actual gui:=false headless:=false launch: no camera service request/timeout.
  • Actual gui:=true headless:=true launch: no camera service request/timeout.
  • Actual Gazebo GUI (gui:=true headless:=false, default 2 s delay), rendered via software OpenGL on Xvfb: automatic camera service returned data: true; /gui/camera/pose reported the requested position (-1, 0, 0.5). A subsequent camera move and restoration were confirmed by pose messages and screenshots.

The GUI test is Linux GUI in a virtual display, not native macOS/Metal. Stock ros_gz_bridge still segfaulted during teardown in these three standalone launches; this small camera-condition change neither includes nor claims the separate upstream shutdown fix.

Reproduce the affected path

ros2 launch posim_demos posim_robot.launch.py \
  namespace:=bluerov2 world_name:=posim_ocean_waves z:=-0.5 \
  paused:=false gui:=false headless:=true \
  use_teleop:=false use_web_joystick:=false

Before: camera request times out. After: no GUI camera request. With GUI enabled and headless disabled, the camera move is retained.

Please review; no merge or release is requested by this validation run.

CI infrastructure note (2026-10-08)

ARM64 run 37743089211 stopped in the runner-admin pre-job hook, before checkout/build: ~61.09 GiB free vs its 80 GiB minimum. This is not a compiler/test result for this change. No runner files, free-space thresholds, or maintenance hooks were changed. ARM64 CI remains unverified until the runner is ready; the Docker workflow does not publish PR images.

@woensug-choi
woensug-choi merged commit ff91565 into main Oct 10, 2026
4 of 5 checks passed
@woensug-choi
woensug-choi deleted the fix/headless-camera-request-20261008 branch October 10, 2026 06:17
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