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.
48 lines
1.3 KiB
CMake
48 lines
1.3 KiB
CMake
cmake_minimum_required(VERSION 3.21)
|
|
project(dora_zed VERSION 0.3.0 LANGUAGES C CXX)
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_FLAGS "-fPIC")
|
|
|
|
# DoraTargets.cmake picks the cargo profile from this, so an unset build type
|
|
# would link debug dora bindings into an otherwise unoptimized binary.
|
|
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
|
set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE)
|
|
endif()
|
|
|
|
include(DoraTargets.cmake)
|
|
|
|
set(ZED_DIR "/usr/local/zed" CACHE PATH "Path to the ZED SDK")
|
|
set(ZED_PATH ${ZED_DIR})
|
|
find_package(CUDAToolkit REQUIRED)
|
|
find_package(zed REQUIRED)
|
|
|
|
find_package(OpenCV REQUIRED)
|
|
|
|
link_directories(${dora_link_dirs})
|
|
link_directories(${ZED_LIBRARY_DIR})
|
|
|
|
add_executable(dora_zed
|
|
src/main.cc
|
|
src/arrow/array.cc
|
|
src/zed/camera.cc
|
|
src/zed/capture.cc
|
|
${node_bridge}
|
|
)
|
|
add_dependencies(dora_zed Dora_cxx)
|
|
|
|
target_include_directories(
|
|
dora_zed
|
|
PRIVATE
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src
|
|
${dora_cxx_include_dir}
|
|
${dora_c_include_dir}
|
|
${ZED_INCLUDE_DIRS}
|
|
${OpenCV_INCLUDE_DIRS}
|
|
${CUDAToolkit_INCLUDE_DIRS}
|
|
)
|
|
|
|
target_link_libraries(dora_zed dora_node_api_cxx ${ZED_LIBRARIES} ${OpenCV_LIBS})
|
|
|
|
install(TARGETS dora_zed DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/bin)
|