No version for distro humble showing kilted. Known supported distros are highlighted in the buttons above.
Package symbol

depthai package from depthai repo

depthai

ROS Distro
kilted

Package Summary

Version 3.12.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/luxonis/depthai-core.git
VCS Type git
VCS Version ros-devel
Last Updated 2026-11-04
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

DepthAI core is a C++ library which comes with firmware and an API to interact with OAK Platform

Additional Links

Maintainers

  • Aljaž Sebastjan Ahtik

Authors

  • Martin Peterlin

DepthAI Library

Forum Docs License: MIT

DepthAI library for interfacing with Luxonis DepthAI hardware. It’s written in C++ and offers Python bindings out of the box.

Important — You’re viewing the v3.x.y branch.

Documentation

Documentation is available over at Luxonis DepthAI API

Examples

Examples for both C++ and Python are available in the examples folder. To see how to build and run them see README.md for more information. To build the examples in C++ configure with the following option added:

cmake -S. -Bbuild -D'DEPTHAI_BUILD_EXAMPLES=ON'
cmake --build build

Detection filtering and calibrated panoramas

Use dai::node::ImgDetectionsFilter / dai.node.ImgDetectionsFilter to filter detections or combine synchronized camera detections on a calibrated panorama. See the node guide and multi-device examples.

Beta features

The beta namespace is a staging area for experimental DepthAI features. It allows new features to be developed and iterated on quickly before they are promoted to the main depthai namespace.

Beta features are well-developed, but minor API and behavioral changes may occur between DepthAI releases without notice.

In C++, beta nodes are available under dai::beta::node:

auto node = pipeline.create<dai::beta::node::ClassificationParser>();

In Python, they are available under dai.beta.node:

node = pipeline.create(dai.beta.node.ClassificationParser)

On-device execution of Beta nodes is supported only on RVC4. If running Beta nodes on RVC2, DepthAI automatically configures beta nodes to run on the host.

Multiple devices in one pipeline

A single dai::Pipeline can drive several devices. Devices become part of the pipeline explicitly with addDevice(...) or implicitly when a node is created with an explicit device; the first device becomes the master (default device) used by nodes created without one.

pipeline = dai.Pipeline(False)                    # no implicit device
devA = pipeline.addDevice("10.0.0.10")            # promoted to master
devB = pipeline.addDevice("10.0.0.11")

camA = pipeline.create(dai.node.Camera).build(dai.CameraBoardSocket.CAM_A)          # master
camB = pipeline.create(dai.node.Camera, device=devB).build(dai.CameraBoardSocket.CAM_A)

sync = pipeline.create(dai.node.Sync)             # host Sync aligns both streams
sync.setRunOnHost(True)
camA.requestOutput((640, 400)).link(sync.inputs["a"])
camB.requestOutput((640, 400)).link(sync.inputs["b"])

Key behaviors:

  • Device-to-device links. Linking an output on device A to an input on device B inserts a host relay automatically at build time.
  • Partial operation. Losing one device leaves its streams idle while the rest of the pipeline keeps running; the lost device reconnects on its own. Observe this via pipeline.getDeviceState(device) and pipeline.setDeviceStateCallback(...). The pipeline stops itself only when the last device is gone or when a device that consumes another device’s streams is lost for good. Call pipeline.setStopOnDeviceLoss(True) to stop when any device that runs a node is lost for good (reconnection exhausted); with device.setMaxReconnectionAttempts(0) it stops as soon as the disconnect is detected.
  • Time. getTimestamp() values are host-clock based and comparable across devices; per-device getTimestampDevice() values are not (a host Sync node rejects the DEVICE timestamp source across devices at build).
  • Source devices. After build, a host node can ask input.getSourceDevice() / inputs.getSourceDevices() which device produces each of its inputs.
  • Per-device configuration. Every pipeline-level device setter/getter has a (device, ...) overload; the form without a device targets the master.
  • Holistic record/replay is not supported with more than one device yet.

See examples/{cpp,python}/.../MultiDevice/ for frame sync, a device-to-device relay and a multi-device host node.

Running on the device (standalone)

The pipeline process may itself run on an RVC4 and use the local device over shared memory, with further devices attached over the network:

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package depthai

3.12.0 (2026-11-04)

## Features

  • Multi-stream PointCloud
  • [Beta promotion] Stitching node
  • [Beta promotion] ImgDetectionsFilter node
  • Resize mode from NN archives
    • [NeuralNetwork]{.title-ref}, [DetectionNetwork]{.title-ref} and [SpatialDetectionNetwork]{.title-ref} built from a camera now use the [resize_mode]{.title-ref} ([CROP]{.title-ref}, [STRETCH]{.title-ref} or [LETTERBOX]{.title-ref}) declared in the NN archive. Archives without it use [CROP]{.title-ref}, as before
    • Override it with the [resizeMode]{.title-ref} argument of [build]{.title-ref}
  • [RVC2] Multi-device calibration ([pipeline.setMultiDeviceCalibration]{.title-ref}) is now supported on RVC2 devices
  • [Align.setInterpolation(...)]{.title-ref} selects the interpolation ([BICUBIC]{.title-ref}, [BILINEAR]{.title-ref} or [NEAREST_NEIGHBOR]{.title-ref}). [AUTO]{.title-ref} keeps the previous behavior
  • New [dai.node.Depth.getSupportedAlgorithms(device)]{.title-ref} and [getDefaultAlgorithm(device)]{.title-ref} return the depth algorithms that a device supports and the one that [AUTO]{.title-ref} selects
  • New [Device.getProtocol()]{.title-ref} returns the connection protocol (USB or TCP/IP)
  • [RVC4] [setAutoFocusTrigger()]{.title-ref} now runs one focus scan and then holds the focus. The AF mode is reset for each session
  • [RVC2] New [Device.Config.dangerousIrPowerOverride]{.title-ref} option removes the combined dot and flood power limit on boards that have one. Full power on both emitters can crash the device

## Bug fixes

  • Alignment
    • ImageAlign and Align now keep the depth near the image edges for rotated and distorted cameras
    • [RVC4] Align now uses correct offsets for rotated cameras and keeps the configured output size
    • ImageAlign no longer crashes when the [inputAlignTo]{.title-ref} frame has no distortion coefficients
    • [ImgDetections.transformTo()]{.title-ref} no longer distorts boxes at some rotations when mapping to a non-square image
    • [RVC2] StereoDepth depth alignment is now correct after decimation (for example on OAK-D-SR)
  • [*RVC4*] Stability

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged depthai at Robotics Stack Exchange

No version for distro jazzy showing kilted. Known supported distros are highlighted in the buttons above.
Package symbol

depthai package from depthai repo

depthai

ROS Distro
kilted

Package Summary

Version 3.12.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/luxonis/depthai-core.git
VCS Type git
VCS Version ros-devel
Last Updated 2026-11-04
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

DepthAI core is a C++ library which comes with firmware and an API to interact with OAK Platform

Additional Links

Maintainers

  • Aljaž Sebastjan Ahtik

Authors

  • Martin Peterlin

DepthAI Library

Forum Docs License: MIT

DepthAI library for interfacing with Luxonis DepthAI hardware. It’s written in C++ and offers Python bindings out of the box.

Important — You’re viewing the v3.x.y branch.

Documentation

Documentation is available over at Luxonis DepthAI API

Examples

Examples for both C++ and Python are available in the examples folder. To see how to build and run them see README.md for more information. To build the examples in C++ configure with the following option added:

cmake -S. -Bbuild -D'DEPTHAI_BUILD_EXAMPLES=ON'
cmake --build build

Detection filtering and calibrated panoramas

Use dai::node::ImgDetectionsFilter / dai.node.ImgDetectionsFilter to filter detections or combine synchronized camera detections on a calibrated panorama. See the node guide and multi-device examples.

Beta features

The beta namespace is a staging area for experimental DepthAI features. It allows new features to be developed and iterated on quickly before they are promoted to the main depthai namespace.

Beta features are well-developed, but minor API and behavioral changes may occur between DepthAI releases without notice.

In C++, beta nodes are available under dai::beta::node:

auto node = pipeline.create<dai::beta::node::ClassificationParser>();

In Python, they are available under dai.beta.node:

node = pipeline.create(dai.beta.node.ClassificationParser)

On-device execution of Beta nodes is supported only on RVC4. If running Beta nodes on RVC2, DepthAI automatically configures beta nodes to run on the host.

Multiple devices in one pipeline

A single dai::Pipeline can drive several devices. Devices become part of the pipeline explicitly with addDevice(...) or implicitly when a node is created with an explicit device; the first device becomes the master (default device) used by nodes created without one.

pipeline = dai.Pipeline(False)                    # no implicit device
devA = pipeline.addDevice("10.0.0.10")            # promoted to master
devB = pipeline.addDevice("10.0.0.11")

camA = pipeline.create(dai.node.Camera).build(dai.CameraBoardSocket.CAM_A)          # master
camB = pipeline.create(dai.node.Camera, device=devB).build(dai.CameraBoardSocket.CAM_A)

sync = pipeline.create(dai.node.Sync)             # host Sync aligns both streams
sync.setRunOnHost(True)
camA.requestOutput((640, 400)).link(sync.inputs["a"])
camB.requestOutput((640, 400)).link(sync.inputs["b"])

Key behaviors:

  • Device-to-device links. Linking an output on device A to an input on device B inserts a host relay automatically at build time.
  • Partial operation. Losing one device leaves its streams idle while the rest of the pipeline keeps running; the lost device reconnects on its own. Observe this via pipeline.getDeviceState(device) and pipeline.setDeviceStateCallback(...). The pipeline stops itself only when the last device is gone or when a device that consumes another device’s streams is lost for good. Call pipeline.setStopOnDeviceLoss(True) to stop when any device that runs a node is lost for good (reconnection exhausted); with device.setMaxReconnectionAttempts(0) it stops as soon as the disconnect is detected.
  • Time. getTimestamp() values are host-clock based and comparable across devices; per-device getTimestampDevice() values are not (a host Sync node rejects the DEVICE timestamp source across devices at build).
  • Source devices. After build, a host node can ask input.getSourceDevice() / inputs.getSourceDevices() which device produces each of its inputs.
  • Per-device configuration. Every pipeline-level device setter/getter has a (device, ...) overload; the form without a device targets the master.
  • Holistic record/replay is not supported with more than one device yet.

See examples/{cpp,python}/.../MultiDevice/ for frame sync, a device-to-device relay and a multi-device host node.

Running on the device (standalone)

The pipeline process may itself run on an RVC4 and use the local device over shared memory, with further devices attached over the network:

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package depthai

3.12.0 (2026-11-04)

## Features

  • Multi-stream PointCloud
  • [Beta promotion] Stitching node
  • [Beta promotion] ImgDetectionsFilter node
  • Resize mode from NN archives
    • [NeuralNetwork]{.title-ref}, [DetectionNetwork]{.title-ref} and [SpatialDetectionNetwork]{.title-ref} built from a camera now use the [resize_mode]{.title-ref} ([CROP]{.title-ref}, [STRETCH]{.title-ref} or [LETTERBOX]{.title-ref}) declared in the NN archive. Archives without it use [CROP]{.title-ref}, as before
    • Override it with the [resizeMode]{.title-ref} argument of [build]{.title-ref}
  • [RVC2] Multi-device calibration ([pipeline.setMultiDeviceCalibration]{.title-ref}) is now supported on RVC2 devices
  • [Align.setInterpolation(...)]{.title-ref} selects the interpolation ([BICUBIC]{.title-ref}, [BILINEAR]{.title-ref} or [NEAREST_NEIGHBOR]{.title-ref}). [AUTO]{.title-ref} keeps the previous behavior
  • New [dai.node.Depth.getSupportedAlgorithms(device)]{.title-ref} and [getDefaultAlgorithm(device)]{.title-ref} return the depth algorithms that a device supports and the one that [AUTO]{.title-ref} selects
  • New [Device.getProtocol()]{.title-ref} returns the connection protocol (USB or TCP/IP)
  • [RVC4] [setAutoFocusTrigger()]{.title-ref} now runs one focus scan and then holds the focus. The AF mode is reset for each session
  • [RVC2] New [Device.Config.dangerousIrPowerOverride]{.title-ref} option removes the combined dot and flood power limit on boards that have one. Full power on both emitters can crash the device

## Bug fixes

  • Alignment
    • ImageAlign and Align now keep the depth near the image edges for rotated and distorted cameras
    • [RVC4] Align now uses correct offsets for rotated cameras and keeps the configured output size
    • ImageAlign no longer crashes when the [inputAlignTo]{.title-ref} frame has no distortion coefficients
    • [ImgDetections.transformTo()]{.title-ref} no longer distorts boxes at some rotations when mapping to a non-square image
    • [RVC2] StereoDepth depth alignment is now correct after decimation (for example on OAK-D-SR)
  • [*RVC4*] Stability

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged depthai at Robotics Stack Exchange

Package symbol

depthai package from depthai repo

depthai

ROS Distro
kilted

Package Summary

Version 3.12.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/luxonis/depthai-core.git
VCS Type git
VCS Version ros-devel
Last Updated 2026-11-04
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

DepthAI core is a C++ library which comes with firmware and an API to interact with OAK Platform

Additional Links

Maintainers

  • Aljaž Sebastjan Ahtik

Authors

  • Martin Peterlin

DepthAI Library

Forum Docs License: MIT

DepthAI library for interfacing with Luxonis DepthAI hardware. It’s written in C++ and offers Python bindings out of the box.

Important — You’re viewing the v3.x.y branch.

Documentation

Documentation is available over at Luxonis DepthAI API

Examples

Examples for both C++ and Python are available in the examples folder. To see how to build and run them see README.md for more information. To build the examples in C++ configure with the following option added:

cmake -S. -Bbuild -D'DEPTHAI_BUILD_EXAMPLES=ON'
cmake --build build

Detection filtering and calibrated panoramas

Use dai::node::ImgDetectionsFilter / dai.node.ImgDetectionsFilter to filter detections or combine synchronized camera detections on a calibrated panorama. See the node guide and multi-device examples.

Beta features

The beta namespace is a staging area for experimental DepthAI features. It allows new features to be developed and iterated on quickly before they are promoted to the main depthai namespace.

Beta features are well-developed, but minor API and behavioral changes may occur between DepthAI releases without notice.

In C++, beta nodes are available under dai::beta::node:

auto node = pipeline.create<dai::beta::node::ClassificationParser>();

In Python, they are available under dai.beta.node:

node = pipeline.create(dai.beta.node.ClassificationParser)

On-device execution of Beta nodes is supported only on RVC4. If running Beta nodes on RVC2, DepthAI automatically configures beta nodes to run on the host.

Multiple devices in one pipeline

A single dai::Pipeline can drive several devices. Devices become part of the pipeline explicitly with addDevice(...) or implicitly when a node is created with an explicit device; the first device becomes the master (default device) used by nodes created without one.

pipeline = dai.Pipeline(False)                    # no implicit device
devA = pipeline.addDevice("10.0.0.10")            # promoted to master
devB = pipeline.addDevice("10.0.0.11")

camA = pipeline.create(dai.node.Camera).build(dai.CameraBoardSocket.CAM_A)          # master
camB = pipeline.create(dai.node.Camera, device=devB).build(dai.CameraBoardSocket.CAM_A)

sync = pipeline.create(dai.node.Sync)             # host Sync aligns both streams
sync.setRunOnHost(True)
camA.requestOutput((640, 400)).link(sync.inputs["a"])
camB.requestOutput((640, 400)).link(sync.inputs["b"])

Key behaviors:

  • Device-to-device links. Linking an output on device A to an input on device B inserts a host relay automatically at build time.
  • Partial operation. Losing one device leaves its streams idle while the rest of the pipeline keeps running; the lost device reconnects on its own. Observe this via pipeline.getDeviceState(device) and pipeline.setDeviceStateCallback(...). The pipeline stops itself only when the last device is gone or when a device that consumes another device’s streams is lost for good. Call pipeline.setStopOnDeviceLoss(True) to stop when any device that runs a node is lost for good (reconnection exhausted); with device.setMaxReconnectionAttempts(0) it stops as soon as the disconnect is detected.
  • Time. getTimestamp() values are host-clock based and comparable across devices; per-device getTimestampDevice() values are not (a host Sync node rejects the DEVICE timestamp source across devices at build).
  • Source devices. After build, a host node can ask input.getSourceDevice() / inputs.getSourceDevices() which device produces each of its inputs.
  • Per-device configuration. Every pipeline-level device setter/getter has a (device, ...) overload; the form without a device targets the master.
  • Holistic record/replay is not supported with more than one device yet.

See examples/{cpp,python}/.../MultiDevice/ for frame sync, a device-to-device relay and a multi-device host node.

Running on the device (standalone)

The pipeline process may itself run on an RVC4 and use the local device over shared memory, with further devices attached over the network:

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package depthai

3.12.0 (2026-11-04)

## Features

  • Multi-stream PointCloud
  • [Beta promotion] Stitching node
  • [Beta promotion] ImgDetectionsFilter node
  • Resize mode from NN archives
    • [NeuralNetwork]{.title-ref}, [DetectionNetwork]{.title-ref} and [SpatialDetectionNetwork]{.title-ref} built from a camera now use the [resize_mode]{.title-ref} ([CROP]{.title-ref}, [STRETCH]{.title-ref} or [LETTERBOX]{.title-ref}) declared in the NN archive. Archives without it use [CROP]{.title-ref}, as before
    • Override it with the [resizeMode]{.title-ref} argument of [build]{.title-ref}
  • [RVC2] Multi-device calibration ([pipeline.setMultiDeviceCalibration]{.title-ref}) is now supported on RVC2 devices
  • [Align.setInterpolation(...)]{.title-ref} selects the interpolation ([BICUBIC]{.title-ref}, [BILINEAR]{.title-ref} or [NEAREST_NEIGHBOR]{.title-ref}). [AUTO]{.title-ref} keeps the previous behavior
  • New [dai.node.Depth.getSupportedAlgorithms(device)]{.title-ref} and [getDefaultAlgorithm(device)]{.title-ref} return the depth algorithms that a device supports and the one that [AUTO]{.title-ref} selects
  • New [Device.getProtocol()]{.title-ref} returns the connection protocol (USB or TCP/IP)
  • [RVC4] [setAutoFocusTrigger()]{.title-ref} now runs one focus scan and then holds the focus. The AF mode is reset for each session
  • [RVC2] New [Device.Config.dangerousIrPowerOverride]{.title-ref} option removes the combined dot and flood power limit on boards that have one. Full power on both emitters can crash the device

## Bug fixes

  • Alignment
    • ImageAlign and Align now keep the depth near the image edges for rotated and distorted cameras
    • [RVC4] Align now uses correct offsets for rotated cameras and keeps the configured output size
    • ImageAlign no longer crashes when the [inputAlignTo]{.title-ref} frame has no distortion coefficients
    • [ImgDetections.transformTo()]{.title-ref} no longer distorts boxes at some rotations when mapping to a non-square image
    • [RVC2] StereoDepth depth alignment is now correct after decimation (for example on OAK-D-SR)
  • [*RVC4*] Stability

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged depthai at Robotics Stack Exchange

Package symbol

depthai package from depthai repo

depthai

ROS Distro
lyrical

Package Summary

Version 3.12.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/luxonis/depthai-core.git
VCS Type git
VCS Version ros-devel
Last Updated 2026-11-04
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

DepthAI core is a C++ library which comes with firmware and an API to interact with OAK Platform

Additional Links

Maintainers

  • Aljaž Sebastjan Ahtik

Authors

  • Martin Peterlin

DepthAI Library

Forum Docs License: MIT

DepthAI library for interfacing with Luxonis DepthAI hardware. It’s written in C++ and offers Python bindings out of the box.

Important — You’re viewing the v3.x.y branch.

Documentation

Documentation is available over at Luxonis DepthAI API

Examples

Examples for both C++ and Python are available in the examples folder. To see how to build and run them see README.md for more information. To build the examples in C++ configure with the following option added:

cmake -S. -Bbuild -D'DEPTHAI_BUILD_EXAMPLES=ON'
cmake --build build

Detection filtering and calibrated panoramas

Use dai::node::ImgDetectionsFilter / dai.node.ImgDetectionsFilter to filter detections or combine synchronized camera detections on a calibrated panorama. See the node guide and multi-device examples.

Beta features

The beta namespace is a staging area for experimental DepthAI features. It allows new features to be developed and iterated on quickly before they are promoted to the main depthai namespace.

Beta features are well-developed, but minor API and behavioral changes may occur between DepthAI releases without notice.

In C++, beta nodes are available under dai::beta::node:

auto node = pipeline.create<dai::beta::node::ClassificationParser>();

In Python, they are available under dai.beta.node:

node = pipeline.create(dai.beta.node.ClassificationParser)

On-device execution of Beta nodes is supported only on RVC4. If running Beta nodes on RVC2, DepthAI automatically configures beta nodes to run on the host.

Multiple devices in one pipeline

A single dai::Pipeline can drive several devices. Devices become part of the pipeline explicitly with addDevice(...) or implicitly when a node is created with an explicit device; the first device becomes the master (default device) used by nodes created without one.

pipeline = dai.Pipeline(False)                    # no implicit device
devA = pipeline.addDevice("10.0.0.10")            # promoted to master
devB = pipeline.addDevice("10.0.0.11")

camA = pipeline.create(dai.node.Camera).build(dai.CameraBoardSocket.CAM_A)          # master
camB = pipeline.create(dai.node.Camera, device=devB).build(dai.CameraBoardSocket.CAM_A)

sync = pipeline.create(dai.node.Sync)             # host Sync aligns both streams
sync.setRunOnHost(True)
camA.requestOutput((640, 400)).link(sync.inputs["a"])
camB.requestOutput((640, 400)).link(sync.inputs["b"])

Key behaviors:

  • Device-to-device links. Linking an output on device A to an input on device B inserts a host relay automatically at build time.
  • Partial operation. Losing one device leaves its streams idle while the rest of the pipeline keeps running; the lost device reconnects on its own. Observe this via pipeline.getDeviceState(device) and pipeline.setDeviceStateCallback(...). The pipeline stops itself only when the last device is gone or when a device that consumes another device’s streams is lost for good. Call pipeline.setStopOnDeviceLoss(True) to stop when any device that runs a node is lost for good (reconnection exhausted); with device.setMaxReconnectionAttempts(0) it stops as soon as the disconnect is detected.
  • Time. getTimestamp() values are host-clock based and comparable across devices; per-device getTimestampDevice() values are not (a host Sync node rejects the DEVICE timestamp source across devices at build).
  • Source devices. After build, a host node can ask input.getSourceDevice() / inputs.getSourceDevices() which device produces each of its inputs.
  • Per-device configuration. Every pipeline-level device setter/getter has a (device, ...) overload; the form without a device targets the master.
  • Holistic record/replay is not supported with more than one device yet.

See examples/{cpp,python}/.../MultiDevice/ for frame sync, a device-to-device relay and a multi-device host node.

Running on the device (standalone)

The pipeline process may itself run on an RVC4 and use the local device over shared memory, with further devices attached over the network:

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package depthai

3.12.0 (2026-11-04)

## Features

  • Multi-stream PointCloud
  • [Beta promotion] Stitching node
  • [Beta promotion] ImgDetectionsFilter node
  • Resize mode from NN archives
    • [NeuralNetwork]{.title-ref}, [DetectionNetwork]{.title-ref} and [SpatialDetectionNetwork]{.title-ref} built from a camera now use the [resize_mode]{.title-ref} ([CROP]{.title-ref}, [STRETCH]{.title-ref} or [LETTERBOX]{.title-ref}) declared in the NN archive. Archives without it use [CROP]{.title-ref}, as before
    • Override it with the [resizeMode]{.title-ref} argument of [build]{.title-ref}
  • [RVC2] Multi-device calibration ([pipeline.setMultiDeviceCalibration]{.title-ref}) is now supported on RVC2 devices
  • [Align.setInterpolation(...)]{.title-ref} selects the interpolation ([BICUBIC]{.title-ref}, [BILINEAR]{.title-ref} or [NEAREST_NEIGHBOR]{.title-ref}). [AUTO]{.title-ref} keeps the previous behavior
  • New [dai.node.Depth.getSupportedAlgorithms(device)]{.title-ref} and [getDefaultAlgorithm(device)]{.title-ref} return the depth algorithms that a device supports and the one that [AUTO]{.title-ref} selects
  • New [Device.getProtocol()]{.title-ref} returns the connection protocol (USB or TCP/IP)
  • [RVC4] [setAutoFocusTrigger()]{.title-ref} now runs one focus scan and then holds the focus. The AF mode is reset for each session
  • [RVC2] New [Device.Config.dangerousIrPowerOverride]{.title-ref} option removes the combined dot and flood power limit on boards that have one. Full power on both emitters can crash the device

## Bug fixes

  • Alignment
    • ImageAlign and Align now keep the depth near the image edges for rotated and distorted cameras
    • [RVC4] Align now uses correct offsets for rotated cameras and keeps the configured output size
    • ImageAlign no longer crashes when the [inputAlignTo]{.title-ref} frame has no distortion coefficients
    • [ImgDetections.transformTo()]{.title-ref} no longer distorts boxes at some rotations when mapping to a non-square image
    • [RVC2] StereoDepth depth alignment is now correct after decimation (for example on OAK-D-SR)
  • [*RVC4*] Stability

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged depthai at Robotics Stack Exchange

No version for distro rolling showing kilted. Known supported distros are highlighted in the buttons above.
Package symbol

depthai package from depthai repo

depthai

ROS Distro
kilted

Package Summary

Version 3.12.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/luxonis/depthai-core.git
VCS Type git
VCS Version ros-devel
Last Updated 2026-11-04
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

DepthAI core is a C++ library which comes with firmware and an API to interact with OAK Platform

Additional Links

Maintainers

  • Aljaž Sebastjan Ahtik

Authors

  • Martin Peterlin

DepthAI Library

Forum Docs License: MIT

DepthAI library for interfacing with Luxonis DepthAI hardware. It’s written in C++ and offers Python bindings out of the box.

Important — You’re viewing the v3.x.y branch.

Documentation

Documentation is available over at Luxonis DepthAI API

Examples

Examples for both C++ and Python are available in the examples folder. To see how to build and run them see README.md for more information. To build the examples in C++ configure with the following option added:

cmake -S. -Bbuild -D'DEPTHAI_BUILD_EXAMPLES=ON'
cmake --build build

Detection filtering and calibrated panoramas

Use dai::node::ImgDetectionsFilter / dai.node.ImgDetectionsFilter to filter detections or combine synchronized camera detections on a calibrated panorama. See the node guide and multi-device examples.

Beta features

The beta namespace is a staging area for experimental DepthAI features. It allows new features to be developed and iterated on quickly before they are promoted to the main depthai namespace.

Beta features are well-developed, but minor API and behavioral changes may occur between DepthAI releases without notice.

In C++, beta nodes are available under dai::beta::node:

auto node = pipeline.create<dai::beta::node::ClassificationParser>();

In Python, they are available under dai.beta.node:

node = pipeline.create(dai.beta.node.ClassificationParser)

On-device execution of Beta nodes is supported only on RVC4. If running Beta nodes on RVC2, DepthAI automatically configures beta nodes to run on the host.

Multiple devices in one pipeline

A single dai::Pipeline can drive several devices. Devices become part of the pipeline explicitly with addDevice(...) or implicitly when a node is created with an explicit device; the first device becomes the master (default device) used by nodes created without one.

pipeline = dai.Pipeline(False)                    # no implicit device
devA = pipeline.addDevice("10.0.0.10")            # promoted to master
devB = pipeline.addDevice("10.0.0.11")

camA = pipeline.create(dai.node.Camera).build(dai.CameraBoardSocket.CAM_A)          # master
camB = pipeline.create(dai.node.Camera, device=devB).build(dai.CameraBoardSocket.CAM_A)

sync = pipeline.create(dai.node.Sync)             # host Sync aligns both streams
sync.setRunOnHost(True)
camA.requestOutput((640, 400)).link(sync.inputs["a"])
camB.requestOutput((640, 400)).link(sync.inputs["b"])

Key behaviors:

  • Device-to-device links. Linking an output on device A to an input on device B inserts a host relay automatically at build time.
  • Partial operation. Losing one device leaves its streams idle while the rest of the pipeline keeps running; the lost device reconnects on its own. Observe this via pipeline.getDeviceState(device) and pipeline.setDeviceStateCallback(...). The pipeline stops itself only when the last device is gone or when a device that consumes another device’s streams is lost for good. Call pipeline.setStopOnDeviceLoss(True) to stop when any device that runs a node is lost for good (reconnection exhausted); with device.setMaxReconnectionAttempts(0) it stops as soon as the disconnect is detected.
  • Time. getTimestamp() values are host-clock based and comparable across devices; per-device getTimestampDevice() values are not (a host Sync node rejects the DEVICE timestamp source across devices at build).
  • Source devices. After build, a host node can ask input.getSourceDevice() / inputs.getSourceDevices() which device produces each of its inputs.
  • Per-device configuration. Every pipeline-level device setter/getter has a (device, ...) overload; the form without a device targets the master.
  • Holistic record/replay is not supported with more than one device yet.

See examples/{cpp,python}/.../MultiDevice/ for frame sync, a device-to-device relay and a multi-device host node.

Running on the device (standalone)

The pipeline process may itself run on an RVC4 and use the local device over shared memory, with further devices attached over the network:

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package depthai

3.12.0 (2026-11-04)

## Features

  • Multi-stream PointCloud
  • [Beta promotion] Stitching node
  • [Beta promotion] ImgDetectionsFilter node
  • Resize mode from NN archives
    • [NeuralNetwork]{.title-ref}, [DetectionNetwork]{.title-ref} and [SpatialDetectionNetwork]{.title-ref} built from a camera now use the [resize_mode]{.title-ref} ([CROP]{.title-ref}, [STRETCH]{.title-ref} or [LETTERBOX]{.title-ref}) declared in the NN archive. Archives without it use [CROP]{.title-ref}, as before
    • Override it with the [resizeMode]{.title-ref} argument of [build]{.title-ref}
  • [RVC2] Multi-device calibration ([pipeline.setMultiDeviceCalibration]{.title-ref}) is now supported on RVC2 devices
  • [Align.setInterpolation(...)]{.title-ref} selects the interpolation ([BICUBIC]{.title-ref}, [BILINEAR]{.title-ref} or [NEAREST_NEIGHBOR]{.title-ref}). [AUTO]{.title-ref} keeps the previous behavior
  • New [dai.node.Depth.getSupportedAlgorithms(device)]{.title-ref} and [getDefaultAlgorithm(device)]{.title-ref} return the depth algorithms that a device supports and the one that [AUTO]{.title-ref} selects
  • New [Device.getProtocol()]{.title-ref} returns the connection protocol (USB or TCP/IP)
  • [RVC4] [setAutoFocusTrigger()]{.title-ref} now runs one focus scan and then holds the focus. The AF mode is reset for each session
  • [RVC2] New [Device.Config.dangerousIrPowerOverride]{.title-ref} option removes the combined dot and flood power limit on boards that have one. Full power on both emitters can crash the device

## Bug fixes

  • Alignment
    • ImageAlign and Align now keep the depth near the image edges for rotated and distorted cameras
    • [RVC4] Align now uses correct offsets for rotated cameras and keeps the configured output size
    • ImageAlign no longer crashes when the [inputAlignTo]{.title-ref} frame has no distortion coefficients
    • [ImgDetections.transformTo()]{.title-ref} no longer distorts boxes at some rotations when mapping to a non-square image
    • [RVC2] StereoDepth depth alignment is now correct after decimation (for example on OAK-D-SR)
  • [*RVC4*] Stability

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged depthai at Robotics Stack Exchange

No version for distro ardent showing kilted. Known supported distros are highlighted in the buttons above.
Package symbol

depthai package from depthai repo

depthai

ROS Distro
kilted

Package Summary

Version 3.12.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/luxonis/depthai-core.git
VCS Type git
VCS Version ros-devel
Last Updated 2026-11-04
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

DepthAI core is a C++ library which comes with firmware and an API to interact with OAK Platform

Additional Links

Maintainers

  • Aljaž Sebastjan Ahtik

Authors

  • Martin Peterlin

DepthAI Library

Forum Docs License: MIT

DepthAI library for interfacing with Luxonis DepthAI hardware. It’s written in C++ and offers Python bindings out of the box.

Important — You’re viewing the v3.x.y branch.

Documentation

Documentation is available over at Luxonis DepthAI API

Examples

Examples for both C++ and Python are available in the examples folder. To see how to build and run them see README.md for more information. To build the examples in C++ configure with the following option added:

cmake -S. -Bbuild -D'DEPTHAI_BUILD_EXAMPLES=ON'
cmake --build build

Detection filtering and calibrated panoramas

Use dai::node::ImgDetectionsFilter / dai.node.ImgDetectionsFilter to filter detections or combine synchronized camera detections on a calibrated panorama. See the node guide and multi-device examples.

Beta features

The beta namespace is a staging area for experimental DepthAI features. It allows new features to be developed and iterated on quickly before they are promoted to the main depthai namespace.

Beta features are well-developed, but minor API and behavioral changes may occur between DepthAI releases without notice.

In C++, beta nodes are available under dai::beta::node:

auto node = pipeline.create<dai::beta::node::ClassificationParser>();

In Python, they are available under dai.beta.node:

node = pipeline.create(dai.beta.node.ClassificationParser)

On-device execution of Beta nodes is supported only on RVC4. If running Beta nodes on RVC2, DepthAI automatically configures beta nodes to run on the host.

Multiple devices in one pipeline

A single dai::Pipeline can drive several devices. Devices become part of the pipeline explicitly with addDevice(...) or implicitly when a node is created with an explicit device; the first device becomes the master (default device) used by nodes created without one.

pipeline = dai.Pipeline(False)                    # no implicit device
devA = pipeline.addDevice("10.0.0.10")            # promoted to master
devB = pipeline.addDevice("10.0.0.11")

camA = pipeline.create(dai.node.Camera).build(dai.CameraBoardSocket.CAM_A)          # master
camB = pipeline.create(dai.node.Camera, device=devB).build(dai.CameraBoardSocket.CAM_A)

sync = pipeline.create(dai.node.Sync)             # host Sync aligns both streams
sync.setRunOnHost(True)
camA.requestOutput((640, 400)).link(sync.inputs["a"])
camB.requestOutput((640, 400)).link(sync.inputs["b"])

Key behaviors:

  • Device-to-device links. Linking an output on device A to an input on device B inserts a host relay automatically at build time.
  • Partial operation. Losing one device leaves its streams idle while the rest of the pipeline keeps running; the lost device reconnects on its own. Observe this via pipeline.getDeviceState(device) and pipeline.setDeviceStateCallback(...). The pipeline stops itself only when the last device is gone or when a device that consumes another device’s streams is lost for good. Call pipeline.setStopOnDeviceLoss(True) to stop when any device that runs a node is lost for good (reconnection exhausted); with device.setMaxReconnectionAttempts(0) it stops as soon as the disconnect is detected.
  • Time. getTimestamp() values are host-clock based and comparable across devices; per-device getTimestampDevice() values are not (a host Sync node rejects the DEVICE timestamp source across devices at build).
  • Source devices. After build, a host node can ask input.getSourceDevice() / inputs.getSourceDevices() which device produces each of its inputs.
  • Per-device configuration. Every pipeline-level device setter/getter has a (device, ...) overload; the form without a device targets the master.
  • Holistic record/replay is not supported with more than one device yet.

See examples/{cpp,python}/.../MultiDevice/ for frame sync, a device-to-device relay and a multi-device host node.

Running on the device (standalone)

The pipeline process may itself run on an RVC4 and use the local device over shared memory, with further devices attached over the network:

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package depthai

3.12.0 (2026-11-04)

## Features

  • Multi-stream PointCloud
  • [Beta promotion] Stitching node
  • [Beta promotion] ImgDetectionsFilter node
  • Resize mode from NN archives
    • [NeuralNetwork]{.title-ref}, [DetectionNetwork]{.title-ref} and [SpatialDetectionNetwork]{.title-ref} built from a camera now use the [resize_mode]{.title-ref} ([CROP]{.title-ref}, [STRETCH]{.title-ref} or [LETTERBOX]{.title-ref}) declared in the NN archive. Archives without it use [CROP]{.title-ref}, as before
    • Override it with the [resizeMode]{.title-ref} argument of [build]{.title-ref}
  • [RVC2] Multi-device calibration ([pipeline.setMultiDeviceCalibration]{.title-ref}) is now supported on RVC2 devices
  • [Align.setInterpolation(...)]{.title-ref} selects the interpolation ([BICUBIC]{.title-ref}, [BILINEAR]{.title-ref} or [NEAREST_NEIGHBOR]{.title-ref}). [AUTO]{.title-ref} keeps the previous behavior
  • New [dai.node.Depth.getSupportedAlgorithms(device)]{.title-ref} and [getDefaultAlgorithm(device)]{.title-ref} return the depth algorithms that a device supports and the one that [AUTO]{.title-ref} selects
  • New [Device.getProtocol()]{.title-ref} returns the connection protocol (USB or TCP/IP)
  • [RVC4] [setAutoFocusTrigger()]{.title-ref} now runs one focus scan and then holds the focus. The AF mode is reset for each session
  • [RVC2] New [Device.Config.dangerousIrPowerOverride]{.title-ref} option removes the combined dot and flood power limit on boards that have one. Full power on both emitters can crash the device

## Bug fixes

  • Alignment
    • ImageAlign and Align now keep the depth near the image edges for rotated and distorted cameras
    • [RVC4] Align now uses correct offsets for rotated cameras and keeps the configured output size
    • ImageAlign no longer crashes when the [inputAlignTo]{.title-ref} frame has no distortion coefficients
    • [ImgDetections.transformTo()]{.title-ref} no longer distorts boxes at some rotations when mapping to a non-square image
    • [RVC2] StereoDepth depth alignment is now correct after decimation (for example on OAK-D-SR)
  • [*RVC4*] Stability

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged depthai at Robotics Stack Exchange

No version for distro bouncy showing kilted. Known supported distros are highlighted in the buttons above.
Package symbol

depthai package from depthai repo

depthai

ROS Distro
kilted

Package Summary

Version 3.12.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/luxonis/depthai-core.git
VCS Type git
VCS Version ros-devel
Last Updated 2026-11-04
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

DepthAI core is a C++ library which comes with firmware and an API to interact with OAK Platform

Additional Links

Maintainers

  • Aljaž Sebastjan Ahtik

Authors

  • Martin Peterlin

DepthAI Library

Forum Docs License: MIT

DepthAI library for interfacing with Luxonis DepthAI hardware. It’s written in C++ and offers Python bindings out of the box.

Important — You’re viewing the v3.x.y branch.

Documentation

Documentation is available over at Luxonis DepthAI API

Examples

Examples for both C++ and Python are available in the examples folder. To see how to build and run them see README.md for more information. To build the examples in C++ configure with the following option added:

cmake -S. -Bbuild -D'DEPTHAI_BUILD_EXAMPLES=ON'
cmake --build build

Detection filtering and calibrated panoramas

Use dai::node::ImgDetectionsFilter / dai.node.ImgDetectionsFilter to filter detections or combine synchronized camera detections on a calibrated panorama. See the node guide and multi-device examples.

Beta features

The beta namespace is a staging area for experimental DepthAI features. It allows new features to be developed and iterated on quickly before they are promoted to the main depthai namespace.

Beta features are well-developed, but minor API and behavioral changes may occur between DepthAI releases without notice.

In C++, beta nodes are available under dai::beta::node:

auto node = pipeline.create<dai::beta::node::ClassificationParser>();

In Python, they are available under dai.beta.node:

node = pipeline.create(dai.beta.node.ClassificationParser)

On-device execution of Beta nodes is supported only on RVC4. If running Beta nodes on RVC2, DepthAI automatically configures beta nodes to run on the host.

Multiple devices in one pipeline

A single dai::Pipeline can drive several devices. Devices become part of the pipeline explicitly with addDevice(...) or implicitly when a node is created with an explicit device; the first device becomes the master (default device) used by nodes created without one.

pipeline = dai.Pipeline(False)                    # no implicit device
devA = pipeline.addDevice("10.0.0.10")            # promoted to master
devB = pipeline.addDevice("10.0.0.11")

camA = pipeline.create(dai.node.Camera).build(dai.CameraBoardSocket.CAM_A)          # master
camB = pipeline.create(dai.node.Camera, device=devB).build(dai.CameraBoardSocket.CAM_A)

sync = pipeline.create(dai.node.Sync)             # host Sync aligns both streams
sync.setRunOnHost(True)
camA.requestOutput((640, 400)).link(sync.inputs["a"])
camB.requestOutput((640, 400)).link(sync.inputs["b"])

Key behaviors:

  • Device-to-device links. Linking an output on device A to an input on device B inserts a host relay automatically at build time.
  • Partial operation. Losing one device leaves its streams idle while the rest of the pipeline keeps running; the lost device reconnects on its own. Observe this via pipeline.getDeviceState(device) and pipeline.setDeviceStateCallback(...). The pipeline stops itself only when the last device is gone or when a device that consumes another device’s streams is lost for good. Call pipeline.setStopOnDeviceLoss(True) to stop when any device that runs a node is lost for good (reconnection exhausted); with device.setMaxReconnectionAttempts(0) it stops as soon as the disconnect is detected.
  • Time. getTimestamp() values are host-clock based and comparable across devices; per-device getTimestampDevice() values are not (a host Sync node rejects the DEVICE timestamp source across devices at build).
  • Source devices. After build, a host node can ask input.getSourceDevice() / inputs.getSourceDevices() which device produces each of its inputs.
  • Per-device configuration. Every pipeline-level device setter/getter has a (device, ...) overload; the form without a device targets the master.
  • Holistic record/replay is not supported with more than one device yet.

See examples/{cpp,python}/.../MultiDevice/ for frame sync, a device-to-device relay and a multi-device host node.

Running on the device (standalone)

The pipeline process may itself run on an RVC4 and use the local device over shared memory, with further devices attached over the network:

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package depthai

3.12.0 (2026-11-04)

## Features

  • Multi-stream PointCloud
  • [Beta promotion] Stitching node
  • [Beta promotion] ImgDetectionsFilter node
  • Resize mode from NN archives
    • [NeuralNetwork]{.title-ref}, [DetectionNetwork]{.title-ref} and [SpatialDetectionNetwork]{.title-ref} built from a camera now use the [resize_mode]{.title-ref} ([CROP]{.title-ref}, [STRETCH]{.title-ref} or [LETTERBOX]{.title-ref}) declared in the NN archive. Archives without it use [CROP]{.title-ref}, as before
    • Override it with the [resizeMode]{.title-ref} argument of [build]{.title-ref}
  • [RVC2] Multi-device calibration ([pipeline.setMultiDeviceCalibration]{.title-ref}) is now supported on RVC2 devices
  • [Align.setInterpolation(...)]{.title-ref} selects the interpolation ([BICUBIC]{.title-ref}, [BILINEAR]{.title-ref} or [NEAREST_NEIGHBOR]{.title-ref}). [AUTO]{.title-ref} keeps the previous behavior
  • New [dai.node.Depth.getSupportedAlgorithms(device)]{.title-ref} and [getDefaultAlgorithm(device)]{.title-ref} return the depth algorithms that a device supports and the one that [AUTO]{.title-ref} selects
  • New [Device.getProtocol()]{.title-ref} returns the connection protocol (USB or TCP/IP)
  • [RVC4] [setAutoFocusTrigger()]{.title-ref} now runs one focus scan and then holds the focus. The AF mode is reset for each session
  • [RVC2] New [Device.Config.dangerousIrPowerOverride]{.title-ref} option removes the combined dot and flood power limit on boards that have one. Full power on both emitters can crash the device

## Bug fixes

  • Alignment
    • ImageAlign and Align now keep the depth near the image edges for rotated and distorted cameras
    • [RVC4] Align now uses correct offsets for rotated cameras and keeps the configured output size
    • ImageAlign no longer crashes when the [inputAlignTo]{.title-ref} frame has no distortion coefficients
    • [ImgDetections.transformTo()]{.title-ref} no longer distorts boxes at some rotations when mapping to a non-square image
    • [RVC2] StereoDepth depth alignment is now correct after decimation (for example on OAK-D-SR)
  • [*RVC4*] Stability

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged depthai at Robotics Stack Exchange

No version for distro crystal showing kilted. Known supported distros are highlighted in the buttons above.
Package symbol

depthai package from depthai repo

depthai

ROS Distro
kilted

Package Summary

Version 3.12.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/luxonis/depthai-core.git
VCS Type git
VCS Version ros-devel
Last Updated 2026-11-04
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

DepthAI core is a C++ library which comes with firmware and an API to interact with OAK Platform

Additional Links

Maintainers

  • Aljaž Sebastjan Ahtik

Authors

  • Martin Peterlin

DepthAI Library

Forum Docs License: MIT

DepthAI library for interfacing with Luxonis DepthAI hardware. It’s written in C++ and offers Python bindings out of the box.

Important — You’re viewing the v3.x.y branch.

Documentation

Documentation is available over at Luxonis DepthAI API

Examples

Examples for both C++ and Python are available in the examples folder. To see how to build and run them see README.md for more information. To build the examples in C++ configure with the following option added:

cmake -S. -Bbuild -D'DEPTHAI_BUILD_EXAMPLES=ON'
cmake --build build

Detection filtering and calibrated panoramas

Use dai::node::ImgDetectionsFilter / dai.node.ImgDetectionsFilter to filter detections or combine synchronized camera detections on a calibrated panorama. See the node guide and multi-device examples.

Beta features

The beta namespace is a staging area for experimental DepthAI features. It allows new features to be developed and iterated on quickly before they are promoted to the main depthai namespace.

Beta features are well-developed, but minor API and behavioral changes may occur between DepthAI releases without notice.

In C++, beta nodes are available under dai::beta::node:

auto node = pipeline.create<dai::beta::node::ClassificationParser>();

In Python, they are available under dai.beta.node:

node = pipeline.create(dai.beta.node.ClassificationParser)

On-device execution of Beta nodes is supported only on RVC4. If running Beta nodes on RVC2, DepthAI automatically configures beta nodes to run on the host.

Multiple devices in one pipeline

A single dai::Pipeline can drive several devices. Devices become part of the pipeline explicitly with addDevice(...) or implicitly when a node is created with an explicit device; the first device becomes the master (default device) used by nodes created without one.

pipeline = dai.Pipeline(False)                    # no implicit device
devA = pipeline.addDevice("10.0.0.10")            # promoted to master
devB = pipeline.addDevice("10.0.0.11")

camA = pipeline.create(dai.node.Camera).build(dai.CameraBoardSocket.CAM_A)          # master
camB = pipeline.create(dai.node.Camera, device=devB).build(dai.CameraBoardSocket.CAM_A)

sync = pipeline.create(dai.node.Sync)             # host Sync aligns both streams
sync.setRunOnHost(True)
camA.requestOutput((640, 400)).link(sync.inputs["a"])
camB.requestOutput((640, 400)).link(sync.inputs["b"])

Key behaviors:

  • Device-to-device links. Linking an output on device A to an input on device B inserts a host relay automatically at build time.
  • Partial operation. Losing one device leaves its streams idle while the rest of the pipeline keeps running; the lost device reconnects on its own. Observe this via pipeline.getDeviceState(device) and pipeline.setDeviceStateCallback(...). The pipeline stops itself only when the last device is gone or when a device that consumes another device’s streams is lost for good. Call pipeline.setStopOnDeviceLoss(True) to stop when any device that runs a node is lost for good (reconnection exhausted); with device.setMaxReconnectionAttempts(0) it stops as soon as the disconnect is detected.
  • Time. getTimestamp() values are host-clock based and comparable across devices; per-device getTimestampDevice() values are not (a host Sync node rejects the DEVICE timestamp source across devices at build).
  • Source devices. After build, a host node can ask input.getSourceDevice() / inputs.getSourceDevices() which device produces each of its inputs.
  • Per-device configuration. Every pipeline-level device setter/getter has a (device, ...) overload; the form without a device targets the master.
  • Holistic record/replay is not supported with more than one device yet.

See examples/{cpp,python}/.../MultiDevice/ for frame sync, a device-to-device relay and a multi-device host node.

Running on the device (standalone)

The pipeline process may itself run on an RVC4 and use the local device over shared memory, with further devices attached over the network:

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package depthai

3.12.0 (2026-11-04)

## Features

  • Multi-stream PointCloud
  • [Beta promotion] Stitching node
  • [Beta promotion] ImgDetectionsFilter node
  • Resize mode from NN archives
    • [NeuralNetwork]{.title-ref}, [DetectionNetwork]{.title-ref} and [SpatialDetectionNetwork]{.title-ref} built from a camera now use the [resize_mode]{.title-ref} ([CROP]{.title-ref}, [STRETCH]{.title-ref} or [LETTERBOX]{.title-ref}) declared in the NN archive. Archives without it use [CROP]{.title-ref}, as before
    • Override it with the [resizeMode]{.title-ref} argument of [build]{.title-ref}
  • [RVC2] Multi-device calibration ([pipeline.setMultiDeviceCalibration]{.title-ref}) is now supported on RVC2 devices
  • [Align.setInterpolation(...)]{.title-ref} selects the interpolation ([BICUBIC]{.title-ref}, [BILINEAR]{.title-ref} or [NEAREST_NEIGHBOR]{.title-ref}). [AUTO]{.title-ref} keeps the previous behavior
  • New [dai.node.Depth.getSupportedAlgorithms(device)]{.title-ref} and [getDefaultAlgorithm(device)]{.title-ref} return the depth algorithms that a device supports and the one that [AUTO]{.title-ref} selects
  • New [Device.getProtocol()]{.title-ref} returns the connection protocol (USB or TCP/IP)
  • [RVC4] [setAutoFocusTrigger()]{.title-ref} now runs one focus scan and then holds the focus. The AF mode is reset for each session
  • [RVC2] New [Device.Config.dangerousIrPowerOverride]{.title-ref} option removes the combined dot and flood power limit on boards that have one. Full power on both emitters can crash the device

## Bug fixes

  • Alignment
    • ImageAlign and Align now keep the depth near the image edges for rotated and distorted cameras
    • [RVC4] Align now uses correct offsets for rotated cameras and keeps the configured output size
    • ImageAlign no longer crashes when the [inputAlignTo]{.title-ref} frame has no distortion coefficients
    • [ImgDetections.transformTo()]{.title-ref} no longer distorts boxes at some rotations when mapping to a non-square image
    • [RVC2] StereoDepth depth alignment is now correct after decimation (for example on OAK-D-SR)
  • [*RVC4*] Stability

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged depthai at Robotics Stack Exchange

No version for distro eloquent showing kilted. Known supported distros are highlighted in the buttons above.
Package symbol

depthai package from depthai repo

depthai

ROS Distro
kilted

Package Summary

Version 3.12.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/luxonis/depthai-core.git
VCS Type git
VCS Version ros-devel
Last Updated 2026-11-04
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

DepthAI core is a C++ library which comes with firmware and an API to interact with OAK Platform

Additional Links

Maintainers

  • Aljaž Sebastjan Ahtik

Authors

  • Martin Peterlin

DepthAI Library

Forum Docs License: MIT

DepthAI library for interfacing with Luxonis DepthAI hardware. It’s written in C++ and offers Python bindings out of the box.

Important — You’re viewing the v3.x.y branch.

Documentation

Documentation is available over at Luxonis DepthAI API

Examples

Examples for both C++ and Python are available in the examples folder. To see how to build and run them see README.md for more information. To build the examples in C++ configure with the following option added:

cmake -S. -Bbuild -D'DEPTHAI_BUILD_EXAMPLES=ON'
cmake --build build

Detection filtering and calibrated panoramas

Use dai::node::ImgDetectionsFilter / dai.node.ImgDetectionsFilter to filter detections or combine synchronized camera detections on a calibrated panorama. See the node guide and multi-device examples.

Beta features

The beta namespace is a staging area for experimental DepthAI features. It allows new features to be developed and iterated on quickly before they are promoted to the main depthai namespace.

Beta features are well-developed, but minor API and behavioral changes may occur between DepthAI releases without notice.

In C++, beta nodes are available under dai::beta::node:

auto node = pipeline.create<dai::beta::node::ClassificationParser>();

In Python, they are available under dai.beta.node:

node = pipeline.create(dai.beta.node.ClassificationParser)

On-device execution of Beta nodes is supported only on RVC4. If running Beta nodes on RVC2, DepthAI automatically configures beta nodes to run on the host.

Multiple devices in one pipeline

A single dai::Pipeline can drive several devices. Devices become part of the pipeline explicitly with addDevice(...) or implicitly when a node is created with an explicit device; the first device becomes the master (default device) used by nodes created without one.

pipeline = dai.Pipeline(False)                    # no implicit device
devA = pipeline.addDevice("10.0.0.10")            # promoted to master
devB = pipeline.addDevice("10.0.0.11")

camA = pipeline.create(dai.node.Camera).build(dai.CameraBoardSocket.CAM_A)          # master
camB = pipeline.create(dai.node.Camera, device=devB).build(dai.CameraBoardSocket.CAM_A)

sync = pipeline.create(dai.node.Sync)             # host Sync aligns both streams
sync.setRunOnHost(True)
camA.requestOutput((640, 400)).link(sync.inputs["a"])
camB.requestOutput((640, 400)).link(sync.inputs["b"])

Key behaviors:

  • Device-to-device links. Linking an output on device A to an input on device B inserts a host relay automatically at build time.
  • Partial operation. Losing one device leaves its streams idle while the rest of the pipeline keeps running; the lost device reconnects on its own. Observe this via pipeline.getDeviceState(device) and pipeline.setDeviceStateCallback(...). The pipeline stops itself only when the last device is gone or when a device that consumes another device’s streams is lost for good. Call pipeline.setStopOnDeviceLoss(True) to stop when any device that runs a node is lost for good (reconnection exhausted); with device.setMaxReconnectionAttempts(0) it stops as soon as the disconnect is detected.
  • Time. getTimestamp() values are host-clock based and comparable across devices; per-device getTimestampDevice() values are not (a host Sync node rejects the DEVICE timestamp source across devices at build).
  • Source devices. After build, a host node can ask input.getSourceDevice() / inputs.getSourceDevices() which device produces each of its inputs.
  • Per-device configuration. Every pipeline-level device setter/getter has a (device, ...) overload; the form without a device targets the master.
  • Holistic record/replay is not supported with more than one device yet.

See examples/{cpp,python}/.../MultiDevice/ for frame sync, a device-to-device relay and a multi-device host node.

Running on the device (standalone)

The pipeline process may itself run on an RVC4 and use the local device over shared memory, with further devices attached over the network:

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package depthai

3.12.0 (2026-11-04)

## Features

  • Multi-stream PointCloud
  • [Beta promotion] Stitching node
  • [Beta promotion] ImgDetectionsFilter node
  • Resize mode from NN archives
    • [NeuralNetwork]{.title-ref}, [DetectionNetwork]{.title-ref} and [SpatialDetectionNetwork]{.title-ref} built from a camera now use the [resize_mode]{.title-ref} ([CROP]{.title-ref}, [STRETCH]{.title-ref} or [LETTERBOX]{.title-ref}) declared in the NN archive. Archives without it use [CROP]{.title-ref}, as before
    • Override it with the [resizeMode]{.title-ref} argument of [build]{.title-ref}
  • [RVC2] Multi-device calibration ([pipeline.setMultiDeviceCalibration]{.title-ref}) is now supported on RVC2 devices
  • [Align.setInterpolation(...)]{.title-ref} selects the interpolation ([BICUBIC]{.title-ref}, [BILINEAR]{.title-ref} or [NEAREST_NEIGHBOR]{.title-ref}). [AUTO]{.title-ref} keeps the previous behavior
  • New [dai.node.Depth.getSupportedAlgorithms(device)]{.title-ref} and [getDefaultAlgorithm(device)]{.title-ref} return the depth algorithms that a device supports and the one that [AUTO]{.title-ref} selects
  • New [Device.getProtocol()]{.title-ref} returns the connection protocol (USB or TCP/IP)
  • [RVC4] [setAutoFocusTrigger()]{.title-ref} now runs one focus scan and then holds the focus. The AF mode is reset for each session
  • [RVC2] New [Device.Config.dangerousIrPowerOverride]{.title-ref} option removes the combined dot and flood power limit on boards that have one. Full power on both emitters can crash the device

## Bug fixes

  • Alignment
    • ImageAlign and Align now keep the depth near the image edges for rotated and distorted cameras
    • [RVC4] Align now uses correct offsets for rotated cameras and keeps the configured output size
    • ImageAlign no longer crashes when the [inputAlignTo]{.title-ref} frame has no distortion coefficients
    • [ImgDetections.transformTo()]{.title-ref} no longer distorts boxes at some rotations when mapping to a non-square image
    • [RVC2] StereoDepth depth alignment is now correct after decimation (for example on OAK-D-SR)
  • [*RVC4*] Stability

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged depthai at Robotics Stack Exchange

No version for distro dashing showing kilted. Known supported distros are highlighted in the buttons above.
Package symbol

depthai package from depthai repo

depthai

ROS Distro
kilted

Package Summary

Version 3.12.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/luxonis/depthai-core.git
VCS Type git
VCS Version ros-devel
Last Updated 2026-11-04
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

DepthAI core is a C++ library which comes with firmware and an API to interact with OAK Platform

Additional Links

Maintainers

  • Aljaž Sebastjan Ahtik

Authors

  • Martin Peterlin

DepthAI Library

Forum Docs License: MIT

DepthAI library for interfacing with Luxonis DepthAI hardware. It’s written in C++ and offers Python bindings out of the box.

Important — You’re viewing the v3.x.y branch.

Documentation

Documentation is available over at Luxonis DepthAI API

Examples

Examples for both C++ and Python are available in the examples folder. To see how to build and run them see README.md for more information. To build the examples in C++ configure with the following option added:

cmake -S. -Bbuild -D'DEPTHAI_BUILD_EXAMPLES=ON'
cmake --build build

Detection filtering and calibrated panoramas

Use dai::node::ImgDetectionsFilter / dai.node.ImgDetectionsFilter to filter detections or combine synchronized camera detections on a calibrated panorama. See the node guide and multi-device examples.

Beta features

The beta namespace is a staging area for experimental DepthAI features. It allows new features to be developed and iterated on quickly before they are promoted to the main depthai namespace.

Beta features are well-developed, but minor API and behavioral changes may occur between DepthAI releases without notice.

In C++, beta nodes are available under dai::beta::node:

auto node = pipeline.create<dai::beta::node::ClassificationParser>();

In Python, they are available under dai.beta.node:

node = pipeline.create(dai.beta.node.ClassificationParser)

On-device execution of Beta nodes is supported only on RVC4. If running Beta nodes on RVC2, DepthAI automatically configures beta nodes to run on the host.

Multiple devices in one pipeline

A single dai::Pipeline can drive several devices. Devices become part of the pipeline explicitly with addDevice(...) or implicitly when a node is created with an explicit device; the first device becomes the master (default device) used by nodes created without one.

pipeline = dai.Pipeline(False)                    # no implicit device
devA = pipeline.addDevice("10.0.0.10")            # promoted to master
devB = pipeline.addDevice("10.0.0.11")

camA = pipeline.create(dai.node.Camera).build(dai.CameraBoardSocket.CAM_A)          # master
camB = pipeline.create(dai.node.Camera, device=devB).build(dai.CameraBoardSocket.CAM_A)

sync = pipeline.create(dai.node.Sync)             # host Sync aligns both streams
sync.setRunOnHost(True)
camA.requestOutput((640, 400)).link(sync.inputs["a"])
camB.requestOutput((640, 400)).link(sync.inputs["b"])

Key behaviors:

  • Device-to-device links. Linking an output on device A to an input on device B inserts a host relay automatically at build time.
  • Partial operation. Losing one device leaves its streams idle while the rest of the pipeline keeps running; the lost device reconnects on its own. Observe this via pipeline.getDeviceState(device) and pipeline.setDeviceStateCallback(...). The pipeline stops itself only when the last device is gone or when a device that consumes another device’s streams is lost for good. Call pipeline.setStopOnDeviceLoss(True) to stop when any device that runs a node is lost for good (reconnection exhausted); with device.setMaxReconnectionAttempts(0) it stops as soon as the disconnect is detected.
  • Time. getTimestamp() values are host-clock based and comparable across devices; per-device getTimestampDevice() values are not (a host Sync node rejects the DEVICE timestamp source across devices at build).
  • Source devices. After build, a host node can ask input.getSourceDevice() / inputs.getSourceDevices() which device produces each of its inputs.
  • Per-device configuration. Every pipeline-level device setter/getter has a (device, ...) overload; the form without a device targets the master.
  • Holistic record/replay is not supported with more than one device yet.

See examples/{cpp,python}/.../MultiDevice/ for frame sync, a device-to-device relay and a multi-device host node.

Running on the device (standalone)

The pipeline process may itself run on an RVC4 and use the local device over shared memory, with further devices attached over the network:

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package depthai

3.12.0 (2026-11-04)

## Features

  • Multi-stream PointCloud
  • [Beta promotion] Stitching node
  • [Beta promotion] ImgDetectionsFilter node
  • Resize mode from NN archives
    • [NeuralNetwork]{.title-ref}, [DetectionNetwork]{.title-ref} and [SpatialDetectionNetwork]{.title-ref} built from a camera now use the [resize_mode]{.title-ref} ([CROP]{.title-ref}, [STRETCH]{.title-ref} or [LETTERBOX]{.title-ref}) declared in the NN archive. Archives without it use [CROP]{.title-ref}, as before
    • Override it with the [resizeMode]{.title-ref} argument of [build]{.title-ref}
  • [RVC2] Multi-device calibration ([pipeline.setMultiDeviceCalibration]{.title-ref}) is now supported on RVC2 devices
  • [Align.setInterpolation(...)]{.title-ref} selects the interpolation ([BICUBIC]{.title-ref}, [BILINEAR]{.title-ref} or [NEAREST_NEIGHBOR]{.title-ref}). [AUTO]{.title-ref} keeps the previous behavior
  • New [dai.node.Depth.getSupportedAlgorithms(device)]{.title-ref} and [getDefaultAlgorithm(device)]{.title-ref} return the depth algorithms that a device supports and the one that [AUTO]{.title-ref} selects
  • New [Device.getProtocol()]{.title-ref} returns the connection protocol (USB or TCP/IP)
  • [RVC4] [setAutoFocusTrigger()]{.title-ref} now runs one focus scan and then holds the focus. The AF mode is reset for each session
  • [RVC2] New [Device.Config.dangerousIrPowerOverride]{.title-ref} option removes the combined dot and flood power limit on boards that have one. Full power on both emitters can crash the device

## Bug fixes

  • Alignment
    • ImageAlign and Align now keep the depth near the image edges for rotated and distorted cameras
    • [RVC4] Align now uses correct offsets for rotated cameras and keeps the configured output size
    • ImageAlign no longer crashes when the [inputAlignTo]{.title-ref} frame has no distortion coefficients
    • [ImgDetections.transformTo()]{.title-ref} no longer distorts boxes at some rotations when mapping to a non-square image
    • [RVC2] StereoDepth depth alignment is now correct after decimation (for example on OAK-D-SR)
  • [*RVC4*] Stability

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged depthai at Robotics Stack Exchange

Package symbol

depthai package from depthai repo

depthai

ROS Distro
galactic

Package Summary

Version 2.33.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/luxonis/depthai-core.git
VCS Type git
VCS Version ros-release
Last Updated 2026-11-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

DepthAI core is a C++ library which comes with firmware and an API to interact with OAK Platform

Additional Links

Maintainers

  • Aljaž Sebastjan Ahtik

Authors

  • Martin Peterlin

DepthAI C++ Library

Forum Docs License: MIT

Core C++ library

Important — You’re viewing the v2.x.y branch.

  • For the latest version with support for RVC4 devices, please switch to the main branch.

Documentation

Documentation is available over at Luxonis DepthAI API

Disclaimer

DepthAI library doesn’t yet provide API stability guarantees. While we take care to properly deprecate old functions, some changes might still be breaking. We expect to provide API stability from version 3.0.0 onwards.

Dependencies

  • CMake >= 3.10
  • C/C++14 compiler
  • [optional] OpenCV 4 (required if building examples)
  • [optional] PCL (required for point cloud example)

To install OpenCV: MacOS: brew install opencv Linux: sudo apt install libopencv-dev

To install PCL: MacOS: brew install pcl Linux: sudo apt install libpcl-dev

ℹ️ On Linux distributions based on RPMs, you need to install perl-core required by OpenSSL dependency.

sudo yum install perl-core

Another option is to disable CURL support by setting DEPTHAI_ENABLE_CURL=OFF when configuring CMake.

cmake -S. -Bbuild -D'DEPTHAI_ENABLE_CURL=OFF'

Building

Make sure submodules are updated

git submodule update --init --recursive

Then configure and build

cmake -S. -Bbuild
cmake --build build

ℹ️ To speed up build times, use cmake --build build --parallel [num CPU cores] (CMake >= 3.12). For older versions use: Linux/macOS: cmake --build build -- -j[num CPU cores], MSVC: cmake --build build -- /MP[num CPU cores]

⚠️ If any CMake commands error with CMake Error: The source directory "" does not exist. replace argument -S with -H

Dynamic library

To build dynamic version of library configure with following option added

cmake -S. -Bbuild -D'BUILD_SHARED_LIBS=ON'
cmake --build build

Android

Android is supported to some extent but not actively pursued nor tested. PRs with any improvements are welcome.

Steps:

  • Install Android NDK (for example via Android Studio).
  • Set the NDK path:
export ANDROID_HOME=$HOME/.local/lib/Android
export PATH=$PATH:$ANDROID_HOME/emulator:$ANDROID_HOME/platform-tools
export NDK=$ANDROID_HOME/ndk/23.1.7779620/ # Check version

  • Ensure a recent version of cmake (apt version is outdated, install snap install cmake –classic)
  • Run cmake, set your ABI and Platform as needed:
cmake -S. -Bbuild -DCMAKE_TOOLCHAIN_FILE=$NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI=armeabi-v7a -DANDROID_PLATFORM=android-25
cmake --build build

Running examples

To build the examples configure with following option added

cmake -S. -Bbuild -D'DEPTHAI_BUILD_EXAMPLES=ON'
cmake --build build

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package depthai

2.33.0 (2026-11-02)

## Features * Add a [device.getState`function, which returns the firmware state of the device in runtime * Add `setProcessor]{.title-ref} function to select the processor for [Sync]{.title-ref} and [Demux]{.title-ref} nodes

## Misc * Expand crashdump data in firmware with more context on what caused the crash * Namespace installation

2.31.1 (2026-01-23)

  • Minor bugfixes

2.31.0 (2025-12-03)

## Features * Add tuning for the IMX577 sensor, removing the previously present blue tint * Improve IMX678 support on RVC2 with better black level correction, improving brightness and color accuracy

## New devices support * Add support for a new revision of OAK-Thermal (R8) * Add support for OAK-ToF (R4) * Add support for a new revision of OAK-D-S2-[Pro]-Wide OV9728 variant (R8)

## Bug fixes and stability * Fix a rare issue of IMU preventing a device reboot * Fix a timestamp overflow bug on the BNO08x IMU * Fix an edge case where [dai.Device]{.title-ref} constructor could get stuck indefinitely if the device lost connection at the wrong time by adding a timeout internally * Turn on the watchdog early during discovery of RVC2 USB devices to avoid soft bricking the device along with handling the case where the device gets into that state to recover it on the next boot * Fully disable crashdump extraction when [DEPTHAI_CRASHDUMP=0]{.title-ref} is set

## Misc * Add support to explicitly remove tracklets in [ObjectTracker]{.title-ref} node * Remove limitation for the maximum watchdog frequency from 4.5 seconds to unlimited ("infinity") by adding a software watchdog in firmware

2.30.0 (2025-03-18)

  • Features
  • Add RVC4 discovery to point users to v3 version of the library for OAK4 devices
  • Add support for a new VCM enabling autofocus on new IMX378 CCMs
  • Bug fixes
  • Fix an edge case in ImageManip to make https://github.com/geaxgx/depthai_hand_tracker run in edge mode again
  • Fix an edge case when sending MessageGroup from host to device and using more than 4 messages

2.29.0 (2024-11-26)

  • Features

  • Add the ability to change the calibration on the device in runtime with the new [dai::Device.setCalibration()]{.title-ref} method and to retrieve it with the [dai::Device.getCalibration()]{.title-ref}.

  • New [StereoDepth]{.title-ref} presets:
    • [DEFAULT]{.title-ref}
    • [FACE]{.title-ref}
    • [HIGH_DETAIL]{.title-ref}
    • [ROBOTICS]{.title-ref}
  • Multiple camera improvements (more details in https://github.com/luxonis/depthai-core/pull/972):
    • Expose more downsampling modes when picking a lower than native resolutions
    • Expose more binning modes when binning is picked on IMX582/586 ([sum]{.title-ref} and [avg]{.title-ref})
    • HDR on IMX582/586
    • Option to bypass 3A for having manual expose/ISO take effect faster
    • Initial support for new Sony 4K Starvis sensors: IMX678 and IMX715
    • Option to set the main camera to drive auto-exposure and auto-white-balance in multi-camera configurations
  • Improved StereoDepth filtering and an option to use a set a custom order of filters
    • Disparity is first scaled to 13 bit before going through filtering, which results in filters being more effective.
  • Misc

  • Remove false reports on crashes that happened on device destruction

  • Add [getWidth()]{.title-ref} and [getHeight()]{.title-ref} API to [EncodedFrame]{.title-ref}

File truncated at 100 lines see the full file

Package Dependencies

System Dependencies

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged depthai at Robotics Stack Exchange

Package symbol

depthai package from depthai repo

depthai

ROS Distro
foxy

Package Summary

Version 2.33.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/luxonis/depthai-core.git
VCS Type git
VCS Version ros-release
Last Updated 2026-11-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

DepthAI core is a C++ library which comes with firmware and an API to interact with OAK Platform

Additional Links

Maintainers

  • Aljaž Sebastjan Ahtik

Authors

  • Martin Peterlin

DepthAI C++ Library

Forum Docs License: MIT

Core C++ library

Important — You’re viewing the v2.x.y branch.

  • For the latest version with support for RVC4 devices, please switch to the main branch.

Documentation

Documentation is available over at Luxonis DepthAI API

Disclaimer

DepthAI library doesn’t yet provide API stability guarantees. While we take care to properly deprecate old functions, some changes might still be breaking. We expect to provide API stability from version 3.0.0 onwards.

Dependencies

  • CMake >= 3.10
  • C/C++14 compiler
  • [optional] OpenCV 4 (required if building examples)
  • [optional] PCL (required for point cloud example)

To install OpenCV: MacOS: brew install opencv Linux: sudo apt install libopencv-dev

To install PCL: MacOS: brew install pcl Linux: sudo apt install libpcl-dev

ℹ️ On Linux distributions based on RPMs, you need to install perl-core required by OpenSSL dependency.

sudo yum install perl-core

Another option is to disable CURL support by setting DEPTHAI_ENABLE_CURL=OFF when configuring CMake.

cmake -S. -Bbuild -D'DEPTHAI_ENABLE_CURL=OFF'

Building

Make sure submodules are updated

git submodule update --init --recursive

Then configure and build

cmake -S. -Bbuild
cmake --build build

ℹ️ To speed up build times, use cmake --build build --parallel [num CPU cores] (CMake >= 3.12). For older versions use: Linux/macOS: cmake --build build -- -j[num CPU cores], MSVC: cmake --build build -- /MP[num CPU cores]

⚠️ If any CMake commands error with CMake Error: The source directory "" does not exist. replace argument -S with -H

Dynamic library

To build dynamic version of library configure with following option added

cmake -S. -Bbuild -D'BUILD_SHARED_LIBS=ON'
cmake --build build

Android

Android is supported to some extent but not actively pursued nor tested. PRs with any improvements are welcome.

Steps:

  • Install Android NDK (for example via Android Studio).
  • Set the NDK path:
export ANDROID_HOME=$HOME/.local/lib/Android
export PATH=$PATH:$ANDROID_HOME/emulator:$ANDROID_HOME/platform-tools
export NDK=$ANDROID_HOME/ndk/23.1.7779620/ # Check version

  • Ensure a recent version of cmake (apt version is outdated, install snap install cmake –classic)
  • Run cmake, set your ABI and Platform as needed:
cmake -S. -Bbuild -DCMAKE_TOOLCHAIN_FILE=$NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI=armeabi-v7a -DANDROID_PLATFORM=android-25
cmake --build build

Running examples

To build the examples configure with following option added

cmake -S. -Bbuild -D'DEPTHAI_BUILD_EXAMPLES=ON'
cmake --build build

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package depthai

2.33.0 (2026-11-02)

## Features * Add a [device.getState`function, which returns the firmware state of the device in runtime * Add `setProcessor]{.title-ref} function to select the processor for [Sync]{.title-ref} and [Demux]{.title-ref} nodes

## Misc * Expand crashdump data in firmware with more context on what caused the crash * Namespace installation

2.31.1 (2026-01-23)

  • Minor bugfixes

2.31.0 (2025-12-03)

## Features * Add tuning for the IMX577 sensor, removing the previously present blue tint * Improve IMX678 support on RVC2 with better black level correction, improving brightness and color accuracy

## New devices support * Add support for a new revision of OAK-Thermal (R8) * Add support for OAK-ToF (R4) * Add support for a new revision of OAK-D-S2-[Pro]-Wide OV9728 variant (R8)

## Bug fixes and stability * Fix a rare issue of IMU preventing a device reboot * Fix a timestamp overflow bug on the BNO08x IMU * Fix an edge case where [dai.Device]{.title-ref} constructor could get stuck indefinitely if the device lost connection at the wrong time by adding a timeout internally * Turn on the watchdog early during discovery of RVC2 USB devices to avoid soft bricking the device along with handling the case where the device gets into that state to recover it on the next boot * Fully disable crashdump extraction when [DEPTHAI_CRASHDUMP=0]{.title-ref} is set

## Misc * Add support to explicitly remove tracklets in [ObjectTracker]{.title-ref} node * Remove limitation for the maximum watchdog frequency from 4.5 seconds to unlimited ("infinity") by adding a software watchdog in firmware

2.30.0 (2025-03-18)

  • Features
  • Add RVC4 discovery to point users to v3 version of the library for OAK4 devices
  • Add support for a new VCM enabling autofocus on new IMX378 CCMs
  • Bug fixes
  • Fix an edge case in ImageManip to make https://github.com/geaxgx/depthai_hand_tracker run in edge mode again
  • Fix an edge case when sending MessageGroup from host to device and using more than 4 messages

2.29.0 (2024-11-26)

  • Features

  • Add the ability to change the calibration on the device in runtime with the new [dai::Device.setCalibration()]{.title-ref} method and to retrieve it with the [dai::Device.getCalibration()]{.title-ref}.

  • New [StereoDepth]{.title-ref} presets:
    • [DEFAULT]{.title-ref}
    • [FACE]{.title-ref}
    • [HIGH_DETAIL]{.title-ref}
    • [ROBOTICS]{.title-ref}
  • Multiple camera improvements (more details in https://github.com/luxonis/depthai-core/pull/972):
    • Expose more downsampling modes when picking a lower than native resolutions
    • Expose more binning modes when binning is picked on IMX582/586 ([sum]{.title-ref} and [avg]{.title-ref})
    • HDR on IMX582/586
    • Option to bypass 3A for having manual expose/ISO take effect faster
    • Initial support for new Sony 4K Starvis sensors: IMX678 and IMX715
    • Option to set the main camera to drive auto-exposure and auto-white-balance in multi-camera configurations
  • Improved StereoDepth filtering and an option to use a set a custom order of filters
    • Disparity is first scaled to 13 bit before going through filtering, which results in filters being more effective.
  • Misc

  • Remove false reports on crashes that happened on device destruction

  • Add [getWidth()]{.title-ref} and [getHeight()]{.title-ref} API to [EncodedFrame]{.title-ref}

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged depthai at Robotics Stack Exchange

Package symbol

depthai package from depthai repo

depthai

ROS Distro
iron

Package Summary

Version 2.33.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/luxonis/depthai-core.git
VCS Type git
VCS Version ros-release
Last Updated 2026-11-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

DepthAI core is a C++ library which comes with firmware and an API to interact with OAK Platform

Additional Links

Maintainers

  • Aljaž Sebastjan Ahtik

Authors

  • Martin Peterlin

DepthAI C++ Library

Forum Docs License: MIT

Core C++ library

Important — You’re viewing the v2.x.y branch.

  • For the latest version with support for RVC4 devices, please switch to the main branch.

Documentation

Documentation is available over at Luxonis DepthAI API

Disclaimer

DepthAI library doesn’t yet provide API stability guarantees. While we take care to properly deprecate old functions, some changes might still be breaking. We expect to provide API stability from version 3.0.0 onwards.

Dependencies

  • CMake >= 3.10
  • C/C++14 compiler
  • [optional] OpenCV 4 (required if building examples)
  • [optional] PCL (required for point cloud example)

To install OpenCV: MacOS: brew install opencv Linux: sudo apt install libopencv-dev

To install PCL: MacOS: brew install pcl Linux: sudo apt install libpcl-dev

ℹ️ On Linux distributions based on RPMs, you need to install perl-core required by OpenSSL dependency.

sudo yum install perl-core

Another option is to disable CURL support by setting DEPTHAI_ENABLE_CURL=OFF when configuring CMake.

cmake -S. -Bbuild -D'DEPTHAI_ENABLE_CURL=OFF'

Building

Make sure submodules are updated

git submodule update --init --recursive

Then configure and build

cmake -S. -Bbuild
cmake --build build

ℹ️ To speed up build times, use cmake --build build --parallel [num CPU cores] (CMake >= 3.12). For older versions use: Linux/macOS: cmake --build build -- -j[num CPU cores], MSVC: cmake --build build -- /MP[num CPU cores]

⚠️ If any CMake commands error with CMake Error: The source directory "" does not exist. replace argument -S with -H

Dynamic library

To build dynamic version of library configure with following option added

cmake -S. -Bbuild -D'BUILD_SHARED_LIBS=ON'
cmake --build build

Android

Android is supported to some extent but not actively pursued nor tested. PRs with any improvements are welcome.

Steps:

  • Install Android NDK (for example via Android Studio).
  • Set the NDK path:
export ANDROID_HOME=$HOME/.local/lib/Android
export PATH=$PATH:$ANDROID_HOME/emulator:$ANDROID_HOME/platform-tools
export NDK=$ANDROID_HOME/ndk/23.1.7779620/ # Check version

  • Ensure a recent version of cmake (apt version is outdated, install snap install cmake –classic)
  • Run cmake, set your ABI and Platform as needed:
cmake -S. -Bbuild -DCMAKE_TOOLCHAIN_FILE=$NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI=armeabi-v7a -DANDROID_PLATFORM=android-25
cmake --build build

Running examples

To build the examples configure with following option added

cmake -S. -Bbuild -D'DEPTHAI_BUILD_EXAMPLES=ON'
cmake --build build

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package depthai

2.33.0 (2026-11-02)

## Features * Add a [device.getState`function, which returns the firmware state of the device in runtime * Add `setProcessor]{.title-ref} function to select the processor for [Sync]{.title-ref} and [Demux]{.title-ref} nodes

## Misc * Expand crashdump data in firmware with more context on what caused the crash * Namespace installation

2.31.1 (2026-01-23)

  • Minor bugfixes

2.31.0 (2025-12-03)

## Features * Add tuning for the IMX577 sensor, removing the previously present blue tint * Improve IMX678 support on RVC2 with better black level correction, improving brightness and color accuracy

## New devices support * Add support for a new revision of OAK-Thermal (R8) * Add support for OAK-ToF (R4) * Add support for a new revision of OAK-D-S2-[Pro]-Wide OV9728 variant (R8)

## Bug fixes and stability * Fix a rare issue of IMU preventing a device reboot * Fix a timestamp overflow bug on the BNO08x IMU * Fix an edge case where [dai.Device]{.title-ref} constructor could get stuck indefinitely if the device lost connection at the wrong time by adding a timeout internally * Turn on the watchdog early during discovery of RVC2 USB devices to avoid soft bricking the device along with handling the case where the device gets into that state to recover it on the next boot * Fully disable crashdump extraction when [DEPTHAI_CRASHDUMP=0]{.title-ref} is set

## Misc * Add support to explicitly remove tracklets in [ObjectTracker]{.title-ref} node * Remove limitation for the maximum watchdog frequency from 4.5 seconds to unlimited ("infinity") by adding a software watchdog in firmware

2.30.0 (2025-03-18)

  • Features
  • Add RVC4 discovery to point users to v3 version of the library for OAK4 devices
  • Add support for a new VCM enabling autofocus on new IMX378 CCMs
  • Bug fixes
  • Fix an edge case in ImageManip to make https://github.com/geaxgx/depthai_hand_tracker run in edge mode again
  • Fix an edge case when sending MessageGroup from host to device and using more than 4 messages

2.29.0 (2024-11-26)

  • Features

  • Add the ability to change the calibration on the device in runtime with the new [dai::Device.setCalibration()]{.title-ref} method and to retrieve it with the [dai::Device.getCalibration()]{.title-ref}.

  • New [StereoDepth]{.title-ref} presets:
    • [DEFAULT]{.title-ref}
    • [FACE]{.title-ref}
    • [HIGH_DETAIL]{.title-ref}
    • [ROBOTICS]{.title-ref}
  • Multiple camera improvements (more details in https://github.com/luxonis/depthai-core/pull/972):
    • Expose more downsampling modes when picking a lower than native resolutions
    • Expose more binning modes when binning is picked on IMX582/586 ([sum]{.title-ref} and [avg]{.title-ref})
    • HDR on IMX582/586
    • Option to bypass 3A for having manual expose/ISO take effect faster
    • Initial support for new Sony 4K Starvis sensors: IMX678 and IMX715
    • Option to set the main camera to drive auto-exposure and auto-white-balance in multi-camera configurations
  • Improved StereoDepth filtering and an option to use a set a custom order of filters
    • Disparity is first scaled to 13 bit before going through filtering, which results in filters being more effective.
  • Misc

  • Remove false reports on crashes that happened on device destruction

  • Add [getWidth()]{.title-ref} and [getHeight()]{.title-ref} API to [EncodedFrame]{.title-ref}

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged depthai at Robotics Stack Exchange

No version for distro lunar showing kilted. Known supported distros are highlighted in the buttons above.
Package symbol

depthai package from depthai repo

depthai

ROS Distro
kilted

Package Summary

Version 3.12.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/luxonis/depthai-core.git
VCS Type git
VCS Version ros-devel
Last Updated 2026-11-04
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

DepthAI core is a C++ library which comes with firmware and an API to interact with OAK Platform

Additional Links

Maintainers

  • Aljaž Sebastjan Ahtik

Authors

  • Martin Peterlin

DepthAI Library

Forum Docs License: MIT

DepthAI library for interfacing with Luxonis DepthAI hardware. It’s written in C++ and offers Python bindings out of the box.

Important — You’re viewing the v3.x.y branch.

Documentation

Documentation is available over at Luxonis DepthAI API

Examples

Examples for both C++ and Python are available in the examples folder. To see how to build and run them see README.md for more information. To build the examples in C++ configure with the following option added:

cmake -S. -Bbuild -D'DEPTHAI_BUILD_EXAMPLES=ON'
cmake --build build

Detection filtering and calibrated panoramas

Use dai::node::ImgDetectionsFilter / dai.node.ImgDetectionsFilter to filter detections or combine synchronized camera detections on a calibrated panorama. See the node guide and multi-device examples.

Beta features

The beta namespace is a staging area for experimental DepthAI features. It allows new features to be developed and iterated on quickly before they are promoted to the main depthai namespace.

Beta features are well-developed, but minor API and behavioral changes may occur between DepthAI releases without notice.

In C++, beta nodes are available under dai::beta::node:

auto node = pipeline.create<dai::beta::node::ClassificationParser>();

In Python, they are available under dai.beta.node:

node = pipeline.create(dai.beta.node.ClassificationParser)

On-device execution of Beta nodes is supported only on RVC4. If running Beta nodes on RVC2, DepthAI automatically configures beta nodes to run on the host.

Multiple devices in one pipeline

A single dai::Pipeline can drive several devices. Devices become part of the pipeline explicitly with addDevice(...) or implicitly when a node is created with an explicit device; the first device becomes the master (default device) used by nodes created without one.

pipeline = dai.Pipeline(False)                    # no implicit device
devA = pipeline.addDevice("10.0.0.10")            # promoted to master
devB = pipeline.addDevice("10.0.0.11")

camA = pipeline.create(dai.node.Camera).build(dai.CameraBoardSocket.CAM_A)          # master
camB = pipeline.create(dai.node.Camera, device=devB).build(dai.CameraBoardSocket.CAM_A)

sync = pipeline.create(dai.node.Sync)             # host Sync aligns both streams
sync.setRunOnHost(True)
camA.requestOutput((640, 400)).link(sync.inputs["a"])
camB.requestOutput((640, 400)).link(sync.inputs["b"])

Key behaviors:

  • Device-to-device links. Linking an output on device A to an input on device B inserts a host relay automatically at build time.
  • Partial operation. Losing one device leaves its streams idle while the rest of the pipeline keeps running; the lost device reconnects on its own. Observe this via pipeline.getDeviceState(device) and pipeline.setDeviceStateCallback(...). The pipeline stops itself only when the last device is gone or when a device that consumes another device’s streams is lost for good. Call pipeline.setStopOnDeviceLoss(True) to stop when any device that runs a node is lost for good (reconnection exhausted); with device.setMaxReconnectionAttempts(0) it stops as soon as the disconnect is detected.
  • Time. getTimestamp() values are host-clock based and comparable across devices; per-device getTimestampDevice() values are not (a host Sync node rejects the DEVICE timestamp source across devices at build).
  • Source devices. After build, a host node can ask input.getSourceDevice() / inputs.getSourceDevices() which device produces each of its inputs.
  • Per-device configuration. Every pipeline-level device setter/getter has a (device, ...) overload; the form without a device targets the master.
  • Holistic record/replay is not supported with more than one device yet.

See examples/{cpp,python}/.../MultiDevice/ for frame sync, a device-to-device relay and a multi-device host node.

Running on the device (standalone)

The pipeline process may itself run on an RVC4 and use the local device over shared memory, with further devices attached over the network:

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package depthai

3.12.0 (2026-11-04)

## Features

  • Multi-stream PointCloud
  • [Beta promotion] Stitching node
  • [Beta promotion] ImgDetectionsFilter node
  • Resize mode from NN archives
    • [NeuralNetwork]{.title-ref}, [DetectionNetwork]{.title-ref} and [SpatialDetectionNetwork]{.title-ref} built from a camera now use the [resize_mode]{.title-ref} ([CROP]{.title-ref}, [STRETCH]{.title-ref} or [LETTERBOX]{.title-ref}) declared in the NN archive. Archives without it use [CROP]{.title-ref}, as before
    • Override it with the [resizeMode]{.title-ref} argument of [build]{.title-ref}
  • [RVC2] Multi-device calibration ([pipeline.setMultiDeviceCalibration]{.title-ref}) is now supported on RVC2 devices
  • [Align.setInterpolation(...)]{.title-ref} selects the interpolation ([BICUBIC]{.title-ref}, [BILINEAR]{.title-ref} or [NEAREST_NEIGHBOR]{.title-ref}). [AUTO]{.title-ref} keeps the previous behavior
  • New [dai.node.Depth.getSupportedAlgorithms(device)]{.title-ref} and [getDefaultAlgorithm(device)]{.title-ref} return the depth algorithms that a device supports and the one that [AUTO]{.title-ref} selects
  • New [Device.getProtocol()]{.title-ref} returns the connection protocol (USB or TCP/IP)
  • [RVC4] [setAutoFocusTrigger()]{.title-ref} now runs one focus scan and then holds the focus. The AF mode is reset for each session
  • [RVC2] New [Device.Config.dangerousIrPowerOverride]{.title-ref} option removes the combined dot and flood power limit on boards that have one. Full power on both emitters can crash the device

## Bug fixes

  • Alignment
    • ImageAlign and Align now keep the depth near the image edges for rotated and distorted cameras
    • [RVC4] Align now uses correct offsets for rotated cameras and keeps the configured output size
    • ImageAlign no longer crashes when the [inputAlignTo]{.title-ref} frame has no distortion coefficients
    • [ImgDetections.transformTo()]{.title-ref} no longer distorts boxes at some rotations when mapping to a non-square image
    • [RVC2] StereoDepth depth alignment is now correct after decimation (for example on OAK-D-SR)
  • [*RVC4*] Stability

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged depthai at Robotics Stack Exchange

No version for distro jade showing kilted. Known supported distros are highlighted in the buttons above.
Package symbol

depthai package from depthai repo

depthai

ROS Distro
kilted

Package Summary

Version 3.12.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/luxonis/depthai-core.git
VCS Type git
VCS Version ros-devel
Last Updated 2026-11-04
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

DepthAI core is a C++ library which comes with firmware and an API to interact with OAK Platform

Additional Links

Maintainers

  • Aljaž Sebastjan Ahtik

Authors

  • Martin Peterlin

DepthAI Library

Forum Docs License: MIT

DepthAI library for interfacing with Luxonis DepthAI hardware. It’s written in C++ and offers Python bindings out of the box.

Important — You’re viewing the v3.x.y branch.

Documentation

Documentation is available over at Luxonis DepthAI API

Examples

Examples for both C++ and Python are available in the examples folder. To see how to build and run them see README.md for more information. To build the examples in C++ configure with the following option added:

cmake -S. -Bbuild -D'DEPTHAI_BUILD_EXAMPLES=ON'
cmake --build build

Detection filtering and calibrated panoramas

Use dai::node::ImgDetectionsFilter / dai.node.ImgDetectionsFilter to filter detections or combine synchronized camera detections on a calibrated panorama. See the node guide and multi-device examples.

Beta features

The beta namespace is a staging area for experimental DepthAI features. It allows new features to be developed and iterated on quickly before they are promoted to the main depthai namespace.

Beta features are well-developed, but minor API and behavioral changes may occur between DepthAI releases without notice.

In C++, beta nodes are available under dai::beta::node:

auto node = pipeline.create<dai::beta::node::ClassificationParser>();

In Python, they are available under dai.beta.node:

node = pipeline.create(dai.beta.node.ClassificationParser)

On-device execution of Beta nodes is supported only on RVC4. If running Beta nodes on RVC2, DepthAI automatically configures beta nodes to run on the host.

Multiple devices in one pipeline

A single dai::Pipeline can drive several devices. Devices become part of the pipeline explicitly with addDevice(...) or implicitly when a node is created with an explicit device; the first device becomes the master (default device) used by nodes created without one.

pipeline = dai.Pipeline(False)                    # no implicit device
devA = pipeline.addDevice("10.0.0.10")            # promoted to master
devB = pipeline.addDevice("10.0.0.11")

camA = pipeline.create(dai.node.Camera).build(dai.CameraBoardSocket.CAM_A)          # master
camB = pipeline.create(dai.node.Camera, device=devB).build(dai.CameraBoardSocket.CAM_A)

sync = pipeline.create(dai.node.Sync)             # host Sync aligns both streams
sync.setRunOnHost(True)
camA.requestOutput((640, 400)).link(sync.inputs["a"])
camB.requestOutput((640, 400)).link(sync.inputs["b"])

Key behaviors:

  • Device-to-device links. Linking an output on device A to an input on device B inserts a host relay automatically at build time.
  • Partial operation. Losing one device leaves its streams idle while the rest of the pipeline keeps running; the lost device reconnects on its own. Observe this via pipeline.getDeviceState(device) and pipeline.setDeviceStateCallback(...). The pipeline stops itself only when the last device is gone or when a device that consumes another device’s streams is lost for good. Call pipeline.setStopOnDeviceLoss(True) to stop when any device that runs a node is lost for good (reconnection exhausted); with device.setMaxReconnectionAttempts(0) it stops as soon as the disconnect is detected.
  • Time. getTimestamp() values are host-clock based and comparable across devices; per-device getTimestampDevice() values are not (a host Sync node rejects the DEVICE timestamp source across devices at build).
  • Source devices. After build, a host node can ask input.getSourceDevice() / inputs.getSourceDevices() which device produces each of its inputs.
  • Per-device configuration. Every pipeline-level device setter/getter has a (device, ...) overload; the form without a device targets the master.
  • Holistic record/replay is not supported with more than one device yet.

See examples/{cpp,python}/.../MultiDevice/ for frame sync, a device-to-device relay and a multi-device host node.

Running on the device (standalone)

The pipeline process may itself run on an RVC4 and use the local device over shared memory, with further devices attached over the network:

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package depthai

3.12.0 (2026-11-04)

## Features

  • Multi-stream PointCloud
  • [Beta promotion] Stitching node
  • [Beta promotion] ImgDetectionsFilter node
  • Resize mode from NN archives
    • [NeuralNetwork]{.title-ref}, [DetectionNetwork]{.title-ref} and [SpatialDetectionNetwork]{.title-ref} built from a camera now use the [resize_mode]{.title-ref} ([CROP]{.title-ref}, [STRETCH]{.title-ref} or [LETTERBOX]{.title-ref}) declared in the NN archive. Archives without it use [CROP]{.title-ref}, as before
    • Override it with the [resizeMode]{.title-ref} argument of [build]{.title-ref}
  • [RVC2] Multi-device calibration ([pipeline.setMultiDeviceCalibration]{.title-ref}) is now supported on RVC2 devices
  • [Align.setInterpolation(...)]{.title-ref} selects the interpolation ([BICUBIC]{.title-ref}, [BILINEAR]{.title-ref} or [NEAREST_NEIGHBOR]{.title-ref}). [AUTO]{.title-ref} keeps the previous behavior
  • New [dai.node.Depth.getSupportedAlgorithms(device)]{.title-ref} and [getDefaultAlgorithm(device)]{.title-ref} return the depth algorithms that a device supports and the one that [AUTO]{.title-ref} selects
  • New [Device.getProtocol()]{.title-ref} returns the connection protocol (USB or TCP/IP)
  • [RVC4] [setAutoFocusTrigger()]{.title-ref} now runs one focus scan and then holds the focus. The AF mode is reset for each session
  • [RVC2] New [Device.Config.dangerousIrPowerOverride]{.title-ref} option removes the combined dot and flood power limit on boards that have one. Full power on both emitters can crash the device

## Bug fixes

  • Alignment
    • ImageAlign and Align now keep the depth near the image edges for rotated and distorted cameras
    • [RVC4] Align now uses correct offsets for rotated cameras and keeps the configured output size
    • ImageAlign no longer crashes when the [inputAlignTo]{.title-ref} frame has no distortion coefficients
    • [ImgDetections.transformTo()]{.title-ref} no longer distorts boxes at some rotations when mapping to a non-square image
    • [RVC2] StereoDepth depth alignment is now correct after decimation (for example on OAK-D-SR)
  • [*RVC4*] Stability

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged depthai at Robotics Stack Exchange

No version for distro indigo showing kilted. Known supported distros are highlighted in the buttons above.
Package symbol

depthai package from depthai repo

depthai

ROS Distro
kilted

Package Summary

Version 3.12.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/luxonis/depthai-core.git
VCS Type git
VCS Version ros-devel
Last Updated 2026-11-04
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

DepthAI core is a C++ library which comes with firmware and an API to interact with OAK Platform

Additional Links

Maintainers

  • Aljaž Sebastjan Ahtik

Authors

  • Martin Peterlin

DepthAI Library

Forum Docs License: MIT

DepthAI library for interfacing with Luxonis DepthAI hardware. It’s written in C++ and offers Python bindings out of the box.

Important — You’re viewing the v3.x.y branch.

Documentation

Documentation is available over at Luxonis DepthAI API

Examples

Examples for both C++ and Python are available in the examples folder. To see how to build and run them see README.md for more information. To build the examples in C++ configure with the following option added:

cmake -S. -Bbuild -D'DEPTHAI_BUILD_EXAMPLES=ON'
cmake --build build

Detection filtering and calibrated panoramas

Use dai::node::ImgDetectionsFilter / dai.node.ImgDetectionsFilter to filter detections or combine synchronized camera detections on a calibrated panorama. See the node guide and multi-device examples.

Beta features

The beta namespace is a staging area for experimental DepthAI features. It allows new features to be developed and iterated on quickly before they are promoted to the main depthai namespace.

Beta features are well-developed, but minor API and behavioral changes may occur between DepthAI releases without notice.

In C++, beta nodes are available under dai::beta::node:

auto node = pipeline.create<dai::beta::node::ClassificationParser>();

In Python, they are available under dai.beta.node:

node = pipeline.create(dai.beta.node.ClassificationParser)

On-device execution of Beta nodes is supported only on RVC4. If running Beta nodes on RVC2, DepthAI automatically configures beta nodes to run on the host.

Multiple devices in one pipeline

A single dai::Pipeline can drive several devices. Devices become part of the pipeline explicitly with addDevice(...) or implicitly when a node is created with an explicit device; the first device becomes the master (default device) used by nodes created without one.

pipeline = dai.Pipeline(False)                    # no implicit device
devA = pipeline.addDevice("10.0.0.10")            # promoted to master
devB = pipeline.addDevice("10.0.0.11")

camA = pipeline.create(dai.node.Camera).build(dai.CameraBoardSocket.CAM_A)          # master
camB = pipeline.create(dai.node.Camera, device=devB).build(dai.CameraBoardSocket.CAM_A)

sync = pipeline.create(dai.node.Sync)             # host Sync aligns both streams
sync.setRunOnHost(True)
camA.requestOutput((640, 400)).link(sync.inputs["a"])
camB.requestOutput((640, 400)).link(sync.inputs["b"])

Key behaviors:

  • Device-to-device links. Linking an output on device A to an input on device B inserts a host relay automatically at build time.
  • Partial operation. Losing one device leaves its streams idle while the rest of the pipeline keeps running; the lost device reconnects on its own. Observe this via pipeline.getDeviceState(device) and pipeline.setDeviceStateCallback(...). The pipeline stops itself only when the last device is gone or when a device that consumes another device’s streams is lost for good. Call pipeline.setStopOnDeviceLoss(True) to stop when any device that runs a node is lost for good (reconnection exhausted); with device.setMaxReconnectionAttempts(0) it stops as soon as the disconnect is detected.
  • Time. getTimestamp() values are host-clock based and comparable across devices; per-device getTimestampDevice() values are not (a host Sync node rejects the DEVICE timestamp source across devices at build).
  • Source devices. After build, a host node can ask input.getSourceDevice() / inputs.getSourceDevices() which device produces each of its inputs.
  • Per-device configuration. Every pipeline-level device setter/getter has a (device, ...) overload; the form without a device targets the master.
  • Holistic record/replay is not supported with more than one device yet.

See examples/{cpp,python}/.../MultiDevice/ for frame sync, a device-to-device relay and a multi-device host node.

Running on the device (standalone)

The pipeline process may itself run on an RVC4 and use the local device over shared memory, with further devices attached over the network:

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package depthai

3.12.0 (2026-11-04)

## Features

  • Multi-stream PointCloud
  • [Beta promotion] Stitching node
  • [Beta promotion] ImgDetectionsFilter node
  • Resize mode from NN archives
    • [NeuralNetwork]{.title-ref}, [DetectionNetwork]{.title-ref} and [SpatialDetectionNetwork]{.title-ref} built from a camera now use the [resize_mode]{.title-ref} ([CROP]{.title-ref}, [STRETCH]{.title-ref} or [LETTERBOX]{.title-ref}) declared in the NN archive. Archives without it use [CROP]{.title-ref}, as before
    • Override it with the [resizeMode]{.title-ref} argument of [build]{.title-ref}
  • [RVC2] Multi-device calibration ([pipeline.setMultiDeviceCalibration]{.title-ref}) is now supported on RVC2 devices
  • [Align.setInterpolation(...)]{.title-ref} selects the interpolation ([BICUBIC]{.title-ref}, [BILINEAR]{.title-ref} or [NEAREST_NEIGHBOR]{.title-ref}). [AUTO]{.title-ref} keeps the previous behavior
  • New [dai.node.Depth.getSupportedAlgorithms(device)]{.title-ref} and [getDefaultAlgorithm(device)]{.title-ref} return the depth algorithms that a device supports and the one that [AUTO]{.title-ref} selects
  • New [Device.getProtocol()]{.title-ref} returns the connection protocol (USB or TCP/IP)
  • [RVC4] [setAutoFocusTrigger()]{.title-ref} now runs one focus scan and then holds the focus. The AF mode is reset for each session
  • [RVC2] New [Device.Config.dangerousIrPowerOverride]{.title-ref} option removes the combined dot and flood power limit on boards that have one. Full power on both emitters can crash the device

## Bug fixes

  • Alignment
    • ImageAlign and Align now keep the depth near the image edges for rotated and distorted cameras
    • [RVC4] Align now uses correct offsets for rotated cameras and keeps the configured output size
    • ImageAlign no longer crashes when the [inputAlignTo]{.title-ref} frame has no distortion coefficients
    • [ImgDetections.transformTo()]{.title-ref} no longer distorts boxes at some rotations when mapping to a non-square image
    • [RVC2] StereoDepth depth alignment is now correct after decimation (for example on OAK-D-SR)
  • [*RVC4*] Stability

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged depthai at Robotics Stack Exchange

No version for distro hydro showing kilted. Known supported distros are highlighted in the buttons above.
Package symbol

depthai package from depthai repo

depthai

ROS Distro
kilted

Package Summary

Version 3.12.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/luxonis/depthai-core.git
VCS Type git
VCS Version ros-devel
Last Updated 2026-11-04
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

DepthAI core is a C++ library which comes with firmware and an API to interact with OAK Platform

Additional Links

Maintainers

  • Aljaž Sebastjan Ahtik

Authors

  • Martin Peterlin

DepthAI Library

Forum Docs License: MIT

DepthAI library for interfacing with Luxonis DepthAI hardware. It’s written in C++ and offers Python bindings out of the box.

Important — You’re viewing the v3.x.y branch.

Documentation

Documentation is available over at Luxonis DepthAI API

Examples

Examples for both C++ and Python are available in the examples folder. To see how to build and run them see README.md for more information. To build the examples in C++ configure with the following option added:

cmake -S. -Bbuild -D'DEPTHAI_BUILD_EXAMPLES=ON'
cmake --build build

Detection filtering and calibrated panoramas

Use dai::node::ImgDetectionsFilter / dai.node.ImgDetectionsFilter to filter detections or combine synchronized camera detections on a calibrated panorama. See the node guide and multi-device examples.

Beta features

The beta namespace is a staging area for experimental DepthAI features. It allows new features to be developed and iterated on quickly before they are promoted to the main depthai namespace.

Beta features are well-developed, but minor API and behavioral changes may occur between DepthAI releases without notice.

In C++, beta nodes are available under dai::beta::node:

auto node = pipeline.create<dai::beta::node::ClassificationParser>();

In Python, they are available under dai.beta.node:

node = pipeline.create(dai.beta.node.ClassificationParser)

On-device execution of Beta nodes is supported only on RVC4. If running Beta nodes on RVC2, DepthAI automatically configures beta nodes to run on the host.

Multiple devices in one pipeline

A single dai::Pipeline can drive several devices. Devices become part of the pipeline explicitly with addDevice(...) or implicitly when a node is created with an explicit device; the first device becomes the master (default device) used by nodes created without one.

pipeline = dai.Pipeline(False)                    # no implicit device
devA = pipeline.addDevice("10.0.0.10")            # promoted to master
devB = pipeline.addDevice("10.0.0.11")

camA = pipeline.create(dai.node.Camera).build(dai.CameraBoardSocket.CAM_A)          # master
camB = pipeline.create(dai.node.Camera, device=devB).build(dai.CameraBoardSocket.CAM_A)

sync = pipeline.create(dai.node.Sync)             # host Sync aligns both streams
sync.setRunOnHost(True)
camA.requestOutput((640, 400)).link(sync.inputs["a"])
camB.requestOutput((640, 400)).link(sync.inputs["b"])

Key behaviors:

  • Device-to-device links. Linking an output on device A to an input on device B inserts a host relay automatically at build time.
  • Partial operation. Losing one device leaves its streams idle while the rest of the pipeline keeps running; the lost device reconnects on its own. Observe this via pipeline.getDeviceState(device) and pipeline.setDeviceStateCallback(...). The pipeline stops itself only when the last device is gone or when a device that consumes another device’s streams is lost for good. Call pipeline.setStopOnDeviceLoss(True) to stop when any device that runs a node is lost for good (reconnection exhausted); with device.setMaxReconnectionAttempts(0) it stops as soon as the disconnect is detected.
  • Time. getTimestamp() values are host-clock based and comparable across devices; per-device getTimestampDevice() values are not (a host Sync node rejects the DEVICE timestamp source across devices at build).
  • Source devices. After build, a host node can ask input.getSourceDevice() / inputs.getSourceDevices() which device produces each of its inputs.
  • Per-device configuration. Every pipeline-level device setter/getter has a (device, ...) overload; the form without a device targets the master.
  • Holistic record/replay is not supported with more than one device yet.

See examples/{cpp,python}/.../MultiDevice/ for frame sync, a device-to-device relay and a multi-device host node.

Running on the device (standalone)

The pipeline process may itself run on an RVC4 and use the local device over shared memory, with further devices attached over the network:

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package depthai

3.12.0 (2026-11-04)

## Features

  • Multi-stream PointCloud
  • [Beta promotion] Stitching node
  • [Beta promotion] ImgDetectionsFilter node
  • Resize mode from NN archives
    • [NeuralNetwork]{.title-ref}, [DetectionNetwork]{.title-ref} and [SpatialDetectionNetwork]{.title-ref} built from a camera now use the [resize_mode]{.title-ref} ([CROP]{.title-ref}, [STRETCH]{.title-ref} or [LETTERBOX]{.title-ref}) declared in the NN archive. Archives without it use [CROP]{.title-ref}, as before
    • Override it with the [resizeMode]{.title-ref} argument of [build]{.title-ref}
  • [RVC2] Multi-device calibration ([pipeline.setMultiDeviceCalibration]{.title-ref}) is now supported on RVC2 devices
  • [Align.setInterpolation(...)]{.title-ref} selects the interpolation ([BICUBIC]{.title-ref}, [BILINEAR]{.title-ref} or [NEAREST_NEIGHBOR]{.title-ref}). [AUTO]{.title-ref} keeps the previous behavior
  • New [dai.node.Depth.getSupportedAlgorithms(device)]{.title-ref} and [getDefaultAlgorithm(device)]{.title-ref} return the depth algorithms that a device supports and the one that [AUTO]{.title-ref} selects
  • New [Device.getProtocol()]{.title-ref} returns the connection protocol (USB or TCP/IP)
  • [RVC4] [setAutoFocusTrigger()]{.title-ref} now runs one focus scan and then holds the focus. The AF mode is reset for each session
  • [RVC2] New [Device.Config.dangerousIrPowerOverride]{.title-ref} option removes the combined dot and flood power limit on boards that have one. Full power on both emitters can crash the device

## Bug fixes

  • Alignment
    • ImageAlign and Align now keep the depth near the image edges for rotated and distorted cameras
    • [RVC4] Align now uses correct offsets for rotated cameras and keeps the configured output size
    • ImageAlign no longer crashes when the [inputAlignTo]{.title-ref} frame has no distortion coefficients
    • [ImgDetections.transformTo()]{.title-ref} no longer distorts boxes at some rotations when mapping to a non-square image
    • [RVC2] StereoDepth depth alignment is now correct after decimation (for example on OAK-D-SR)
  • [*RVC4*] Stability

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged depthai at Robotics Stack Exchange

No version for distro kinetic showing kilted. Known supported distros are highlighted in the buttons above.
Package symbol

depthai package from depthai repo

depthai

ROS Distro
kilted

Package Summary

Version 3.12.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/luxonis/depthai-core.git
VCS Type git
VCS Version ros-devel
Last Updated 2026-11-04
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

DepthAI core is a C++ library which comes with firmware and an API to interact with OAK Platform

Additional Links

Maintainers

  • Aljaž Sebastjan Ahtik

Authors

  • Martin Peterlin

DepthAI Library

Forum Docs License: MIT

DepthAI library for interfacing with Luxonis DepthAI hardware. It’s written in C++ and offers Python bindings out of the box.

Important — You’re viewing the v3.x.y branch.

Documentation

Documentation is available over at Luxonis DepthAI API

Examples

Examples for both C++ and Python are available in the examples folder. To see how to build and run them see README.md for more information. To build the examples in C++ configure with the following option added:

cmake -S. -Bbuild -D'DEPTHAI_BUILD_EXAMPLES=ON'
cmake --build build

Detection filtering and calibrated panoramas

Use dai::node::ImgDetectionsFilter / dai.node.ImgDetectionsFilter to filter detections or combine synchronized camera detections on a calibrated panorama. See the node guide and multi-device examples.

Beta features

The beta namespace is a staging area for experimental DepthAI features. It allows new features to be developed and iterated on quickly before they are promoted to the main depthai namespace.

Beta features are well-developed, but minor API and behavioral changes may occur between DepthAI releases without notice.

In C++, beta nodes are available under dai::beta::node:

auto node = pipeline.create<dai::beta::node::ClassificationParser>();

In Python, they are available under dai.beta.node:

node = pipeline.create(dai.beta.node.ClassificationParser)

On-device execution of Beta nodes is supported only on RVC4. If running Beta nodes on RVC2, DepthAI automatically configures beta nodes to run on the host.

Multiple devices in one pipeline

A single dai::Pipeline can drive several devices. Devices become part of the pipeline explicitly with addDevice(...) or implicitly when a node is created with an explicit device; the first device becomes the master (default device) used by nodes created without one.

pipeline = dai.Pipeline(False)                    # no implicit device
devA = pipeline.addDevice("10.0.0.10")            # promoted to master
devB = pipeline.addDevice("10.0.0.11")

camA = pipeline.create(dai.node.Camera).build(dai.CameraBoardSocket.CAM_A)          # master
camB = pipeline.create(dai.node.Camera, device=devB).build(dai.CameraBoardSocket.CAM_A)

sync = pipeline.create(dai.node.Sync)             # host Sync aligns both streams
sync.setRunOnHost(True)
camA.requestOutput((640, 400)).link(sync.inputs["a"])
camB.requestOutput((640, 400)).link(sync.inputs["b"])

Key behaviors:

  • Device-to-device links. Linking an output on device A to an input on device B inserts a host relay automatically at build time.
  • Partial operation. Losing one device leaves its streams idle while the rest of the pipeline keeps running; the lost device reconnects on its own. Observe this via pipeline.getDeviceState(device) and pipeline.setDeviceStateCallback(...). The pipeline stops itself only when the last device is gone or when a device that consumes another device’s streams is lost for good. Call pipeline.setStopOnDeviceLoss(True) to stop when any device that runs a node is lost for good (reconnection exhausted); with device.setMaxReconnectionAttempts(0) it stops as soon as the disconnect is detected.
  • Time. getTimestamp() values are host-clock based and comparable across devices; per-device getTimestampDevice() values are not (a host Sync node rejects the DEVICE timestamp source across devices at build).
  • Source devices. After build, a host node can ask input.getSourceDevice() / inputs.getSourceDevices() which device produces each of its inputs.
  • Per-device configuration. Every pipeline-level device setter/getter has a (device, ...) overload; the form without a device targets the master.
  • Holistic record/replay is not supported with more than one device yet.

See examples/{cpp,python}/.../MultiDevice/ for frame sync, a device-to-device relay and a multi-device host node.

Running on the device (standalone)

The pipeline process may itself run on an RVC4 and use the local device over shared memory, with further devices attached over the network:

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package depthai

3.12.0 (2026-11-04)

## Features

  • Multi-stream PointCloud
  • [Beta promotion] Stitching node
  • [Beta promotion] ImgDetectionsFilter node
  • Resize mode from NN archives
    • [NeuralNetwork]{.title-ref}, [DetectionNetwork]{.title-ref} and [SpatialDetectionNetwork]{.title-ref} built from a camera now use the [resize_mode]{.title-ref} ([CROP]{.title-ref}, [STRETCH]{.title-ref} or [LETTERBOX]{.title-ref}) declared in the NN archive. Archives without it use [CROP]{.title-ref}, as before
    • Override it with the [resizeMode]{.title-ref} argument of [build]{.title-ref}
  • [RVC2] Multi-device calibration ([pipeline.setMultiDeviceCalibration]{.title-ref}) is now supported on RVC2 devices
  • [Align.setInterpolation(...)]{.title-ref} selects the interpolation ([BICUBIC]{.title-ref}, [BILINEAR]{.title-ref} or [NEAREST_NEIGHBOR]{.title-ref}). [AUTO]{.title-ref} keeps the previous behavior
  • New [dai.node.Depth.getSupportedAlgorithms(device)]{.title-ref} and [getDefaultAlgorithm(device)]{.title-ref} return the depth algorithms that a device supports and the one that [AUTO]{.title-ref} selects
  • New [Device.getProtocol()]{.title-ref} returns the connection protocol (USB or TCP/IP)
  • [RVC4] [setAutoFocusTrigger()]{.title-ref} now runs one focus scan and then holds the focus. The AF mode is reset for each session
  • [RVC2] New [Device.Config.dangerousIrPowerOverride]{.title-ref} option removes the combined dot and flood power limit on boards that have one. Full power on both emitters can crash the device

## Bug fixes

  • Alignment
    • ImageAlign and Align now keep the depth near the image edges for rotated and distorted cameras
    • [RVC4] Align now uses correct offsets for rotated cameras and keeps the configured output size
    • ImageAlign no longer crashes when the [inputAlignTo]{.title-ref} frame has no distortion coefficients
    • [ImgDetections.transformTo()]{.title-ref} no longer distorts boxes at some rotations when mapping to a non-square image
    • [RVC2] StereoDepth depth alignment is now correct after decimation (for example on OAK-D-SR)
  • [*RVC4*] Stability

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged depthai at Robotics Stack Exchange

No version for distro melodic showing kilted. Known supported distros are highlighted in the buttons above.
Package symbol

depthai package from depthai repo

depthai

ROS Distro
kilted

Package Summary

Version 3.12.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/luxonis/depthai-core.git
VCS Type git
VCS Version ros-devel
Last Updated 2026-11-04
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

DepthAI core is a C++ library which comes with firmware and an API to interact with OAK Platform

Additional Links

Maintainers

  • Aljaž Sebastjan Ahtik

Authors

  • Martin Peterlin

DepthAI Library

Forum Docs License: MIT

DepthAI library for interfacing with Luxonis DepthAI hardware. It’s written in C++ and offers Python bindings out of the box.

Important — You’re viewing the v3.x.y branch.

Documentation

Documentation is available over at Luxonis DepthAI API

Examples

Examples for both C++ and Python are available in the examples folder. To see how to build and run them see README.md for more information. To build the examples in C++ configure with the following option added:

cmake -S. -Bbuild -D'DEPTHAI_BUILD_EXAMPLES=ON'
cmake --build build

Detection filtering and calibrated panoramas

Use dai::node::ImgDetectionsFilter / dai.node.ImgDetectionsFilter to filter detections or combine synchronized camera detections on a calibrated panorama. See the node guide and multi-device examples.

Beta features

The beta namespace is a staging area for experimental DepthAI features. It allows new features to be developed and iterated on quickly before they are promoted to the main depthai namespace.

Beta features are well-developed, but minor API and behavioral changes may occur between DepthAI releases without notice.

In C++, beta nodes are available under dai::beta::node:

auto node = pipeline.create<dai::beta::node::ClassificationParser>();

In Python, they are available under dai.beta.node:

node = pipeline.create(dai.beta.node.ClassificationParser)

On-device execution of Beta nodes is supported only on RVC4. If running Beta nodes on RVC2, DepthAI automatically configures beta nodes to run on the host.

Multiple devices in one pipeline

A single dai::Pipeline can drive several devices. Devices become part of the pipeline explicitly with addDevice(...) or implicitly when a node is created with an explicit device; the first device becomes the master (default device) used by nodes created without one.

pipeline = dai.Pipeline(False)                    # no implicit device
devA = pipeline.addDevice("10.0.0.10")            # promoted to master
devB = pipeline.addDevice("10.0.0.11")

camA = pipeline.create(dai.node.Camera).build(dai.CameraBoardSocket.CAM_A)          # master
camB = pipeline.create(dai.node.Camera, device=devB).build(dai.CameraBoardSocket.CAM_A)

sync = pipeline.create(dai.node.Sync)             # host Sync aligns both streams
sync.setRunOnHost(True)
camA.requestOutput((640, 400)).link(sync.inputs["a"])
camB.requestOutput((640, 400)).link(sync.inputs["b"])

Key behaviors:

  • Device-to-device links. Linking an output on device A to an input on device B inserts a host relay automatically at build time.
  • Partial operation. Losing one device leaves its streams idle while the rest of the pipeline keeps running; the lost device reconnects on its own. Observe this via pipeline.getDeviceState(device) and pipeline.setDeviceStateCallback(...). The pipeline stops itself only when the last device is gone or when a device that consumes another device’s streams is lost for good. Call pipeline.setStopOnDeviceLoss(True) to stop when any device that runs a node is lost for good (reconnection exhausted); with device.setMaxReconnectionAttempts(0) it stops as soon as the disconnect is detected.
  • Time. getTimestamp() values are host-clock based and comparable across devices; per-device getTimestampDevice() values are not (a host Sync node rejects the DEVICE timestamp source across devices at build).
  • Source devices. After build, a host node can ask input.getSourceDevice() / inputs.getSourceDevices() which device produces each of its inputs.
  • Per-device configuration. Every pipeline-level device setter/getter has a (device, ...) overload; the form without a device targets the master.
  • Holistic record/replay is not supported with more than one device yet.

See examples/{cpp,python}/.../MultiDevice/ for frame sync, a device-to-device relay and a multi-device host node.

Running on the device (standalone)

The pipeline process may itself run on an RVC4 and use the local device over shared memory, with further devices attached over the network:

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package depthai

3.12.0 (2026-11-04)

## Features

  • Multi-stream PointCloud
  • [Beta promotion] Stitching node
  • [Beta promotion] ImgDetectionsFilter node
  • Resize mode from NN archives
    • [NeuralNetwork]{.title-ref}, [DetectionNetwork]{.title-ref} and [SpatialDetectionNetwork]{.title-ref} built from a camera now use the [resize_mode]{.title-ref} ([CROP]{.title-ref}, [STRETCH]{.title-ref} or [LETTERBOX]{.title-ref}) declared in the NN archive. Archives without it use [CROP]{.title-ref}, as before
    • Override it with the [resizeMode]{.title-ref} argument of [build]{.title-ref}
  • [RVC2] Multi-device calibration ([pipeline.setMultiDeviceCalibration]{.title-ref}) is now supported on RVC2 devices
  • [Align.setInterpolation(...)]{.title-ref} selects the interpolation ([BICUBIC]{.title-ref}, [BILINEAR]{.title-ref} or [NEAREST_NEIGHBOR]{.title-ref}). [AUTO]{.title-ref} keeps the previous behavior
  • New [dai.node.Depth.getSupportedAlgorithms(device)]{.title-ref} and [getDefaultAlgorithm(device)]{.title-ref} return the depth algorithms that a device supports and the one that [AUTO]{.title-ref} selects
  • New [Device.getProtocol()]{.title-ref} returns the connection protocol (USB or TCP/IP)
  • [RVC4] [setAutoFocusTrigger()]{.title-ref} now runs one focus scan and then holds the focus. The AF mode is reset for each session
  • [RVC2] New [Device.Config.dangerousIrPowerOverride]{.title-ref} option removes the combined dot and flood power limit on boards that have one. Full power on both emitters can crash the device

## Bug fixes

  • Alignment
    • ImageAlign and Align now keep the depth near the image edges for rotated and distorted cameras
    • [RVC4] Align now uses correct offsets for rotated cameras and keeps the configured output size
    • ImageAlign no longer crashes when the [inputAlignTo]{.title-ref} frame has no distortion coefficients
    • [ImgDetections.transformTo()]{.title-ref} no longer distorts boxes at some rotations when mapping to a non-square image
    • [RVC2] StereoDepth depth alignment is now correct after decimation (for example on OAK-D-SR)
  • [*RVC4*] Stability

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged depthai at Robotics Stack Exchange

Package symbol

depthai package from depthai repo

depthai

ROS Distro
noetic

Package Summary

Version 2.33.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/luxonis/depthai-core.git
VCS Type git
VCS Version ros-release
Last Updated 2026-11-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

DepthAI core is a C++ library which comes with firmware and an API to interact with OAK Platform

Additional Links

Maintainers

  • Aljaž Sebastjan Ahtik

Authors

  • Martin Peterlin

DepthAI C++ Library

Forum Docs License: MIT

Core C++ library

Important — You’re viewing the v2.x.y branch.

  • For the latest version with support for RVC4 devices, please switch to the main branch.

Documentation

Documentation is available over at Luxonis DepthAI API

Disclaimer

DepthAI library doesn’t yet provide API stability guarantees. While we take care to properly deprecate old functions, some changes might still be breaking. We expect to provide API stability from version 3.0.0 onwards.

Dependencies

  • CMake >= 3.10
  • C/C++14 compiler
  • [optional] OpenCV 4 (required if building examples)
  • [optional] PCL (required for point cloud example)

To install OpenCV: MacOS: brew install opencv Linux: sudo apt install libopencv-dev

To install PCL: MacOS: brew install pcl Linux: sudo apt install libpcl-dev

ℹ️ On Linux distributions based on RPMs, you need to install perl-core required by OpenSSL dependency.

sudo yum install perl-core

Another option is to disable CURL support by setting DEPTHAI_ENABLE_CURL=OFF when configuring CMake.

cmake -S. -Bbuild -D'DEPTHAI_ENABLE_CURL=OFF'

Building

Make sure submodules are updated

git submodule update --init --recursive

Then configure and build

cmake -S. -Bbuild
cmake --build build

ℹ️ To speed up build times, use cmake --build build --parallel [num CPU cores] (CMake >= 3.12). For older versions use: Linux/macOS: cmake --build build -- -j[num CPU cores], MSVC: cmake --build build -- /MP[num CPU cores]

⚠️ If any CMake commands error with CMake Error: The source directory "" does not exist. replace argument -S with -H

Dynamic library

To build dynamic version of library configure with following option added

cmake -S. -Bbuild -D'BUILD_SHARED_LIBS=ON'
cmake --build build

Android

Android is supported to some extent but not actively pursued nor tested. PRs with any improvements are welcome.

Steps:

  • Install Android NDK (for example via Android Studio).
  • Set the NDK path:
export ANDROID_HOME=$HOME/.local/lib/Android
export PATH=$PATH:$ANDROID_HOME/emulator:$ANDROID_HOME/platform-tools
export NDK=$ANDROID_HOME/ndk/23.1.7779620/ # Check version

  • Ensure a recent version of cmake (apt version is outdated, install snap install cmake –classic)
  • Run cmake, set your ABI and Platform as needed:
cmake -S. -Bbuild -DCMAKE_TOOLCHAIN_FILE=$NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI=armeabi-v7a -DANDROID_PLATFORM=android-25
cmake --build build

Running examples

To build the examples configure with following option added

cmake -S. -Bbuild -D'DEPTHAI_BUILD_EXAMPLES=ON'
cmake --build build

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package depthai

2.33.0 (2026-11-02)

## Features * Add a [device.getState`function, which returns the firmware state of the device in runtime * Add `setProcessor]{.title-ref} function to select the processor for [Sync]{.title-ref} and [Demux]{.title-ref} nodes

## Misc * Expand crashdump data in firmware with more context on what caused the crash * Namespace installation

2.31.1 (2026-01-23)

  • Minor bugfixes

2.31.0 (2025-12-03)

## Features * Add tuning for the IMX577 sensor, removing the previously present blue tint * Improve IMX678 support on RVC2 with better black level correction, improving brightness and color accuracy

## New devices support * Add support for a new revision of OAK-Thermal (R8) * Add support for OAK-ToF (R4) * Add support for a new revision of OAK-D-S2-[Pro]-Wide OV9728 variant (R8)

## Bug fixes and stability * Fix a rare issue of IMU preventing a device reboot * Fix a timestamp overflow bug on the BNO08x IMU * Fix an edge case where [dai.Device]{.title-ref} constructor could get stuck indefinitely if the device lost connection at the wrong time by adding a timeout internally * Turn on the watchdog early during discovery of RVC2 USB devices to avoid soft bricking the device along with handling the case where the device gets into that state to recover it on the next boot * Fully disable crashdump extraction when [DEPTHAI_CRASHDUMP=0]{.title-ref} is set

## Misc * Add support to explicitly remove tracklets in [ObjectTracker]{.title-ref} node * Remove limitation for the maximum watchdog frequency from 4.5 seconds to unlimited ("infinity") by adding a software watchdog in firmware

2.30.0 (2025-03-18)

  • Features
  • Add RVC4 discovery to point users to v3 version of the library for OAK4 devices
  • Add support for a new VCM enabling autofocus on new IMX378 CCMs
  • Bug fixes
  • Fix an edge case in ImageManip to make https://github.com/geaxgx/depthai_hand_tracker run in edge mode again
  • Fix an edge case when sending MessageGroup from host to device and using more than 4 messages

2.29.0 (2024-11-26)

  • Features

  • Add the ability to change the calibration on the device in runtime with the new [dai::Device.setCalibration()]{.title-ref} method and to retrieve it with the [dai::Device.getCalibration()]{.title-ref}.

  • New [StereoDepth]{.title-ref} presets:
    • [DEFAULT]{.title-ref}
    • [FACE]{.title-ref}
    • [HIGH_DETAIL]{.title-ref}
    • [ROBOTICS]{.title-ref}
  • Multiple camera improvements (more details in https://github.com/luxonis/depthai-core/pull/972):
    • Expose more downsampling modes when picking a lower than native resolutions
    • Expose more binning modes when binning is picked on IMX582/586 ([sum]{.title-ref} and [avg]{.title-ref})
    • HDR on IMX582/586
    • Option to bypass 3A for having manual expose/ISO take effect faster
    • Initial support for new Sony 4K Starvis sensors: IMX678 and IMX715
    • Option to set the main camera to drive auto-exposure and auto-white-balance in multi-camera configurations
  • Improved StereoDepth filtering and an option to use a set a custom order of filters
    • Disparity is first scaled to 13 bit before going through filtering, which results in filters being more effective.
  • Misc

  • Remove false reports on crashes that happened on device destruction

  • Add [getWidth()]{.title-ref} and [getHeight()]{.title-ref} API to [EncodedFrame]{.title-ref}

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged depthai at Robotics Stack Exchange