# Node manifest: the typed contract a consumer wires against. # # No source package is shared between node repositories, so this file and its # type URNs are the only contract a consumer has. `dora validate` checks a # dataflow against it without running the node, so CI needs no camera and no # ZED SDK. apiVersion: 1 name: dora-zed namespace: liria description: ZED stereo camera source publishing an image, a depth map, intrinsics and an optional point cloud categories: [sensor] keywords: [zed, stereolabs, camera, depth, stereo, jetson] runtime: cpp entrypoint: bin/dora_zed build: scripts/build.sh dora: ">=1.0" inputs: tick: type: std/core/v1/UInt64 required: true description: >- Publishes the newest frame the capture thread has grabbed, or nothing if none arrived since the last tick. It does not drive the camera: capture is free-running at ZED_FPS, so this sets the publish rate and anything captured between two ticks is dropped. Connect to dora/timer/millis/N. outputs: image: type: std/media/v1/Image description: >- Captured frame as an Arrow struct {width, height, encoding, data}. The encoding is always bgr8, three bytes per pixel. depth: type: std/media/v1/Image description: >- Depth map as an Arrow struct {width, height, encoding, data}, one channel per pixel -- dora has no depth type, and a depth map is an image whose pixels are distances, which is how ROS spells it too. The encoding is 32FC1 and the `units` metadata is mm. Missing depth is 0, never inf or nan. camera_info: type: std/core/v1/Float32 description: Intrinsics [fx, fy, cx, cy], distortion in the metadata. Published once per camera session. point_cloud: type: std/core/v1/Float32 description: XYZRGBA point cloud, shape in the metadata. Published only when ZED_POINT_CLOUD is on. camera_state: type: std/core/v1/String description: One of opening, streaming, recovering. Published on every change. example: | - id: zed-camera git: https://gitea.liria.cl/liria/dora-zed.git tag: v0.3.0 build: scripts/build.sh path: bin/dora_zed inputs: tick: dora/timer/millis/100 outputs: - image - depth - point_cloud - camera_info - camera_state