Skip to content

Commit 4919947

Browse files
saching13SzabolcsGergelyanonymous-1000themarpealex-luxonis
authored
Ros Release 2.23 (#925)
* Update FW w/ syncing stall fix * Update stereo with more robust frame sync * Update FW with optional override of spec translation for stereo algorithm calculations * Correct type * Update SPIOut.hpp to address error C4458: declaration of 'id' hides class member * Expose center alignment scale factor for debug purposes * Expose SIPP mempool configurable sizes * Update FW * Fixed usage of DeviceBootloader with incomplete DeviceInfo and added a convinience constructor * Closes: #714 * Add alpha scaling option for StereoDepth * Update FW before merge * Update FW with RGB alignment fix * Update FW with performance metrics when DEPTHAI_LEVEL=info is enabled; enable brightness filter for 0 intensity pixels by default * Improve spatial calculation X and Y accuracy; fix RGB alignment when custom output depth size is specified * [XLink] Increased max number of links from 32 to 64 * Add crash dump functionality * Change API to return just crash dump * Update FW with commit hash attached to crash dump * Update FW with fix for serialization of thread name * Add hasCrashDump API * Update FW * Update FW, crash dump contains device ID * Enable MEDAIN spatial calculation method for SpatialDetectionNetwork * Update FW * Update docs * FW: HW sync (trigger mode) enabled for OAK-D-LR, for cameras with matching FPS * Change default SIPP buffer sizes * Add 3A skipping option to reduce CPU usage * Change API to be able to configure isp 3A FPS * Update BoarConfig with limits * Update script node python bindings * Update FW: Add workaround for BNO sequence number limit of 256 (sensors sends uint8) * FW: camera sensor improvements: - AR0234 improved AE smoothness, increased max gain to 400x (first 25.6x analog), - OV9782 on RGB/CAM-A socket max FPS: 120 (previously was only for OV9282), also improves image quality in very bright light, - OV9782/9282 minimum exposure time decreased: 20us -> 10us, helps in very bright light. TODO update tuning to make use of it, currently only possible to use with manual exposure * Update stereo_depth_video.cpp * Enable interrupt mode: Update BMI driver with fixes from: boschsensortec/BMI270_SensorAPI#16 * Update ObjectTracker with improvements from rvc3 * Add API to set trackingPerClass in ObjectTracker node * Update FW before merge * Update FW with IMU fix for BNO * Add IMU versioning; firmware versioning, firmware update status callbacks * Update FW with fix for BMI timestamp * Update FW: IMU support for OAK-D-SR * Fix 'default constrictible' error on some compilers * Update FW * Add IMU FW update RPC * Updated yolo description * Update examples * Update FW with deprecation warning for enableFirmwareUpdate * Change imu version to imu type * Update FW before merge * Added C++14 requirement to examples & tests * Tweaked crash_report example * [FW] Added missing bindings for CameraControl and ImgFrame * Update FW with fix for calibration load example * fix stability_stress_test fail to link on ubuntu - fixes #769 * fix isClosed/checkClosed threading, rpcClient exceptions - remove thread-unsafe checkClosed() - update isClosed() doxygen + comments - protect DataInputQueue::maxDataSize with std::atomic - remove unused dai::DeviceBase::rpcStream - fixes #520 * fix var hides class member, this-> in constructors - fix few compile warn 'ex' unreferenced local variable - rename setBusId() param to not hide class member - refactor XLinkConnection constructors - partial fix #247 * fix: stdexcept header added for std::runtime_error Signed-off-by: Onuralp SEZER <[email protected]> * [FW] Removed UTF-8 degree sign from temperature prints. Closes: #773 * Move sipp buffer size from BoardConfig to GlobalProperties * Update style * Partially reverted bce1444 - only kept the C++14 specified in examples, tests already had the version specified * [Stereo] Add option to invalidate edge pixels on disparity/depth frame * Update FW: handle disparity flipping * Update FW: support for stereo.setOutputSize when LEFT or RIGHT alignment is set * Update FW: support for stereo between RGB and LEFT/RIGHT * [FW] ImageManip CSC improvements, New boards and power cycle fix * Update FW: support for configurable ImageManip interpolation type * FW: fix for UART0 / '/dev/ttyS0' init failure in Script node * Update API to use dai::Interpolation * Update FW with latest develop fixes * Update FW with fix for USB devices stuck after reboot * Update shared * Release v2.21.0 * Fix device destructor * Update FW: fix spatial location calculator for 400p/480p resolution * Release v2.21.1 * FW: Fix camera intrinsics when RGB alignment is used * Release v2.21.2 * FW: fix running 4 cameras with Ethernet, 4th cam enabled didn't stream due to device memory allocation * prevent duplicate xlink stream names - fixes #469 - add test case * [FW] Fix for OAK-D-SR camera enumeration * [FW] OAK-D-LR R1 preparation * [FW / BL] Updated both FW & BL for OAK-D-LR R1. ETH fixes and moved to BNO086 IMU. * [BL] Updated to 0.0.25 release * Deprecated misleading board socket aliases * [FW] Match shared * Tweaked naming a bit more * WIP: Refactoring constructors * Added 2 additional board socket enums * Removed ; * Updated FW and fixed Device constructors * Added more checks when parsing message and a test * Add get/set to all config messages * Refactored logging to use device logger and capability to modify log levels for a specific device * Added custom spdlog logger library usage and exposed profiling data globally and per device * Updated XLink with new functionality and increased PoE search time * Added means of grabbing global profiling data as well * Updated XLink with 255.255.255.255 discovery added * Applied formatting * [Stereo] Fix auto distortion correction for 400p * [Stereo] Fix temporal filter crash on startup * Add missing info log level * Logging: fixed `DEPTHAI_DEBUG=1` causing a crash at init, `__gnu_cxx::recursive_init_error` exception due to `logger::get_level()` call * CrashDump: add optional clear of crash dump, enabled by default * Color/Mono/Camera: add `setRawOutputPacked` config -- cherry-picked, FW and shared updated in upcoming commit * ImgFrame: handle RAW10/12/14 (unpacked) like RAW16 * ToF node with ToFConfig -- cherry-picked and squashed * `make clangformat` * FW: UVC: H.264 with `ImgFrame::Type::BITSTREAM`, few more config checks * Device: fix some constructors to forward pipeline DeviceConfig * Modified XLink to a temporary branch * Updated XLink with fixed winusb mxid retrieval * FW: Stereo: handle queue blocking settings * [FW] Updated for some devices and ToF * Added filter by device name * [FW] WIP for S2 PoE boards * [FW] WIP for new SoMs * Fixed build * [FW] Fixed camera orientation * Add example for read calibration in script node * Bump version to v2.22.0 * Add to cmake and fix errors * FW: update IMX296 tuning * [FW] Fixed OAK-D-SR and OV9782 issues * Change printf to node.info in script node read calibration example * ToF: Add median filter support * Update FW to latest develop * FW: Stereo: Apply alpha scaling parameter to RGB intrinsics when RGB alignment is enabled * FW: fix CAM_D enumeration on OAK-FFC-4P R7 * Camera: move alpha parameter as optional to be consistent with stereo * Update FW * BMI: Fix accumulating latency due to slow xlink read * Fix constructors overriding maxUsbSpeed * hasAutofocus fix based on device name/lensPosition * WIP: Device name improvements * Added improvements to device naming * Fixed device related logging * Moved ts, tsDevice, and sequenceNum from descendants to RawBuffer * Added getters and setters * z_map for tof * ts to tsDevice fix * Updated ColorCamera's setSensorCrop comment for documentation * Removed redundant getters and setters * FW: add support for OAK-D-SR-PoE R1M1E1 * Fixed mistake in ImgFrame * Ran ClangFormat * Added DEPTHAI_ENABLE_LIBUSB option, to enable/disable USB protocol in build time * Applied style * Updated XLink library with some fixes * FW: fix default fsync on OAK-D-SR-PoE. GPIO46 input by default * hasautofocusIC * FW: fix 4 cams crash on PoE due to memory allocation * Update FW / shared * FW: fix OAK-D-SR camera enum. IMX296 updates: - support for RPi GS Cam paired with Luxonis SL6996 RPi camera adapter - support for external trigger on XTR/XTRIG pin: active low, pulse width determines exposure time. Limitation: needs an initial trigger shortly after start to avoid a crash, or `DEPTHAI_WATCHDOG=0` can be a workaround * Attempt to fix serialization error on windows compiler * Update FW * Implemented timesync optimization * Fixed new timesync bugs * Moved treceive back to XLink * Changes according to PR issue * Clangformat * Bump FW * WIP: Device name improvements * Added improvements to device naming * FIXME: does not work on rpi * Updated FW with changes * Bump shared * Fixed compiler error * Changed struct timespec to custom struct to fix RPI size issues * Bump shared * FW, ColorCamera: add new almost-full-FOV resolutions for IMX378/477, scaled: 1352x1012, 4lane-only, 1/3 scaling 2024x1520, 1/2 binning * Fixed incorrect warp in issue #882 * [FW] OAK-D SR PoE and ToF improvements * [FW] Improved OV9782 fps handling * Updated FW & XLink with backward compatible timestamping * FW: fixes for AR0234 fsync, AR0234 AE max exposure: 16->33 ms, more robust camera handling (especially in sync modes) * fixed the order of translation multiplication * clang update * [FW] deviceName fixes and updated for EepromData changes * Increased num XLink connections to 64 * Bumped num XLink connections to 64 * Update README.md * Update changelog and package xml * removed merge dubpicate --------- Signed-off-by: Onuralp SEZER <[email protected]> Co-authored-by: SzabolcsGergely <[email protected]> Co-authored-by: anonymous-1000 <[email protected]> Co-authored-by: TheMarpe <[email protected]> Co-authored-by: TheMarpe <[email protected]> Co-authored-by: alex-luxonis <[email protected]> Co-authored-by: Erol444 <[email protected]> Co-authored-by: szabi-luxonis <[email protected]> Co-authored-by: Dale Phurrough <[email protected]> Co-authored-by: Onuralp SEZER <[email protected]> Co-authored-by: Florin Buica <[email protected]> Co-authored-by: alex-luxonis <[email protected]> Co-authored-by: Andrej Susnik <[email protected]> Co-authored-by: Aniel Alexa <[email protected]> Co-authored-by: AnielAlexa <[email protected]> Co-authored-by: asahtik <[email protected]>
1 parent 22db649 commit 4919947

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+735
-464
lines changed

CHANGELOG.rst

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,29 @@
22
Changelog for package depthai
33
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
44

5+
2.23.0 (2023-11-14)
6+
-----------
7+
* ImageManip - configurable interpolation type
8+
* Script - added missing bindings for reading device releated data (on device calibration, etc...)
9+
* Added Device::getDeviceName and Device::getProductName that target a user name and a "SKU" name
10+
* Timesync - improved synchronization with tweaks to XLink
11+
* Calibration - added housingExtrinsics
12+
* Fix CAM_D enumeration on OAK-FFC-4P R7
13+
* BMI270 IMU - fix latency when slow reading
14+
* Device related logging
15+
* OAK-D-SR-POE - new revision bugfixes
16+
* Fix 4 cameras crash on PoE due to memory allocation
17+
* Fixed incorrect warp in issue #882
18+
* XLink - updated number of devices to 64
19+
* ToF - median filter and Z map support (still not the final decoding pipeline)
20+
* hasAutofocus value fixed and introduced hasAutofocusIC
21+
* Added timestamps and sequence numbers to all Message types
22+
* Added DEPTHAI_ENABLE_LIBUSB for potentially disabling USB protocol (to not require libusb library)
23+
* OV9782 and AR0234 improvements:
24+
* OV9782 FPS improvements
25+
* AR0234 max exposure time bump to 33ms and improved FSync INPUT mode
26+
* Contributors: Alex Bougdan, Szabolcs Gergely, Martin Peterlin
27+
528
2.22.0 (2023-06-15)
629
-----------
730
* UVC Node - Capability to create a pipeline that sends data over UVC (or flash it)

CMakeLists.txt

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ endif()
88

99
set(HUNTER_SKIP_PACKAGE_nlohmann_json OFF)
1010
set(BUILD_SHARED_LIBS ON)
11+
# Early options
12+
option(DEPTHAI_ENABLE_LIBUSB "Enable usage of libusb and interaction with USB devices" ON)
13+
1114
# Set type to canonicalize relative paths for user-provided toolchain
1215
set(CMAKE_TOOLCHAIN_FILE "" CACHE FILEPATH "CMake toolchain path")
1316

@@ -45,7 +48,7 @@ if(WIN32)
4548
endif()
4649

4750
# Create depthai project
48-
project(depthai VERSION "2.22.0" LANGUAGES CXX C)
51+
project(depthai VERSION "2.23.0" LANGUAGES CXX C)
4952
get_directory_property(has_parent PARENT_DIRECTORY)
5053
if(has_parent)
5154
set(DEPTHAI_VERSION ${PROJECT_VERSION} PARENT_SCOPE)
@@ -254,6 +257,7 @@ add_library(${TARGET_CORE_NAME}
254257
src/utility/Environment.cpp
255258
src/utility/XLinkGlobalProfilingLogger.cpp
256259
src/utility/Logging.cpp
260+
src/utility/EepromDataParser.cpp
257261
src/xlink/XLinkConnection.cpp
258262
src/xlink/XLinkStream.cpp
259263
src/openvino/OpenVINO.cpp
@@ -449,13 +453,16 @@ target_link_libraries(${TARGET_CORE_NAME}
449453
set(DEPTHAI_DEVICE_VERSION "${DEPTHAI_DEVICE_SIDE_COMMIT}")
450454
target_compile_definitions(${TARGET_CORE_NAME}
451455
PRIVATE
452-
# XLink required define
453-
__PC__
454456
# Add depthai-device version
455457
DEPTHAI_DEVICE_VERSION="${DEPTHAI_DEVICE_VERSION}"
456458
# Add depthai-bootloader version
457459
DEPTHAI_BOOTLOADER_VERSION="${DEPTHAI_BOOTLOADER_VERSION}"
458460
)
461+
# Add compile flag if libusb is available
462+
if(DEPTHAI_ENABLE_LIBUSB)
463+
target_compile_definitions(${TARGET_CORE_NAME} PRIVATE DEPTHAI_ENABLE_LIBUSB)
464+
set(DEPTHAI_HAVE_LIBUSB_SUPPORT ON)
465+
endif()
459466

460467
# Add Backward dependency if enabled (On by default)
461468
if(DEPTHAI_ENABLE_BACKWARD)
@@ -484,8 +491,9 @@ macro(add_runtime_dependencies depending_target dependency)
484491
set(required_dll_files ${dlls} ${depthai_dll_libraries})
485492
# Copy the required dlls
486493
add_custom_command(TARGET ${depending_target} POST_BUILD COMMAND
487-
${CMAKE_COMMAND} -E copy_if_different ${required_dll_files} $<TARGET_FILE_DIR:${depending_target}>
494+
"$<$<BOOL:${required_dll_files}>:${CMAKE_COMMAND};-E;copy_if_different;${required_dll_files};$<TARGET_FILE_DIR:${depending_target}>>"
488495
COMMAND_EXPAND_LISTS
496+
VERBATIM
489497
)
490498
message(STATUS "Required dlls for core are: ${required_dll_files}")
491499
endif()

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# DepthAI C++ Library
22

3+
[![Forum](https://img.shields.io/badge/Forum-discuss-orange)](https://discuss.luxonis.com/)
4+
[![Docs](https://img.shields.io/badge/Docs-DepthAI_API-yellow)](https://docs.luxonis.com/projects/api)
35
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)
46

57
Core C++ library

cmake/Depthai/DepthaiDeviceSideConfig.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
set(DEPTHAI_DEVICE_SIDE_MATURITY "snapshot")
33

44
# "full commit hash of device side binary"
5-
set(DEPTHAI_DEVICE_SIDE_COMMIT "f033fd9c7eb0b3578d12f90302e87759c78cfb36")
5+
set(DEPTHAI_DEVICE_SIDE_COMMIT "39a9d271a9ed0172f6481877723fca96d41b54c6")
66

77
# "version if applicable"
88
set(DEPTHAI_DEVICE_SIDE_VERSION "")

cmake/Hunter/config.cmake

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@ hunter_config(
88
hunter_config(
99
XLink
1010
VERSION "luxonis-2021.4.2-develop"
11-
URL "https://github.com/luxonis/XLink/archive/457b23fb33e1146610e1a4e52defa7565046977a.tar.gz"
12-
SHA1 "006a2bd391498aea7895e988b787a420e7f51fa9"
11+
URL "https://github.com/luxonis/XLink/archive/c940feaf9321f06a7d9660f28e686a9718135f38.tar.gz"
12+
SHA1 "52935b6ceb470ee632de3348b9d2aaa2c6c24ac0"
13+
CMAKE_ARGS
14+
XLINK_ENABLE_LIBUSB=${DEPTHAI_ENABLE_LIBUSB}
1315
)
1416

1517
hunter_config(

cmake/config.hpp.in

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,32 @@
66
// This build supports OpenCV integration?
77
#cmakedefine DEPTHAI_HAVE_OPENCV_SUPPORT
88

9+
// This build supports libusb?
10+
#cmakedefine DEPTHAI_HAVE_LIBUSB_SUPPORT
11+
912
// Build specific settings overwrite
1013
#ifdef DEPTHAI_TARGET_CORE
1114
#ifndef DEPTHAI_TARGET_OPENCV
1215
#undef DEPTHAI_HAVE_OPENCV_SUPPORT
1316
#endif
1417
#endif
18+
19+
namespace dai
20+
{
21+
namespace build
22+
{
23+
24+
#ifdef DEPTHAI_HAVE_OPENCV_SUPPORT
25+
constexpr static bool HAVE_OPENCV_SUPPORT = true;
26+
#else
27+
constexpr static bool HAVE_OPENCV_SUPPORT = false;
28+
#endif
29+
30+
#ifdef DEPTHAI_HAVE_LIBUSB_SUPPORT
31+
constexpr static bool HAVE_LIBUSB_SUPPORT = true;
32+
#else
33+
constexpr static bool HAVE_LIBUSB_SUPPORT = false;
34+
#endif
35+
36+
} // namespace build
37+
} // namespace dai

examples/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,9 @@ function(dai_add_example example_name example_src enable_test)
8383
set(depthai_dll_libraries "$<TARGET_RUNTIME_DLLS:${example_name}>")
8484
endif()
8585
add_custom_command(TARGET ${example_name} POST_BUILD COMMAND
86-
${CMAKE_COMMAND} -E copy_if_different ${depthai_dll_libraries} $<TARGET_FILE_DIR:${example_name}>
86+
"$<$<BOOL:${depthai_dll_libraries}>:${CMAKE_COMMAND};-E;copy_if_different;${depthai_dll_libraries};$<TARGET_FILE_DIR:${example_name}>>"
8787
COMMAND_EXPAND_LISTS
88+
VERBATIM
8889
)
8990
endif()
9091
endfunction()
@@ -320,6 +321,7 @@ dai_add_example(script_json_communication Script/script_json_communication.cpp O
320321
dai_add_example(script_change_pipeline_flow Script/script_change_pipeline_flow.cpp OFF)
321322
target_compile_definitions(script_change_pipeline_flow PRIVATE BLOB_PATH="${mobilenet_5shaves_blob}")
322323
dai_add_example(script_get_device_info Script/script_get_device_info.cpp ON)
324+
dai_add_example(script_read_calibration Script/script_read_calibration.cpp ON)
323325

324326
# SpatialDetection
325327
dai_add_example(spatial_location_calculator SpatialDetection/spatial_location_calculator.cpp ON)

examples/ColorCamera/rgb_preview.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ int main() {
3838
}
3939

4040
// Device name
41-
cout << "Device name: " << device.getDeviceName() << endl;
41+
cout << "Device name: " << device.getDeviceName() << " Product name: " << device.getProductName() << endl;
4242

4343
// Output queue will be used to get the rgb frames from the output defined above
4444
auto qRgb = device.getOutputQueue("rgb", 4, false);
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#include <iostream>
2+
3+
// Includes common necessary includes for development using depthai library
4+
#include "depthai/depthai.hpp"
5+
6+
int main() {
7+
using namespace std;
8+
9+
// Start defining a pipeline
10+
dai::Pipeline pipeline;
11+
12+
// Script node
13+
auto script = pipeline.create<dai::node::Script>();
14+
script->setProcessor(dai::ProcessorType::LEON_CSS);
15+
script->setScript(R"(
16+
import time
17+
18+
cal = Device.readCalibration2()
19+
left_camera_id = cal.getStereoLeftCameraId()
20+
right_camera_id = cal.getStereoRightCameraId()
21+
22+
extrinsics = cal.getCameraExtrinsics(left_camera_id, right_camera_id)
23+
intrinsics_left = cal.getCameraIntrinsics(left_camera_id)
24+
25+
node.info(extrinsics.__str__())
26+
node.info(intrinsics_left.__str__())
27+
28+
time.sleep(1)
29+
node.io['end'].send(Buffer(32))
30+
)");
31+
32+
auto xout = pipeline.create<dai::node::XLinkOut>();
33+
xout->setStreamName("end");
34+
35+
script->outputs["end"].link(xout->input);
36+
37+
// Connect to device with pipeline
38+
dai::Device device(pipeline);
39+
40+
device.getOutputQueue("end")->get();
41+
42+
return 0;
43+
}

examples/Warp/warp_mesh.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ int main() {
2727
constexpr std::tuple<int, int> WARP1_OUTPUT_FRAME_SIZE = {992, 500};
2828
warp1->setOutputSize(WARP1_OUTPUT_FRAME_SIZE);
2929
warp1->setMaxOutputFrameSize(std::get<0>(WARP1_OUTPUT_FRAME_SIZE) * std::get<1>(WARP1_OUTPUT_FRAME_SIZE) * 3);
30-
warp1->setInterpolation(dai::node::Warp::Properties::Interpolation::BYPASS);
30+
warp1->setInterpolation(dai::Interpolation::NEAREST_NEIGHBOR);
3131
warp1->setHwIds({1});
3232

3333
camRgb->preview.link(warp1->inputImage);
@@ -47,7 +47,7 @@ int main() {
4747
// clang-format on
4848
warp2->setWarpMesh(mesh2, 3, 3);
4949
warp2->setMaxOutputFrameSize(maxFrameSize);
50-
warp2->setInterpolation(dai::node::Warp::Properties::Interpolation::BICUBIC);
50+
warp2->setInterpolation(dai::Interpolation::BICUBIC);
5151
warp2->setHwIds({2});
5252

5353
camRgb->preview.link(warp2->inputImage);

0 commit comments

Comments
 (0)