zedxonesrc mono / zedsrc stereo) that the GPU-resident camera pipeline (almond_axol.video.gst_zed) uses for teleop --cameras and collect-data. This is the companion to gst.install: gst.install sets up the host GStreamer support and PyGObject, while gst.build-zed provides the ZED source elements themselves.
- A fresh Jetson has no zed-gstreamer plugins at all. Without them the GPU-resident camera path silently falls back to the slower ZED SDK grab; building them makes the fast path available.
- The stock
zedxonesrc/zedsrcstamp each frame’s PTS at host-receive time (a software clock sampled right aftergrab()returns), which lags the true sensor exposure by the camera delivery latency. The vendored patch instead stamps the PTS at the sensor-exposure instant (TIME_REFERENCE::IMAGE), so a frame lines up with the joint sample taken on the same exposure clock as the SDKZedCamerapath. Without it, collected datasets pair each image with proprioception that is ~delivery-latency too new — and that offset differs from inference (which uses the SDK), i.e. a train/inference mismatch.
libblas-dev required by the ZED SDK’s CMake package. The one-command install runs it for you once, right after gst.install.
Requires an NVIDIA Jetson/L4T host and the ZED SDK at
/usr/local/zed. Idempotent (a root-owned manifest recording the pinned ref, patch digest, installed plugin bytes, and the ZED SDK version they were built against skips a rebuild when the patched plugins are already installed) and best-effort: it cleanly skips on non-Jetson hosts and machines without the SDK / toolchain — the camera path then uses the ZED SDK fallback. Installing packages and the system GStreamer plugin needs root: run as root, or you’ll be prompted for sudo once.After a ZED SDK upgrade
The plugins link the SDK’slibsl_zed.so directly, so upgrading the SDK in place (running a new Stereolabs .run installer) leaves plugins that GStreamer still lists but can no longer load (undefined symbol: _ZN2sl9CameraOne8isOpenedEv…). Teleop and collect-data detect this at startup, log a warning naming this command, and fall back to the SDK camera path rather than failing. Re-run axol gst.build-zed (or axol provision, which the axol serve self-updater runs) to restore the GPU path: it notices the SDK version changed — or that a plugin no longer loads — and rebuilds against the installed SDK. Run zed.install as well so pyzed matches the new SDK.