dora-image-view takes std/media/v1/Image, and dora's compatibility graph has no edge from std/core/v1/UInt8 to it, so wiring the two failed `dora validate` whatever the node actually sent. Its flat-buffer fallback would not have decoded these frames either: it reads width/height metadata, and this node only published shape. image and depth now go out as the Image struct, camera_info and point_cloud as Float32 arrays and camera_state as a string, all built against the Arrow C data interface in src/arrow so the node still links no Arrow C++. Shape, dtype and encoding metadata are dropped where the payload describes itself; intrinsics, frame_id and both timestamps are unchanged. tests/run.sh covers the packing without a camera or the SDK, round-tripping each array through pyarrow and rebuilding it under the sanitizers. Breaking: image_bgr is renamed to image and every payload changes shape. dataflow_plot.yml is replaced by dataflow_view.yml, which wires the viewer from a tag and repeats its contract in input_types so validate checks both sides of the wiring.
21 lines
595 B
YAML
21 lines
595 B
YAML
# The repository's own example: builds and runs the node from this checkout, so
|
|
# `dora validate` picks up the typed contract in dora-node.yml next to it.
|
|
# A consumer wires the node from a tag instead — see README.md.
|
|
#
|
|
# The camera alone, with no viewer and no Python dependency. For a run that
|
|
# also displays the stream, use dataflow_view.yml.
|
|
strict_types: true
|
|
|
|
nodes:
|
|
- id: zed-camera
|
|
path: bin/dora_zed
|
|
build: scripts/build.sh
|
|
inputs:
|
|
tick: dora/timer/millis/100
|
|
outputs:
|
|
- image
|
|
- depth
|
|
- point_cloud
|
|
- camera_info
|
|
- camera_state
|