Skip to content

Commit 58c1db6

Browse files
saching13alex-luxonisthemarpeSzabolcsGergelySzabolcsGergely
authored
Ros release 2.20.2 (#708)
* CameraControl: add `setManualWhiteBalance(colorTemperatureK)` * Update FW: reduce ColorCamera still pool: 4 -> 1 frame * Update FW: support for up to 3x IMX378/IMX477 or 3x OV9782 color cameras. Note: configs for Left and Right sockets must be identical for now * Fix FW, support for multiple IMX378/477 * Update FW (IMX214 multiple resolutions), add more camera sockets * Update FW: CAM-D (4th socket) tested, AR0234 support. Note: if AR0234 sensors are used, cannot be combined with other types at the moment (due to tuning blobs in use) * Update FW: changes for IMX214/OV7251, other fixes * Update FW: fix ColorCamera `preview`/`video`/`still` when multiple cameras use these outputs * Update FW: change SIPP mem alloc to allow 4x ColorCamera to operate at the same time * Update FW: StereoDepth: fix RGB alignment when running at calib resolution (OAK-D with 800_P or OAK-D-Lite) * Update FW: fix for IMX378 still output at 12MP * Update FW: OV9282/9782 img orientation per camera, fix sync mode * Update FW: - support for camera modules with IMX380 sensor id, reusing IMX378 driver (some Arducam IMX577(?)) - soft-reset the sensor before config, to fix streaming with some Arducam modules * Update FW: IMX577 proper support (0577 sensor ID) * CameraControl: add setAutoFocusLensRange * Add `CameraControl::setFrameSyncMode`, controlling the FSIN pin I/O and camera sync behavior. Implemented for OV9282/OV9782 for now. Note: if one camera sets it to OUTPUT, and other(s) to INPUT, the hardware sync will work, but currently there's one frame de-sync in the sequence numbers (first frame is lost from the 'slave' cameras). This will be fixed * changed spdlog visibility * Add Device::getConnectedCameraProperties * Add new predefined resolutions for ColorCamera: THE_1200_P, THE_13_MP * Update FW: configurable FPS and fix enumeration issues with AR0234 * Added some getters to CameraControl and modified to use chrono where possible * Update FW: populate `CameraProperties::hasAutofocus` * OV5645 and 5MP resolution support * Update FW: fixes for multiple IMX378/477 * Update FW: fixes for OV9282/9782 on CAM-D, fix stereo rectified frame type for color * Update FW: allow `StereoDepth` to work with `ColorCamera`s, without having to call `StereoDepth::setInputResolution` * Add dot-projector/flood-illuminator brightness control for OAK-D-Pro-W, fix OV9782 slow AE due to missing AF * Allow using AR0234/OV5645 (but at degraded image quality) with other sensors enabled at the same time * Update FW with multiple fixes: - properly handle manual/auto focus with multiple cameras - fix potential init failure with same sensors (IMX378/477/214 / AR0234 / OV5645) on Left and Right sockets - fix sensor name reporting for AR0234 / IMX378/380/477/577 * Fix CI build (not matching bootloader-shared commits) * Script: add optional name parameter to `setScriptPath`, might come handy if the path is long, to have a shorter identifier * ColorCamera/MonoCamera: add `frameEvent` output, to be used for IR control, etc. * Update FW: FSYNC for IMX378 * Update FW, add initial support for IMX582/IMX586 * Updates for IMX582 - full 48MP res, temporarily center cropped (5312x6000 out of 8000x6000) * CameraControl: add STROBE MX-GPIO control, applicable for ext trig mode. AR0234 ext trig: - `cam[c].initialControl.setExternalTrigger(1, 0)` for snapshot mode (exposure+readout following immediately after trigger) - `cam[c].initialControl.setFrameSyncMode(dai.CameraControl.FrameSyncMode.INPUT)` for multiple devices sync (frame time is aligned, exposure could be different per device) Note: sensor trigger pin reacts on rising edge signal, and keeping the line high will cause repeated triggering. * Pipeline: add `setImageManipCmxSizeAdjust` * FW: fixes for 48MP camera, FW build for previous commits * Fix ColorCamera::getSensorCrop calculation for AUTO, was returning zero * WIP - flashUserBootloader * Updated Bootloader and added example * Added monitor thread for DeviceBootloader * Added explicit isUserBootloader call * Updated Bootloader for better User Bootloader support * MonoCamera: add frame pool size config API * Removed device_information and multi_roi from tests * Updated FW with ImageManip dynamic memory allocation * Disabled LATEX generation for docs * Added Warp node * Applied style * Set Yolo default iou threshold to 0.5 * Exposed Bootloader version available when booting a device in bootloader state * [Warp] Exposed HW engines used and interpolation * ImgFrame: add `getColorTemperature`. FW: fix exp/iso report for MonoCamera * CameraControl: update API docs, specify some defaults * Rename CameraProperties -> CameraFeatures * Added a sign cast to max user bootloader size check * Revert "Pipeline: add `setImageManipCmxSizeAdjust`" This reverts commit 591a98b. * Fix typo and add calibration_factory_reset example * Don't use the example as a part of the testing suite Co-authored-by: TheMarpe <[email protected]> * DEPTHAI_DEBUG=1 env var to enable `logDevicePrints`, ColorCamera: THE_12P0_MP, THE_5312X6000 * Update FW, shared: clangformat * `make clangformat`: calibration_factory_reset.cpp, depthai-shared, FW: increase an internal queue size for frameEvent * Exposed Timesync configurability * Docs fixes * Add support for yolov6r2 parsing * Expand spatial image detections with original config * Update CPP examples * Add getTimestamp and getTimestampDevice getter to IMU packets * Update IMU examples * Add THE_1200_P for AR0234 MonoCamera * Several FW updates: - !!! For all sockets/cameras to be scanned, the EEPROM calib data boardName/productName should contain "FFC" or an FFC-related board name: 1090/2090/2088. Otherwise the behavior is to scan only for standard OAK devices sockets/cameras - Some more checks for the LCM48 (on MAX) supported resolutions - Fixes for RGB-mono SW-sync for standard OAK-D / OAK-D-Lite camera configs - AR0234 monochrome support, however needs an OV9282 enabled at the same time for now * Color/MonoCamera: handle some more cases for newly added resolutions/sockets * Update shared/FW after merge, fix error log printed for MonoCamera AUTO socket * Closes: #355 * Bump version to 2.18.0 * Updated FW with some Color/MonoCamera fixes * stability test * Update FW: - fix for high system load crash, especially on PoE devices - for for OV9282 as MonoCamera on RGB/CAM_A socket * FW: OV9282 720p/800p max FPS: 60 -> 120 * stability test * Added a convinience setTimesync function * Added isUserBootloaderSupported to DeviceBootloader * Updated XLink with Windows improvements when scanning for already booted USB devices * Updated FW with device time reset on boot * Bump to v2.19.0 * Improved wording on unavailable devices * Fix yolo v5 decoding when there is a single class * FW: fixes for certain OV9782 and OV9282 permutations/configs, fix for OV9782/OV9282 alone failing on RGB/CAM_A socket * Update CI to Node16 compatible actions * Update FW: fix image size when decimation filter is enabled * Stability test - limit FPS (#633) * Print CPU usage * Limit the FPS so POE devices aren't maxed out * Increase FPS * Reverse changes to the system logger example Co-authored-by: TheMarpe <[email protected]> Co-authored-by: Matevz Morato <[email protected]> * Added getProductName * Added ids to IO for trace events * Modified pipeline schema dump to happen on trace log level as well * Renamed to getDeviceName and added some legacy handling * Updated FW with productName as protected field and ImageManip behavior revert * Updated style * Added IR driver support for new OAK-FFC 4P * FW: bugfix for device bootup with default static IP * OAK-FFC 4P R5M1E5 IR/Dot support * Bump to v2.19.1 * Added EepromError exception class and improved exception handling in calibration related methods * Increased limit on DeviceBootloader monitor timeout * Fixed check for user-provided toolchain file when given relative path (#645) * Fixed check for user-provided toolchain file when given relative path * WIP: camera/socket board configuration and capability to specify name/alias for a camera instead of socket * Updated Bootloader to v0.0.22 * Added camera naming capabilites, setting and retrieving. WIP: rest of devices * FW/CameraControl: fix still-capture for sockets other than RGB/center * [FW] Fixed ImageManip + Subpixel issues and added FFC camera naming * get/set camera FrameEvent filter * Update depthai-shared submodule * Disable depthai-shared commit hash check * Change github workflows ubuntu version * Update submodule * Rename event filter * fix #650 missing XLinkProtocolToStr() (#657) - add local xlinkproto -> string from luxonis/XLink/tree/5c61615066af6539e50a4a17b5df3466e4350b21 * Updated grammar * Update firmware * WIP: Camera node * Added capability to set XLink logging level via XLINK_LEVEL env var * Replace "_CMAKE_" variables with "_DEPTHAI_" (#662) "_CMAKE_" variables are reserved for internal use and should not be used. This change also makes it harder for other CMake scripts to accidentall overwrite this variable. Co-authored-by: Cameron Blomquist <[email protected]> * Add comments * Update FW: Add missing python bindings for boundingBoxMapping * Updated NETWORK Bootloader with dual protocol capabilities * [FW] Fixed a bug in board downselection. OAK-D S2/Pro camera enumeration fix. * [FW] Added support for Mono video/preview in Camera node * CI - Fixed style & tidy jobs * Updated dual BL to v0.0.23 temporary build * Added OAK-D-LR support. WIP: Orientation capability * [FW/XLink] Explicitly limited to single connection * ImageManip added colormap capability. TODO min/max range selection * Add option to override baseline and/or focal length for disparity to depth conversion * [FW] OAK-D-LR - Fixed default image orientation * Updated brief description that affects docs of the DetectionParser node. * Modified API of Camera a bit * Updated FW with Camera changes and warp capabilities * Updated FW with Camera warp capabilities * Added dai::span * Added undistort/warp API to Camera node * FW - Modifed watchdog to do a graceful reset instead * Added additional API to retrieve timestamps at various exposure points * Fixed documentation on ObjectTracker::setMaxObjectsToTrack * WIP: mockIsp capabilities * [FW] Fix for CAM_C not being detected * Device - Added non exclusive boot option * Slight Colormap API improvements * [FW] Added OpenVINO version 'universal' * Added DeviceBase convinience constructors taking name or deviceid as string * Disabled some of the functionality for now * Tweaked getTimestamp & exposure offset API * FW: IMX296 support, added THE_1440x1080 resolution * FW: IMX296 Camera node, IMX378 1080p limited to 60fps * Bump version to 2.20.0 * Applied formatting * Temporary revert to macos-11 for CI due to Catch2 issues * Modified OpenVINO::VERSION_UNIVERSAL * Updated Bootloader to 0.0.24 * Bump version and FW to 2.20.1 (Status LEDs improvement) * calibration_flash example fix * FW: fix crash with ColorCamera at high resolution and certain ISP scaling * Bump version to 2.20.2 * Added an ColorCamera isp scale example, and modified test workflow * FW: fix OV9282 SW-sync on devices with OV9782 RGB camera * FW: fix for IMX378/477/577 on sockets other than RGB --------- Co-authored-by: alex-luxonis <[email protected]> Co-authored-by: TheMarpe <[email protected]> Co-authored-by: SzabolcsGergely <[email protected]> Co-authored-by: szabi-luxonis <[email protected]> Co-authored-by: Matevz Morato <[email protected]> Co-authored-by: moratom <[email protected]> Co-authored-by: TheMarpe <[email protected]> Co-authored-by: alex-luxonis <[email protected]> Co-authored-by: camblomquist <[email protected]> Co-authored-by: Tommy <[email protected]> Co-authored-by: Dale Phurrough <[email protected]> Co-authored-by: Erol444 <[email protected]> Co-authored-by: Cameron Blomquist <[email protected]>
1 parent c8bf70b commit 58c1db6

File tree

7 files changed

+59
-6
lines changed

7 files changed

+59
-6
lines changed

.github/workflows/test.workflow.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ jobs:
5757
cmake -S . -B build -D CMAKE_BUILD_TYPE=Release -D HUNTER_ROOT=$HOME/.hun2_${{ matrix.flavor }} -D DEPTHAI_BUILD_EXAMPLES=ON -D DEPTHAI_BUILD_TESTS=ON -D DEPTHAI_TEST_EXAMPLES=ON
5858
cmake --build build --parallel 4 --config Release
5959
cd build
60-
ctest -C Release --output-on-failure -L usb --no-tests=error
60+
ctest -C Release --output-on-failure -L usb --no-tests=error --repeat until-pass:3
6161
6262
- name: Configure, Build and Test
6363
if: matrix.os == 'linux'
@@ -67,4 +67,4 @@ jobs:
6767
cmake -S . -B build -D CMAKE_BUILD_TYPE=Release -D HUNTER_ROOT=$HOME/.hun2_${{ matrix.flavor }} -D DEPTHAI_BUILD_EXAMPLES=ON -D DEPTHAI_BUILD_TESTS=ON -D DEPTHAI_TEST_EXAMPLES=ON
6868
cmake --build build --parallel 4 --config Release
6969
cd build
70-
ctest -C Release --output-on-failure -L usb --no-tests=error
70+
ctest -C Release --output-on-failure -L usb --no-tests=error --repeat until-pass:3

CHANGELOG.rst

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
11
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
22
Changelog for package depthai
33
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4+
2.20.1 (2023-01-31)
5+
-----------
6+
* Fix for ColorCamera at high resolution while using isp scaling
7+
* Fix for OV9282 SW sync on devices with OV9782 RGB camera
8+
* Fix for IMX378/477/577 on sockets other than CAM_A (RGB)
9+
* Contributors: Alex Bougdan, Szabolcs Gergely, Martin Peterlin
410

5-
2.20.1 (2022-01-29)
11+
2.20.1 (2023-01-29)
612
-----------
713
* Modified OpenVINO::VERSION_UNIVERSAL API improvements / backward compatibility
814
* Bootloader version 0.0.24 (fixes for standalone / flashed usecases)

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ if(WIN32)
4545
endif()
4646

4747
# Create depthai project
48-
project(depthai VERSION "2.20.1" LANGUAGES CXX C)
48+
project(depthai VERSION "2.20.2" LANGUAGES CXX C)
4949
get_directory_property(has_parent PARENT_DIRECTORY)
5050
if(has_parent)
5151
set(DEPTHAI_VERSION ${PROJECT_VERSION} PARENT_SCOPE)

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 "f888710ca677ca662a4a83103e57c5a1ae2a5c7f")
5+
set(DEPTHAI_DEVICE_SIDE_COMMIT "8c3d6ac1c77b0bf7f9ea6fd4d962af37663d2fbd")
66

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

examples/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,7 @@ target_compile_definitions(calibration_load PRIVATE CALIB_PATH="${calib_v6}")
223223
dai_add_example(rgb_camera_control ColorCamera/rgb_camera_control.cpp ON)
224224
dai_add_example(rgb_preview ColorCamera/rgb_preview.cpp ON)
225225
dai_add_example(rgb_video ColorCamera/rgb_video.cpp ON)
226+
dai_add_example(rgb_isp_scale ColorCamera/rgb_isp_scale.cpp ON)
226227

227228
# EdgeDetector
228229
dai_add_example(edge_detector EdgeDetector/edge_detector.cpp ON)
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#include <iostream>
2+
3+
// Includes common necessary includes for development using depthai library
4+
#include "depthai/depthai.hpp"
5+
6+
int main() {
7+
// Create pipeline
8+
dai::Pipeline pipeline;
9+
10+
// Define source and output
11+
auto camRgb = pipeline.create<dai::node::ColorCamera>();
12+
auto xoutVideo = pipeline.create<dai::node::XLinkOut>();
13+
14+
xoutVideo->setStreamName("video");
15+
16+
// Properties
17+
camRgb->setBoardSocket(dai::CameraBoardSocket::RGB);
18+
camRgb->setResolution(dai::ColorCameraProperties::SensorResolution::THE_4_K);
19+
camRgb->setIspScale(1, 2);
20+
camRgb->setVideoSize(1920, 1080);
21+
22+
xoutVideo->input.setBlocking(false);
23+
xoutVideo->input.setQueueSize(1);
24+
25+
// Linking
26+
camRgb->video.link(xoutVideo->input);
27+
28+
// Connect to device and start pipeline
29+
dai::Device device(pipeline);
30+
31+
auto video = device.getOutputQueue("video");
32+
33+
while(true) {
34+
auto videoIn = video->get<dai::ImgFrame>();
35+
36+
// Get BGR frame from NV12 encoded video frame to show with opencv
37+
// Visualizing the frame on slower hosts might have overhead
38+
cv::imshow("video", videoIn->getCvFrame());
39+
40+
int key = cv::waitKey(1);
41+
if(key == 'q' || key == 'Q') {
42+
return 0;
43+
}
44+
}
45+
return 0;
46+
}

package.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<package format="3">
22
<name>depthai</name>
3-
<version>2.20.1</version>
3+
<version>2.20.2</version>
44
<description>DepthAI core is a C++ library which comes with firmware and an API to interact with OAK Platform</description>
55

66
<maintainer email="[email protected]">Sachin Guruswamy</maintainer>

0 commit comments

Comments
 (0)