Package Summary
| Version | 3.10.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-09-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Aljaž Sebastjan Ahtik
Authors
- Martin Peterlin
DepthAI Library
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.ybranch.
- For production projects that still rely on v2, check out the
v2_stablebranch.- Need to migrate? Follow the step-by-step v2 → v3 Porting Guide.
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
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::ImgDetectionsFilter>();
In Python, they are available under dai.beta.node:
node = pipeline.create(dai.beta.node.ImgDetectionsFilter)
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.
Dependencies
- CMake >= 3.20
- C/C++17 compiler
- [Linux] libudev >= 1.0.0
- [optional] OpenCV 4 (required if building examples and for record and replay)
- [optional] PCL (required for point cloud example)
To install libudev on Debian based systems (Ubuntu, etc.): sudo apt install libudev-dev
To install OpenCV:
MacOS: brew install opencv
Linux: sudo apt install libopencv-dev
Windows: choco install opencv
To install PCL:
MacOS: brew install pcl
Linux: sudo apt install libpcl-dev
Using Python bindings
Installing the latest pre-released version of the library can be done with:
python3 -m pip install --extra-index-url https://artifacts.luxonis.com/artifactory/luxonis-python-release-local/ --pre -U depthai
or by running:
python3 examples/python/install_requirements.py on the branch you want to install
For more specific information about Python bindings, see Python README.
Building
Make sure submodules are updated
git submodule update --init --recursive
Then configure and build
cmake -S . -B build
cmake --build build --parallel [num CPU cores]
On Windows it’s often required to specify the location of the OpenCV installation. In case you used chocolatey to install OpenCV, you can use the following command:
cmake -S . -B build -DOpenCV_DIR=C:/tools/opencv/build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --parallel [num CPU cores]
ℹ️ To speed up build times, use
cmake --build build --parallel [num CPU cores].
File truncated at 100 lines see the full file
Changelog for package depthai
3.10.0 (2026-09-07)
## Features
-
[_Beta_] Stitching node
- Stitches frames from two different sensors based on matching features in the overlap of the images
- Supports two stitching modes:
- Panorama stitching based on the image overlap
- Planar projection onto a configurable plane
- A [panorama example](https://github.com/luxonis/depthai-core/blob/main/examples/python/HostNodes/stitching_panorama.py) and a [planar projection example](https://github.com/luxonis/depthai-core/blob/main/examples/python/HostNodes/stitching_planar_projection.py) are available
-
[*RVC4*] Align node
- A generic way to align [Transformable]{.title-ref} messages or `ImgFrame`s with each other in any order
- Can align an [ImgFrame]{.title-ref} to any transformable message type
- Supports transforming custom messages if they override the [transformTo]{.title-ref} function and the node runs on the host. A [Python example](https://github.com/luxonis/depthai-core/blob/main/examples/python/Align/custom_message_align.py) and a [C++ example](https://github.com/luxonis/depthai-core/blob/main/examples/cpp/Align/custom_message_align.cpp) are available
- [ImgDetections]{.title-ref} alignment is shown in a [C++ example](https://github.com/luxonis/depthai-core/blob/main/examples/cpp/Align/img_detections_align.cpp) and a [Python example](https://github.com/luxonis/depthai-core/blob/main/examples/python/Align/img_detections_align.py)
-
Message save and load functions
- DepthAI messages can be written to a file and then read back with the new API: [msg.save("name.dai")]{.title-ref} and [msg.load("name.dai")]{.title-ref}
- The saved file is a binary protobuf envelope
- The following messages are supported: [ImgFrame]{.title-ref}, [NNData]{.title-ref}, [ImgDetections]{.title-ref}, [SpatialImgDetections]{.title-ref}, [SegmentationMask]{.title-ref}, [PointCloudData]{.title-ref}, [RGBDData]{.title-ref}, [IMUData]{.title-ref}, and [ImgAnnotations]{.title-ref}
-
[*RVC4*] ToF undistortion
- [setOutputUndistortion]{.title-ref} lets you undistort the ToF depth frame
-
Extrinsics now carry a `toDeviceId` field
- Used together with [toCameraSocket]{.title-ref} for better transformation handling in multi-device setups
- The field is automatically populated with the ID of the device that created the message, because that is the device [toCameraSocket]{.title-ref} refers to
## Bug fixes
-
[*RVC2*] VideoEncoder checks parameter coherency
- Unvalidated parameters caused significant performance degradation when rendering a video stream with incorrect parameters
- [RVC2] The LEON OS unwind section now uses the standard [.eh_frame]{.title-ref} naming, so the linker cleans up stale unwind records
- [getMaskData]{.title-ref} bindings for [SpatialImgDetections]{.title-ref} and [ImgDetections]{.title-ref} now return a generic [py::object]{.title-ref}
- Device discovery functions (for example [getAllConnectedDevices]{.title-ref}) now release the GIL, which prevents stuttering of a running pipeline
- Four-point transform in ImageManip now properly handles normalized coordinates
- Rotation is now properly applied to [addCropRotatedRect]{.title-ref} when coordinates are normalized
- Stricter intrinsics matrix validation
- The device health check is now more robust when the device is in use
- DetectionParser only considers outputs with [_yolo]{.title-ref} in the name when validating the number of strides
## Misc
- [RVC4] Optimized the loading of NN models and reduced the RAM footprint by half
- Added a DepthAI-specific reviewer skill for easier development and a faster merge process
- Embedded visualizer updated to 3.9.6:
- Improved performance and stability
## Known issues
- Downgrading from OS 1.40.0 to any OS between 1.24.0 and 1.31.1 causes an STM flash error that leads to a device crash when running any pipeline. To fix the issue, downgrade to OS 1.35.0 first, before you downgrade to the above OS range
## [RVC4] Luxonis OS compatibility
Integration tested with Luxonis OS 1.30.1, 1.35.0, and 1.40.0.
3.9.0 (2026-08-17)
File truncated at 100 lines see the full file
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged depthai at Robotics Stack Exchange
Package Summary
| Version | 3.10.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-09-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Aljaž Sebastjan Ahtik
Authors
- Martin Peterlin
DepthAI Library
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.ybranch.
- For production projects that still rely on v2, check out the
v2_stablebranch.- Need to migrate? Follow the step-by-step v2 → v3 Porting Guide.
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
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::ImgDetectionsFilter>();
In Python, they are available under dai.beta.node:
node = pipeline.create(dai.beta.node.ImgDetectionsFilter)
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.
Dependencies
- CMake >= 3.20
- C/C++17 compiler
- [Linux] libudev >= 1.0.0
- [optional] OpenCV 4 (required if building examples and for record and replay)
- [optional] PCL (required for point cloud example)
To install libudev on Debian based systems (Ubuntu, etc.): sudo apt install libudev-dev
To install OpenCV:
MacOS: brew install opencv
Linux: sudo apt install libopencv-dev
Windows: choco install opencv
To install PCL:
MacOS: brew install pcl
Linux: sudo apt install libpcl-dev
Using Python bindings
Installing the latest pre-released version of the library can be done with:
python3 -m pip install --extra-index-url https://artifacts.luxonis.com/artifactory/luxonis-python-release-local/ --pre -U depthai
or by running:
python3 examples/python/install_requirements.py on the branch you want to install
For more specific information about Python bindings, see Python README.
Building
Make sure submodules are updated
git submodule update --init --recursive
Then configure and build
cmake -S . -B build
cmake --build build --parallel [num CPU cores]
On Windows it’s often required to specify the location of the OpenCV installation. In case you used chocolatey to install OpenCV, you can use the following command:
cmake -S . -B build -DOpenCV_DIR=C:/tools/opencv/build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --parallel [num CPU cores]
ℹ️ To speed up build times, use
cmake --build build --parallel [num CPU cores].
File truncated at 100 lines see the full file
Changelog for package depthai
3.10.0 (2026-09-07)
## Features
-
[_Beta_] Stitching node
- Stitches frames from two different sensors based on matching features in the overlap of the images
- Supports two stitching modes:
- Panorama stitching based on the image overlap
- Planar projection onto a configurable plane
- A [panorama example](https://github.com/luxonis/depthai-core/blob/main/examples/python/HostNodes/stitching_panorama.py) and a [planar projection example](https://github.com/luxonis/depthai-core/blob/main/examples/python/HostNodes/stitching_planar_projection.py) are available
-
[*RVC4*] Align node
- A generic way to align [Transformable]{.title-ref} messages or `ImgFrame`s with each other in any order
- Can align an [ImgFrame]{.title-ref} to any transformable message type
- Supports transforming custom messages if they override the [transformTo]{.title-ref} function and the node runs on the host. A [Python example](https://github.com/luxonis/depthai-core/blob/main/examples/python/Align/custom_message_align.py) and a [C++ example](https://github.com/luxonis/depthai-core/blob/main/examples/cpp/Align/custom_message_align.cpp) are available
- [ImgDetections]{.title-ref} alignment is shown in a [C++ example](https://github.com/luxonis/depthai-core/blob/main/examples/cpp/Align/img_detections_align.cpp) and a [Python example](https://github.com/luxonis/depthai-core/blob/main/examples/python/Align/img_detections_align.py)
-
Message save and load functions
- DepthAI messages can be written to a file and then read back with the new API: [msg.save("name.dai")]{.title-ref} and [msg.load("name.dai")]{.title-ref}
- The saved file is a binary protobuf envelope
- The following messages are supported: [ImgFrame]{.title-ref}, [NNData]{.title-ref}, [ImgDetections]{.title-ref}, [SpatialImgDetections]{.title-ref}, [SegmentationMask]{.title-ref}, [PointCloudData]{.title-ref}, [RGBDData]{.title-ref}, [IMUData]{.title-ref}, and [ImgAnnotations]{.title-ref}
-
[*RVC4*] ToF undistortion
- [setOutputUndistortion]{.title-ref} lets you undistort the ToF depth frame
-
Extrinsics now carry a `toDeviceId` field
- Used together with [toCameraSocket]{.title-ref} for better transformation handling in multi-device setups
- The field is automatically populated with the ID of the device that created the message, because that is the device [toCameraSocket]{.title-ref} refers to
## Bug fixes
-
[*RVC2*] VideoEncoder checks parameter coherency
- Unvalidated parameters caused significant performance degradation when rendering a video stream with incorrect parameters
- [RVC2] The LEON OS unwind section now uses the standard [.eh_frame]{.title-ref} naming, so the linker cleans up stale unwind records
- [getMaskData]{.title-ref} bindings for [SpatialImgDetections]{.title-ref} and [ImgDetections]{.title-ref} now return a generic [py::object]{.title-ref}
- Device discovery functions (for example [getAllConnectedDevices]{.title-ref}) now release the GIL, which prevents stuttering of a running pipeline
- Four-point transform in ImageManip now properly handles normalized coordinates
- Rotation is now properly applied to [addCropRotatedRect]{.title-ref} when coordinates are normalized
- Stricter intrinsics matrix validation
- The device health check is now more robust when the device is in use
- DetectionParser only considers outputs with [_yolo]{.title-ref} in the name when validating the number of strides
## Misc
- [RVC4] Optimized the loading of NN models and reduced the RAM footprint by half
- Added a DepthAI-specific reviewer skill for easier development and a faster merge process
- Embedded visualizer updated to 3.9.6:
- Improved performance and stability
## Known issues
- Downgrading from OS 1.40.0 to any OS between 1.24.0 and 1.31.1 causes an STM flash error that leads to a device crash when running any pipeline. To fix the issue, downgrade to OS 1.35.0 first, before you downgrade to the above OS range
## [RVC4] Luxonis OS compatibility
Integration tested with Luxonis OS 1.30.1, 1.35.0, and 1.40.0.
3.9.0 (2026-08-17)
File truncated at 100 lines see the full file
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged depthai at Robotics Stack Exchange
Package Summary
| Version | 3.10.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-09-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Aljaž Sebastjan Ahtik
Authors
- Martin Peterlin
DepthAI Library
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.ybranch.
- For production projects that still rely on v2, check out the
v2_stablebranch.- Need to migrate? Follow the step-by-step v2 → v3 Porting Guide.
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
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::ImgDetectionsFilter>();
In Python, they are available under dai.beta.node:
node = pipeline.create(dai.beta.node.ImgDetectionsFilter)
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.
Dependencies
- CMake >= 3.20
- C/C++17 compiler
- [Linux] libudev >= 1.0.0
- [optional] OpenCV 4 (required if building examples and for record and replay)
- [optional] PCL (required for point cloud example)
To install libudev on Debian based systems (Ubuntu, etc.): sudo apt install libudev-dev
To install OpenCV:
MacOS: brew install opencv
Linux: sudo apt install libopencv-dev
Windows: choco install opencv
To install PCL:
MacOS: brew install pcl
Linux: sudo apt install libpcl-dev
Using Python bindings
Installing the latest pre-released version of the library can be done with:
python3 -m pip install --extra-index-url https://artifacts.luxonis.com/artifactory/luxonis-python-release-local/ --pre -U depthai
or by running:
python3 examples/python/install_requirements.py on the branch you want to install
For more specific information about Python bindings, see Python README.
Building
Make sure submodules are updated
git submodule update --init --recursive
Then configure and build
cmake -S . -B build
cmake --build build --parallel [num CPU cores]
On Windows it’s often required to specify the location of the OpenCV installation. In case you used chocolatey to install OpenCV, you can use the following command:
cmake -S . -B build -DOpenCV_DIR=C:/tools/opencv/build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --parallel [num CPU cores]
ℹ️ To speed up build times, use
cmake --build build --parallel [num CPU cores].
File truncated at 100 lines see the full file
Changelog for package depthai
3.10.0 (2026-09-07)
## Features
-
[_Beta_] Stitching node
- Stitches frames from two different sensors based on matching features in the overlap of the images
- Supports two stitching modes:
- Panorama stitching based on the image overlap
- Planar projection onto a configurable plane
- A [panorama example](https://github.com/luxonis/depthai-core/blob/main/examples/python/HostNodes/stitching_panorama.py) and a [planar projection example](https://github.com/luxonis/depthai-core/blob/main/examples/python/HostNodes/stitching_planar_projection.py) are available
-
[*RVC4*] Align node
- A generic way to align [Transformable]{.title-ref} messages or `ImgFrame`s with each other in any order
- Can align an [ImgFrame]{.title-ref} to any transformable message type
- Supports transforming custom messages if they override the [transformTo]{.title-ref} function and the node runs on the host. A [Python example](https://github.com/luxonis/depthai-core/blob/main/examples/python/Align/custom_message_align.py) and a [C++ example](https://github.com/luxonis/depthai-core/blob/main/examples/cpp/Align/custom_message_align.cpp) are available
- [ImgDetections]{.title-ref} alignment is shown in a [C++ example](https://github.com/luxonis/depthai-core/blob/main/examples/cpp/Align/img_detections_align.cpp) and a [Python example](https://github.com/luxonis/depthai-core/blob/main/examples/python/Align/img_detections_align.py)
-
Message save and load functions
- DepthAI messages can be written to a file and then read back with the new API: [msg.save("name.dai")]{.title-ref} and [msg.load("name.dai")]{.title-ref}
- The saved file is a binary protobuf envelope
- The following messages are supported: [ImgFrame]{.title-ref}, [NNData]{.title-ref}, [ImgDetections]{.title-ref}, [SpatialImgDetections]{.title-ref}, [SegmentationMask]{.title-ref}, [PointCloudData]{.title-ref}, [RGBDData]{.title-ref}, [IMUData]{.title-ref}, and [ImgAnnotations]{.title-ref}
-
[*RVC4*] ToF undistortion
- [setOutputUndistortion]{.title-ref} lets you undistort the ToF depth frame
-
Extrinsics now carry a `toDeviceId` field
- Used together with [toCameraSocket]{.title-ref} for better transformation handling in multi-device setups
- The field is automatically populated with the ID of the device that created the message, because that is the device [toCameraSocket]{.title-ref} refers to
## Bug fixes
-
[*RVC2*] VideoEncoder checks parameter coherency
- Unvalidated parameters caused significant performance degradation when rendering a video stream with incorrect parameters
- [RVC2] The LEON OS unwind section now uses the standard [.eh_frame]{.title-ref} naming, so the linker cleans up stale unwind records
- [getMaskData]{.title-ref} bindings for [SpatialImgDetections]{.title-ref} and [ImgDetections]{.title-ref} now return a generic [py::object]{.title-ref}
- Device discovery functions (for example [getAllConnectedDevices]{.title-ref}) now release the GIL, which prevents stuttering of a running pipeline
- Four-point transform in ImageManip now properly handles normalized coordinates
- Rotation is now properly applied to [addCropRotatedRect]{.title-ref} when coordinates are normalized
- Stricter intrinsics matrix validation
- The device health check is now more robust when the device is in use
- DetectionParser only considers outputs with [_yolo]{.title-ref} in the name when validating the number of strides
## Misc
- [RVC4] Optimized the loading of NN models and reduced the RAM footprint by half
- Added a DepthAI-specific reviewer skill for easier development and a faster merge process
- Embedded visualizer updated to 3.9.6:
- Improved performance and stability
## Known issues
- Downgrading from OS 1.40.0 to any OS between 1.24.0 and 1.31.1 causes an STM flash error that leads to a device crash when running any pipeline. To fix the issue, downgrade to OS 1.35.0 first, before you downgrade to the above OS range
## [RVC4] Luxonis OS compatibility
Integration tested with Luxonis OS 1.30.1, 1.35.0, and 1.40.0.
3.9.0 (2026-08-17)
File truncated at 100 lines see the full file
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged depthai at Robotics Stack Exchange
Package Summary
| Version | 3.10.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-09-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Aljaž Sebastjan Ahtik
Authors
- Martin Peterlin
DepthAI Library
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.ybranch.
- For production projects that still rely on v2, check out the
v2_stablebranch.- Need to migrate? Follow the step-by-step v2 → v3 Porting Guide.
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
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::ImgDetectionsFilter>();
In Python, they are available under dai.beta.node:
node = pipeline.create(dai.beta.node.ImgDetectionsFilter)
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.
Dependencies
- CMake >= 3.20
- C/C++17 compiler
- [Linux] libudev >= 1.0.0
- [optional] OpenCV 4 (required if building examples and for record and replay)
- [optional] PCL (required for point cloud example)
To install libudev on Debian based systems (Ubuntu, etc.): sudo apt install libudev-dev
To install OpenCV:
MacOS: brew install opencv
Linux: sudo apt install libopencv-dev
Windows: choco install opencv
To install PCL:
MacOS: brew install pcl
Linux: sudo apt install libpcl-dev
Using Python bindings
Installing the latest pre-released version of the library can be done with:
python3 -m pip install --extra-index-url https://artifacts.luxonis.com/artifactory/luxonis-python-release-local/ --pre -U depthai
or by running:
python3 examples/python/install_requirements.py on the branch you want to install
For more specific information about Python bindings, see Python README.
Building
Make sure submodules are updated
git submodule update --init --recursive
Then configure and build
cmake -S . -B build
cmake --build build --parallel [num CPU cores]
On Windows it’s often required to specify the location of the OpenCV installation. In case you used chocolatey to install OpenCV, you can use the following command:
cmake -S . -B build -DOpenCV_DIR=C:/tools/opencv/build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --parallel [num CPU cores]
ℹ️ To speed up build times, use
cmake --build build --parallel [num CPU cores].
File truncated at 100 lines see the full file
Changelog for package depthai
3.10.0 (2026-09-07)
## Features
-
[_Beta_] Stitching node
- Stitches frames from two different sensors based on matching features in the overlap of the images
- Supports two stitching modes:
- Panorama stitching based on the image overlap
- Planar projection onto a configurable plane
- A [panorama example](https://github.com/luxonis/depthai-core/blob/main/examples/python/HostNodes/stitching_panorama.py) and a [planar projection example](https://github.com/luxonis/depthai-core/blob/main/examples/python/HostNodes/stitching_planar_projection.py) are available
-
[*RVC4*] Align node
- A generic way to align [Transformable]{.title-ref} messages or `ImgFrame`s with each other in any order
- Can align an [ImgFrame]{.title-ref} to any transformable message type
- Supports transforming custom messages if they override the [transformTo]{.title-ref} function and the node runs on the host. A [Python example](https://github.com/luxonis/depthai-core/blob/main/examples/python/Align/custom_message_align.py) and a [C++ example](https://github.com/luxonis/depthai-core/blob/main/examples/cpp/Align/custom_message_align.cpp) are available
- [ImgDetections]{.title-ref} alignment is shown in a [C++ example](https://github.com/luxonis/depthai-core/blob/main/examples/cpp/Align/img_detections_align.cpp) and a [Python example](https://github.com/luxonis/depthai-core/blob/main/examples/python/Align/img_detections_align.py)
-
Message save and load functions
- DepthAI messages can be written to a file and then read back with the new API: [msg.save("name.dai")]{.title-ref} and [msg.load("name.dai")]{.title-ref}
- The saved file is a binary protobuf envelope
- The following messages are supported: [ImgFrame]{.title-ref}, [NNData]{.title-ref}, [ImgDetections]{.title-ref}, [SpatialImgDetections]{.title-ref}, [SegmentationMask]{.title-ref}, [PointCloudData]{.title-ref}, [RGBDData]{.title-ref}, [IMUData]{.title-ref}, and [ImgAnnotations]{.title-ref}
-
[*RVC4*] ToF undistortion
- [setOutputUndistortion]{.title-ref} lets you undistort the ToF depth frame
-
Extrinsics now carry a `toDeviceId` field
- Used together with [toCameraSocket]{.title-ref} for better transformation handling in multi-device setups
- The field is automatically populated with the ID of the device that created the message, because that is the device [toCameraSocket]{.title-ref} refers to
## Bug fixes
-
[*RVC2*] VideoEncoder checks parameter coherency
- Unvalidated parameters caused significant performance degradation when rendering a video stream with incorrect parameters
- [RVC2] The LEON OS unwind section now uses the standard [.eh_frame]{.title-ref} naming, so the linker cleans up stale unwind records
- [getMaskData]{.title-ref} bindings for [SpatialImgDetections]{.title-ref} and [ImgDetections]{.title-ref} now return a generic [py::object]{.title-ref}
- Device discovery functions (for example [getAllConnectedDevices]{.title-ref}) now release the GIL, which prevents stuttering of a running pipeline
- Four-point transform in ImageManip now properly handles normalized coordinates
- Rotation is now properly applied to [addCropRotatedRect]{.title-ref} when coordinates are normalized
- Stricter intrinsics matrix validation
- The device health check is now more robust when the device is in use
- DetectionParser only considers outputs with [_yolo]{.title-ref} in the name when validating the number of strides
## Misc
- [RVC4] Optimized the loading of NN models and reduced the RAM footprint by half
- Added a DepthAI-specific reviewer skill for easier development and a faster merge process
- Embedded visualizer updated to 3.9.6:
- Improved performance and stability
## Known issues
- Downgrading from OS 1.40.0 to any OS between 1.24.0 and 1.31.1 causes an STM flash error that leads to a device crash when running any pipeline. To fix the issue, downgrade to OS 1.35.0 first, before you downgrade to the above OS range
## [RVC4] Luxonis OS compatibility
Integration tested with Luxonis OS 1.30.1, 1.35.0, and 1.40.0.
3.9.0 (2026-08-17)
File truncated at 100 lines see the full file
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged depthai at Robotics Stack Exchange
Package Summary
| Version | 3.10.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-09-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Aljaž Sebastjan Ahtik
Authors
- Martin Peterlin
DepthAI Library
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.ybranch.
- For production projects that still rely on v2, check out the
v2_stablebranch.- Need to migrate? Follow the step-by-step v2 → v3 Porting Guide.
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
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::ImgDetectionsFilter>();
In Python, they are available under dai.beta.node:
node = pipeline.create(dai.beta.node.ImgDetectionsFilter)
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.
Dependencies
- CMake >= 3.20
- C/C++17 compiler
- [Linux] libudev >= 1.0.0
- [optional] OpenCV 4 (required if building examples and for record and replay)
- [optional] PCL (required for point cloud example)
To install libudev on Debian based systems (Ubuntu, etc.): sudo apt install libudev-dev
To install OpenCV:
MacOS: brew install opencv
Linux: sudo apt install libopencv-dev
Windows: choco install opencv
To install PCL:
MacOS: brew install pcl
Linux: sudo apt install libpcl-dev
Using Python bindings
Installing the latest pre-released version of the library can be done with:
python3 -m pip install --extra-index-url https://artifacts.luxonis.com/artifactory/luxonis-python-release-local/ --pre -U depthai
or by running:
python3 examples/python/install_requirements.py on the branch you want to install
For more specific information about Python bindings, see Python README.
Building
Make sure submodules are updated
git submodule update --init --recursive
Then configure and build
cmake -S . -B build
cmake --build build --parallel [num CPU cores]
On Windows it’s often required to specify the location of the OpenCV installation. In case you used chocolatey to install OpenCV, you can use the following command:
cmake -S . -B build -DOpenCV_DIR=C:/tools/opencv/build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --parallel [num CPU cores]
ℹ️ To speed up build times, use
cmake --build build --parallel [num CPU cores].
File truncated at 100 lines see the full file
Changelog for package depthai
3.10.0 (2026-09-07)
## Features
-
[_Beta_] Stitching node
- Stitches frames from two different sensors based on matching features in the overlap of the images
- Supports two stitching modes:
- Panorama stitching based on the image overlap
- Planar projection onto a configurable plane
- A [panorama example](https://github.com/luxonis/depthai-core/blob/main/examples/python/HostNodes/stitching_panorama.py) and a [planar projection example](https://github.com/luxonis/depthai-core/blob/main/examples/python/HostNodes/stitching_planar_projection.py) are available
-
[*RVC4*] Align node
- A generic way to align [Transformable]{.title-ref} messages or `ImgFrame`s with each other in any order
- Can align an [ImgFrame]{.title-ref} to any transformable message type
- Supports transforming custom messages if they override the [transformTo]{.title-ref} function and the node runs on the host. A [Python example](https://github.com/luxonis/depthai-core/blob/main/examples/python/Align/custom_message_align.py) and a [C++ example](https://github.com/luxonis/depthai-core/blob/main/examples/cpp/Align/custom_message_align.cpp) are available
- [ImgDetections]{.title-ref} alignment is shown in a [C++ example](https://github.com/luxonis/depthai-core/blob/main/examples/cpp/Align/img_detections_align.cpp) and a [Python example](https://github.com/luxonis/depthai-core/blob/main/examples/python/Align/img_detections_align.py)
-
Message save and load functions
- DepthAI messages can be written to a file and then read back with the new API: [msg.save("name.dai")]{.title-ref} and [msg.load("name.dai")]{.title-ref}
- The saved file is a binary protobuf envelope
- The following messages are supported: [ImgFrame]{.title-ref}, [NNData]{.title-ref}, [ImgDetections]{.title-ref}, [SpatialImgDetections]{.title-ref}, [SegmentationMask]{.title-ref}, [PointCloudData]{.title-ref}, [RGBDData]{.title-ref}, [IMUData]{.title-ref}, and [ImgAnnotations]{.title-ref}
-
[*RVC4*] ToF undistortion
- [setOutputUndistortion]{.title-ref} lets you undistort the ToF depth frame
-
Extrinsics now carry a `toDeviceId` field
- Used together with [toCameraSocket]{.title-ref} for better transformation handling in multi-device setups
- The field is automatically populated with the ID of the device that created the message, because that is the device [toCameraSocket]{.title-ref} refers to
## Bug fixes
-
[*RVC2*] VideoEncoder checks parameter coherency
- Unvalidated parameters caused significant performance degradation when rendering a video stream with incorrect parameters
- [RVC2] The LEON OS unwind section now uses the standard [.eh_frame]{.title-ref} naming, so the linker cleans up stale unwind records
- [getMaskData]{.title-ref} bindings for [SpatialImgDetections]{.title-ref} and [ImgDetections]{.title-ref} now return a generic [py::object]{.title-ref}
- Device discovery functions (for example [getAllConnectedDevices]{.title-ref}) now release the GIL, which prevents stuttering of a running pipeline
- Four-point transform in ImageManip now properly handles normalized coordinates
- Rotation is now properly applied to [addCropRotatedRect]{.title-ref} when coordinates are normalized
- Stricter intrinsics matrix validation
- The device health check is now more robust when the device is in use
- DetectionParser only considers outputs with [_yolo]{.title-ref} in the name when validating the number of strides
## Misc
- [RVC4] Optimized the loading of NN models and reduced the RAM footprint by half
- Added a DepthAI-specific reviewer skill for easier development and a faster merge process
- Embedded visualizer updated to 3.9.6:
- Improved performance and stability
## Known issues
- Downgrading from OS 1.40.0 to any OS between 1.24.0 and 1.31.1 causes an STM flash error that leads to a device crash when running any pipeline. To fix the issue, downgrade to OS 1.35.0 first, before you downgrade to the above OS range
## [RVC4] Luxonis OS compatibility
Integration tested with Luxonis OS 1.30.1, 1.35.0, and 1.40.0.
3.9.0 (2026-08-17)
File truncated at 100 lines see the full file
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged depthai at Robotics Stack Exchange
Package Summary
| Version | 3.10.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-09-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Aljaž Sebastjan Ahtik
Authors
- Martin Peterlin
DepthAI Library
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.ybranch.
- For production projects that still rely on v2, check out the
v2_stablebranch.- Need to migrate? Follow the step-by-step v2 → v3 Porting Guide.
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
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::ImgDetectionsFilter>();
In Python, they are available under dai.beta.node:
node = pipeline.create(dai.beta.node.ImgDetectionsFilter)
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.
Dependencies
- CMake >= 3.20
- C/C++17 compiler
- [Linux] libudev >= 1.0.0
- [optional] OpenCV 4 (required if building examples and for record and replay)
- [optional] PCL (required for point cloud example)
To install libudev on Debian based systems (Ubuntu, etc.): sudo apt install libudev-dev
To install OpenCV:
MacOS: brew install opencv
Linux: sudo apt install libopencv-dev
Windows: choco install opencv
To install PCL:
MacOS: brew install pcl
Linux: sudo apt install libpcl-dev
Using Python bindings
Installing the latest pre-released version of the library can be done with:
python3 -m pip install --extra-index-url https://artifacts.luxonis.com/artifactory/luxonis-python-release-local/ --pre -U depthai
or by running:
python3 examples/python/install_requirements.py on the branch you want to install
For more specific information about Python bindings, see Python README.
Building
Make sure submodules are updated
git submodule update --init --recursive
Then configure and build
cmake -S . -B build
cmake --build build --parallel [num CPU cores]
On Windows it’s often required to specify the location of the OpenCV installation. In case you used chocolatey to install OpenCV, you can use the following command:
cmake -S . -B build -DOpenCV_DIR=C:/tools/opencv/build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --parallel [num CPU cores]
ℹ️ To speed up build times, use
cmake --build build --parallel [num CPU cores].
File truncated at 100 lines see the full file
Changelog for package depthai
3.10.0 (2026-09-07)
## Features
-
[_Beta_] Stitching node
- Stitches frames from two different sensors based on matching features in the overlap of the images
- Supports two stitching modes:
- Panorama stitching based on the image overlap
- Planar projection onto a configurable plane
- A [panorama example](https://github.com/luxonis/depthai-core/blob/main/examples/python/HostNodes/stitching_panorama.py) and a [planar projection example](https://github.com/luxonis/depthai-core/blob/main/examples/python/HostNodes/stitching_planar_projection.py) are available
-
[*RVC4*] Align node
- A generic way to align [Transformable]{.title-ref} messages or `ImgFrame`s with each other in any order
- Can align an [ImgFrame]{.title-ref} to any transformable message type
- Supports transforming custom messages if they override the [transformTo]{.title-ref} function and the node runs on the host. A [Python example](https://github.com/luxonis/depthai-core/blob/main/examples/python/Align/custom_message_align.py) and a [C++ example](https://github.com/luxonis/depthai-core/blob/main/examples/cpp/Align/custom_message_align.cpp) are available
- [ImgDetections]{.title-ref} alignment is shown in a [C++ example](https://github.com/luxonis/depthai-core/blob/main/examples/cpp/Align/img_detections_align.cpp) and a [Python example](https://github.com/luxonis/depthai-core/blob/main/examples/python/Align/img_detections_align.py)
-
Message save and load functions
- DepthAI messages can be written to a file and then read back with the new API: [msg.save("name.dai")]{.title-ref} and [msg.load("name.dai")]{.title-ref}
- The saved file is a binary protobuf envelope
- The following messages are supported: [ImgFrame]{.title-ref}, [NNData]{.title-ref}, [ImgDetections]{.title-ref}, [SpatialImgDetections]{.title-ref}, [SegmentationMask]{.title-ref}, [PointCloudData]{.title-ref}, [RGBDData]{.title-ref}, [IMUData]{.title-ref}, and [ImgAnnotations]{.title-ref}
-
[*RVC4*] ToF undistortion
- [setOutputUndistortion]{.title-ref} lets you undistort the ToF depth frame
-
Extrinsics now carry a `toDeviceId` field
- Used together with [toCameraSocket]{.title-ref} for better transformation handling in multi-device setups
- The field is automatically populated with the ID of the device that created the message, because that is the device [toCameraSocket]{.title-ref} refers to
## Bug fixes
-
[*RVC2*] VideoEncoder checks parameter coherency
- Unvalidated parameters caused significant performance degradation when rendering a video stream with incorrect parameters
- [RVC2] The LEON OS unwind section now uses the standard [.eh_frame]{.title-ref} naming, so the linker cleans up stale unwind records
- [getMaskData]{.title-ref} bindings for [SpatialImgDetections]{.title-ref} and [ImgDetections]{.title-ref} now return a generic [py::object]{.title-ref}
- Device discovery functions (for example [getAllConnectedDevices]{.title-ref}) now release the GIL, which prevents stuttering of a running pipeline
- Four-point transform in ImageManip now properly handles normalized coordinates
- Rotation is now properly applied to [addCropRotatedRect]{.title-ref} when coordinates are normalized
- Stricter intrinsics matrix validation
- The device health check is now more robust when the device is in use
- DetectionParser only considers outputs with [_yolo]{.title-ref} in the name when validating the number of strides
## Misc
- [RVC4] Optimized the loading of NN models and reduced the RAM footprint by half
- Added a DepthAI-specific reviewer skill for easier development and a faster merge process
- Embedded visualizer updated to 3.9.6:
- Improved performance and stability
## Known issues
- Downgrading from OS 1.40.0 to any OS between 1.24.0 and 1.31.1 causes an STM flash error that leads to a device crash when running any pipeline. To fix the issue, downgrade to OS 1.35.0 first, before you downgrade to the above OS range
## [RVC4] Luxonis OS compatibility
Integration tested with Luxonis OS 1.30.1, 1.35.0, and 1.40.0.
3.9.0 (2026-08-17)
File truncated at 100 lines see the full file
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged depthai at Robotics Stack Exchange
Package Summary
| Version | 3.10.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-09-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Aljaž Sebastjan Ahtik
Authors
- Martin Peterlin
DepthAI Library
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.ybranch.
- For production projects that still rely on v2, check out the
v2_stablebranch.- Need to migrate? Follow the step-by-step v2 → v3 Porting Guide.
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
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::ImgDetectionsFilter>();
In Python, they are available under dai.beta.node:
node = pipeline.create(dai.beta.node.ImgDetectionsFilter)
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.
Dependencies
- CMake >= 3.20
- C/C++17 compiler
- [Linux] libudev >= 1.0.0
- [optional] OpenCV 4 (required if building examples and for record and replay)
- [optional] PCL (required for point cloud example)
To install libudev on Debian based systems (Ubuntu, etc.): sudo apt install libudev-dev
To install OpenCV:
MacOS: brew install opencv
Linux: sudo apt install libopencv-dev
Windows: choco install opencv
To install PCL:
MacOS: brew install pcl
Linux: sudo apt install libpcl-dev
Using Python bindings
Installing the latest pre-released version of the library can be done with:
python3 -m pip install --extra-index-url https://artifacts.luxonis.com/artifactory/luxonis-python-release-local/ --pre -U depthai
or by running:
python3 examples/python/install_requirements.py on the branch you want to install
For more specific information about Python bindings, see Python README.
Building
Make sure submodules are updated
git submodule update --init --recursive
Then configure and build
cmake -S . -B build
cmake --build build --parallel [num CPU cores]
On Windows it’s often required to specify the location of the OpenCV installation. In case you used chocolatey to install OpenCV, you can use the following command:
cmake -S . -B build -DOpenCV_DIR=C:/tools/opencv/build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --parallel [num CPU cores]
ℹ️ To speed up build times, use
cmake --build build --parallel [num CPU cores].
File truncated at 100 lines see the full file
Changelog for package depthai
3.10.0 (2026-09-07)
## Features
-
[_Beta_] Stitching node
- Stitches frames from two different sensors based on matching features in the overlap of the images
- Supports two stitching modes:
- Panorama stitching based on the image overlap
- Planar projection onto a configurable plane
- A [panorama example](https://github.com/luxonis/depthai-core/blob/main/examples/python/HostNodes/stitching_panorama.py) and a [planar projection example](https://github.com/luxonis/depthai-core/blob/main/examples/python/HostNodes/stitching_planar_projection.py) are available
-
[*RVC4*] Align node
- A generic way to align [Transformable]{.title-ref} messages or `ImgFrame`s with each other in any order
- Can align an [ImgFrame]{.title-ref} to any transformable message type
- Supports transforming custom messages if they override the [transformTo]{.title-ref} function and the node runs on the host. A [Python example](https://github.com/luxonis/depthai-core/blob/main/examples/python/Align/custom_message_align.py) and a [C++ example](https://github.com/luxonis/depthai-core/blob/main/examples/cpp/Align/custom_message_align.cpp) are available
- [ImgDetections]{.title-ref} alignment is shown in a [C++ example](https://github.com/luxonis/depthai-core/blob/main/examples/cpp/Align/img_detections_align.cpp) and a [Python example](https://github.com/luxonis/depthai-core/blob/main/examples/python/Align/img_detections_align.py)
-
Message save and load functions
- DepthAI messages can be written to a file and then read back with the new API: [msg.save("name.dai")]{.title-ref} and [msg.load("name.dai")]{.title-ref}
- The saved file is a binary protobuf envelope
- The following messages are supported: [ImgFrame]{.title-ref}, [NNData]{.title-ref}, [ImgDetections]{.title-ref}, [SpatialImgDetections]{.title-ref}, [SegmentationMask]{.title-ref}, [PointCloudData]{.title-ref}, [RGBDData]{.title-ref}, [IMUData]{.title-ref}, and [ImgAnnotations]{.title-ref}
-
[*RVC4*] ToF undistortion
- [setOutputUndistortion]{.title-ref} lets you undistort the ToF depth frame
-
Extrinsics now carry a `toDeviceId` field
- Used together with [toCameraSocket]{.title-ref} for better transformation handling in multi-device setups
- The field is automatically populated with the ID of the device that created the message, because that is the device [toCameraSocket]{.title-ref} refers to
## Bug fixes
-
[*RVC2*] VideoEncoder checks parameter coherency
- Unvalidated parameters caused significant performance degradation when rendering a video stream with incorrect parameters
- [RVC2] The LEON OS unwind section now uses the standard [.eh_frame]{.title-ref} naming, so the linker cleans up stale unwind records
- [getMaskData]{.title-ref} bindings for [SpatialImgDetections]{.title-ref} and [ImgDetections]{.title-ref} now return a generic [py::object]{.title-ref}
- Device discovery functions (for example [getAllConnectedDevices]{.title-ref}) now release the GIL, which prevents stuttering of a running pipeline
- Four-point transform in ImageManip now properly handles normalized coordinates
- Rotation is now properly applied to [addCropRotatedRect]{.title-ref} when coordinates are normalized
- Stricter intrinsics matrix validation
- The device health check is now more robust when the device is in use
- DetectionParser only considers outputs with [_yolo]{.title-ref} in the name when validating the number of strides
## Misc
- [RVC4] Optimized the loading of NN models and reduced the RAM footprint by half
- Added a DepthAI-specific reviewer skill for easier development and a faster merge process
- Embedded visualizer updated to 3.9.6:
- Improved performance and stability
## Known issues
- Downgrading from OS 1.40.0 to any OS between 1.24.0 and 1.31.1 causes an STM flash error that leads to a device crash when running any pipeline. To fix the issue, downgrade to OS 1.35.0 first, before you downgrade to the above OS range
## [RVC4] Luxonis OS compatibility
Integration tested with Luxonis OS 1.30.1, 1.35.0, and 1.40.0.
3.9.0 (2026-08-17)
File truncated at 100 lines see the full file
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged depthai at Robotics Stack Exchange
Package Summary
| Version | 3.10.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-09-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Aljaž Sebastjan Ahtik
Authors
- Martin Peterlin
DepthAI Library
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.ybranch.
- For production projects that still rely on v2, check out the
v2_stablebranch.- Need to migrate? Follow the step-by-step v2 → v3 Porting Guide.
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
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::ImgDetectionsFilter>();
In Python, they are available under dai.beta.node:
node = pipeline.create(dai.beta.node.ImgDetectionsFilter)
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.
Dependencies
- CMake >= 3.20
- C/C++17 compiler
- [Linux] libudev >= 1.0.0
- [optional] OpenCV 4 (required if building examples and for record and replay)
- [optional] PCL (required for point cloud example)
To install libudev on Debian based systems (Ubuntu, etc.): sudo apt install libudev-dev
To install OpenCV:
MacOS: brew install opencv
Linux: sudo apt install libopencv-dev
Windows: choco install opencv
To install PCL:
MacOS: brew install pcl
Linux: sudo apt install libpcl-dev
Using Python bindings
Installing the latest pre-released version of the library can be done with:
python3 -m pip install --extra-index-url https://artifacts.luxonis.com/artifactory/luxonis-python-release-local/ --pre -U depthai
or by running:
python3 examples/python/install_requirements.py on the branch you want to install
For more specific information about Python bindings, see Python README.
Building
Make sure submodules are updated
git submodule update --init --recursive
Then configure and build
cmake -S . -B build
cmake --build build --parallel [num CPU cores]
On Windows it’s often required to specify the location of the OpenCV installation. In case you used chocolatey to install OpenCV, you can use the following command:
cmake -S . -B build -DOpenCV_DIR=C:/tools/opencv/build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --parallel [num CPU cores]
ℹ️ To speed up build times, use
cmake --build build --parallel [num CPU cores].
File truncated at 100 lines see the full file
Changelog for package depthai
3.10.0 (2026-09-07)
## Features
-
[_Beta_] Stitching node
- Stitches frames from two different sensors based on matching features in the overlap of the images
- Supports two stitching modes:
- Panorama stitching based on the image overlap
- Planar projection onto a configurable plane
- A [panorama example](https://github.com/luxonis/depthai-core/blob/main/examples/python/HostNodes/stitching_panorama.py) and a [planar projection example](https://github.com/luxonis/depthai-core/blob/main/examples/python/HostNodes/stitching_planar_projection.py) are available
-
[*RVC4*] Align node
- A generic way to align [Transformable]{.title-ref} messages or `ImgFrame`s with each other in any order
- Can align an [ImgFrame]{.title-ref} to any transformable message type
- Supports transforming custom messages if they override the [transformTo]{.title-ref} function and the node runs on the host. A [Python example](https://github.com/luxonis/depthai-core/blob/main/examples/python/Align/custom_message_align.py) and a [C++ example](https://github.com/luxonis/depthai-core/blob/main/examples/cpp/Align/custom_message_align.cpp) are available
- [ImgDetections]{.title-ref} alignment is shown in a [C++ example](https://github.com/luxonis/depthai-core/blob/main/examples/cpp/Align/img_detections_align.cpp) and a [Python example](https://github.com/luxonis/depthai-core/blob/main/examples/python/Align/img_detections_align.py)
-
Message save and load functions
- DepthAI messages can be written to a file and then read back with the new API: [msg.save("name.dai")]{.title-ref} and [msg.load("name.dai")]{.title-ref}
- The saved file is a binary protobuf envelope
- The following messages are supported: [ImgFrame]{.title-ref}, [NNData]{.title-ref}, [ImgDetections]{.title-ref}, [SpatialImgDetections]{.title-ref}, [SegmentationMask]{.title-ref}, [PointCloudData]{.title-ref}, [RGBDData]{.title-ref}, [IMUData]{.title-ref}, and [ImgAnnotations]{.title-ref}
-
[*RVC4*] ToF undistortion
- [setOutputUndistortion]{.title-ref} lets you undistort the ToF depth frame
-
Extrinsics now carry a `toDeviceId` field
- Used together with [toCameraSocket]{.title-ref} for better transformation handling in multi-device setups
- The field is automatically populated with the ID of the device that created the message, because that is the device [toCameraSocket]{.title-ref} refers to
## Bug fixes
-
[*RVC2*] VideoEncoder checks parameter coherency
- Unvalidated parameters caused significant performance degradation when rendering a video stream with incorrect parameters
- [RVC2] The LEON OS unwind section now uses the standard [.eh_frame]{.title-ref} naming, so the linker cleans up stale unwind records
- [getMaskData]{.title-ref} bindings for [SpatialImgDetections]{.title-ref} and [ImgDetections]{.title-ref} now return a generic [py::object]{.title-ref}
- Device discovery functions (for example [getAllConnectedDevices]{.title-ref}) now release the GIL, which prevents stuttering of a running pipeline
- Four-point transform in ImageManip now properly handles normalized coordinates
- Rotation is now properly applied to [addCropRotatedRect]{.title-ref} when coordinates are normalized
- Stricter intrinsics matrix validation
- The device health check is now more robust when the device is in use
- DetectionParser only considers outputs with [_yolo]{.title-ref} in the name when validating the number of strides
## Misc
- [RVC4] Optimized the loading of NN models and reduced the RAM footprint by half
- Added a DepthAI-specific reviewer skill for easier development and a faster merge process
- Embedded visualizer updated to 3.9.6:
- Improved performance and stability
## Known issues
- Downgrading from OS 1.40.0 to any OS between 1.24.0 and 1.31.1 causes an STM flash error that leads to a device crash when running any pipeline. To fix the issue, downgrade to OS 1.35.0 first, before you downgrade to the above OS range
## [RVC4] Luxonis OS compatibility
Integration tested with Luxonis OS 1.30.1, 1.35.0, and 1.40.0.
3.9.0 (2026-08-17)
File truncated at 100 lines see the full file
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged depthai at Robotics Stack Exchange
Package Summary
| Version | 3.10.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-09-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Aljaž Sebastjan Ahtik
Authors
- Martin Peterlin
DepthAI Library
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.ybranch.
- For production projects that still rely on v2, check out the
v2_stablebranch.- Need to migrate? Follow the step-by-step v2 → v3 Porting Guide.
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
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::ImgDetectionsFilter>();
In Python, they are available under dai.beta.node:
node = pipeline.create(dai.beta.node.ImgDetectionsFilter)
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.
Dependencies
- CMake >= 3.20
- C/C++17 compiler
- [Linux] libudev >= 1.0.0
- [optional] OpenCV 4 (required if building examples and for record and replay)
- [optional] PCL (required for point cloud example)
To install libudev on Debian based systems (Ubuntu, etc.): sudo apt install libudev-dev
To install OpenCV:
MacOS: brew install opencv
Linux: sudo apt install libopencv-dev
Windows: choco install opencv
To install PCL:
MacOS: brew install pcl
Linux: sudo apt install libpcl-dev
Using Python bindings
Installing the latest pre-released version of the library can be done with:
python3 -m pip install --extra-index-url https://artifacts.luxonis.com/artifactory/luxonis-python-release-local/ --pre -U depthai
or by running:
python3 examples/python/install_requirements.py on the branch you want to install
For more specific information about Python bindings, see Python README.
Building
Make sure submodules are updated
git submodule update --init --recursive
Then configure and build
cmake -S . -B build
cmake --build build --parallel [num CPU cores]
On Windows it’s often required to specify the location of the OpenCV installation. In case you used chocolatey to install OpenCV, you can use the following command:
cmake -S . -B build -DOpenCV_DIR=C:/tools/opencv/build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --parallel [num CPU cores]
ℹ️ To speed up build times, use
cmake --build build --parallel [num CPU cores].
File truncated at 100 lines see the full file
Changelog for package depthai
3.10.0 (2026-09-07)
## Features
-
[_Beta_] Stitching node
- Stitches frames from two different sensors based on matching features in the overlap of the images
- Supports two stitching modes:
- Panorama stitching based on the image overlap
- Planar projection onto a configurable plane
- A [panorama example](https://github.com/luxonis/depthai-core/blob/main/examples/python/HostNodes/stitching_panorama.py) and a [planar projection example](https://github.com/luxonis/depthai-core/blob/main/examples/python/HostNodes/stitching_planar_projection.py) are available
-
[*RVC4*] Align node
- A generic way to align [Transformable]{.title-ref} messages or `ImgFrame`s with each other in any order
- Can align an [ImgFrame]{.title-ref} to any transformable message type
- Supports transforming custom messages if they override the [transformTo]{.title-ref} function and the node runs on the host. A [Python example](https://github.com/luxonis/depthai-core/blob/main/examples/python/Align/custom_message_align.py) and a [C++ example](https://github.com/luxonis/depthai-core/blob/main/examples/cpp/Align/custom_message_align.cpp) are available
- [ImgDetections]{.title-ref} alignment is shown in a [C++ example](https://github.com/luxonis/depthai-core/blob/main/examples/cpp/Align/img_detections_align.cpp) and a [Python example](https://github.com/luxonis/depthai-core/blob/main/examples/python/Align/img_detections_align.py)
-
Message save and load functions
- DepthAI messages can be written to a file and then read back with the new API: [msg.save("name.dai")]{.title-ref} and [msg.load("name.dai")]{.title-ref}
- The saved file is a binary protobuf envelope
- The following messages are supported: [ImgFrame]{.title-ref}, [NNData]{.title-ref}, [ImgDetections]{.title-ref}, [SpatialImgDetections]{.title-ref}, [SegmentationMask]{.title-ref}, [PointCloudData]{.title-ref}, [RGBDData]{.title-ref}, [IMUData]{.title-ref}, and [ImgAnnotations]{.title-ref}
-
[*RVC4*] ToF undistortion
- [setOutputUndistortion]{.title-ref} lets you undistort the ToF depth frame
-
Extrinsics now carry a `toDeviceId` field
- Used together with [toCameraSocket]{.title-ref} for better transformation handling in multi-device setups
- The field is automatically populated with the ID of the device that created the message, because that is the device [toCameraSocket]{.title-ref} refers to
## Bug fixes
-
[*RVC2*] VideoEncoder checks parameter coherency
- Unvalidated parameters caused significant performance degradation when rendering a video stream with incorrect parameters
- [RVC2] The LEON OS unwind section now uses the standard [.eh_frame]{.title-ref} naming, so the linker cleans up stale unwind records
- [getMaskData]{.title-ref} bindings for [SpatialImgDetections]{.title-ref} and [ImgDetections]{.title-ref} now return a generic [py::object]{.title-ref}
- Device discovery functions (for example [getAllConnectedDevices]{.title-ref}) now release the GIL, which prevents stuttering of a running pipeline
- Four-point transform in ImageManip now properly handles normalized coordinates
- Rotation is now properly applied to [addCropRotatedRect]{.title-ref} when coordinates are normalized
- Stricter intrinsics matrix validation
- The device health check is now more robust when the device is in use
- DetectionParser only considers outputs with [_yolo]{.title-ref} in the name when validating the number of strides
## Misc
- [RVC4] Optimized the loading of NN models and reduced the RAM footprint by half
- Added a DepthAI-specific reviewer skill for easier development and a faster merge process
- Embedded visualizer updated to 3.9.6:
- Improved performance and stability
## Known issues
- Downgrading from OS 1.40.0 to any OS between 1.24.0 and 1.31.1 causes an STM flash error that leads to a device crash when running any pipeline. To fix the issue, downgrade to OS 1.35.0 first, before you downgrade to the above OS range
## [RVC4] Luxonis OS compatibility
Integration tested with Luxonis OS 1.30.1, 1.35.0, and 1.40.0.
3.9.0 (2026-08-17)
File truncated at 100 lines see the full file
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged depthai at Robotics Stack Exchange
Package Summary
| Version | 3.10.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-09-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Aljaž Sebastjan Ahtik
Authors
- Martin Peterlin
DepthAI Library
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.ybranch.
- For production projects that still rely on v2, check out the
v2_stablebranch.- Need to migrate? Follow the step-by-step v2 → v3 Porting Guide.
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
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::ImgDetectionsFilter>();
In Python, they are available under dai.beta.node:
node = pipeline.create(dai.beta.node.ImgDetectionsFilter)
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.
Dependencies
- CMake >= 3.20
- C/C++17 compiler
- [Linux] libudev >= 1.0.0
- [optional] OpenCV 4 (required if building examples and for record and replay)
- [optional] PCL (required for point cloud example)
To install libudev on Debian based systems (Ubuntu, etc.): sudo apt install libudev-dev
To install OpenCV:
MacOS: brew install opencv
Linux: sudo apt install libopencv-dev
Windows: choco install opencv
To install PCL:
MacOS: brew install pcl
Linux: sudo apt install libpcl-dev
Using Python bindings
Installing the latest pre-released version of the library can be done with:
python3 -m pip install --extra-index-url https://artifacts.luxonis.com/artifactory/luxonis-python-release-local/ --pre -U depthai
or by running:
python3 examples/python/install_requirements.py on the branch you want to install
For more specific information about Python bindings, see Python README.
Building
Make sure submodules are updated
git submodule update --init --recursive
Then configure and build
cmake -S . -B build
cmake --build build --parallel [num CPU cores]
On Windows it’s often required to specify the location of the OpenCV installation. In case you used chocolatey to install OpenCV, you can use the following command:
cmake -S . -B build -DOpenCV_DIR=C:/tools/opencv/build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --parallel [num CPU cores]
ℹ️ To speed up build times, use
cmake --build build --parallel [num CPU cores].
File truncated at 100 lines see the full file
Changelog for package depthai
3.10.0 (2026-09-07)
## Features
-
[_Beta_] Stitching node
- Stitches frames from two different sensors based on matching features in the overlap of the images
- Supports two stitching modes:
- Panorama stitching based on the image overlap
- Planar projection onto a configurable plane
- A [panorama example](https://github.com/luxonis/depthai-core/blob/main/examples/python/HostNodes/stitching_panorama.py) and a [planar projection example](https://github.com/luxonis/depthai-core/blob/main/examples/python/HostNodes/stitching_planar_projection.py) are available
-
[*RVC4*] Align node
- A generic way to align [Transformable]{.title-ref} messages or `ImgFrame`s with each other in any order
- Can align an [ImgFrame]{.title-ref} to any transformable message type
- Supports transforming custom messages if they override the [transformTo]{.title-ref} function and the node runs on the host. A [Python example](https://github.com/luxonis/depthai-core/blob/main/examples/python/Align/custom_message_align.py) and a [C++ example](https://github.com/luxonis/depthai-core/blob/main/examples/cpp/Align/custom_message_align.cpp) are available
- [ImgDetections]{.title-ref} alignment is shown in a [C++ example](https://github.com/luxonis/depthai-core/blob/main/examples/cpp/Align/img_detections_align.cpp) and a [Python example](https://github.com/luxonis/depthai-core/blob/main/examples/python/Align/img_detections_align.py)
-
Message save and load functions
- DepthAI messages can be written to a file and then read back with the new API: [msg.save("name.dai")]{.title-ref} and [msg.load("name.dai")]{.title-ref}
- The saved file is a binary protobuf envelope
- The following messages are supported: [ImgFrame]{.title-ref}, [NNData]{.title-ref}, [ImgDetections]{.title-ref}, [SpatialImgDetections]{.title-ref}, [SegmentationMask]{.title-ref}, [PointCloudData]{.title-ref}, [RGBDData]{.title-ref}, [IMUData]{.title-ref}, and [ImgAnnotations]{.title-ref}
-
[*RVC4*] ToF undistortion
- [setOutputUndistortion]{.title-ref} lets you undistort the ToF depth frame
-
Extrinsics now carry a `toDeviceId` field
- Used together with [toCameraSocket]{.title-ref} for better transformation handling in multi-device setups
- The field is automatically populated with the ID of the device that created the message, because that is the device [toCameraSocket]{.title-ref} refers to
## Bug fixes
-
[*RVC2*] VideoEncoder checks parameter coherency
- Unvalidated parameters caused significant performance degradation when rendering a video stream with incorrect parameters
- [RVC2] The LEON OS unwind section now uses the standard [.eh_frame]{.title-ref} naming, so the linker cleans up stale unwind records
- [getMaskData]{.title-ref} bindings for [SpatialImgDetections]{.title-ref} and [ImgDetections]{.title-ref} now return a generic [py::object]{.title-ref}
- Device discovery functions (for example [getAllConnectedDevices]{.title-ref}) now release the GIL, which prevents stuttering of a running pipeline
- Four-point transform in ImageManip now properly handles normalized coordinates
- Rotation is now properly applied to [addCropRotatedRect]{.title-ref} when coordinates are normalized
- Stricter intrinsics matrix validation
- The device health check is now more robust when the device is in use
- DetectionParser only considers outputs with [_yolo]{.title-ref} in the name when validating the number of strides
## Misc
- [RVC4] Optimized the loading of NN models and reduced the RAM footprint by half
- Added a DepthAI-specific reviewer skill for easier development and a faster merge process
- Embedded visualizer updated to 3.9.6:
- Improved performance and stability
## Known issues
- Downgrading from OS 1.40.0 to any OS between 1.24.0 and 1.31.1 causes an STM flash error that leads to a device crash when running any pipeline. To fix the issue, downgrade to OS 1.35.0 first, before you downgrade to the above OS range
## [RVC4] Luxonis OS compatibility
Integration tested with Luxonis OS 1.30.1, 1.35.0, and 1.40.0.
3.9.0 (2026-08-17)
File truncated at 100 lines see the full file
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged depthai at Robotics Stack Exchange
Package Summary
| Version | 2.31.1 |
| License | MIT |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/luxonis/depthai-core.git |
| VCS Type | git |
| VCS Version | ros-release |
| Last Updated | 2026-01-26 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Adam Serafin
Authors
- Martin Peterlin
DepthAI C++ Library
Core C++ library
Important — You’re viewing the
v2.x.ybranch.
- For the latest version with support for RVC4 devices, please switch to the
mainbranch.
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-corerequired by OpenSSL dependency.sudo yum install perl-coreAnother option is to disable CURL support by setting
DEPTHAI_ENABLE_CURL=OFFwhen 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-Swith-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 for package depthai
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}
2.28.0 (2024-08-21)
Features * Changed the automatic crashdump collection to always on unless DEPTHAI_DISABLE_CRASHDUMP_COLLECTION is set. * Added DEPTHAI_ENABLE_ANALYTICS_COLLECTION environment varialbe - when set, analytic data (pipeline schema) is sent to Luxonis which will be used to further improve the library. * Undistort both outputs of ToF by default. * Improved 3A syncing on OAK-D-LR * Added support for YoloV10 * Bug fixes * Fix Camera node to correctly allocate resources for
File truncated at 100 lines see the full file
Dependant Packages
| Name | Deps |
|---|---|
| depthai-ros | |
| depthai_bridge | |
| depthai_examples |
Launch files
Messages
Services
Plugins
Recent questions tagged depthai at Robotics Stack Exchange
Package Summary
| Version | 2.31.1 |
| License | MIT |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/luxonis/depthai-core.git |
| VCS Type | git |
| VCS Version | ros-release |
| Last Updated | 2026-01-26 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Adam Serafin
Authors
- Martin Peterlin
DepthAI C++ Library
Core C++ library
Important — You’re viewing the
v2.x.ybranch.
- For the latest version with support for RVC4 devices, please switch to the
mainbranch.
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-corerequired by OpenSSL dependency.sudo yum install perl-coreAnother option is to disable CURL support by setting
DEPTHAI_ENABLE_CURL=OFFwhen 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-Swith-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 for package depthai
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}
2.28.0 (2024-08-21)
Features * Changed the automatic crashdump collection to always on unless DEPTHAI_DISABLE_CRASHDUMP_COLLECTION is set. * Added DEPTHAI_ENABLE_ANALYTICS_COLLECTION environment varialbe - when set, analytic data (pipeline schema) is sent to Luxonis which will be used to further improve the library. * Undistort both outputs of ToF by default. * Improved 3A syncing on OAK-D-LR * Added support for YoloV10 * Bug fixes * Fix Camera node to correctly allocate resources for
File truncated at 100 lines see the full file
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged depthai at Robotics Stack Exchange
Package Summary
| Version | 2.31.1 |
| License | MIT |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/luxonis/depthai-core.git |
| VCS Type | git |
| VCS Version | ros-release |
| Last Updated | 2026-01-26 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Adam Serafin
Authors
- Martin Peterlin
DepthAI C++ Library
Core C++ library
Important — You’re viewing the
v2.x.ybranch.
- For the latest version with support for RVC4 devices, please switch to the
mainbranch.
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-corerequired by OpenSSL dependency.sudo yum install perl-coreAnother option is to disable CURL support by setting
DEPTHAI_ENABLE_CURL=OFFwhen 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-Swith-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 for package depthai
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}
2.28.0 (2024-08-21)
Features * Changed the automatic crashdump collection to always on unless DEPTHAI_DISABLE_CRASHDUMP_COLLECTION is set. * Added DEPTHAI_ENABLE_ANALYTICS_COLLECTION environment varialbe - when set, analytic data (pipeline schema) is sent to Luxonis which will be used to further improve the library. * Undistort both outputs of ToF by default. * Improved 3A syncing on OAK-D-LR * Added support for YoloV10 * Bug fixes * Fix Camera node to correctly allocate resources for
File truncated at 100 lines see the full file
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged depthai at Robotics Stack Exchange
Package Summary
| Version | 3.10.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-09-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Aljaž Sebastjan Ahtik
Authors
- Martin Peterlin
DepthAI Library
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.ybranch.
- For production projects that still rely on v2, check out the
v2_stablebranch.- Need to migrate? Follow the step-by-step v2 → v3 Porting Guide.
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
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::ImgDetectionsFilter>();
In Python, they are available under dai.beta.node:
node = pipeline.create(dai.beta.node.ImgDetectionsFilter)
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.
Dependencies
- CMake >= 3.20
- C/C++17 compiler
- [Linux] libudev >= 1.0.0
- [optional] OpenCV 4 (required if building examples and for record and replay)
- [optional] PCL (required for point cloud example)
To install libudev on Debian based systems (Ubuntu, etc.): sudo apt install libudev-dev
To install OpenCV:
MacOS: brew install opencv
Linux: sudo apt install libopencv-dev
Windows: choco install opencv
To install PCL:
MacOS: brew install pcl
Linux: sudo apt install libpcl-dev
Using Python bindings
Installing the latest pre-released version of the library can be done with:
python3 -m pip install --extra-index-url https://artifacts.luxonis.com/artifactory/luxonis-python-release-local/ --pre -U depthai
or by running:
python3 examples/python/install_requirements.py on the branch you want to install
For more specific information about Python bindings, see Python README.
Building
Make sure submodules are updated
git submodule update --init --recursive
Then configure and build
cmake -S . -B build
cmake --build build --parallel [num CPU cores]
On Windows it’s often required to specify the location of the OpenCV installation. In case you used chocolatey to install OpenCV, you can use the following command:
cmake -S . -B build -DOpenCV_DIR=C:/tools/opencv/build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --parallel [num CPU cores]
ℹ️ To speed up build times, use
cmake --build build --parallel [num CPU cores].
File truncated at 100 lines see the full file
Changelog for package depthai
3.10.0 (2026-09-07)
## Features
-
[_Beta_] Stitching node
- Stitches frames from two different sensors based on matching features in the overlap of the images
- Supports two stitching modes:
- Panorama stitching based on the image overlap
- Planar projection onto a configurable plane
- A [panorama example](https://github.com/luxonis/depthai-core/blob/main/examples/python/HostNodes/stitching_panorama.py) and a [planar projection example](https://github.com/luxonis/depthai-core/blob/main/examples/python/HostNodes/stitching_planar_projection.py) are available
-
[*RVC4*] Align node
- A generic way to align [Transformable]{.title-ref} messages or `ImgFrame`s with each other in any order
- Can align an [ImgFrame]{.title-ref} to any transformable message type
- Supports transforming custom messages if they override the [transformTo]{.title-ref} function and the node runs on the host. A [Python example](https://github.com/luxonis/depthai-core/blob/main/examples/python/Align/custom_message_align.py) and a [C++ example](https://github.com/luxonis/depthai-core/blob/main/examples/cpp/Align/custom_message_align.cpp) are available
- [ImgDetections]{.title-ref} alignment is shown in a [C++ example](https://github.com/luxonis/depthai-core/blob/main/examples/cpp/Align/img_detections_align.cpp) and a [Python example](https://github.com/luxonis/depthai-core/blob/main/examples/python/Align/img_detections_align.py)
-
Message save and load functions
- DepthAI messages can be written to a file and then read back with the new API: [msg.save("name.dai")]{.title-ref} and [msg.load("name.dai")]{.title-ref}
- The saved file is a binary protobuf envelope
- The following messages are supported: [ImgFrame]{.title-ref}, [NNData]{.title-ref}, [ImgDetections]{.title-ref}, [SpatialImgDetections]{.title-ref}, [SegmentationMask]{.title-ref}, [PointCloudData]{.title-ref}, [RGBDData]{.title-ref}, [IMUData]{.title-ref}, and [ImgAnnotations]{.title-ref}
-
[*RVC4*] ToF undistortion
- [setOutputUndistortion]{.title-ref} lets you undistort the ToF depth frame
-
Extrinsics now carry a `toDeviceId` field
- Used together with [toCameraSocket]{.title-ref} for better transformation handling in multi-device setups
- The field is automatically populated with the ID of the device that created the message, because that is the device [toCameraSocket]{.title-ref} refers to
## Bug fixes
-
[*RVC2*] VideoEncoder checks parameter coherency
- Unvalidated parameters caused significant performance degradation when rendering a video stream with incorrect parameters
- [RVC2] The LEON OS unwind section now uses the standard [.eh_frame]{.title-ref} naming, so the linker cleans up stale unwind records
- [getMaskData]{.title-ref} bindings for [SpatialImgDetections]{.title-ref} and [ImgDetections]{.title-ref} now return a generic [py::object]{.title-ref}
- Device discovery functions (for example [getAllConnectedDevices]{.title-ref}) now release the GIL, which prevents stuttering of a running pipeline
- Four-point transform in ImageManip now properly handles normalized coordinates
- Rotation is now properly applied to [addCropRotatedRect]{.title-ref} when coordinates are normalized
- Stricter intrinsics matrix validation
- The device health check is now more robust when the device is in use
- DetectionParser only considers outputs with [_yolo]{.title-ref} in the name when validating the number of strides
## Misc
- [RVC4] Optimized the loading of NN models and reduced the RAM footprint by half
- Added a DepthAI-specific reviewer skill for easier development and a faster merge process
- Embedded visualizer updated to 3.9.6:
- Improved performance and stability
## Known issues
- Downgrading from OS 1.40.0 to any OS between 1.24.0 and 1.31.1 causes an STM flash error that leads to a device crash when running any pipeline. To fix the issue, downgrade to OS 1.35.0 first, before you downgrade to the above OS range
## [RVC4] Luxonis OS compatibility
Integration tested with Luxonis OS 1.30.1, 1.35.0, and 1.40.0.
3.9.0 (2026-08-17)
File truncated at 100 lines see the full file
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged depthai at Robotics Stack Exchange
Package Summary
| Version | 3.10.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-09-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Aljaž Sebastjan Ahtik
Authors
- Martin Peterlin
DepthAI Library
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.ybranch.
- For production projects that still rely on v2, check out the
v2_stablebranch.- Need to migrate? Follow the step-by-step v2 → v3 Porting Guide.
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
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::ImgDetectionsFilter>();
In Python, they are available under dai.beta.node:
node = pipeline.create(dai.beta.node.ImgDetectionsFilter)
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.
Dependencies
- CMake >= 3.20
- C/C++17 compiler
- [Linux] libudev >= 1.0.0
- [optional] OpenCV 4 (required if building examples and for record and replay)
- [optional] PCL (required for point cloud example)
To install libudev on Debian based systems (Ubuntu, etc.): sudo apt install libudev-dev
To install OpenCV:
MacOS: brew install opencv
Linux: sudo apt install libopencv-dev
Windows: choco install opencv
To install PCL:
MacOS: brew install pcl
Linux: sudo apt install libpcl-dev
Using Python bindings
Installing the latest pre-released version of the library can be done with:
python3 -m pip install --extra-index-url https://artifacts.luxonis.com/artifactory/luxonis-python-release-local/ --pre -U depthai
or by running:
python3 examples/python/install_requirements.py on the branch you want to install
For more specific information about Python bindings, see Python README.
Building
Make sure submodules are updated
git submodule update --init --recursive
Then configure and build
cmake -S . -B build
cmake --build build --parallel [num CPU cores]
On Windows it’s often required to specify the location of the OpenCV installation. In case you used chocolatey to install OpenCV, you can use the following command:
cmake -S . -B build -DOpenCV_DIR=C:/tools/opencv/build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --parallel [num CPU cores]
ℹ️ To speed up build times, use
cmake --build build --parallel [num CPU cores].
File truncated at 100 lines see the full file
Changelog for package depthai
3.10.0 (2026-09-07)
## Features
-
[_Beta_] Stitching node
- Stitches frames from two different sensors based on matching features in the overlap of the images
- Supports two stitching modes:
- Panorama stitching based on the image overlap
- Planar projection onto a configurable plane
- A [panorama example](https://github.com/luxonis/depthai-core/blob/main/examples/python/HostNodes/stitching_panorama.py) and a [planar projection example](https://github.com/luxonis/depthai-core/blob/main/examples/python/HostNodes/stitching_planar_projection.py) are available
-
[*RVC4*] Align node
- A generic way to align [Transformable]{.title-ref} messages or `ImgFrame`s with each other in any order
- Can align an [ImgFrame]{.title-ref} to any transformable message type
- Supports transforming custom messages if they override the [transformTo]{.title-ref} function and the node runs on the host. A [Python example](https://github.com/luxonis/depthai-core/blob/main/examples/python/Align/custom_message_align.py) and a [C++ example](https://github.com/luxonis/depthai-core/blob/main/examples/cpp/Align/custom_message_align.cpp) are available
- [ImgDetections]{.title-ref} alignment is shown in a [C++ example](https://github.com/luxonis/depthai-core/blob/main/examples/cpp/Align/img_detections_align.cpp) and a [Python example](https://github.com/luxonis/depthai-core/blob/main/examples/python/Align/img_detections_align.py)
-
Message save and load functions
- DepthAI messages can be written to a file and then read back with the new API: [msg.save("name.dai")]{.title-ref} and [msg.load("name.dai")]{.title-ref}
- The saved file is a binary protobuf envelope
- The following messages are supported: [ImgFrame]{.title-ref}, [NNData]{.title-ref}, [ImgDetections]{.title-ref}, [SpatialImgDetections]{.title-ref}, [SegmentationMask]{.title-ref}, [PointCloudData]{.title-ref}, [RGBDData]{.title-ref}, [IMUData]{.title-ref}, and [ImgAnnotations]{.title-ref}
-
[*RVC4*] ToF undistortion
- [setOutputUndistortion]{.title-ref} lets you undistort the ToF depth frame
-
Extrinsics now carry a `toDeviceId` field
- Used together with [toCameraSocket]{.title-ref} for better transformation handling in multi-device setups
- The field is automatically populated with the ID of the device that created the message, because that is the device [toCameraSocket]{.title-ref} refers to
## Bug fixes
-
[*RVC2*] VideoEncoder checks parameter coherency
- Unvalidated parameters caused significant performance degradation when rendering a video stream with incorrect parameters
- [RVC2] The LEON OS unwind section now uses the standard [.eh_frame]{.title-ref} naming, so the linker cleans up stale unwind records
- [getMaskData]{.title-ref} bindings for [SpatialImgDetections]{.title-ref} and [ImgDetections]{.title-ref} now return a generic [py::object]{.title-ref}
- Device discovery functions (for example [getAllConnectedDevices]{.title-ref}) now release the GIL, which prevents stuttering of a running pipeline
- Four-point transform in ImageManip now properly handles normalized coordinates
- Rotation is now properly applied to [addCropRotatedRect]{.title-ref} when coordinates are normalized
- Stricter intrinsics matrix validation
- The device health check is now more robust when the device is in use
- DetectionParser only considers outputs with [_yolo]{.title-ref} in the name when validating the number of strides
## Misc
- [RVC4] Optimized the loading of NN models and reduced the RAM footprint by half
- Added a DepthAI-specific reviewer skill for easier development and a faster merge process
- Embedded visualizer updated to 3.9.6:
- Improved performance and stability
## Known issues
- Downgrading from OS 1.40.0 to any OS between 1.24.0 and 1.31.1 causes an STM flash error that leads to a device crash when running any pipeline. To fix the issue, downgrade to OS 1.35.0 first, before you downgrade to the above OS range
## [RVC4] Luxonis OS compatibility
Integration tested with Luxonis OS 1.30.1, 1.35.0, and 1.40.0.
3.9.0 (2026-08-17)
File truncated at 100 lines see the full file
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged depthai at Robotics Stack Exchange
Package Summary
| Version | 3.10.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-09-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Aljaž Sebastjan Ahtik
Authors
- Martin Peterlin
DepthAI Library
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.ybranch.
- For production projects that still rely on v2, check out the
v2_stablebranch.- Need to migrate? Follow the step-by-step v2 → v3 Porting Guide.
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
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::ImgDetectionsFilter>();
In Python, they are available under dai.beta.node:
node = pipeline.create(dai.beta.node.ImgDetectionsFilter)
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.
Dependencies
- CMake >= 3.20
- C/C++17 compiler
- [Linux] libudev >= 1.0.0
- [optional] OpenCV 4 (required if building examples and for record and replay)
- [optional] PCL (required for point cloud example)
To install libudev on Debian based systems (Ubuntu, etc.): sudo apt install libudev-dev
To install OpenCV:
MacOS: brew install opencv
Linux: sudo apt install libopencv-dev
Windows: choco install opencv
To install PCL:
MacOS: brew install pcl
Linux: sudo apt install libpcl-dev
Using Python bindings
Installing the latest pre-released version of the library can be done with:
python3 -m pip install --extra-index-url https://artifacts.luxonis.com/artifactory/luxonis-python-release-local/ --pre -U depthai
or by running:
python3 examples/python/install_requirements.py on the branch you want to install
For more specific information about Python bindings, see Python README.
Building
Make sure submodules are updated
git submodule update --init --recursive
Then configure and build
cmake -S . -B build
cmake --build build --parallel [num CPU cores]
On Windows it’s often required to specify the location of the OpenCV installation. In case you used chocolatey to install OpenCV, you can use the following command:
cmake -S . -B build -DOpenCV_DIR=C:/tools/opencv/build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --parallel [num CPU cores]
ℹ️ To speed up build times, use
cmake --build build --parallel [num CPU cores].
File truncated at 100 lines see the full file
Changelog for package depthai
3.10.0 (2026-09-07)
## Features
-
[_Beta_] Stitching node
- Stitches frames from two different sensors based on matching features in the overlap of the images
- Supports two stitching modes:
- Panorama stitching based on the image overlap
- Planar projection onto a configurable plane
- A [panorama example](https://github.com/luxonis/depthai-core/blob/main/examples/python/HostNodes/stitching_panorama.py) and a [planar projection example](https://github.com/luxonis/depthai-core/blob/main/examples/python/HostNodes/stitching_planar_projection.py) are available
-
[*RVC4*] Align node
- A generic way to align [Transformable]{.title-ref} messages or `ImgFrame`s with each other in any order
- Can align an [ImgFrame]{.title-ref} to any transformable message type
- Supports transforming custom messages if they override the [transformTo]{.title-ref} function and the node runs on the host. A [Python example](https://github.com/luxonis/depthai-core/blob/main/examples/python/Align/custom_message_align.py) and a [C++ example](https://github.com/luxonis/depthai-core/blob/main/examples/cpp/Align/custom_message_align.cpp) are available
- [ImgDetections]{.title-ref} alignment is shown in a [C++ example](https://github.com/luxonis/depthai-core/blob/main/examples/cpp/Align/img_detections_align.cpp) and a [Python example](https://github.com/luxonis/depthai-core/blob/main/examples/python/Align/img_detections_align.py)
-
Message save and load functions
- DepthAI messages can be written to a file and then read back with the new API: [msg.save("name.dai")]{.title-ref} and [msg.load("name.dai")]{.title-ref}
- The saved file is a binary protobuf envelope
- The following messages are supported: [ImgFrame]{.title-ref}, [NNData]{.title-ref}, [ImgDetections]{.title-ref}, [SpatialImgDetections]{.title-ref}, [SegmentationMask]{.title-ref}, [PointCloudData]{.title-ref}, [RGBDData]{.title-ref}, [IMUData]{.title-ref}, and [ImgAnnotations]{.title-ref}
-
[*RVC4*] ToF undistortion
- [setOutputUndistortion]{.title-ref} lets you undistort the ToF depth frame
-
Extrinsics now carry a `toDeviceId` field
- Used together with [toCameraSocket]{.title-ref} for better transformation handling in multi-device setups
- The field is automatically populated with the ID of the device that created the message, because that is the device [toCameraSocket]{.title-ref} refers to
## Bug fixes
-
[*RVC2*] VideoEncoder checks parameter coherency
- Unvalidated parameters caused significant performance degradation when rendering a video stream with incorrect parameters
- [RVC2] The LEON OS unwind section now uses the standard [.eh_frame]{.title-ref} naming, so the linker cleans up stale unwind records
- [getMaskData]{.title-ref} bindings for [SpatialImgDetections]{.title-ref} and [ImgDetections]{.title-ref} now return a generic [py::object]{.title-ref}
- Device discovery functions (for example [getAllConnectedDevices]{.title-ref}) now release the GIL, which prevents stuttering of a running pipeline
- Four-point transform in ImageManip now properly handles normalized coordinates
- Rotation is now properly applied to [addCropRotatedRect]{.title-ref} when coordinates are normalized
- Stricter intrinsics matrix validation
- The device health check is now more robust when the device is in use
- DetectionParser only considers outputs with [_yolo]{.title-ref} in the name when validating the number of strides
## Misc
- [RVC4] Optimized the loading of NN models and reduced the RAM footprint by half
- Added a DepthAI-specific reviewer skill for easier development and a faster merge process
- Embedded visualizer updated to 3.9.6:
- Improved performance and stability
## Known issues
- Downgrading from OS 1.40.0 to any OS between 1.24.0 and 1.31.1 causes an STM flash error that leads to a device crash when running any pipeline. To fix the issue, downgrade to OS 1.35.0 first, before you downgrade to the above OS range
## [RVC4] Luxonis OS compatibility
Integration tested with Luxonis OS 1.30.1, 1.35.0, and 1.40.0.
3.9.0 (2026-08-17)
File truncated at 100 lines see the full file
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged depthai at Robotics Stack Exchange
Package Summary
| Version | 3.10.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-09-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Aljaž Sebastjan Ahtik
Authors
- Martin Peterlin
DepthAI Library
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.ybranch.
- For production projects that still rely on v2, check out the
v2_stablebranch.- Need to migrate? Follow the step-by-step v2 → v3 Porting Guide.
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
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::ImgDetectionsFilter>();
In Python, they are available under dai.beta.node:
node = pipeline.create(dai.beta.node.ImgDetectionsFilter)
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.
Dependencies
- CMake >= 3.20
- C/C++17 compiler
- [Linux] libudev >= 1.0.0
- [optional] OpenCV 4 (required if building examples and for record and replay)
- [optional] PCL (required for point cloud example)
To install libudev on Debian based systems (Ubuntu, etc.): sudo apt install libudev-dev
To install OpenCV:
MacOS: brew install opencv
Linux: sudo apt install libopencv-dev
Windows: choco install opencv
To install PCL:
MacOS: brew install pcl
Linux: sudo apt install libpcl-dev
Using Python bindings
Installing the latest pre-released version of the library can be done with:
python3 -m pip install --extra-index-url https://artifacts.luxonis.com/artifactory/luxonis-python-release-local/ --pre -U depthai
or by running:
python3 examples/python/install_requirements.py on the branch you want to install
For more specific information about Python bindings, see Python README.
Building
Make sure submodules are updated
git submodule update --init --recursive
Then configure and build
cmake -S . -B build
cmake --build build --parallel [num CPU cores]
On Windows it’s often required to specify the location of the OpenCV installation. In case you used chocolatey to install OpenCV, you can use the following command:
cmake -S . -B build -DOpenCV_DIR=C:/tools/opencv/build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --parallel [num CPU cores]
ℹ️ To speed up build times, use
cmake --build build --parallel [num CPU cores].
File truncated at 100 lines see the full file
Changelog for package depthai
3.10.0 (2026-09-07)
## Features
-
[_Beta_] Stitching node
- Stitches frames from two different sensors based on matching features in the overlap of the images
- Supports two stitching modes:
- Panorama stitching based on the image overlap
- Planar projection onto a configurable plane
- A [panorama example](https://github.com/luxonis/depthai-core/blob/main/examples/python/HostNodes/stitching_panorama.py) and a [planar projection example](https://github.com/luxonis/depthai-core/blob/main/examples/python/HostNodes/stitching_planar_projection.py) are available
-
[*RVC4*] Align node
- A generic way to align [Transformable]{.title-ref} messages or `ImgFrame`s with each other in any order
- Can align an [ImgFrame]{.title-ref} to any transformable message type
- Supports transforming custom messages if they override the [transformTo]{.title-ref} function and the node runs on the host. A [Python example](https://github.com/luxonis/depthai-core/blob/main/examples/python/Align/custom_message_align.py) and a [C++ example](https://github.com/luxonis/depthai-core/blob/main/examples/cpp/Align/custom_message_align.cpp) are available
- [ImgDetections]{.title-ref} alignment is shown in a [C++ example](https://github.com/luxonis/depthai-core/blob/main/examples/cpp/Align/img_detections_align.cpp) and a [Python example](https://github.com/luxonis/depthai-core/blob/main/examples/python/Align/img_detections_align.py)
-
Message save and load functions
- DepthAI messages can be written to a file and then read back with the new API: [msg.save("name.dai")]{.title-ref} and [msg.load("name.dai")]{.title-ref}
- The saved file is a binary protobuf envelope
- The following messages are supported: [ImgFrame]{.title-ref}, [NNData]{.title-ref}, [ImgDetections]{.title-ref}, [SpatialImgDetections]{.title-ref}, [SegmentationMask]{.title-ref}, [PointCloudData]{.title-ref}, [RGBDData]{.title-ref}, [IMUData]{.title-ref}, and [ImgAnnotations]{.title-ref}
-
[*RVC4*] ToF undistortion
- [setOutputUndistortion]{.title-ref} lets you undistort the ToF depth frame
-
Extrinsics now carry a `toDeviceId` field
- Used together with [toCameraSocket]{.title-ref} for better transformation handling in multi-device setups
- The field is automatically populated with the ID of the device that created the message, because that is the device [toCameraSocket]{.title-ref} refers to
## Bug fixes
-
[*RVC2*] VideoEncoder checks parameter coherency
- Unvalidated parameters caused significant performance degradation when rendering a video stream with incorrect parameters
- [RVC2] The LEON OS unwind section now uses the standard [.eh_frame]{.title-ref} naming, so the linker cleans up stale unwind records
- [getMaskData]{.title-ref} bindings for [SpatialImgDetections]{.title-ref} and [ImgDetections]{.title-ref} now return a generic [py::object]{.title-ref}
- Device discovery functions (for example [getAllConnectedDevices]{.title-ref}) now release the GIL, which prevents stuttering of a running pipeline
- Four-point transform in ImageManip now properly handles normalized coordinates
- Rotation is now properly applied to [addCropRotatedRect]{.title-ref} when coordinates are normalized
- Stricter intrinsics matrix validation
- The device health check is now more robust when the device is in use
- DetectionParser only considers outputs with [_yolo]{.title-ref} in the name when validating the number of strides
## Misc
- [RVC4] Optimized the loading of NN models and reduced the RAM footprint by half
- Added a DepthAI-specific reviewer skill for easier development and a faster merge process
- Embedded visualizer updated to 3.9.6:
- Improved performance and stability
## Known issues
- Downgrading from OS 1.40.0 to any OS between 1.24.0 and 1.31.1 causes an STM flash error that leads to a device crash when running any pipeline. To fix the issue, downgrade to OS 1.35.0 first, before you downgrade to the above OS range
## [RVC4] Luxonis OS compatibility
Integration tested with Luxonis OS 1.30.1, 1.35.0, and 1.40.0.
3.9.0 (2026-08-17)
File truncated at 100 lines see the full file
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged depthai at Robotics Stack Exchange
Package Summary
| Version | 3.10.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-09-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Aljaž Sebastjan Ahtik
Authors
- Martin Peterlin
DepthAI Library
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.ybranch.
- For production projects that still rely on v2, check out the
v2_stablebranch.- Need to migrate? Follow the step-by-step v2 → v3 Porting Guide.
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
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::ImgDetectionsFilter>();
In Python, they are available under dai.beta.node:
node = pipeline.create(dai.beta.node.ImgDetectionsFilter)
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.
Dependencies
- CMake >= 3.20
- C/C++17 compiler
- [Linux] libudev >= 1.0.0
- [optional] OpenCV 4 (required if building examples and for record and replay)
- [optional] PCL (required for point cloud example)
To install libudev on Debian based systems (Ubuntu, etc.): sudo apt install libudev-dev
To install OpenCV:
MacOS: brew install opencv
Linux: sudo apt install libopencv-dev
Windows: choco install opencv
To install PCL:
MacOS: brew install pcl
Linux: sudo apt install libpcl-dev
Using Python bindings
Installing the latest pre-released version of the library can be done with:
python3 -m pip install --extra-index-url https://artifacts.luxonis.com/artifactory/luxonis-python-release-local/ --pre -U depthai
or by running:
python3 examples/python/install_requirements.py on the branch you want to install
For more specific information about Python bindings, see Python README.
Building
Make sure submodules are updated
git submodule update --init --recursive
Then configure and build
cmake -S . -B build
cmake --build build --parallel [num CPU cores]
On Windows it’s often required to specify the location of the OpenCV installation. In case you used chocolatey to install OpenCV, you can use the following command:
cmake -S . -B build -DOpenCV_DIR=C:/tools/opencv/build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --parallel [num CPU cores]
ℹ️ To speed up build times, use
cmake --build build --parallel [num CPU cores].
File truncated at 100 lines see the full file
Changelog for package depthai
3.10.0 (2026-09-07)
## Features
-
[_Beta_] Stitching node
- Stitches frames from two different sensors based on matching features in the overlap of the images
- Supports two stitching modes:
- Panorama stitching based on the image overlap
- Planar projection onto a configurable plane
- A [panorama example](https://github.com/luxonis/depthai-core/blob/main/examples/python/HostNodes/stitching_panorama.py) and a [planar projection example](https://github.com/luxonis/depthai-core/blob/main/examples/python/HostNodes/stitching_planar_projection.py) are available
-
[*RVC4*] Align node
- A generic way to align [Transformable]{.title-ref} messages or `ImgFrame`s with each other in any order
- Can align an [ImgFrame]{.title-ref} to any transformable message type
- Supports transforming custom messages if they override the [transformTo]{.title-ref} function and the node runs on the host. A [Python example](https://github.com/luxonis/depthai-core/blob/main/examples/python/Align/custom_message_align.py) and a [C++ example](https://github.com/luxonis/depthai-core/blob/main/examples/cpp/Align/custom_message_align.cpp) are available
- [ImgDetections]{.title-ref} alignment is shown in a [C++ example](https://github.com/luxonis/depthai-core/blob/main/examples/cpp/Align/img_detections_align.cpp) and a [Python example](https://github.com/luxonis/depthai-core/blob/main/examples/python/Align/img_detections_align.py)
-
Message save and load functions
- DepthAI messages can be written to a file and then read back with the new API: [msg.save("name.dai")]{.title-ref} and [msg.load("name.dai")]{.title-ref}
- The saved file is a binary protobuf envelope
- The following messages are supported: [ImgFrame]{.title-ref}, [NNData]{.title-ref}, [ImgDetections]{.title-ref}, [SpatialImgDetections]{.title-ref}, [SegmentationMask]{.title-ref}, [PointCloudData]{.title-ref}, [RGBDData]{.title-ref}, [IMUData]{.title-ref}, and [ImgAnnotations]{.title-ref}
-
[*RVC4*] ToF undistortion
- [setOutputUndistortion]{.title-ref} lets you undistort the ToF depth frame
-
Extrinsics now carry a `toDeviceId` field
- Used together with [toCameraSocket]{.title-ref} for better transformation handling in multi-device setups
- The field is automatically populated with the ID of the device that created the message, because that is the device [toCameraSocket]{.title-ref} refers to
## Bug fixes
-
[*RVC2*] VideoEncoder checks parameter coherency
- Unvalidated parameters caused significant performance degradation when rendering a video stream with incorrect parameters
- [RVC2] The LEON OS unwind section now uses the standard [.eh_frame]{.title-ref} naming, so the linker cleans up stale unwind records
- [getMaskData]{.title-ref} bindings for [SpatialImgDetections]{.title-ref} and [ImgDetections]{.title-ref} now return a generic [py::object]{.title-ref}
- Device discovery functions (for example [getAllConnectedDevices]{.title-ref}) now release the GIL, which prevents stuttering of a running pipeline
- Four-point transform in ImageManip now properly handles normalized coordinates
- Rotation is now properly applied to [addCropRotatedRect]{.title-ref} when coordinates are normalized
- Stricter intrinsics matrix validation
- The device health check is now more robust when the device is in use
- DetectionParser only considers outputs with [_yolo]{.title-ref} in the name when validating the number of strides
## Misc
- [RVC4] Optimized the loading of NN models and reduced the RAM footprint by half
- Added a DepthAI-specific reviewer skill for easier development and a faster merge process
- Embedded visualizer updated to 3.9.6:
- Improved performance and stability
## Known issues
- Downgrading from OS 1.40.0 to any OS between 1.24.0 and 1.31.1 causes an STM flash error that leads to a device crash when running any pipeline. To fix the issue, downgrade to OS 1.35.0 first, before you downgrade to the above OS range
## [RVC4] Luxonis OS compatibility
Integration tested with Luxonis OS 1.30.1, 1.35.0, and 1.40.0.
3.9.0 (2026-08-17)
File truncated at 100 lines see the full file
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged depthai at Robotics Stack Exchange
Package Summary
| Version | 3.10.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-09-07 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Aljaž Sebastjan Ahtik
Authors
- Martin Peterlin
DepthAI Library
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.ybranch.
- For production projects that still rely on v2, check out the
v2_stablebranch.- Need to migrate? Follow the step-by-step v2 → v3 Porting Guide.
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
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::ImgDetectionsFilter>();
In Python, they are available under dai.beta.node:
node = pipeline.create(dai.beta.node.ImgDetectionsFilter)
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.
Dependencies
- CMake >= 3.20
- C/C++17 compiler
- [Linux] libudev >= 1.0.0
- [optional] OpenCV 4 (required if building examples and for record and replay)
- [optional] PCL (required for point cloud example)
To install libudev on Debian based systems (Ubuntu, etc.): sudo apt install libudev-dev
To install OpenCV:
MacOS: brew install opencv
Linux: sudo apt install libopencv-dev
Windows: choco install opencv
To install PCL:
MacOS: brew install pcl
Linux: sudo apt install libpcl-dev
Using Python bindings
Installing the latest pre-released version of the library can be done with:
python3 -m pip install --extra-index-url https://artifacts.luxonis.com/artifactory/luxonis-python-release-local/ --pre -U depthai
or by running:
python3 examples/python/install_requirements.py on the branch you want to install
For more specific information about Python bindings, see Python README.
Building
Make sure submodules are updated
git submodule update --init --recursive
Then configure and build
cmake -S . -B build
cmake --build build --parallel [num CPU cores]
On Windows it’s often required to specify the location of the OpenCV installation. In case you used chocolatey to install OpenCV, you can use the following command:
cmake -S . -B build -DOpenCV_DIR=C:/tools/opencv/build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --parallel [num CPU cores]
ℹ️ To speed up build times, use
cmake --build build --parallel [num CPU cores].
File truncated at 100 lines see the full file
Changelog for package depthai
3.10.0 (2026-09-07)
## Features
-
[_Beta_] Stitching node
- Stitches frames from two different sensors based on matching features in the overlap of the images
- Supports two stitching modes:
- Panorama stitching based on the image overlap
- Planar projection onto a configurable plane
- A [panorama example](https://github.com/luxonis/depthai-core/blob/main/examples/python/HostNodes/stitching_panorama.py) and a [planar projection example](https://github.com/luxonis/depthai-core/blob/main/examples/python/HostNodes/stitching_planar_projection.py) are available
-
[*RVC4*] Align node
- A generic way to align [Transformable]{.title-ref} messages or `ImgFrame`s with each other in any order
- Can align an [ImgFrame]{.title-ref} to any transformable message type
- Supports transforming custom messages if they override the [transformTo]{.title-ref} function and the node runs on the host. A [Python example](https://github.com/luxonis/depthai-core/blob/main/examples/python/Align/custom_message_align.py) and a [C++ example](https://github.com/luxonis/depthai-core/blob/main/examples/cpp/Align/custom_message_align.cpp) are available
- [ImgDetections]{.title-ref} alignment is shown in a [C++ example](https://github.com/luxonis/depthai-core/blob/main/examples/cpp/Align/img_detections_align.cpp) and a [Python example](https://github.com/luxonis/depthai-core/blob/main/examples/python/Align/img_detections_align.py)
-
Message save and load functions
- DepthAI messages can be written to a file and then read back with the new API: [msg.save("name.dai")]{.title-ref} and [msg.load("name.dai")]{.title-ref}
- The saved file is a binary protobuf envelope
- The following messages are supported: [ImgFrame]{.title-ref}, [NNData]{.title-ref}, [ImgDetections]{.title-ref}, [SpatialImgDetections]{.title-ref}, [SegmentationMask]{.title-ref}, [PointCloudData]{.title-ref}, [RGBDData]{.title-ref}, [IMUData]{.title-ref}, and [ImgAnnotations]{.title-ref}
-
[*RVC4*] ToF undistortion
- [setOutputUndistortion]{.title-ref} lets you undistort the ToF depth frame
-
Extrinsics now carry a `toDeviceId` field
- Used together with [toCameraSocket]{.title-ref} for better transformation handling in multi-device setups
- The field is automatically populated with the ID of the device that created the message, because that is the device [toCameraSocket]{.title-ref} refers to
## Bug fixes
-
[*RVC2*] VideoEncoder checks parameter coherency
- Unvalidated parameters caused significant performance degradation when rendering a video stream with incorrect parameters
- [RVC2] The LEON OS unwind section now uses the standard [.eh_frame]{.title-ref} naming, so the linker cleans up stale unwind records
- [getMaskData]{.title-ref} bindings for [SpatialImgDetections]{.title-ref} and [ImgDetections]{.title-ref} now return a generic [py::object]{.title-ref}
- Device discovery functions (for example [getAllConnectedDevices]{.title-ref}) now release the GIL, which prevents stuttering of a running pipeline
- Four-point transform in ImageManip now properly handles normalized coordinates
- Rotation is now properly applied to [addCropRotatedRect]{.title-ref} when coordinates are normalized
- Stricter intrinsics matrix validation
- The device health check is now more robust when the device is in use
- DetectionParser only considers outputs with [_yolo]{.title-ref} in the name when validating the number of strides
## Misc
- [RVC4] Optimized the loading of NN models and reduced the RAM footprint by half
- Added a DepthAI-specific reviewer skill for easier development and a faster merge process
- Embedded visualizer updated to 3.9.6:
- Improved performance and stability
## Known issues
- Downgrading from OS 1.40.0 to any OS between 1.24.0 and 1.31.1 causes an STM flash error that leads to a device crash when running any pipeline. To fix the issue, downgrade to OS 1.35.0 first, before you downgrade to the above OS range
## [RVC4] Luxonis OS compatibility
Integration tested with Luxonis OS 1.30.1, 1.35.0, and 1.40.0.
3.9.0 (2026-08-17)
File truncated at 100 lines see the full file
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged depthai at Robotics Stack Exchange
Package Summary
| Version | 2.31.1 |
| License | MIT |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/luxonis/depthai-core.git |
| VCS Type | git |
| VCS Version | ros-release |
| Last Updated | 2026-01-26 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Adam Serafin
Authors
- Martin Peterlin
DepthAI C++ Library
Core C++ library
Important — You’re viewing the
v2.x.ybranch.
- For the latest version with support for RVC4 devices, please switch to the
mainbranch.
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-corerequired by OpenSSL dependency.sudo yum install perl-coreAnother option is to disable CURL support by setting
DEPTHAI_ENABLE_CURL=OFFwhen 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-Swith-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 for package depthai
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}
2.28.0 (2024-08-21)
Features * Changed the automatic crashdump collection to always on unless DEPTHAI_DISABLE_CRASHDUMP_COLLECTION is set. * Added DEPTHAI_ENABLE_ANALYTICS_COLLECTION environment varialbe - when set, analytic data (pipeline schema) is sent to Luxonis which will be used to further improve the library. * Undistort both outputs of ToF by default. * Improved 3A syncing on OAK-D-LR * Added support for YoloV10 * Bug fixes * Fix Camera node to correctly allocate resources for
File truncated at 100 lines see the full file