nodes:
  - id: zed_camera_cpp
    build: bash -lc "cmake -S dora_zed_cpp -B dora_zed_cpp/build && cmake --build dora_zed_cpp/build"
    path: dora_zed_cpp/build/dora_zed_cpp
    env:
      ZED_RESOLUTION: "720"
      ZED_FPS: "15"
      ZED_DEPTH_MODE: "NEURAL"
      ZED_DEPTH_MIN_MM: "10"
      ZED_DEPTH_MAX_MM: "600"
      ZED_DEPTH_FILL: "false"
      ZED_FLIP: "ON"
      ZED_WARMUP_FRAMES: "30"
    inputs:
      tick: dora/timer/millis/100
    outputs:
      - image_bgr
      - camera_info
  - id: ulite6
    build: uv pip install -e dora_ulite6
    path: dora_ulite6/dora_ulite6/main.py
    inputs:
      tick: dora/timer/millis/10
      command: calibration/robot_cmd
    outputs:
      - tcp_pose
      - status
    env:
      ROBOT_IP: "192.168.1.192"
      DEFAULT_SPEED: "30"
      DEFAULT_UNITS: "mm"
      API_HOST: "0.0.0.0"
      API_PORT: "9000"
      VACUUM_ENABLED: "false"
  - id: calibration
    build: |
      uv venv -p 3.12 --seed --allow-existing
      uv pip install -e dora_calibration
    path: dora_calibration/dora_calibration/main.py
    env:
      VIRTUAL_ENV: ./.venv
      IMAGE_INPUT: "image_bgr"
      CAMERA_INFO_INPUT: "camera_info"
      POSE_INPUT: "tcp_pose"
      STATUS_INPUT: "status"
      COMMAND_OUTPUT: "robot_cmd"
      POSES_FILE: "config/calibration_poses_ulite6.yml"
      OUTPUT_FILE: "calibration_ulite6_zed.npz"
      METHOD: "TSAI"
      SQUARES_X: "4"
      SQUARES_Y: "6"
      SQUARE_LENGTH: "0.04"
      MARKER_LENGTH: "0.03"
      WAIT_AFTER_MOVE: "2.0"
      WAIT_BETWEEN_POSES: "2.0"
    inputs:
      image_bgr: zed_camera_cpp/image_bgr
      camera_info: zed_camera_cpp/camera_info
      tcp_pose: ulite6/tcp_pose
      status: ulite6/status
      tick: dora/timer/millis/100
    outputs:
      - robot_cmd
