Preliminary Checks
Proposal
Proposal:
Allow the ZED ROS2 wrapper to support a new mode or API where camera images are published to ROS topics immediately after capture, before depth estimation, object detection (OD), or other heavy post-processing steps, rather than waiting for results from those computations before publishing the image topic.
Specifically, provide a way to:
- Publish image frames to ROS as soon as available from the camera (right after capture), without waiting for depth/AI module to finish in the current
grab() pipeline.
This could be an enhancement in the wrapper or, if not feasible given current SDK limitations, a proposal to the SDK team for added support.
Use-Case
Use-case / Benefit:
Many downstream ROS applications (tracking, SLAM, visual odometry, time-sensitive robotics) benefit from low-latency access to camera images. Currently, the wrapper pipeline only signals for image publishing after depth/OD is complete in the SDK's blocking grab() function, meaning images may be delayed by compute-heavy steps. If images could be handed off to ROS subscribers immediately, overall system responsiveness and parallel processing would be improved—downstream nodes can start work using images before depth and object detection arrive. This is also better for time sync and precise sensor fusion setups.
Summary:
- Lower latency and jitter for image topics
- Better support for time-critical, real-time, or multi-threaded downstream ROS applications
- Flexibility in how post-processing modules operate relative to image acquisition
Anything else?
Note:
As far as I can tell from both wrapper and SDK docs, this is primarily a limitation at the ZED SDK level? The SDK's grab() call runs all enabled modules synchronously, with image/depth/OD/bodies populated atomically.
EDIT: I am such a moron, I thought the SDK was closed-source. I just found the repo and I think it should be possible🤦🏼♂️ I will fork and see if I can make this work for me.
Preliminary Checks
Proposal
Proposal:
Allow the ZED ROS2 wrapper to support a new mode or API where camera images are published to ROS topics immediately after capture, before depth estimation, object detection (OD), or other heavy post-processing steps, rather than waiting for results from those computations before publishing the image topic.
Specifically, provide a way to:
grab()pipeline.This could be an enhancement in the wrapper or, if not feasible given current SDK limitations, a proposal to the SDK team for added support.Use-Case
Use-case / Benefit:
Many downstream ROS applications (tracking, SLAM, visual odometry, time-sensitive robotics) benefit from low-latency access to camera images. Currently, the wrapper pipeline only signals for image publishing after depth/OD is complete in the SDK's blocking
grab()function, meaning images may be delayed by compute-heavy steps. If images could be handed off to ROS subscribers immediately, overall system responsiveness and parallel processing would be improved—downstream nodes can start work using images before depth and object detection arrive. This is also better for time sync and precise sensor fusion setups.Summary:
Anything else?
Note:As far as I can tell from both wrapper and SDK docs, this is primarily a limitation at the ZED SDK level? The SDK'sgrab()call runs all enabled modules synchronously, with image/depth/OD/bodies populated atomically.EDIT: I am such a moron, I thought the SDK was closed-source. I just found the repo and I think it should be possible🤦🏼♂️ I will fork and see if I can make this work for me.