diff --git a/.github/workflows/main.workflow.yml b/.github/workflows/main.workflow.yml index 126fde76..129604c2 100644 --- a/.github/workflows/main.workflow.yml +++ b/.github/workflows/main.workflow.yml @@ -10,6 +10,7 @@ on: - galactic - foxy - iron + - jazzy tags: - 'v*' pull_request: @@ -19,6 +20,7 @@ on: - galactic - foxy - iron + - jazzy env: ROS_DISTRO: iron diff --git a/depthai-ros/CHANGELOG.rst b/depthai-ros/CHANGELOG.rst index 1917e593..cf5a0f81 100644 --- a/depthai-ros/CHANGELOG.rst +++ b/depthai-ros/CHANGELOG.rst @@ -4,9 +4,15 @@ Changelog for package depthai-ros Changelog for package depthai-ros ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +2.10.1 (2024-09-18) +------------------- +* Fix ToF synced publishing +* Add camera_info publishing when publishing compressed images +* Catch errors when starting the device + + 2.10.0 (2024-08-29) ------------------- -## What's Changed * Adding stl files for SR and LR models by @danilo-pejovic in https://github.com/luxonis/depthai-ros/pull/491 * No imu fix Humble by @Serafadam in https://github.com/luxonis/depthai-ros/pull/500 * Tracking converter for ROS2 Humble by @daniqsilva25 in https://github.com/luxonis/depthai-ros/pull/505 @@ -22,13 +28,6 @@ Changelog for package depthai-ros * WLS fix humble by @Serafadam in https://github.com/luxonis/depthai-ros/pull/582 * Syncing & RS updates Humble by @Serafadam in https://github.com/luxonis/depthai-ros/pull/586 -## New Contributors -* @r4hul77 made their first contribution in https://github.com/luxonis/depthai-ros/pull/507 -* @Nibanovic made their first contribution in https://github.com/luxonis/depthai-ros/pull/511 -* @destogl made their first contribution in https://github.com/luxonis/depthai-ros/pull/524 - -**Full Changelog**: https://github.com/luxonis/depthai-ros/compare/v2.9.0-humble...v2.10.0-humble - 2.9.0 (2024-01-24) ------------------- diff --git a/depthai-ros/CMakeLists.txt b/depthai-ros/CMakeLists.txt index 770691b9..9684655d 100644 --- a/depthai-ros/CMakeLists.txt +++ b/depthai-ros/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.10.2) # CMake version in Ubuntu 18.04 LTS -project(depthai-ros VERSION 2.10.0 LANGUAGES CXX C) +project(depthai-ros VERSION 2.10.1 LANGUAGES CXX C) set(CMAKE_CXX_STANDARD 14) diff --git a/depthai-ros/package.xml b/depthai-ros/package.xml index a9a262b3..82fd8f15 100644 --- a/depthai-ros/package.xml +++ b/depthai-ros/package.xml @@ -1,7 +1,7 @@ depthai-ros - 2.10.0 + 2.10.1 The depthai-ros package diff --git a/depthai_bridge/CMakeLists.txt b/depthai_bridge/CMakeLists.txt index 67ef0ef7..843880c7 100644 --- a/depthai_bridge/CMakeLists.txt +++ b/depthai_bridge/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.10.2) # CMake version in Ubuntu 18.04 LTS set(CMAKE_POSITION_INDEPENDENT_CODE ON) -project(depthai_bridge VERSION 2.10.0 LANGUAGES CXX C) +project(depthai_bridge VERSION 2.10.1 LANGUAGES CXX C) set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) diff --git a/depthai_bridge/package.xml b/depthai_bridge/package.xml index ef1bc7ba..c5c05e59 100644 --- a/depthai_bridge/package.xml +++ b/depthai_bridge/package.xml @@ -1,7 +1,7 @@ depthai_bridge - 2.10.0 + 2.10.1 The depthai_bridge package Adam Serafin diff --git a/depthai_descriptions/CMakeLists.txt b/depthai_descriptions/CMakeLists.txt index 7cbf15a2..ad2dc15b 100644 --- a/depthai_descriptions/CMakeLists.txt +++ b/depthai_descriptions/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.8) -project(depthai_descriptions VERSION 2.10.0) +project(depthai_descriptions VERSION 2.10.1) if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") add_compile_options(-Wall -Wextra -Wpedantic) diff --git a/depthai_descriptions/package.xml b/depthai_descriptions/package.xml index 3f3eeff2..a8c064d1 100644 --- a/depthai_descriptions/package.xml +++ b/depthai_descriptions/package.xml @@ -1,7 +1,7 @@ depthai_descriptions - 2.10.0 + 2.10.1 The depthai_descriptions package Adam Serafin diff --git a/depthai_examples/CMakeLists.txt b/depthai_examples/CMakeLists.txt index 3505ea40..afc582d0 100644 --- a/depthai_examples/CMakeLists.txt +++ b/depthai_examples/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.10.2) # CMake version in Ubuntu 18.04 LTS -project(depthai_examples VERSION 2.10.0 LANGUAGES CXX C) +project(depthai_examples VERSION 2.10.1 LANGUAGES CXX C) set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) diff --git a/depthai_examples/package.xml b/depthai_examples/package.xml index d317c671..38327126 100644 --- a/depthai_examples/package.xml +++ b/depthai_examples/package.xml @@ -1,7 +1,7 @@ depthai_examples - 2.10.0 + 2.10.1 The depthai_examples package diff --git a/depthai_filters/CMakeLists.txt b/depthai_filters/CMakeLists.txt index a792b2a4..4349a21a 100644 --- a/depthai_filters/CMakeLists.txt +++ b/depthai_filters/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.8) -project(depthai_filters VERSION 2.10.0 LANGUAGES CXX C) +project(depthai_filters VERSION 2.10.1 LANGUAGES CXX C) if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") add_compile_options(-Wall -Wextra -Wpedantic) diff --git a/depthai_filters/include/depthai_filters/feature_tracker_overlay.hpp b/depthai_filters/include/depthai_filters/feature_tracker_overlay.hpp index 6ce15fb3..028bd9e3 100644 --- a/depthai_filters/include/depthai_filters/feature_tracker_overlay.hpp +++ b/depthai_filters/include/depthai_filters/feature_tracker_overlay.hpp @@ -1,6 +1,6 @@ #pragma once -#include "cv_bridge/cv_bridge.h" +#include "cv_bridge/cv_bridge.hpp" #include "depthai_ros_msgs/msg/tracked_features.hpp" #include "geometry_msgs/msg/point.hpp" #include "message_filters/subscriber.h" diff --git a/depthai_filters/package.xml b/depthai_filters/package.xml index 057bf37e..1890e840 100644 --- a/depthai_filters/package.xml +++ b/depthai_filters/package.xml @@ -2,7 +2,7 @@ depthai_filters - 2.10.0 + 2.10.1 Depthai filters package Adam Serafin MIT diff --git a/depthai_filters/src/feature_tracker_overlay.cpp b/depthai_filters/src/feature_tracker_overlay.cpp index 92668392..6edefc6b 100644 --- a/depthai_filters/src/feature_tracker_overlay.cpp +++ b/depthai_filters/src/feature_tracker_overlay.cpp @@ -1,6 +1,6 @@ #include "depthai_filters/feature_tracker_overlay.hpp" -#include "cv_bridge/cv_bridge.h" +#include "cv_bridge/cv_bridge.hpp" #include "depthai_filters/utils.hpp" namespace depthai_filters { diff --git a/depthai_filters/src/features_3d.cpp b/depthai_filters/src/features_3d.cpp index 825c70a7..53f2fb59 100644 --- a/depthai_filters/src/features_3d.cpp +++ b/depthai_filters/src/features_3d.cpp @@ -1,6 +1,6 @@ #include "depthai_filters/features_3d.hpp" -#include "cv_bridge/cv_bridge.h" +#include "cv_bridge/cv_bridge.hpp" #include "depthai_filters/utils.hpp" #include "geometry_msgs/msg/point32.hpp" #include "opencv2/opencv.hpp" diff --git a/depthai_filters/src/spatial_bb.cpp b/depthai_filters/src/spatial_bb.cpp index cce013d7..3ec2fbe8 100644 --- a/depthai_filters/src/spatial_bb.cpp +++ b/depthai_filters/src/spatial_bb.cpp @@ -1,6 +1,6 @@ #include "depthai_filters/spatial_bb.hpp" -#include "cv_bridge/cv_bridge.h" +#include "cv_bridge/cv_bridge.hpp" #include "depthai_filters/utils.hpp" #include "geometry_msgs/msg/point32.hpp" #include "opencv2/opencv.hpp" diff --git a/depthai_ros_driver/CMakeLists.txt b/depthai_ros_driver/CMakeLists.txt index a33a8ef6..23bf624e 100644 --- a/depthai_ros_driver/CMakeLists.txt +++ b/depthai_ros_driver/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.22) -project(depthai_ros_driver VERSION 2.10.0) +project(depthai_ros_driver VERSION 2.10.1) set(CMAKE_POSITION_INDEPENDENT_CODE ON) set(CMAKE_BUILD_SHARED_LIBS ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) diff --git a/depthai_ros_driver/config/sr_poe_rgbd.yaml b/depthai_ros_driver/config/sr_poe_rgbd.yaml index 350dd6d7..242723af 100644 --- a/depthai_ros_driver/config/sr_poe_rgbd.yaml +++ b/depthai_ros_driver/config/sr_poe_rgbd.yaml @@ -6,5 +6,10 @@ i_enable_ir: false i_nn_type: none i_pipeline_type: rgbtof + pipeline_gen: + i_enable_sync: true right: i_low_bandwidth: true + i_synced: true + tof: + i_synced: true diff --git a/depthai_ros_driver/include/depthai_ros_driver/dai_nodes/nn/segmentation.hpp b/depthai_ros_driver/include/depthai_ros_driver/dai_nodes/nn/segmentation.hpp index 4c3903c6..45981cf6 100644 --- a/depthai_ros_driver/include/depthai_ros_driver/dai_nodes/nn/segmentation.hpp +++ b/depthai_ros_driver/include/depthai_ros_driver/dai_nodes/nn/segmentation.hpp @@ -4,7 +4,7 @@ #include #include -#include "cv_bridge/cv_bridge.h" +#include "cv_bridge/cv_bridge.hpp" #include "depthai-shared/common/CameraBoardSocket.hpp" #include "depthai_ros_driver/dai_nodes/base_node.hpp" #include "image_transport/camera_publisher.hpp" diff --git a/depthai_ros_driver/package.xml b/depthai_ros_driver/package.xml index 553755f9..d17a5ac7 100644 --- a/depthai_ros_driver/package.xml +++ b/depthai_ros_driver/package.xml @@ -2,7 +2,7 @@ depthai_ros_driver - 2.10.0 + 2.10.1 Depthai ROS Monolithic node. Adam Serafin diff --git a/depthai_ros_driver/src/camera.cpp b/depthai_ros_driver/src/camera.cpp index 4ca0da14..574ef7bd 100644 --- a/depthai_ros_driver/src/camera.cpp +++ b/depthai_ros_driver/src/camera.cpp @@ -15,7 +15,7 @@ Camera::Camera(const rclcpp::NodeOptions& options) : rclcpp::Node("camera", opti startTimer = this->create_wall_timer(std::chrono::seconds(1), [this]() { ph = std::make_unique(shared_from_this(), "camera"); ph->declareParams(); - onConfigure(); + start(); startTimer->cancel(); }); rclcpp::on_shutdown([this]() { stop(); }); @@ -76,11 +76,20 @@ void Camera::diagCB(const diagnostic_msgs::msg::DiagnosticArray::SharedPtr msg) } void Camera::start() { - RCLCPP_INFO(get_logger(), "Starting camera."); - if(!camRunning) { - onConfigure(); - } else { - RCLCPP_INFO(get_logger(), "Camera already running!."); + bool success = false; + while(!success) { + try { + RCLCPP_INFO(this->get_logger(), "Starting camera."); + if(!camRunning) { + onConfigure(); + } else { + RCLCPP_INFO(this->get_logger(), "Camera already running!."); + } + success = true; + } catch(const std::exception& e) { + RCLCPP_ERROR(this->get_logger(), "Exception occurred: %s. Retry", e.what()); + camRunning = false; + } } } diff --git a/depthai_ros_driver/src/dai_nodes/sensors/img_pub.cpp b/depthai_ros_driver/src/dai_nodes/sensors/img_pub.cpp index 70f9fb28..02e0e9c1 100644 --- a/depthai_ros_driver/src/dai_nodes/sensors/img_pub.cpp +++ b/depthai_ros_driver/src/dai_nodes/sensors/img_pub.cpp @@ -185,6 +185,7 @@ void ImagePublisher::publish(std::shared_ptr img) { } else { ffmpegPub->publish(std::move(img->ffmpegPacket)); } + infoPub->publish(std::move(img->info)); } else { if(ipcEnabled && (!pubConfig.lazyPub || detectSubscription(imgPub, infoPub))) { imgPub->publish(std::move(img->image)); diff --git a/depthai_ros_driver/src/param_handlers/tof_param_handler.cpp b/depthai_ros_driver/src/param_handlers/tof_param_handler.cpp index 1e43852d..1ccc3306 100644 --- a/depthai_ros_driver/src/param_handlers/tof_param_handler.cpp +++ b/depthai_ros_driver/src/param_handlers/tof_param_handler.cpp @@ -19,7 +19,7 @@ ToFParamHandler::ToFParamHandler(std::shared_ptr node, const std:: ToFParamHandler::~ToFParamHandler() = default; void ToFParamHandler::declareParams(std::shared_ptr cam, std::shared_ptr tof) { declareAndLogParam("i_publish_topic", true); - declareAndLogParam("i_synced", true); + declareAndLogParam("i_synced", false); declareAndLogParam("i_low_bandwidth", false); declareAndLogParam("i_low_bandwidth_profile", 4); declareAndLogParam("i_low_bandwidth_bitrate", 0); diff --git a/depthai_ros_msgs/CMakeLists.txt b/depthai_ros_msgs/CMakeLists.txt index 4011f812..8c3b48bc 100644 --- a/depthai_ros_msgs/CMakeLists.txt +++ b/depthai_ros_msgs/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.10.2) # CMake version in Ubuntu 18.04 LTS -project(depthai_ros_msgs VERSION 2.10.0) +project(depthai_ros_msgs VERSION 2.10.1) if(POLICY CMP0057) cmake_policy(SET CMP0057 NEW) diff --git a/depthai_ros_msgs/package.xml b/depthai_ros_msgs/package.xml index 5bebaec3..2803de5e 100644 --- a/depthai_ros_msgs/package.xml +++ b/depthai_ros_msgs/package.xml @@ -1,7 +1,7 @@ depthai_ros_msgs - 2.10.0 + 2.10.1 Package to keep interface independent of the driver Adam Serafin