Summary
The sim payload camera path only publishes a raw upstream source (camera_source) from the Gazebo bridge. If a fleet requests camera_input_transport: compressed for a payload vehicle, CameraNode subscribes to camera_source/compressed, which does not exist in sim.
A launch-side guard now normalizes sim payload input transport back to raw, so the stack stays healthy. That fixes the runtime breakage, but it also means sim still cannot model a true compressed upstream camera source.
Repro
- Launch a sim payload fleet with a payload vehicle configured as
camera_input_transport: compressed.
- Observe that Gazebo only provides
/.../camera_source and /.../camera_info_source.
CameraNode waits on camera_source/compressed, and /camera never gets frames unless launch coerces the transport to raw.
Current behavior
- Sim payload bridge publishes raw image + camera info only.
- Launch now coerces sim payload
camera_input_transport from compressed/both to raw.
- Downstream
/camera/compressed can still be synthesized by CameraNode when subscribers exist.
Desired behavior
One of these should become the long-term contract:
- either sim explicitly supports a compressed upstream payload source as well,
- or the config/schema/docs make it impossible to request compressed upstream transport for sim payloads.
Summary
The sim payload camera path only publishes a raw upstream source (
camera_source) from the Gazebo bridge. If a fleet requestscamera_input_transport: compressedfor a payload vehicle,CameraNodesubscribes tocamera_source/compressed, which does not exist in sim.A launch-side guard now normalizes sim payload input transport back to
raw, so the stack stays healthy. That fixes the runtime breakage, but it also means sim still cannot model a true compressed upstream camera source.Repro
camera_input_transport: compressed./.../camera_sourceand/.../camera_info_source.CameraNodewaits oncamera_source/compressed, and/cameranever gets frames unless launch coerces the transport toraw.Current behavior
camera_input_transportfromcompressed/bothtoraw./camera/compressedcan still be synthesized byCameraNodewhen subscribers exist.Desired behavior
One of these should become the long-term contract: