From 188b86a208c4e8c1ff2242429f71c68f7111f74d Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Fri, 16 Oct 2026 16:28:37 +1000 Subject: [PATCH 01/21] rolling: on the shared conda-forge pinning, Qt6 mapping shared (from #82) Drops the distribution's own conda-forge-pinning version and migrations: it uses shared/pinning/conda_forge.yaml (2026.10.09.13.11.31), with the package fixes the new pins needed (python_qt_binding on PyQt6 on macOS, rtabmap 0.23.13, rviz_visual_tools 4.2.0 without the temporary recipe). Other distributions keep their own pinning version until their PR; their conda_build_config.yaml only gets the comment of the new shared openexr override (the value, 3.4, is what they pin already). shared/robostack.yaml maps the Qt5 rosdep keys to Qt6 (qt6-main, pyqt6), so rolling's per-package Qt workarounds go. humble and jazzy keep Qt5 through overrides that their own sync PRs add: merge those first. The rcutils test imports its Python module only on humble and jazzy (rcutils 7 no longer installs it). Co-Authored-By: Claude Opus 5.5 --- distros/humble/conda_build_config.yaml | 6 +- distros/jazzy/conda_build_config.yaml | 6 +- distros/rolling/conda_build_config.yaml | 103 +- distros/rolling/distro.yaml | 3 - distros/rolling/patch/dependencies.yaml | 30 +- .../ros2-moveit-ros-visualization.win.patch | 3 +- .../patch/ros2-python-qt-binding.patch | 24 + distros/rolling/patch/ros2-rtabmap.patch | 2646 +---------------- .../patch/ros2-rviz-visual-tools.patch | 187 -- distros/rolling/pkg_additional_info.yaml | 285 +- .../rolling/rosdistro_additional_recipes.yaml | 11 +- shared/pinning/conda_forge.yaml | 7 +- shared/pinning/overrides.yaml | 4 + shared/pkg_additional_info.yaml | 7 + shared/robostack.yaml | 78 +- shared/tests/ros2-rcutils.yaml | 10 +- 16 files changed, 501 insertions(+), 2909 deletions(-) create mode 100644 distros/rolling/patch/ros2-python-qt-binding.patch delete mode 100644 distros/rolling/patch/ros2-rviz-visual-tools.patch diff --git a/distros/humble/conda_build_config.yaml b/distros/humble/conda_build_config.yaml index 1319c2c9..19540232 100644 --- a/distros/humble/conda_build_config.yaml +++ b/distros/humble/conda_build_config.yaml @@ -81,8 +81,8 @@ cuda_compiler: cuda_compiler_version: - None - 12.9 # [((linux and (x86_64 or aarch64)) or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - # pyqt-builder 1.20 defaults to sip ABI 12.20 / 13.13, which needs sip >=6.16 - # (python_qt_binding / qt_gui_cpp keep sip <6.16); 1.18 targets 12.15 / 13.8. + # libopencv 5.0.0 builds for openexr 3.5 need qt6-main >= 6.12, but pyqt6 6.11 (via + # qt6-multimedia 6.11) still requires qt6-main 6.11: stay on openexr 3.4 until pyqt6 is rebuilt cuda_compiler_version_min: - None # [not ((linux and (x86_64 or aarch64)) or win64)] - 12.9 # [((linux and (x86_64 or aarch64)) or win64)] @@ -894,6 +894,8 @@ openblas: - 0.3.* openexr: - '3.4' + # pyqt-builder 1.20 defaults to sip ABI 12.20 / 13.13, which needs sip >=6.16 + # (python_qt_binding / qt_gui_cpp keep sip <6.16); 1.18 targets 12.15 / 13.8. openh264: - 2.6.0 openjpeg: diff --git a/distros/jazzy/conda_build_config.yaml b/distros/jazzy/conda_build_config.yaml index db11768d..a9d43983 100644 --- a/distros/jazzy/conda_build_config.yaml +++ b/distros/jazzy/conda_build_config.yaml @@ -81,8 +81,8 @@ cuda_compiler: cuda_compiler_version: - None - 12.9 # [((linux and (x86_64 or aarch64)) or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - # pyqt-builder 1.20 defaults to sip ABI 12.20 / 13.13, which needs sip >=6.16 - # (python_qt_binding / qt_gui_cpp keep sip <6.16); 1.18 targets 12.15 / 13.8. + # libopencv 5.0.0 builds for openexr 3.5 need qt6-main >= 6.12, but pyqt6 6.11 (via + # qt6-multimedia 6.11) still requires qt6-main 6.11: stay on openexr 3.4 until pyqt6 is rebuilt cuda_compiler_version_min: - None # [not ((linux and (x86_64 or aarch64)) or win64)] - 12.9 # [((linux and (x86_64 or aarch64)) or win64)] @@ -894,6 +894,8 @@ openblas: - 0.3.* openexr: - '3.4' + # pyqt-builder 1.20 defaults to sip ABI 12.20 / 13.13, which needs sip >=6.16 + # (python_qt_binding / qt_gui_cpp keep sip <6.16); 1.18 targets 12.15 / 13.8. openh264: - 2.6.0 openjpeg: diff --git a/distros/rolling/conda_build_config.yaml b/distros/rolling/conda_build_config.yaml index aaa4d756..459bbb63 100644 --- a/distros/rolling/conda_build_config.yaml +++ b/distros/rolling/conda_build_config.yaml @@ -81,6 +81,8 @@ cuda_compiler: cuda_compiler_version: - None - 12.9 # [((linux and (x86_64 or aarch64)) or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] + # libopencv 5.0.0 builds for openexr 3.5 need qt6-main >= 6.12, but pyqt6 6.11 (via + # qt6-multimedia 6.11) still requires qt6-main 6.11: stay on openexr 3.4 until pyqt6 is rebuilt cuda_compiler_version_min: - None # [not ((linux and (x86_64 or aarch64)) or win64)] - 12.9 # [((linux and (x86_64 or aarch64)) or win64)] @@ -166,6 +168,9 @@ docker_image: # [os.environ.get("BUILD_PLA - quay.io/condaforge/linux-anvil-aarch64:alma10 # [os.environ.get("BUILD_PLATFORM") == "linux-aarch64" and os.environ.get("DEFAULT_LINUX_VERSION", "alma10") == "alma10"] - quay.io/condaforge/linux-anvil-ppc64le:alma10 # [os.environ.get("BUILD_PLATFORM") == "linux-ppc64le" and os.environ.get("DEFAULT_LINUX_VERSION", "alma10") == "alma10"] + # builds on RockyLinux 10 + - quay.io/condaforge/linux-anvil-riscv64:rocky10 # [os.environ.get("BUILD_PLATFORM") == "linux-riscv64"] + zip_keys: - - c_compiler_version # [unix] - cxx_compiler_version # [unix] @@ -179,12 +184,8 @@ zip_keys: - libarrow_all - - root_base - root_cxx_standard - -# armv7l specifics because conda-build sets many things to centos 6 -# this can probably be removed when conda-build gets updated defaults -# for aarch64 -cdt_arch: armv7l # [armv7l] -BUILD: armv7-conda_cos7-linux-gnueabihf # [armv7l] + - - clhep + - geant4 pin_run_as_build: libblst: @@ -227,27 +228,27 @@ assimp: attr: - 2.5 aws_c_auth: - - 0.10.4 + - '1.0' aws_c_cal: - - 0.9.15 + - '1.0' aws_c_common: - - 0.14.3 + - '1.0' aws_c_compression: - - 0.3.2 + - '1.0' aws_c_event_stream: - - 0.7.1 + - '1.0' aws_c_http: - - 0.11.0 + - '1.0' aws_c_io: - - 0.27.5 + - '1.0' aws_c_mqtt: - - 0.16.0 + - '1.0' aws_c_s3: - - 0.13.1 + - '1.1' aws_c_sdkutils: - - 0.2.7 + - '1.0' aws_checksums: - - 0.2.10 + - '1.0' aws_crt_cpp: - 0.42.3 aws_sdk_cpp: @@ -321,12 +322,14 @@ cutensor: - 2 curl: - 8 +dagmc: + - '3.2' dartsim_cpp: - '6.19' -dav1d: - - 1.2.1 -dav1d_devel: - - 1.2.1 +# Since v1.3.0, the dav1d feedstock has used a sonamed runtime library package to prevent +# ABI breaks while allowing packags built against multiple versions of dav1d to co-exist. +# dav1d: +# - '1.5.4' davix: - '0.8' dbus: @@ -335,12 +338,16 @@ dcap: - 2.47 delphes: - 3.5.1 +double_down: + - '1.1' eclib: - '20250627' eigen_abi_devel: - 5.0.1 +editline: + - '2' elfutils: - - '0.194' + - '0.196' emela: - '1.0' exiv2: @@ -382,7 +389,7 @@ gnuradio_core: gnutls: - '3.8' gsl: - - 2.7 + - '2.8' gsoap: - 2.8.123 gstreamer: @@ -396,7 +403,9 @@ libgdal: libgdal_core: - '3.13' geant4: - - 11.4.2 + - 10.7.4 + - 11.3.2 + - 11.4.3 geos: - 3.14.1 geotiff: @@ -450,13 +459,13 @@ hdf5: - '2' - 1.14.6 hdrhistogram_c: - - 0.11.9 + - 0.11.10 icu: - '78' idyntree: - '15' imath: - - 3.2.2 + - 3.2.3 impi_devel: - 2021.16.0 ipopt: @@ -560,6 +569,8 @@ libduckdb_devel: - '1' libeantic: - '2' +libedit: + - '3.1' libevent: - 2.1.12 libexactreal: @@ -631,7 +642,7 @@ libheif: libhugetlbfs: - 2 libhwloc: - - 2.13.0 + - 2.15.0 libhwy: - '1.4' libiconv: @@ -676,10 +687,12 @@ libode: - 0.16.6 libogg: - 1.3 +libonnx: + - 1.23.2 libopencolorio: - '2.5' libopenimageio: - - '3.1' + - '3.2' libopencv: - 5.0.0 libopentelemetry_cpp: @@ -687,9 +700,9 @@ libopentelemetry_cpp: libosqp: - 1.0.0 libopenvino: - - 2026.3.1 + - 2026.4.0 libopenvino_dev: - - 2026.3.1 + - 2026.4.0 libparu: - '1' libpcap: @@ -746,6 +759,8 @@ libsuitesparseconfig: - '7' libsuperiso: - '5.0' +libsrtp2: + - 2.8.1 libssh: - '0.12' libssh2: @@ -770,6 +785,8 @@ libtorch: - '2.12' libudev: - '257' +libultrahdr: + - 2.0.2 libumfpack: - '6' libunwind: @@ -784,6 +801,8 @@ libvips: - 8 libvpl: - '2.16' +libvpx: + - '1.17' libwebp: - 1 libwebp_base: @@ -796,6 +815,10 @@ libxml2: - '2.15' libxml2_devel: - '2.15' +libxmlpp_4_0: + - '4.0' +libxmlpp_5_0: + - '5.4' libxrootd_devel: - '6' libxsmm: @@ -814,6 +837,8 @@ log4cxx: - 1.8.0 lol_html: - 3.0.1 +looptools: + - '2.16' ls_hpack: - 2.3.5 lwtnn: @@ -834,6 +859,8 @@ mkl: mkl_devel: - '2026' # [not osx] - '2023' # [osx] +moab: + - '5.6' mpg123: - '1.33' mpich: @@ -885,7 +912,7 @@ numpy: obake_devel: - '0.9' occt: - - 8.0.0 + - 8.0.1 oneloop: - '3.7' openblas: @@ -897,7 +924,7 @@ openh264: openjpeg: - '2' openjph: - - '0.31' + - '0.32' openmpi: - '5' openslide: @@ -959,7 +986,7 @@ postgresql: postgresql_plpython: - '18' proj: - - '9.8' + - '9.9' pulseaudio: - '17.0' pulseaudio_client: @@ -967,7 +994,7 @@ pulseaudio_client: pulseaudio_daemon: - '17.0' pybind11_abi: - - '11' + - 11 pythia8: - '8.312' python: @@ -1019,7 +1046,7 @@ qtkeychain: rav1e: - '0.8' rdma_core: - - '63' + - '65' re2: - 2025.11.05 readline: @@ -1109,6 +1136,8 @@ tbb_devel: - '2023' tensorflow: - '2.16' +thepeg: + - '2.2' thrift_cpp: - 0.22.0 tinyxml2: @@ -1122,7 +1151,9 @@ ucc: ucx: - '1.22' uhd: - - 4.10.0 + - 4.11.0 +unibilium: + - 2.1.4 urdfdom: - '6' vc: # [win] diff --git a/distros/rolling/distro.yaml b/distros/rolling/distro.yaml index daeb404b..7d7abdcf 100644 --- a/distros/rolling/distro.yaml +++ b/distros/rolling/distro.yaml @@ -2,8 +2,5 @@ # (everything else is shared, see the README). channel_name: robostack-rolling upload_target: prefix -conda_forge_pinning_version: 2026.09.01.16.28.00 -conda_forge_migrations: [giflib6, go_macos, gstreamer128, hdf52, libboost190, pybind11_abi11, urdfdom6, - vtk970] # rolling has no regular sync tags; update-rosdistro-snapshot reads rosdistro master. rosdistro_sync: manual diff --git a/distros/rolling/patch/dependencies.yaml b/distros/rolling/patch/dependencies.yaml index 1a8324f1..561701dc 100644 --- a/distros/rolling/patch/dependencies.yaml +++ b/distros/rolling/patch/dependencies.yaml @@ -113,7 +113,17 @@ pcl_conversions: pinocchio: add_host: ["eigen-abi-devel"] plotjuggler: - add_host: ["libxcb", "${{ 'elfutils' if linux }}", "ros2-ros-workspace"] + # PlotJuggler 3.17 is Qt5-only (find_package(Qt5 ...)); the Qt rosdep keys map to Qt6 here + remove_host: ["qt6-main"] + remove_run: ["qt6-main"] + add_host: ["libxcb", "${{ 'elfutils' if linux }}", "ros2-ros-workspace", "qt-main"] + add_run: ["qt-main"] +plotjuggler_ros: + # Qt5-only like plotjuggler, which it links + remove_host: ["qt6-main"] + remove_run: ["qt6-main"] + add_host: ["qt-main"] + add_run: ["qt-main"] py_trees: add_host: ["hatchling"] py_trees_js: @@ -158,26 +168,8 @@ ros_ign_gazebo: add_host: ["ros2-std-msgs", "ros2-rclcpp", "${{ 'libgl-devel' if linux }}", "${{ 'libopengl-devel' if linux }}"] ros_ign_interfaces: add_host: ["ros2-rcl-interfaces"] -ros_image_to_qimage: - # Qt6, like rqt_gui_cpp (patch/ros2-ros-image-to-qimage.patch) - remove_host: ["qt-main"] - add_host: ["${{ 'libgl-devel' if linux }}", "${{ 'libopengl-devel' if linux }}", "qt6-main"] rqt_gui_cpp: add_host: ["${{ 'libgl-devel' if linux }}", "${{ 'libopengl-devel' if linux }}"] -rqt_image_overlay: - # Qt6, like rqt_gui_cpp (patch/ros2-rqt-image-overlay.patch) - remove_host: ["qt-main"] - add_host: ["${{ 'libgl-devel' if linux }}", "${{ 'libopengl-devel' if linux }}", "qt6-main"] -rqt_image_overlay_layer: - # Qt6, like rqt_gui_cpp (patch/ros2-rqt-image-overlay-layer.patch) - remove_host: ["qt-main"] - add_host: ["${{ 'libgl-devel' if linux }}", "${{ 'libopengl-devel' if linux }}", "qt6-main"] -rqt_image_view: - add_host: ["${{ 'libgl-devel' if linux }}", "${{ 'libopengl-devel' if linux }}", "qt6-main"] - remove_host: ["qt-main"] -rqt_mocap4r2_control: - remove_host: ["qt-main"] - remove_run: ["qt-main"] rtabmap: add_host: ["${{ 'libgl-devel' if linux }}", "${{ 'libopengl-devel' if linux }}", "ceres-solver", "${{ 'libdc1394' if not win }}", "libusb", "vtk"] rviz_ogre_vendor: diff --git a/distros/rolling/patch/ros2-moveit-ros-visualization.win.patch b/distros/rolling/patch/ros2-moveit-ros-visualization.win.patch index 94d9e374..74eccd8f 100644 --- a/distros/rolling/patch/ros2-moveit-ros-visualization.win.patch +++ b/distros/rolling/patch/ros2-moveit-ros-visualization.win.patch @@ -1,7 +1,7 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -106,15 +106,41 @@ pluginlib_export_plugin_description_file( +@@ -106,15 +106,42 @@ pluginlib_export_plugin_description_file( pluginlib_export_plugin_description_file( rviz_common robot_state_rviz_plugin_description.xml) @@ -32,6 +32,7 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt +if(WIN32) + install( + TARGETS ${MOVEIT_ROS_VISUALIZATION_PLUGIN_LIBRARIES} ++ EXPORT moveit_ros_visualizationTargets + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + RUNTIME DESTINATION bin diff --git a/distros/rolling/patch/ros2-python-qt-binding.patch b/distros/rolling/patch/ros2-python-qt-binding.patch new file mode 100644 index 00000000..89498768 --- /dev/null +++ b/distros/rolling/patch/ros2-python-qt-binding.patch @@ -0,0 +1,24 @@ +diff --git a/src/python_qt_binding/binding_helper.py b/src/python_qt_binding/binding_helper.py +index cb6b835..cdb8369 100644 +--- a/src/python_qt_binding/binding_helper.py ++++ b/src/python_qt_binding/binding_helper.py +@@ -32,7 +32,6 @@ + + import builtins + import os +-import platform + import sys + import traceback + +@@ -48,10 +47,7 @@ def _select_qt_binding(binding_name=None, binding_order=None): + global QT_BINDING, QT_BINDING_VERSION + + # order of default bindings can be changed here +- if platform.system() == 'Darwin': +- DEFAULT_BINDING_ORDER = ['pyside'] +- else: +- DEFAULT_BINDING_ORDER = ['pyqt', 'pyside'] ++ DEFAULT_BINDING_ORDER = ['pyqt', 'pyside'] + + binding_order = binding_order or DEFAULT_BINDING_ORDER + diff --git a/distros/rolling/patch/ros2-rtabmap.patch b/distros/rolling/patch/ros2-rtabmap.patch index b3b1777d..7b518a73 100644 --- a/distros/rolling/patch/ros2-rtabmap.patch +++ b/distros/rolling/patch/ros2-rtabmap.patch @@ -1,11 +1,12 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index b7d36de..80d7ea0 100644 +index 8b55e49..8f84226 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -1,6 +1,9 @@ +@@ -1,7 +1,10 @@ # Top-Level CmakeLists.txt -cmake_minimum_required(VERSION 3.14) +cmake_minimum_required(VERSION 3.18) + PROJECT( RTABMap ) +if(POLICY CMP0167) + cmake_policy(SET CMP0167 NEW) @@ -13,53 +14,7 @@ index b7d36de..80d7ea0 100644 SET(PROJECT_PREFIX rtabmap) # Catkin doesn't support multiarch library path, -@@ -84,12 +87,12 @@ IF(MINGW) - ENDIF(MINGW) - - # GCC 4 required --IF(UNIX OR MINGW) -- EXEC_PROGRAM( gcc ARGS "-dumpversion" OUTPUT_VARIABLE GCC_VERSION ) -- IF(GCC_VERSION VERSION_LESS "4.0.0") -- MESSAGE(FATAL_ERROR "GCC ${GCC_VERSION} found, but version 4.x.x minimum is required") -- ENDIF(GCC_VERSION VERSION_LESS "4.0.0") --ENDIF(UNIX OR MINGW) -+# IF(UNIX OR MINGW) -+# EXEC_PROGRAM( gcc ARGS "-dumpversion" OUTPUT_VARIABLE GCC_VERSION ) -+# IF(GCC_VERSION VERSION_LESS "4.0.0") -+# MESSAGE(FATAL_ERROR "GCC ${GCC_VERSION} found, but version 4.x.x minimum is required") -+# ENDIF(GCC_VERSION VERSION_LESS "4.0.0") -+# ENDIF(UNIX OR MINGW) - - #The CDT Error Parser cannot handle error messages that span - #more than one line, which is the default gcc behavior. -@@ -234,7 +237,25 @@ option(BUILD_WITH_RPATH_NOT_RUNPATH "Explicitly disable usage of RUNPATH for the - set(RTABMAP_QT_VERSION AUTO CACHE STRING "Force a specific Qt version.") - set_property(CACHE RTABMAP_QT_VERSION PROPERTY STRINGS AUTO 4 5 6) - --FIND_PACKAGE(OpenCV REQUIRED QUIET COMPONENTS core calib3d imgproc highgui stitching photo video videoio OPTIONAL_COMPONENTS aruco objdetect xfeatures2d nonfree gpu cudafeatures2d cudaoptflow cudaimgproc) -+# OpenCV components. calib3d was split into "calib" + "geometry" in OpenCV 5. -+# These lists are reused below to generate RTABMapConfig.cmake so downstream -+# find_package(RTABMap) requests the same components this build used. -+SET(RTABMAP_OpenCV_COMPONENTS_5 core imgproc highgui stitching photo video videoio calib geometry) -+SET(RTABMAP_OpenCV_COMPONENTS_4 core imgproc highgui stitching photo video videoio calib3d) -+SET(RTABMAP_OpenCV_OPTIONAL_COMPONENTS_5 objdetect xfeatures2d nonfree gpu cudafeatures2d cudaoptflow cudaimgproc) -+SET(RTABMAP_OpenCV_OPTIONAL_COMPONENTS_4 aruco objdetect xfeatures2d nonfree gpu cudafeatures2d cudaoptflow cudaimgproc) -+ -+# Probe OpenCV without a version constraint first, then request the components -+# matching the detected major version. A version-constrained find that fails to -+# match (e.g. asking for 5 when only 4 is present) resets OpenCV_DIR to NOTFOUND, -+# which breaks toolchain builds that rely on a -DOpenCV_DIR hint (e.g. Android, -+# where CMAKE_FIND_ROOT_PATH restricts the search). -+FIND_PACKAGE(OpenCV REQUIRED QUIET COMPONENTS core) -+IF(OpenCV_VERSION_MAJOR GREATER 4) -+ FIND_PACKAGE(OpenCV REQUIRED QUIET COMPONENTS ${RTABMAP_OpenCV_COMPONENTS_5} OPTIONAL_COMPONENTS ${RTABMAP_OpenCV_OPTIONAL_COMPONENTS_5}) -+ELSE() -+ FIND_PACKAGE(OpenCV REQUIRED QUIET COMPONENTS ${RTABMAP_OpenCV_COMPONENTS_4} OPTIONAL_COMPONENTS ${RTABMAP_OpenCV_OPTIONAL_COMPONENTS_4}) -+ENDIF() - - IF(WITH_QT) - FIND_PACKAGE(PCL 1.7 REQUIRED QUIET COMPONENTS common io kdtree search surface filters registration sample_consensus segmentation visualization) -@@ -494,7 +515,10 @@ IF(WITH_DC1394) +@@ -582,7 +585,10 @@ IF(WITH_DC1394) ENDIF(WITH_DC1394) IF(WITH_G2O) @@ -68,2573 +23,46 @@ index b7d36de..80d7ea0 100644 FIND_PACKAGE(g2o NO_MODULE) + SET(CMAKE_FIND_PACKAGE_PREFER_CONFIG ${_RTABMAP_CMAKE_FIND_PACKAGE_PREFER_CONFIG}) IF(g2o_FOUND) - MESSAGE(STATUS "Found g2o (targets)") - SET(G2O_FOUND ${g2o_FOUND}) -@@ -530,8 +554,10 @@ IF(WITH_G2O) - ENDIF(WITH_G2O) + MESSAGE(STATUS "Found g2o (targets)") + SET(G2O_FOUND ${g2o_FOUND}) +@@ -618,7 +624,10 @@ ENDIF(WITH_G2O) IF(WITH_GTSAM) -- # Force config mode to ignore PCL's findGTSAM.cmake file + # Force config mode to ignore PCL's findGTSAM.cmake file + SET(_RTABMAP_CMAKE_FIND_PACKAGE_PREFER_CONFIG ${CMAKE_FIND_PACKAGE_PREFER_CONFIG}) + SET(CMAKE_FIND_PACKAGE_PREFER_CONFIG TRUE) FIND_PACKAGE(GTSAM CONFIG QUIET) + SET(CMAKE_FIND_PACKAGE_PREFER_CONFIG ${_RTABMAP_CMAKE_FIND_PACKAGE_PREFER_CONFIG}) - ENDIF(WITH_GTSAM) - - IF(WITH_MRPT) -@@ -576,9 +602,9 @@ IF(WITH_POINTMATCHER) - ENDIF(WITH_POINTMATCHER) - - IF(libpointmatcher_FOUND OR GTSAM_FOUND) -- find_package(Boost COMPONENTS thread filesystem system program_options date_time REQUIRED) -+ find_package(Boost COMPONENTS thread filesystem program_options date_time REQUIRED) - IF(Boost_MINOR_VERSION GREATER 47) -- find_package(Boost COMPONENTS thread filesystem system program_options date_time chrono timer serialization REQUIRED) -+ find_package(Boost COMPONENTS thread filesystem program_options date_time chrono timer serialization REQUIRED) - ENDIF(Boost_MINOR_VERSION GREATER 47) - IF(WIN32) - MESSAGE(STATUS "Boost_LIBRARY_DIRS=${Boost_LIBRARY_DIRS}") -@@ -1207,6 +1233,18 @@ install(EXPORT rtabmapTargets - #### - # Setup RTABMapConfig.cmake - #### -+IF(OpenCV_VERSION_MAJOR GREATER 4) -+ SET(CONF_OPENCV_COMPONENTS ${RTABMAP_OpenCV_COMPONENTS_5}) -+ SET(CONF_OPENCV_OPTIONAL_COMPONENTS ${RTABMAP_OpenCV_OPTIONAL_COMPONENTS_5}) -+ELSE() -+ SET(CONF_OPENCV_COMPONENTS ${RTABMAP_OpenCV_COMPONENTS_4}) -+ SET(CONF_OPENCV_OPTIONAL_COMPONENTS ${RTABMAP_OpenCV_OPTIONAL_COMPONENTS_4}) -+ENDIF() -+STRING(REPLACE ";" " " CONF_OPENCV_COMPONENTS "${CONF_OPENCV_COMPONENTS}") -+STRING(REPLACE ";" " " CONF_OPENCV_OPTIONAL_COMPONENTS "${CONF_OPENCV_OPTIONAL_COMPONENTS}") -+# Pin the OpenCV major version so downstream projects find the same major RTAB-Map was -+# built against -+SET(CONF_OPENCV_VERSION_MAJOR ${OpenCV_VERSION_MAJOR}) - include(CMakePackageConfigHelpers) - write_basic_package_version_file( - "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" -diff --git a/RTABMapConfig.cmake.in b/RTABMapConfig.cmake.in -index 155ef3e..713359b 100644 ---- a/RTABMapConfig.cmake.in -+++ b/RTABMapConfig.cmake.in -@@ -1,7 +1,7 @@ - include(CMakeFindDependencyMacro) - - # Mandatory dependencies --find_dependency(OpenCV COMPONENTS core calib3d imgproc highgui stitching photo video OPTIONAL_COMPONENTS aruco objdetect xfeatures2d nonfree gpu cudafeatures2d) -+find_dependency(OpenCV @CONF_OPENCV_VERSION_MAJOR@ COMPONENTS @CONF_OPENCV_COMPONENTS@ OPTIONAL_COMPONENTS @CONF_OPENCV_OPTIONAL_COMPONENTS@) - - if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/RTABMap_guiTargets.cmake") - find_dependency(PCL 1.7 COMPONENTS common io kdtree search surface filters registration sample_consensus segmentation visualization) -diff --git a/app/android/jni/point_cloud_drawable.cpp b/app/android/jni/point_cloud_drawable.cpp -index ca23e31..cf38ec1 100644 ---- a/app/android/jni/point_cloud_drawable.cpp -+++ b/app/android/jni/point_cloud_drawable.cpp -@@ -31,7 +31,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include "rtabmap/utilite/ULogger.h" - #include "rtabmap/utilite/UTimer.h" - #include "rtabmap/utilite/UConversion.h" --#include -+#include - #include "util.h" - #include "pcl/common/transforms.h" - -diff --git a/corelib/include/rtabmap/core/DBDriverSqlite3.h b/corelib/include/rtabmap/core/DBDriverSqlite3.h -index 407ec7e..fbcd49b 100644 ---- a/corelib/include/rtabmap/core/DBDriverSqlite3.h -+++ b/corelib/include/rtabmap/core/DBDriverSqlite3.h -@@ -30,7 +30,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - #include "rtabmap/core/rtabmap_core_export.h" // DLL export/import defines - #include "rtabmap/core/DBDriver.h" --#include -+#if CV_MAJOR_VERSION < 5 -+#include -+#else -+#include -+#endif - - typedef struct sqlite3_stmt sqlite3_stmt; - typedef struct sqlite3 sqlite3; -diff --git a/corelib/include/rtabmap/core/EpipolarGeometry.h b/corelib/include/rtabmap/core/EpipolarGeometry.h -index e9408cd..fec9036 100644 ---- a/corelib/include/rtabmap/core/EpipolarGeometry.h -+++ b/corelib/include/rtabmap/core/EpipolarGeometry.h -@@ -31,7 +31,14 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include "rtabmap/core/Parameters.h" - #include "rtabmap/utilite/UStl.h" - #include --#include -+#if CV_MAJOR_VERSION < 5 -+#include -+#else -+#include -+#if CV_MAJOR_VERSION >= 5 -+#include -+#endif -+#endif - #include - #include - #include -diff --git a/corelib/include/rtabmap/core/Features2d.h b/corelib/include/rtabmap/core/Features2d.h -index f26f84b..9b064c1 100644 ---- a/corelib/include/rtabmap/core/Features2d.h -+++ b/corelib/include/rtabmap/core/Features2d.h -@@ -30,9 +30,13 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - #include "rtabmap/core/rtabmap_core_export.h" // DLL export/import defines - --#include -+#include - #include --#include -+#if CV_MAJOR_VERSION < 5 -+#include -+#else -+#include -+#endif - #include - #include - #include "rtabmap/core/Parameters.h" -@@ -70,6 +74,10 @@ class BriefDescriptorExtractor; - class SIFT; - #endif - class SURF; -+#if (CV_MAJOR_VERSION == 5) -+class BRISK; -+class KAZE; -+#endif - } - namespace cuda { - class FastFeatureDetector; -@@ -89,7 +97,13 @@ typedef cv::xfeatures2d::FREAK CV_FREAK; - typedef cv::xfeatures2d::DAISY CV_DAISY; - typedef cv::GFTTDetector CV_GFTT; - typedef cv::xfeatures2d::BriefDescriptorExtractor CV_BRIEF; -+#if (CV_MAJOR_VERSION < 5) - typedef cv::BRISK CV_BRISK; -+typedef cv::KAZE CV_KAZE; -+#else -+typedef cv::xfeatures2d::BRISK CV_BRISK; -+typedef cv::xfeatures2d::KAZE CV_KAZE; -+#endif - typedef cv::ORB CV_ORB; - typedef cv::cuda::SURF_CUDA CV_SURF_GPU; - typedef cv::cuda::ORB CV_ORB_GPU; -@@ -573,7 +587,7 @@ private: - int diffusivity_; - - #if CV_MAJOR_VERSION > 2 -- cv::Ptr kaze_; -+ cv::Ptr kaze_; - #endif - }; - -diff --git a/corelib/include/rtabmap/core/Memory.h b/corelib/include/rtabmap/core/Memory.h -index 39996d9..2fe3640 100644 ---- a/corelib/include/rtabmap/core/Memory.h -+++ b/corelib/include/rtabmap/core/Memory.h -@@ -41,7 +41,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include - #include "rtabmap/utilite/UStl.h" - #include --#include -+#if CV_MAJOR_VERSION < 5 -+#include -+#else -+#include -+#endif - #include - - namespace rtabmap { -diff --git a/corelib/include/rtabmap/core/OdometryInfo.h b/corelib/include/rtabmap/core/OdometryInfo.h -index 484692b..a3ec914 100644 ---- a/corelib/include/rtabmap/core/OdometryInfo.h -+++ b/corelib/include/rtabmap/core/OdometryInfo.h -@@ -34,7 +34,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include "rtabmap/core/RegistrationInfo.h" - #include "rtabmap/core/CameraModel.h" - #include "rtabmap/core/LaserScan.h" --#include -+#if CV_MAJOR_VERSION < 5 -+#include -+#else -+#include -+#endif - - namespace rtabmap { - -diff --git a/corelib/include/rtabmap/core/SensorCapture.h b/corelib/include/rtabmap/core/SensorCapture.h -index 20ee01b..13da904 100644 ---- a/corelib/include/rtabmap/core/SensorCapture.h -+++ b/corelib/include/rtabmap/core/SensorCapture.h -@@ -28,7 +28,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - #include "rtabmap/core/rtabmap_core_export.h" // DLL export/import defines - --#include -+#include - #include - #include "rtabmap/core/SensorData.h" - #include -@@ -44,7 +44,7 @@ namespace rtabmap - - /** - * Class Camera -- * -+ * - */ - class RTABMAP_CORE_EXPORT SensorCapture - { -diff --git a/corelib/include/rtabmap/core/SensorData.h b/corelib/include/rtabmap/core/SensorData.h -index 18fc5d3..6688988 100644 ---- a/corelib/include/rtabmap/core/SensorData.h -+++ b/corelib/include/rtabmap/core/SensorData.h -@@ -34,7 +34,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include - #include - #include --#include -+#if CV_MAJOR_VERSION < 5 -+#include -+#else -+#include -+#endif - #include - #include - #include -diff --git a/corelib/include/rtabmap/core/Signature.h b/corelib/include/rtabmap/core/Signature.h -index 9dbbe53..35d438d 100644 ---- a/corelib/include/rtabmap/core/Signature.h -+++ b/corelib/include/rtabmap/core/Signature.h -@@ -31,8 +31,12 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - #include - #include --#include --#include -+#if CV_MAJOR_VERSION < 5 -+#include -+#else -+#include -+#endif -+#include - #include - #include - #include -@@ -62,7 +66,7 @@ public: - virtual ~Signature(); - - /** -- * Must return a value between >=0 and <=1 (1 means 100% similarity). -+ * Must return a value between >=0 and <=1 (1 means 100% similarity). - */ - float compareTo(const Signature & signature) const; - bool isBadSignature() const; -diff --git a/corelib/include/rtabmap/core/Statistics.h b/corelib/include/rtabmap/core/Statistics.h -index 61abdde..68491a8 100644 ---- a/corelib/include/rtabmap/core/Statistics.h -+++ b/corelib/include/rtabmap/core/Statistics.h -@@ -31,8 +31,12 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include "rtabmap/core/rtabmap_core_export.h" // DLL export/import defines - - #include --#include --#include -+#if CV_MAJOR_VERSION < 5 -+#include -+#else -+#include -+#endif -+#include - #include - #include - #include -diff --git a/corelib/include/rtabmap/core/VWDictionary.h b/corelib/include/rtabmap/core/VWDictionary.h -index fbfa7ba..db7d4db 100644 ---- a/corelib/include/rtabmap/core/VWDictionary.h -+++ b/corelib/include/rtabmap/core/VWDictionary.h -@@ -29,9 +29,13 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - #include "rtabmap/core/rtabmap_core_export.h" // DLL export/import defines - --#include -+#include - #include --#include -+#if CV_MAJOR_VERSION < 5 -+#include -+#else -+#include -+#endif - #include - #include - #include "rtabmap/core/Parameters.h" -diff --git a/corelib/include/rtabmap/core/camera/CameraVideo.h b/corelib/include/rtabmap/core/camera/CameraVideo.h -index bdc90a1..ca65116 100644 ---- a/corelib/include/rtabmap/core/camera/CameraVideo.h -+++ b/corelib/include/rtabmap/core/camera/CameraVideo.h -@@ -27,7 +27,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - #pragma once - --#include -+#include - #include "rtabmap/core/Camera.h" - - namespace rtabmap -diff --git a/corelib/include/rtabmap/core/stereo/stereoRectifyFisheye.h b/corelib/include/rtabmap/core/stereo/stereoRectifyFisheye.h -index 2fc12a2..3361aab 100644 ---- a/corelib/include/rtabmap/core/stereo/stereoRectifyFisheye.h -+++ b/corelib/include/rtabmap/core/stereo/stereoRectifyFisheye.h -@@ -32,12 +32,23 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #ifndef CORELIB_SRC_OPENCV_STEREORECTIFYFISHEYE_H_ - #define CORELIB_SRC_OPENCV_STEREORECTIFYFISHEYE_H_ - -+// This header relies on the OpenCV C API (cvRodrigues2, cvProjectPoints2, ...) -+// which was removed in OpenCV 5. Pull in only the version macros (available in -+// all OpenCV versions) so we can fail early with a clear message rather than -+// with cryptic errors from the includes below. -+#include -+#if CV_MAJOR_VERSION >= 5 -+#error "stereoRectifyFisheye.h is not supported with OpenCV 5 or later (it uses the removed OpenCV C API). Use cv::fisheye::stereoRectify() instead, or guard your include with '#if CV_MAJOR_VERSION < 5'." -+#endif -+ - #include - #if CV_MAJOR_VERSION >= 3 --#include - - #if CV_MAJOR_VERSION >= 4 - #include -+#if CV_MAJOR_VERSION >= 5 -+#include -+#endif - - // Opencv4 doesn't expose those functions below anymore, we should recopy all of them! - int cvRodrigues2( const CvMat* src, CvMat* dst, CvMat* jacobian CV_DEFAULT(0)) -diff --git a/corelib/include/rtabmap/core/util3d_correspondences.h b/corelib/include/rtabmap/core/util3d_correspondences.h -index 6bbaeb2..f50a98b 100644 ---- a/corelib/include/rtabmap/core/util3d_correspondences.h -+++ b/corelib/include/rtabmap/core/util3d_correspondences.h -@@ -32,7 +32,12 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - #include - #include --#include -+#include -+#if CV_MAJOR_VERSION < 5 -+#include -+#else -+#include -+#endif - #include - #include - #include -diff --git a/corelib/include/rtabmap/core/util3d_features.h b/corelib/include/rtabmap/core/util3d_features.h -index 2a02bf2..ac5cb75 100644 ---- a/corelib/include/rtabmap/core/util3d_features.h -+++ b/corelib/include/rtabmap/core/util3d_features.h -@@ -30,7 +30,12 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - #include - -+#include -+#if CV_MAJOR_VERSION < 5 - #include -+#else -+#include -+#endif - #include - #include - #include -diff --git a/corelib/src/CameraModel.cpp b/corelib/src/CameraModel.cpp -index 3e80d25..bc37f40 100644 ---- a/corelib/src/CameraModel.cpp -+++ b/corelib/src/CameraModel.cpp -@@ -33,7 +33,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include - #include - #include --#include -+#include -+#if CV_MAJOR_VERSION >= 5 -+#include -+#endif - - namespace rtabmap { - -diff --git a/corelib/src/EpipolarGeometry.cpp b/corelib/src/EpipolarGeometry.cpp -index 38f1584..758a14a 100644 ---- a/corelib/src/EpipolarGeometry.cpp -+++ b/corelib/src/EpipolarGeometry.cpp -@@ -33,8 +33,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include "rtabmap/utilite/UMath.h" - - #include --#include -+#if CV_MAJOR_VERSION < 5 - #include -+#else -+#include -+#endif - #include - - namespace rtabmap -diff --git a/corelib/src/Features2d.cpp b/corelib/src/Features2d.cpp -index 90555db..cadafff 100644 ---- a/corelib/src/Features2d.cpp -+++ b/corelib/src/Features2d.cpp -@@ -36,7 +36,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include "rtabmap/utilite/UMath.h" - #include "rtabmap/utilite/ULogger.h" - #include "rtabmap/utilite/UTimer.h" --#include - #include - #include - -@@ -857,7 +856,7 @@ std::vector Feature2D::generateKeypoints(const cv::Mat & image, co - cv::cornerSubPix( image, corners, - cv::Size( _subPixWinSize, _subPixWinSize ), - cv::Size( -1, -1 ), -- cv::TermCriteria( CV_TERMCRIT_ITER | CV_TERMCRIT_EPS, _subPixIterations, _subPixEps ) ); -+ cv::TermCriteria( cv::TermCriteria::MAX_ITER | cv::TermCriteria::EPS, _subPixIterations, _subPixEps ) ); - - for(unsigned int i=0;i 4 -+#ifdef HAVE_OPENCV_XFEATURES2D -+ brisk_ = CV_BRISK::create(thresh_, octaves_, patternScale_); -+#else -+ UWARN("RTAB-Map is not built with OpenCV xfeatures2d module so BRISK cannot be used!"); -+#endif -+#elif CV_MAJOR_VERSION < 3 - brisk_ = cv::Ptr(new CV_BRISK(thresh_, octaves_, patternScale_)); - #else - brisk_ = CV_BRISK::create(thresh_, octaves_, patternScale_); -@@ -2357,6 +2361,7 @@ std::vector BRISK::generateKeypointsImpl(const cv::Mat & image, co - { - UASSERT(!image.empty() && image.channels() == 1 && image.depth() == CV_8U); - std::vector keypoints; -+#if CV_MAJOR_VERSION < 5 || (CV_MAJOR_VERSION > 4 && defined(HAVE_OPENCV_XFEATURES2D)) - cv::Mat imgRoi(image, roi); - cv::Mat maskRoi; - if(!mask.empty()) -@@ -2364,6 +2369,9 @@ std::vector BRISK::generateKeypointsImpl(const cv::Mat & image, co - maskRoi = cv::Mat(mask, roi); - } - brisk_->detect(imgRoi, keypoints, maskRoi); // Opencv keypoints -+#else -+ UWARN("RTAB-Map is not built with BRISK feature support!"); -+#endif - return keypoints; - } - -@@ -2371,7 +2379,11 @@ cv::Mat BRISK::generateDescriptorsImpl(const cv::Mat & image, std::vector 4 && defined(HAVE_OPENCV_XFEATURES2D)) - brisk_->compute(image, keypoints, descriptors); -+#else -+ UWARN("RTAB-Map is not built with BRISK feature support!"); -+#endif - return descriptors; - } - -@@ -2404,10 +2416,16 @@ void KAZE::parseParameters(const ParametersMap & parameters) - Parameters::parse(parameters, Parameters::kKAZENOctaveLayers(), nOctaveLayers_); - Parameters::parse(parameters, Parameters::kKAZEDiffusivity(), diffusivity_); - --#if CV_MAJOR_VERSION > 3 -- kaze_ = cv::KAZE::create(extended_, upright_, threshold_, nOctaves_, nOctaveLayers_, (cv::KAZE::DiffusivityType)diffusivity_); -+#if CV_MAJOR_VERSION > 4 -+#ifdef HAVE_OPENCV_XFEATURES2D -+ kaze_ = CV_KAZE::create(extended_, upright_, threshold_, nOctaves_, nOctaveLayers_, (CV_KAZE::DiffusivityType)diffusivity_); -+#else -+ UWARN("RTAB-Map is not built with OpenCV xfeatures2d module so KAZE cannot be used!"); -+#endif -+#elif CV_MAJOR_VERSION > 3 -+ kaze_ = CV_KAZE::create(extended_, upright_, threshold_, nOctaves_, nOctaveLayers_, (CV_KAZE::DiffusivityType)diffusivity_); - #elif CV_MAJOR_VERSION > 2 -- kaze_ = cv::KAZE::create(extended_, upright_, threshold_, nOctaves_, nOctaveLayers_, diffusivity_); -+ kaze_ = CV_KAZE::create(extended_, upright_, threshold_, nOctaves_, nOctaveLayers_, diffusivity_); - #else - UWARN("RTAB-Map is not built with OpenCV3 so Kaze feature cannot be used!"); - #endif -@@ -2417,7 +2435,7 @@ std::vector KAZE::generateKeypointsImpl(const cv::Mat & image, con - { - UASSERT(!image.empty() && image.channels() == 1 && image.depth() == CV_8U); - std::vector keypoints; --#if CV_MAJOR_VERSION > 2 -+#if (CV_MAJOR_VERSION > 2 && CV_MAJOR_VERSION < 5) || (CV_MAJOR_VERSION > 4 && defined(HAVE_OPENCV_XFEATURES2D)) - cv::Mat imgRoi(image, roi); - cv::Mat maskRoi; - if (!mask.empty()) -@@ -2426,7 +2444,7 @@ std::vector KAZE::generateKeypointsImpl(const cv::Mat & image, con - } - kaze_->detect(imgRoi, keypoints, maskRoi); // Opencv keypoints - #else -- UWARN("RTAB-Map is not built with OpenCV3 so Kaze feature cannot be used!"); -+ UWARN("RTAB-Map is not built with Kaze feature support!"); - #endif - return keypoints; - } -@@ -2435,10 +2453,10 @@ cv::Mat KAZE::generateDescriptorsImpl(const cv::Mat & image, std::vector 2 -+#if (CV_MAJOR_VERSION > 2 && CV_MAJOR_VERSION < 5) || (CV_MAJOR_VERSION > 4 && defined(HAVE_OPENCV_XFEATURES2D)) - kaze_->compute(image, keypoints, descriptors); - #else -- UWARN("RTAB-Map is not built with OpenCV3 so Kaze feature cannot be used!"); -+ UWARN("RTAB-Map is not built with Kaze feature support!"); - #endif - return descriptors; - } -diff --git a/corelib/src/Memory.cpp b/corelib/src/Memory.cpp -index 0556312..2ea825f 100644 ---- a/corelib/src/Memory.cpp -+++ b/corelib/src/Memory.cpp -@@ -26,6 +26,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + IF(GTSAM_FOUND) + INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/CheckGTSAMFeatures.cmake) + ENDIF(GTSAM_FOUND) +diff --git a/app/src/main.cpp b/app/src/main.cpp +index ae43343..1a2559f 100644 +--- a/app/src/main.cpp ++++ b/app/src/main.cpp +@@ -25,6 +25,10 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - #include -+#if CV_MAJOR_VERSION >= 5 -+#include -+#endif - #include - #include - #include -@@ -62,7 +65,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include - #include - #include --#include - #include - - namespace rtabmap { -@@ -4930,7 +4932,7 @@ Signature * Memory::createSignature(const SensorData & inputData, const Transfor - cv::Mat imageMono; - if(decimatedData.imageRaw().channels() == 3) - { -- cv::cvtColor(decimatedData.imageRaw(), imageMono, CV_BGR2GRAY); -+ cv::cvtColor(decimatedData.imageRaw(), imageMono, cv::COLOR_BGR2GRAY); - } - else - { -@@ -5239,7 +5241,7 @@ Signature * Memory::createSignature(const SensorData & inputData, const Transfor - cv::Mat imageMono; - if(data.imageRaw().channels() == 3) - { -- cv::cvtColor(data.imageRaw(), imageMono, CV_BGR2GRAY); -+ cv::cvtColor(data.imageRaw(), imageMono, cv::COLOR_BGR2GRAY); - } - else - { -diff --git a/corelib/src/RegistrationVis.cpp b/corelib/src/RegistrationVis.cpp -index 84f0101..dac3180 100644 ---- a/corelib/src/RegistrationVis.cpp -+++ b/corelib/src/RegistrationVis.cpp -@@ -43,7 +43,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include - #include - #include --#include -+#if CV_MAJOR_VERSION > 4 -+#include -+#endif - - #if defined(HAVE_OPENCV_XFEATURES2D) && (CV_MAJOR_VERSION > 3 || (CV_MAJOR_VERSION==3 && CV_MINOR_VERSION >=4 && CV_SUBMINOR_VERSION >= 1)) - #include // For GMS matcher -@@ -52,6 +54,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #ifdef HAVE_OPENCV_CUDAOPTFLOW - #include - #include -+#if CV_MAJOR_VERSION >= 5 -+#include -+#endif - #endif - - #include -@@ -2170,7 +2175,7 @@ Transform RegistrationVis::computeTransformationImpl( - if(!transform.isNull() && !pcaData.empty()) - { - cv::Mat pcaEigenVectors, pcaEigenValues; -- cv::PCA pca_analysis(pcaData, cv::Mat(), CV_PCA_DATA_AS_ROW); -+ cv::PCA pca_analysis(pcaData, cv::Mat(), cv::PCA::DATA_AS_ROW); - // We take the second eigen value - info.inliersDistribution = pca_analysis.eigenvalues.at(0, 1); - -diff --git a/corelib/src/SensorCapture.cpp b/corelib/src/SensorCapture.cpp -index 5932787..a86708d 100644 ---- a/corelib/src/SensorCapture.cpp -+++ b/corelib/src/SensorCapture.cpp -@@ -35,7 +35,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include - #include - --#include -+#include - - #include - #include -diff --git a/corelib/src/SensorCaptureThread.cpp b/corelib/src/SensorCaptureThread.cpp -index 8941c3d..7d62f70 100644 ---- a/corelib/src/SensorCaptureThread.cpp -+++ b/corelib/src/SensorCaptureThread.cpp -@@ -39,7 +39,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include "rtabmap/core/IMUFilter.h" - #include "rtabmap/core/Features2d.h" - #include "rtabmap/core/clams/discrete_depth_distortion_model.h" --#include - #include - #include - #include -@@ -742,11 +741,11 @@ void SensorCaptureThread::postUpdate(SensorData * dataPtr, SensorCaptureInfo * i - else if(data.imageRaw().type() == CV_8UC3) - { - cv::Mat channels[3]; -- cv::cvtColor(data.imageRaw(), image, CV_BGR2YCrCb); -+ cv::cvtColor(data.imageRaw(), image, cv::COLOR_BGR2YCrCb); - cv::split(image, channels); - cv::equalizeHist(channels[0], channels[0]); - cv::merge(channels, 3, image); -- cv::cvtColor(image, image, CV_YCrCb2BGR); -+ cv::cvtColor(image, image, cv::COLOR_YCrCb2BGR); - } - if(!data.depthRaw().empty()) - { -@@ -762,11 +761,11 @@ void SensorCaptureThread::postUpdate(SensorData * dataPtr, SensorCaptureInfo * i - else if(data.rightRaw().type() == CV_8UC3) - { - cv::Mat channels[3]; -- cv::cvtColor(data.rightRaw(), right, CV_BGR2YCrCb); -+ cv::cvtColor(data.rightRaw(), right, cv::COLOR_BGR2YCrCb); - cv::split(right, channels); - cv::equalizeHist(channels[0], channels[0]); - cv::merge(channels, 3, right); -- cv::cvtColor(right, right, CV_YCrCb2BGR); -+ cv::cvtColor(right, right, cv::COLOR_YCrCb2BGR); - } - data.setStereoImage(image, right, data.stereoCameraModels()[0]); - } -@@ -781,11 +780,11 @@ void SensorCaptureThread::postUpdate(SensorData * dataPtr, SensorCaptureInfo * i - else if(data.imageRaw().type() == CV_8UC3) - { - cv::Mat channels[3]; -- cv::cvtColor(data.imageRaw(), image, CV_BGR2YCrCb); -+ cv::cvtColor(data.imageRaw(), image, cv::COLOR_BGR2YCrCb); - cv::split(image, channels); - clahe->apply(channels[0], channels[0]); - cv::merge(channels, 3, image); -- cv::cvtColor(image, image, CV_YCrCb2BGR); -+ cv::cvtColor(image, image, cv::COLOR_YCrCb2BGR); - } - if(!data.depthRaw().empty()) - { -@@ -801,11 +800,11 @@ void SensorCaptureThread::postUpdate(SensorData * dataPtr, SensorCaptureInfo * i - else if(data.rightRaw().type() == CV_8UC3) - { - cv::Mat channels[3]; -- cv::cvtColor(data.rightRaw(), right, CV_BGR2YCrCb); -+ cv::cvtColor(data.rightRaw(), right, cv::COLOR_BGR2YCrCb); - cv::split(right, channels); - clahe->apply(channels[0], channels[0]); - cv::merge(channels, 3, right); -- cv::cvtColor(right, right, CV_YCrCb2BGR); -+ cv::cvtColor(right, right, cv::COLOR_YCrCb2BGR); - } - data.setStereoImage(image, right, data.stereoCameraModels()[0]); - } -diff --git a/corelib/src/Signature.cpp b/corelib/src/Signature.cpp -index 32fca30..a7dc364 100644 ---- a/corelib/src/Signature.cpp -+++ b/corelib/src/Signature.cpp -@@ -29,7 +29,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include "rtabmap/core/EpipolarGeometry.h" - #include "rtabmap/core/Memory.h" - #include "rtabmap/core/Compression.h" --#include -+#include - - #include - -diff --git a/corelib/src/StereoCameraModel.cpp b/corelib/src/StereoCameraModel.cpp -index 421d3f4..5b0e88b 100644 ---- a/corelib/src/StereoCameraModel.cpp -+++ b/corelib/src/StereoCameraModel.cpp -@@ -31,9 +31,12 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include - #include - #include --#include -+#include -+#if CV_MAJOR_VERSION >= 5 -+#include -+#endif - --#if CV_MAJOR_VERSION > 2 or (CV_MAJOR_VERSION == 2 and (CV_MINOR_VERSION >4 or (CV_MINOR_VERSION == 4 and CV_SUBMINOR_VERSION >=10))) -+#if (CV_MAJOR_VERSION > 2 and CV_MAJOR_VERSION < 5) or (CV_MAJOR_VERSION == 2 and (CV_MINOR_VERSION >4 or (CV_MINOR_VERSION == 4 and CV_SUBMINOR_VERSION >=10))) - #include - #endif - -@@ -179,12 +182,20 @@ void StereoCameraModel::updateStereoRectification() - { - cv::Vec4d D_left(left_.D_raw().at(0,0), left_.D_raw().at(0,1), left_.D_raw().at(0,4), left_.D_raw().at(0,5)); - cv::Vec4d D_right(right_.D_raw().at(0,0), right_.D_raw().at(0,1), right_.D_raw().at(0,4), right_.D_raw().at(0,5)); -- -+#if CV_MAJOR_VERSION < 5 - stereoRectifyFisheye( - left_.K_raw(), D_left, - right_.K_raw(), D_right, - left_.imageSize(), R_, T_, R1, R2, P1, P2, Q, - cv::CALIB_ZERO_DISPARITY, 0, left_.imageSize()); -+#else -+ double balance = 0.0, fov_scale = 1.0; -+ cv::fisheye::stereoRectify( -+ left_.K_raw(), D_left, -+ right_.K_raw(), D_right, -+ left_.imageSize(), R_, T_, R1, R2, P1, P2, Q, -+ cv::CALIB_ZERO_DISPARITY, left_.imageSize(), balance, fov_scale); -+#endif - - // Re-zoom to original focal distance - if(P1.at(0,0) < 0) -diff --git a/corelib/src/camera/CameraDepthAI.cpp b/corelib/src/camera/CameraDepthAI.cpp -index 9eb0179..a0d4699 100644 ---- a/corelib/src/camera/CameraDepthAI.cpp -+++ b/corelib/src/camera/CameraDepthAI.cpp -@@ -32,7 +32,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include - #include - #include -- -+#if CV_MAJOR_VERSION < 5 -+#include -+#else -+#include -+#endif - - namespace rtabmap { - -diff --git a/corelib/src/camera/CameraFreenect.cpp b/corelib/src/camera/CameraFreenect.cpp -index 9d48215..a402c7b 100644 ---- a/corelib/src/camera/CameraFreenect.cpp -+++ b/corelib/src/camera/CameraFreenect.cpp -@@ -28,7 +28,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include - #include - #include --#include - - #ifdef RTABMAP_FREENECT - #include -@@ -183,7 +182,7 @@ private: - - if(color_) - { -- cv::cvtColor(rgbIrBuffer_, rgbIrLastFrame_, CV_RGB2BGR); -+ cv::cvtColor(rgbIrBuffer_, rgbIrLastFrame_, cv::COLOR_RGB2BGR); - } - else // IrDepth - { -diff --git a/corelib/src/camera/CameraFreenect2.cpp b/corelib/src/camera/CameraFreenect2.cpp -index 85f7bdf..1514311 100644 ---- a/corelib/src/camera/CameraFreenect2.cpp -+++ b/corelib/src/camera/CameraFreenect2.cpp -@@ -29,7 +29,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include - #include - #include --#include - - #ifdef RTABMAP_FREENECT2 - #include -@@ -430,11 +429,11 @@ SensorData CameraFreenect2::captureImage(SensorCaptureInfo * info) - cv::Mat rgbMat; // rtabmap uses 3 channels RGB - #ifdef LIBFREENECT2_WITH_TEGRAJPEG_SUPPORT - -- cv::cvtColor(rgbMatC4, rgbMat, CV_RGBA2BGR); -+ cv::cvtColor(rgbMatC4, rgbMat, cv::COLOR_RGBA2BGR); - - #else - -- cv::cvtColor(rgbMatC4, rgbMat, CV_BGRA2BGR); -+ cv::cvtColor(rgbMatC4, rgbMat, cv::COLOR_BGRA2BGR); - - #endif - cv::flip(rgbMat, rgb, 1); -@@ -490,11 +489,11 @@ SensorData CameraFreenect2::captureImage(SensorCaptureInfo * info) - cv::Mat rgbMat; // rtabmap uses 3 channels RGB - #ifdef LIBFREENECT2_WITH_TEGRAJPEG_SUPPORT - -- cv::cvtColor(rgbMatC4, rgbMat, CV_RGB2BGR); -+ cv::cvtColor(rgbMatC4, rgbMat, cv::COLOR_RGB2BGR); - - #else - -- cv::cvtColor(rgbMatC4, rgbMat, CV_BGRA2BGR); -+ cv::cvtColor(rgbMatC4, rgbMat, cv::COLOR_BGRA2BGR); - - #endif - cv::flip(rgbMat, rgb, 1); -@@ -607,11 +606,11 @@ SensorData CameraFreenect2::captureImage(SensorCaptureInfo * info) - // rtabmap uses 3 channels RGB - #ifdef LIBFREENECT2_WITH_TEGRAJPEG_SUPPORT - -- cv::cvtColor(rgbMatBGRA, rgb, CV_RGBA2BGR); -+ cv::cvtColor(rgbMatBGRA, rgb, cv::COLOR_RGBA2BGR); - - #else - -- cv::cvtColor(rgbMatBGRA, rgb, CV_BGRA2BGR); -+ cv::cvtColor(rgbMatBGRA, rgb, cv::COLOR_BGRA2BGR); - - #endif - cv::flip(rgb, rgb, 1); -@@ -629,11 +628,11 @@ SensorData CameraFreenect2::captureImage(SensorCaptureInfo * info) - // rtabmap uses 3 channels RGB - #ifdef LIBFREENECT2_WITH_TEGRAJPEG_SUPPORT - -- cv::cvtColor(rgbMatBGRA, rgb, CV_RGBA2BGR); -+ cv::cvtColor(rgbMatBGRA, rgb, cv::COLOR_RGBA2BGR); - - #else - -- cv::cvtColor(rgbMatBGRA, rgb, CV_BGRA2BGR); -+ cv::cvtColor(rgbMatBGRA, rgb, cv::COLOR_BGRA2BGR); - - #endif - cv::flip(rgb, rgb, 1); -diff --git a/corelib/src/camera/CameraImages.cpp b/corelib/src/camera/CameraImages.cpp -index 0591181..9109ac4 100644 ---- a/corelib/src/camera/CameraImages.cpp -+++ b/corelib/src/camera/CameraImages.cpp -@@ -34,7 +34,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include - #include - #include --#include -+#include - #include - - namespace rtabmap -@@ -914,7 +914,7 @@ SensorData CameraImages::captureImage(SensorCaptureInfo * info) - { - UWARN("Conversion from 4 channels to 3 channels (file=%s)", imageFilePath.c_str()); - cv::Mat out; -- cv::cvtColor(img, out, CV_BGRA2BGR); -+ cv::cvtColor(img, out, cv::COLOR_BGRA2BGR); - img = out; - } - else if(!img.empty() && _bayerMode >= 0 && _bayerMode <=3) -@@ -922,7 +922,7 @@ SensorData CameraImages::captureImage(SensorCaptureInfo * info) - cv::Mat debayeredImg; - try - { -- cv::cvtColor(img, debayeredImg, CV_BayerBG2BGR + _bayerMode); -+ cv::cvtColor(img, debayeredImg, cv::COLOR_BayerBG2BGR + _bayerMode); - img = debayeredImg; - } - catch(const cv::Exception & e) -diff --git a/corelib/src/camera/CameraK4A.cpp b/corelib/src/camera/CameraK4A.cpp -index ad5714d..caf659b 100644 ---- a/corelib/src/camera/CameraK4A.cpp -+++ b/corelib/src/camera/CameraK4A.cpp -@@ -29,7 +29,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include - #include - #include --#include - - #ifdef RTABMAP_K4A - #include -@@ -508,7 +507,7 @@ SensorData CameraK4A::captureImage(SensorCaptureInfo * info) - CV_8UC4, - (void*)k4a_image_get_buffer(rgb_image_)); - -- cv::cvtColor(bgra, bgrCV, CV_BGRA2BGR); -+ cv::cvtColor(bgra, bgrCV, cv::COLOR_BGRA2BGR); - } - bgrCV = model_.rectifyImage(bgrCV); - -diff --git a/corelib/src/camera/CameraK4W2.cpp b/corelib/src/camera/CameraK4W2.cpp -index e289029..9a96251 100644 ---- a/corelib/src/camera/CameraK4W2.cpp -+++ b/corelib/src/camera/CameraK4W2.cpp -@@ -28,7 +28,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include - #include - #include --#include - - #ifdef RTABMAP_K4W2 - #include -@@ -486,11 +485,11 @@ SensorData CameraK4W2::captureImage(SensorCaptureInfo * info) - { - cv::Mat tmp; - cv::resize(cv::Mat(nColorHeight, nColorWidth, CV_8UC4, pColorBuffer), tmp, cv::Size(), 0.5, 0.5, cv::INTER_AREA); -- cv::cvtColor(tmp, imageColor, CV_BGRA2BGR); -+ cv::cvtColor(tmp, imageColor, cv::COLOR_BGRA2BGR); - } - else - { -- cv::cvtColor(cv::Mat(nColorHeight, nColorWidth, CV_8UC4, pColorBuffer), imageColor, CV_BGRA2BGR); -+ cv::cvtColor(cv::Mat(nColorHeight, nColorWidth, CV_8UC4, pColorBuffer), imageColor, cv::COLOR_BGRA2BGR); - } - // loop over output pixels - for (int depthIndex = 0; depthIndex < (nDepthWidth*nDepthHeight); ++depthIndex) -diff --git a/corelib/src/camera/CameraOpenNI2.cpp b/corelib/src/camera/CameraOpenNI2.cpp -index 8be86b7..4d2ff1a 100644 ---- a/corelib/src/camera/CameraOpenNI2.cpp -+++ b/corelib/src/camera/CameraOpenNI2.cpp -@@ -29,7 +29,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include - #include - #include --#include - - #ifdef RTABMAP_OPENNI2 - #include -@@ -514,7 +513,7 @@ SensorData CameraOpenNI2::captureImage(SensorCaptureInfo * info) - cv::Mat tmp(h, w, CV_8UC3, (void *)colorFrame.getData()); - if(_type==kTypeColorDepth) - { -- cv::cvtColor(tmp, rgb, CV_RGB2BGR); -+ cv::cvtColor(tmp, rgb, cv::COLOR_RGB2BGR); - } - else // IR - { -diff --git a/corelib/src/camera/CameraOpenNICV.cpp b/corelib/src/camera/CameraOpenNICV.cpp -index 13536d6..1359561 100644 ---- a/corelib/src/camera/CameraOpenNICV.cpp -+++ b/corelib/src/camera/CameraOpenNICV.cpp -@@ -26,9 +26,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - #include - #include --#if CV_MAJOR_VERSION > 3 --#include --#endif -+#include - - namespace rtabmap - { -@@ -59,30 +57,34 @@ bool CameraOpenNICV::init(const std::string & calibrationFolder, const std::stri - } - - ULOGGER_DEBUG("Camera::init()"); -- _capture.open( _asus?CV_CAP_OPENNI_ASUS:CV_CAP_OPENNI ); -+#if CV_MAJOR_VERSION < 5 -+ _capture.open( _asus?cv::CAP_OPENNI_ASUS:cv::CAP_OPENNI ); -+#else -+ _capture.open( _asus?cv::CAP_OPENNI2_ASUS:cv::CAP_OPENNI2 ); -+#endif - if(_capture.isOpened()) - { -- _capture.set( CV_CAP_OPENNI_IMAGE_GENERATOR_OUTPUT_MODE, CV_CAP_OPENNI_VGA_30HZ ); -- _depthFocal = _capture.get( CV_CAP_OPENNI_DEPTH_GENERATOR_FOCAL_LENGTH ); -+ _capture.set( cv::CAP_OPENNI_IMAGE_GENERATOR_OUTPUT_MODE, cv::CAP_OPENNI_VGA_30HZ ); -+ _depthFocal = _capture.get( cv::CAP_OPENNI_DEPTH_GENERATOR_FOCAL_LENGTH ); - // Print some avalible device settings. - UINFO("Depth generator output mode:"); -- UINFO("FRAME_WIDTH %f", _capture.get( CV_CAP_PROP_FRAME_WIDTH )); -- UINFO("FRAME_HEIGHT %f", _capture.get( CV_CAP_PROP_FRAME_HEIGHT )); -- UINFO("FRAME_MAX_DEPTH %f mm", _capture.get( CV_CAP_PROP_OPENNI_FRAME_MAX_DEPTH )); -- UINFO("BASELINE %f mm", _capture.get( CV_CAP_PROP_OPENNI_BASELINE )); -- UINFO("FPS %f", _capture.get( CV_CAP_PROP_FPS )); -- UINFO("Focal %f", _capture.get( CV_CAP_OPENNI_DEPTH_GENERATOR_FOCAL_LENGTH )); -- UINFO("REGISTRATION %f", _capture.get( CV_CAP_PROP_OPENNI_REGISTRATION )); -- if(_capture.get( CV_CAP_PROP_OPENNI_REGISTRATION ) == 0.0) -+ UINFO("FRAME_WIDTH %f", _capture.get( cv::CAP_PROP_FRAME_WIDTH )); -+ UINFO("FRAME_HEIGHT %f", _capture.get( cv::CAP_PROP_FRAME_HEIGHT )); -+ UINFO("FRAME_MAX_DEPTH %f mm", _capture.get( cv::CAP_PROP_OPENNI_FRAME_MAX_DEPTH )); -+ UINFO("BASELINE %f mm", _capture.get( cv::CAP_PROP_OPENNI_BASELINE )); -+ UINFO("FPS %f", _capture.get( cv::CAP_PROP_FPS )); -+ UINFO("Focal %f", _capture.get( cv::CAP_OPENNI_DEPTH_GENERATOR_FOCAL_LENGTH )); -+ UINFO("REGISTRATION %f", _capture.get( cv::CAP_PROP_OPENNI_REGISTRATION )); -+ if(_capture.get( cv::CAP_PROP_OPENNI_REGISTRATION ) == 0.0) - { - UERROR("Depth registration is not activated on this device!"); - } -- if( _capture.get( CV_CAP_OPENNI_IMAGE_GENERATOR_PRESENT ) ) -+ if( _capture.get( cv::CAP_OPENNI_IMAGE_GENERATOR_PRESENT ) ) - { - UINFO("Image generator output mode:"); -- UINFO("FRAME_WIDTH %f", _capture.get( CV_CAP_OPENNI_IMAGE_GENERATOR+CV_CAP_PROP_FRAME_WIDTH )); -- UINFO("FRAME_HEIGHT %f", _capture.get( CV_CAP_OPENNI_IMAGE_GENERATOR+CV_CAP_PROP_FRAME_HEIGHT )); -- UINFO("FPS %f", _capture.get( CV_CAP_OPENNI_IMAGE_GENERATOR+CV_CAP_PROP_FPS )); -+ UINFO("FRAME_WIDTH %f", _capture.get( cv::CAP_OPENNI_IMAGE_GENERATOR+cv::CAP_PROP_FRAME_WIDTH )); -+ UINFO("FRAME_HEIGHT %f", _capture.get( cv::CAP_OPENNI_IMAGE_GENERATOR+cv::CAP_PROP_FRAME_HEIGHT )); -+ UINFO("FPS %f", _capture.get( cv::CAP_OPENNI_IMAGE_GENERATOR+cv::CAP_PROP_FPS )); - } - else - { -@@ -112,8 +114,8 @@ SensorData CameraOpenNICV::captureImage(SensorCaptureInfo * info) - { - _capture.grab(); - cv::Mat depth, rgb; -- _capture.retrieve(depth, CV_CAP_OPENNI_DEPTH_MAP ); -- _capture.retrieve(rgb, CV_CAP_OPENNI_BGR_IMAGE ); -+ _capture.retrieve(depth, cv::CAP_OPENNI_DEPTH_MAP ); -+ _capture.retrieve(rgb, cv::CAP_OPENNI_BGR_IMAGE ); - - depth = depth.clone(); - rgb = rgb.clone(); -diff --git a/corelib/src/camera/CameraOpenni.cpp b/corelib/src/camera/CameraOpenni.cpp -index 9fb8dc7..68cba16 100644 ---- a/corelib/src/camera/CameraOpenni.cpp -+++ b/corelib/src/camera/CameraOpenni.cpp -@@ -28,7 +28,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include - #include - #include --#include - - #ifdef RTABMAP_OPENNI - #include -@@ -94,7 +93,7 @@ void CameraOpenni::image_cb ( - - cv::Mat rgbFrame(rgb->getHeight(), rgb->getWidth(), CV_8UC3); - rgb->fillRGB(rgb->getWidth(), rgb->getHeight(), rgbFrame.data); -- cv::cvtColor(rgbFrame, rgb_, CV_RGB2BGR); -+ cv::cvtColor(rgbFrame, rgb_, cv::COLOR_RGB2BGR); - - depth_ = cv::Mat(rgb->getHeight(), rgb->getWidth(), CV_16UC1); - depth->fillDepthImageRaw(rgb->getWidth(), rgb->getHeight(), (unsigned short*)depth_.data); -diff --git a/corelib/src/camera/CameraRealSense.cpp b/corelib/src/camera/CameraRealSense.cpp -index 3f545bb..0136238 100644 ---- a/corelib/src/camera/CameraRealSense.cpp -+++ b/corelib/src/camera/CameraRealSense.cpp -@@ -29,7 +29,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include - #include - #include --#include - - #ifdef RTABMAP_REALSENSE - #include -@@ -938,7 +937,7 @@ SensorData CameraRealSense::captureImage(SensorCaptureInfo * info) - } - else - { -- cv::cvtColor(rgb, bgr, CV_RGB2BGR); -+ cv::cvtColor(rgb, bgr, cv::COLOR_RGB2BGR); - } - - bool rectified = false; -diff --git a/corelib/src/camera/CameraRealSense2.cpp b/corelib/src/camera/CameraRealSense2.cpp -index 4ddfc77..cc803c8 100644 ---- a/corelib/src/camera/CameraRealSense2.cpp -+++ b/corelib/src/camera/CameraRealSense2.cpp -@@ -30,7 +30,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include - #include - #include --#include - - #ifdef RTABMAP_REALSENSE2 - #include -diff --git a/corelib/src/camera/CameraStereoDC1394.cpp b/corelib/src/camera/CameraStereoDC1394.cpp -index 691516b..2c21108 100644 ---- a/corelib/src/camera/CameraStereoDC1394.cpp -+++ b/corelib/src/camera/CameraStereoDC1394.cpp -@@ -28,7 +28,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include - #include - #include --#include - - #ifdef RTABMAP_DC1394 - #include -@@ -295,8 +294,8 @@ public: - - //DC1394_COLOR_CODING_RAW16: - //DC1394_COLOR_FILTER_BGGR -- cv::cvtColor(cv::Mat(frame->size[1], frame->size[0], CV_8UC1, capture_buffer), left, CV_BayerRG2BGR); -- cv::cvtColor(cv::Mat(frame->size[1], frame->size[0], CV_8UC1, capture_buffer+image.total()), right, CV_BayerRG2GRAY); -+ cv::cvtColor(cv::Mat(frame->size[1], frame->size[0], CV_8UC1, capture_buffer), left, cv::COLOR_BayerRG2BGR); -+ cv::cvtColor(cv::Mat(frame->size[1], frame->size[0], CV_8UC1, capture_buffer+image.total()), right, cv::COLOR_BayerRG2GRAY); - - dc1394_capture_enqueue(camera_, frame); - -diff --git a/corelib/src/camera/CameraStereoImages.cpp b/corelib/src/camera/CameraStereoImages.cpp -index c50a3b8..e0dd643 100644 ---- a/corelib/src/camera/CameraStereoImages.cpp -+++ b/corelib/src/camera/CameraStereoImages.cpp -@@ -27,7 +27,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - #include - #include --#include - - namespace rtabmap - { -@@ -184,7 +183,7 @@ SensorData CameraStereoImages::captureImage(SensorCaptureInfo * info) - if(rightImage.type() != CV_8UC1 && rightGrayScale_) - { - cv::Mat tmp; -- cv::cvtColor(rightImage, tmp, CV_BGR2GRAY); -+ cv::cvtColor(rightImage, tmp, cv::COLOR_BGR2GRAY); - rightImage = tmp; - } - if(this->isImagesRectified() && stereoModel_.isValidForRectification()) -diff --git a/corelib/src/camera/CameraStereoTara.cpp b/corelib/src/camera/CameraStereoTara.cpp -index e4ea3cd..f4ec60a 100644 ---- a/corelib/src/camera/CameraStereoTara.cpp -+++ b/corelib/src/camera/CameraStereoTara.cpp -@@ -34,9 +34,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include - #include - #include --#if CV_MAJOR_VERSION > 3 --#include --#endif -+#include - - namespace rtabmap - { -@@ -81,18 +79,18 @@ bool CameraStereoTara::init(const std::string & calibrationFolder, const std::st - - capture_.open(usbDevice_); - -- capture_.set(CV_CAP_PROP_FOURCC, CV_FOURCC('Y', '1', '6', ' ')); -- capture_.set(CV_CAP_PROP_FPS, 60); -- capture_.set(CV_CAP_PROP_FRAME_WIDTH, 752); -- capture_.set(CV_CAP_PROP_FRAME_HEIGHT, 480); -- capture_.set(CV_CAP_PROP_CONVERT_RGB,false); -+ capture_.set(cv::CAP_PROP_FOURCC, cv::VideoWriter::fourcc('Y', '1', '6', ' ')); -+ capture_.set(cv::CAP_PROP_FPS, 60); -+ capture_.set(cv::CAP_PROP_FRAME_WIDTH, 752); -+ capture_.set(cv::CAP_PROP_FRAME_HEIGHT, 480); -+ capture_.set(cv::CAP_PROP_CONVERT_RGB,false); - - ULOGGER_DEBUG("CameraStereoTara: Usb device initialization on device %d", usbDevice_); - - - if (cameraName_.empty()) - { -- unsigned int guid = (unsigned int)capture_.get(CV_CAP_PROP_GUID); -+ unsigned int guid = (unsigned int)capture_.get(cv::CAP_PROP_GUID); - if (guid != 0 && guid != 0xffffffff) - { - cameraName_ = uFormat("%08x", guid); -diff --git a/corelib/src/camera/CameraStereoVideo.cpp b/corelib/src/camera/CameraStereoVideo.cpp -index f31f40b..5de23a6 100644 ---- a/corelib/src/camera/CameraStereoVideo.cpp -+++ b/corelib/src/camera/CameraStereoVideo.cpp -@@ -28,13 +28,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include - #include - #include --#include --#if CV_MAJOR_VERSION > 3 --#include --#if CV_MAJOR_VERSION > 4 --#include --#endif --#endif -+#include - - namespace rtabmap - { -@@ -172,7 +166,7 @@ bool CameraStereoVideo::init(const std::string & calibrationFolder, const std::s - - if (cameraName_.empty()) - { -- unsigned int guid = (unsigned int)capture_.get(CV_CAP_PROP_GUID); -+ unsigned int guid = (unsigned int)capture_.get(cv::CAP_PROP_GUID); - if (guid != 0 && guid != 0xffffffff) - { - cameraName_ = uFormat("%08x", guid); -@@ -214,17 +208,17 @@ bool CameraStereoVideo::init(const std::string & calibrationFolder, const std::s - if(capture_.isOpened()) - { - bool resolutionSet = false; -- resolutionSet = capture_.set(CV_CAP_PROP_FRAME_WIDTH, stereoModel_.left().imageWidth()*(capture2_.isOpened()?1:2)); -- resolutionSet = resolutionSet && capture_.set(CV_CAP_PROP_FRAME_HEIGHT, stereoModel_.left().imageHeight()); -+ resolutionSet = capture_.set(cv::CAP_PROP_FRAME_WIDTH, stereoModel_.left().imageWidth()*(capture2_.isOpened()?1:2)); -+ resolutionSet = resolutionSet && capture_.set(cv::CAP_PROP_FRAME_HEIGHT, stereoModel_.left().imageHeight()); - if(capture2_.isOpened()) - { -- resolutionSet = resolutionSet && capture2_.set(CV_CAP_PROP_FRAME_WIDTH, stereoModel_.right().imageWidth()); -- resolutionSet = resolutionSet && capture2_.set(CV_CAP_PROP_FRAME_HEIGHT, stereoModel_.right().imageHeight()); -+ resolutionSet = resolutionSet && capture2_.set(cv::CAP_PROP_FRAME_WIDTH, stereoModel_.right().imageWidth()); -+ resolutionSet = resolutionSet && capture2_.set(cv::CAP_PROP_FRAME_HEIGHT, stereoModel_.right().imageHeight()); - } - - // Check if the resolution was set successfully -- int actualWidth = int(capture_.get(CV_CAP_PROP_FRAME_WIDTH)); -- int actualHeight = int(capture_.get(CV_CAP_PROP_FRAME_HEIGHT)); -+ int actualWidth = int(capture_.get(cv::CAP_PROP_FRAME_WIDTH)); -+ int actualHeight = int(capture_.get(cv::CAP_PROP_FRAME_HEIGHT)); - if(!resolutionSet || - actualWidth != stereoModel_.left().imageWidth()*(capture2_.isOpened()?1:2) || - actualHeight != stereoModel_.left().imageHeight()) -@@ -244,17 +238,17 @@ bool CameraStereoVideo::init(const std::string & calibrationFolder, const std::s - if(capture_.isOpened()) - { - bool resolutionSet = false; -- resolutionSet = capture_.set(CV_CAP_PROP_FRAME_WIDTH, _width*(capture2_.isOpened()?1:2)); -- resolutionSet = resolutionSet && capture_.set(CV_CAP_PROP_FRAME_HEIGHT, _height); -+ resolutionSet = capture_.set(cv::CAP_PROP_FRAME_WIDTH, _width*(capture2_.isOpened()?1:2)); -+ resolutionSet = resolutionSet && capture_.set(cv::CAP_PROP_FRAME_HEIGHT, _height); - if(capture2_.isOpened()) - { -- resolutionSet = resolutionSet && capture2_.set(CV_CAP_PROP_FRAME_WIDTH, _width); -- resolutionSet = resolutionSet && capture2_.set(CV_CAP_PROP_FRAME_HEIGHT, _height); -+ resolutionSet = resolutionSet && capture2_.set(cv::CAP_PROP_FRAME_WIDTH, _width); -+ resolutionSet = resolutionSet && capture2_.set(cv::CAP_PROP_FRAME_HEIGHT, _height); - } - - // Check if the resolution was set successfully -- int actualWidth = int(capture_.get(CV_CAP_PROP_FRAME_WIDTH)); -- int actualHeight = int(capture_.get(CV_CAP_PROP_FRAME_HEIGHT)); -+ int actualWidth = int(capture_.get(cv::CAP_PROP_FRAME_WIDTH)); -+ int actualHeight = int(capture_.get(cv::CAP_PROP_FRAME_HEIGHT)); - if(!resolutionSet || - actualWidth != _width*(capture2_.isOpened()?1:2) || - actualHeight != _height) -@@ -273,10 +267,10 @@ bool CameraStereoVideo::init(const std::string & calibrationFolder, const std::s - if (this->getFrameRate() > 0) - { - bool fpsSupported = false; -- fpsSupported = capture_.set(CV_CAP_PROP_FPS, this->getFrameRate()); -+ fpsSupported = capture_.set(cv::CAP_PROP_FPS, this->getFrameRate()); - if (capture2_.isOpened()) - { -- fpsSupported = fpsSupported && capture2_.set(CV_CAP_PROP_FPS, this->getFrameRate()); -+ fpsSupported = fpsSupported && capture2_.set(cv::CAP_PROP_FPS, this->getFrameRate()); - } - if(fpsSupported) - { -@@ -310,14 +304,14 @@ bool CameraStereoVideo::init(const std::string & calibrationFolder, const std::s - std::string fourccUpperCase = uToUpperCase(_fourcc); - int fourcc = cv::VideoWriter::fourcc(fourccUpperCase.at(0), fourccUpperCase.at(1), fourccUpperCase.at(2), fourccUpperCase.at(3)); - bool fourccSupported = false; -- fourccSupported = capture_.set(CV_CAP_PROP_FOURCC, fourcc); -+ fourccSupported = capture_.set(cv::CAP_PROP_FOURCC, fourcc); - if (capture2_.isOpened()) - { -- fourccSupported = fourccSupported && capture2_.set(CV_CAP_PROP_FOURCC, fourcc); -+ fourccSupported = fourccSupported && capture2_.set(cv::CAP_PROP_FOURCC, fourcc); - } - - // Check if the FOURCC was set successfully -- int actualFourcc = int(capture_.get(CV_CAP_PROP_FOURCC)); -+ int actualFourcc = int(capture_.get(cv::CAP_PROP_FOURCC)); - - if(!fourccSupported || actualFourcc != fourcc) - { -@@ -386,7 +380,7 @@ SensorData CameraStereoVideo::captureImage(SensorCaptureInfo * info) - if(rightImage.type() != CV_8UC1 && rightGrayScale_) - { - cv::Mat tmp; -- cv::cvtColor(rightImage, tmp, CV_BGR2GRAY); -+ cv::cvtColor(rightImage, tmp, cv::COLOR_BGR2GRAY); - rightImage = tmp; - rightCvt = true; - } -diff --git a/corelib/src/camera/CameraStereoZedOC.cpp b/corelib/src/camera/CameraStereoZedOC.cpp -index 014976a..e3ba6d4 100644 ---- a/corelib/src/camera/CameraStereoZedOC.cpp -+++ b/corelib/src/camera/CameraStereoZedOC.cpp -@@ -38,6 +38,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include - #include "SimpleIni.h" - -+#if CV_MAJOR_VERSION >= 5 -+#include -+#endif -+ - /////////////////////////////////////////////////////////////////////////// - // - // Copyright (c) 2018, STEREOLABS. -diff --git a/corelib/src/camera/CameraVideo.cpp b/corelib/src/camera/CameraVideo.cpp -index 9a0a70d..1776bca 100644 ---- a/corelib/src/camera/CameraVideo.cpp -+++ b/corelib/src/camera/CameraVideo.cpp -@@ -28,12 +28,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include - #include - #include --#if CV_MAJOR_VERSION > 3 --#include --#if CV_MAJOR_VERSION > 4 --#include --#endif --#endif -+#include - - namespace rtabmap - { -@@ -105,7 +100,7 @@ bool CameraVideo::init(const std::string & calibrationFolder, const std::string - { - if (_guid.empty()) - { -- unsigned int guid = (unsigned int)_capture.get(CV_CAP_PROP_GUID); -+ unsigned int guid = (unsigned int)_capture.get(cv::CAP_PROP_GUID); - if (guid != 0 && guid != 0xffffffff) - { - _guid = uFormat("%08x", guid); -@@ -143,12 +138,12 @@ bool CameraVideo::init(const std::string & calibrationFolder, const std::string - } - - bool resolutionSet = false; -- resolutionSet = _capture.set(CV_CAP_PROP_FRAME_WIDTH, _model.imageWidth()); -- resolutionSet = resolutionSet && _capture.set(CV_CAP_PROP_FRAME_HEIGHT, _model.imageHeight()); -+ resolutionSet = _capture.set(cv::CAP_PROP_FRAME_WIDTH, _model.imageWidth()); -+ resolutionSet = resolutionSet && _capture.set(cv::CAP_PROP_FRAME_HEIGHT, _model.imageHeight()); - - // Check if the resolution was set successfully -- int actualWidth = int(_capture.get(CV_CAP_PROP_FRAME_WIDTH)); -- int actualHeight = int(_capture.get(CV_CAP_PROP_FRAME_HEIGHT)); -+ int actualWidth = int(_capture.get(cv::CAP_PROP_FRAME_WIDTH)); -+ int actualHeight = int(_capture.get(cv::CAP_PROP_FRAME_HEIGHT)); - if(!resolutionSet || - actualWidth != _model.imageWidth() || - actualHeight != _model.imageHeight()) -@@ -165,12 +160,12 @@ bool CameraVideo::init(const std::string & calibrationFolder, const std::string - else if(_width > 0 && _height > 0) - { - int resolutionSet = false; -- resolutionSet = _capture.set(CV_CAP_PROP_FRAME_WIDTH, _width); -- resolutionSet = resolutionSet && _capture.set(CV_CAP_PROP_FRAME_HEIGHT, _height); -+ resolutionSet = _capture.set(cv::CAP_PROP_FRAME_WIDTH, _width); -+ resolutionSet = resolutionSet && _capture.set(cv::CAP_PROP_FRAME_HEIGHT, _height); - - // Check if the resolution was set successfully -- int actualWidth = int(_capture.get(CV_CAP_PROP_FRAME_WIDTH)); -- int actualHeight = int(_capture.get(CV_CAP_PROP_FRAME_HEIGHT)); -+ int actualWidth = int(_capture.get(cv::CAP_PROP_FRAME_WIDTH)); -+ int actualHeight = int(_capture.get(cv::CAP_PROP_FRAME_HEIGHT)); - if(!resolutionSet || actualWidth != _width || actualHeight != _height) - { - UWARN("Desired resolution (%dx%d) cannot be set to camera driver, " -@@ -182,7 +177,7 @@ bool CameraVideo::init(const std::string & calibrationFolder, const std::string - } - - // Set FPS -- if (this->getFrameRate() > 0 && _capture.set(CV_CAP_PROP_FPS, this->getFrameRate())) -+ if (this->getFrameRate() > 0 && _capture.set(cv::CAP_PROP_FPS, this->getFrameRate())) - { - // Check if the FPS was set successfully - double actualFPS = _capture.get(cv::CAP_PROP_FPS); -@@ -213,10 +208,10 @@ bool CameraVideo::init(const std::string & calibrationFolder, const std::string - std::string fourccUpperCase = uToUpperCase(_fourcc); - int fourcc = cv::VideoWriter::fourcc(fourccUpperCase.at(0), fourccUpperCase.at(1), fourccUpperCase.at(2), fourccUpperCase.at(3)); - -- bool fourccSupported = _capture.set(CV_CAP_PROP_FOURCC, fourcc); -+ bool fourccSupported = _capture.set(cv::CAP_PROP_FOURCC, fourcc); - - // Check if the FOURCC was set successfully -- int actualFourcc = int(_capture.get(CV_CAP_PROP_FOURCC)); -+ int actualFourcc = int(_capture.get(cv::CAP_PROP_FOURCC)); - - if(!fourccSupported || actualFourcc != fourcc) - { -diff --git a/corelib/src/clams/discrete_depth_distortion_model_helpers.cpp b/corelib/src/clams/discrete_depth_distortion_model_helpers.cpp -index 06c348d..dfbdc02 100644 ---- a/corelib/src/clams/discrete_depth_distortion_model_helpers.cpp -+++ b/corelib/src/clams/discrete_depth_distortion_model_helpers.cpp -@@ -28,8 +28,8 @@ RTAB-Map integration: Mathieu Labbe - */ - - #include --#include --#include -+#include -+#include - #include - #include - -diff --git a/corelib/src/clams/frame_projector.cpp b/corelib/src/clams/frame_projector.cpp -index 3230fcf..2634911 100644 ---- a/corelib/src/clams/frame_projector.cpp -+++ b/corelib/src/clams/frame_projector.cpp -@@ -31,8 +31,8 @@ RTAB-Map integration: Mathieu Labbe - #include - #include - #include --#include --#include -+#include -+#include - #include - - using namespace std; -diff --git a/corelib/src/odometry/OdometryDVO.cpp b/corelib/src/odometry/OdometryDVO.cpp -index 2f7190d..a1e425d 100644 ---- a/corelib/src/odometry/OdometryDVO.cpp -+++ b/corelib/src/odometry/OdometryDVO.cpp -@@ -31,7 +31,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include "rtabmap/utilite/ULogger.h" - #include "rtabmap/utilite/UTimer.h" - #include "rtabmap/utilite/UStl.h" --#include - - #ifdef RTABMAP_DVO - #include -@@ -124,7 +123,7 @@ Transform OdometryDVO::computeTransform( - { - if(data.imageRaw().type() == CV_8UC3) - { -- cv::cvtColor(data.imageRaw(), grey, CV_BGR2GRAY); -+ cv::cvtColor(data.imageRaw(), grey, cv::COLOR_BGR2GRAY); - } - else - { -diff --git a/corelib/src/odometry/OdometryF2M.cpp b/corelib/src/odometry/OdometryF2M.cpp -index ba47ac1..92ac0fc 100644 ---- a/corelib/src/odometry/OdometryF2M.cpp -+++ b/corelib/src/odometry/OdometryF2M.cpp -@@ -42,7 +42,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include "rtabmap/utilite/UTimer.h" - #include "rtabmap/utilite/UMath.h" - #include "rtabmap/utilite/UConversion.h" -+#if CV_MAJOR_VERSION < 5 - #include -+#else -+#include -+#endif - #include - #include - -diff --git a/corelib/src/odometry/OdometryFovis.cpp b/corelib/src/odometry/OdometryFovis.cpp -index 673639a..c1f5a99 100644 ---- a/corelib/src/odometry/OdometryFovis.cpp -+++ b/corelib/src/odometry/OdometryFovis.cpp -@@ -31,7 +31,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include "rtabmap/utilite/ULogger.h" - #include "rtabmap/utilite/UTimer.h" - #include "rtabmap/utilite/UStl.h" --#include - - #ifdef RTABMAP_FOVIS - #include -@@ -137,7 +136,7 @@ Transform OdometryFovis::computeTransform( - cv::Mat gray; - if(data.imageRaw().type() == CV_8UC3) - { -- cv::cvtColor(data.imageRaw(), gray, CV_BGR2GRAY); -+ cv::cvtColor(data.imageRaw(), gray, cv::COLOR_BGR2GRAY); - } - else if(data.imageRaw().type() == CV_8UC1) - { -@@ -302,7 +301,7 @@ Transform OdometryFovis::computeTransform( - } - if(data.rightRaw().type() == CV_8UC3) - { -- cv::cvtColor(data.rightRaw(), right, CV_BGR2GRAY); -+ cv::cvtColor(data.rightRaw(), right, cv::COLOR_BGR2GRAY); - } - else if(data.rightRaw().type() == CV_8UC1) - { -diff --git a/corelib/src/odometry/OdometryMSCKF.cpp b/corelib/src/odometry/OdometryMSCKF.cpp -index ac62c25..6b6737c 100644 ---- a/corelib/src/odometry/OdometryMSCKF.cpp -+++ b/corelib/src/odometry/OdometryMSCKF.cpp -@@ -26,13 +26,15 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - - #include "rtabmap/core/odometry/OdometryMSCKF.h" -+#if CV_MAJOR_VERSION >= 5 -+#include -+#endif - #include "rtabmap/core/OdometryInfo.h" - #include "rtabmap/core/util3d_transforms.h" - #include "rtabmap/utilite/ULogger.h" - #include "rtabmap/utilite/UTimer.h" - #include "rtabmap/utilite/UStl.h" - #include "rtabmap/utilite/UThread.h" --#include - - #ifdef RTABMAP_MSCKF_VIO - #include -@@ -867,7 +869,7 @@ Transform OdometryMSCKF::computeTransform( - - if(data.imageRaw().type() == CV_8UC3) - { -- cv::cvtColor(data.imageRaw(), cam0.image, CV_BGR2GRAY); -+ cv::cvtColor(data.imageRaw(), cam0.image, cv::COLOR_BGR2GRAY); - } - else - { -@@ -875,7 +877,7 @@ Transform OdometryMSCKF::computeTransform( - } - if(data.rightRaw().type() == CV_8UC3) - { -- cv::cvtColor(data.rightRaw(), cam1.image, CV_BGR2GRAY); -+ cv::cvtColor(data.rightRaw(), cam1.image, cv::COLOR_BGR2GRAY); - } - else - { -diff --git a/corelib/src/odometry/OdometryMono.cpp b/corelib/src/odometry/OdometryMono.cpp -index 7df312e..8cefcf7 100644 ---- a/corelib/src/odometry/OdometryMono.cpp -+++ b/corelib/src/odometry/OdometryMono.cpp -@@ -42,9 +42,16 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include "rtabmap/utilite/UConversion.h" - #include "rtabmap/utilite/UStl.h" - #include "rtabmap/utilite/UMath.h" --#include -+#include -+#if CV_MAJOR_VERSION < 5 - #include -+#else -+#include -+#endif - #include -+#if CV_MAJOR_VERSION >= 5 -+#include -+#endif - #include - - namespace rtabmap { -diff --git a/corelib/src/odometry/OdometryORBSLAM2.cpp b/corelib/src/odometry/OdometryORBSLAM2.cpp -index 1ae10bc..616678c 100644 ---- a/corelib/src/odometry/OdometryORBSLAM2.cpp -+++ b/corelib/src/odometry/OdometryORBSLAM2.cpp -@@ -33,7 +33,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include "rtabmap/utilite/UStl.h" - #include "rtabmap/utilite/UDirectory.h" - #include --#include - #include - - #if defined(RTABMAP_ORB_SLAM) and RTABMAP_ORB_SLAM == 2 -@@ -426,7 +425,7 @@ public: - } - else - { -- cvtColor(mImGray,mImGray,CV_BGR2GRAY); -+ cvtColor(mImGray,mImGray,cv::COLOR_BGR2GRAY); - } - } - else if(mImGray.channels()==4) -@@ -437,7 +436,7 @@ public: - } - else - { -- cvtColor(mImGray,mImGray,CV_BGRA2GRAY); -+ cvtColor(mImGray,mImGray,cv::COLOR_BGRA2GRAY); - } - } - if(imGrayRight.channels()==3) -@@ -448,7 +447,7 @@ public: - } - else - { -- cvtColor(imGrayRight,imGrayRight,CV_BGR2GRAY); -+ cvtColor(imGrayRight,imGrayRight,cv::COLOR_BGR2GRAY); - } - } - else if(imGrayRight.channels()==4) -@@ -459,7 +458,7 @@ public: - } - else - { -- cvtColor(imGrayRight,imGrayRight,CV_BGRA2GRAY); -+ cvtColor(imGrayRight,imGrayRight,cv::COLOR_BGRA2GRAY); - } - } - -@@ -480,14 +479,14 @@ public: - if(mbRGB) - cvtColor(mImGray,mImGray,CV_RGB2GRAY); - else -- cvtColor(mImGray,mImGray,CV_BGR2GRAY); -+ cvtColor(mImGray,mImGray,cv::COLOR_BGR2GRAY); - } - else if(mImGray.channels()==4) - { - if(mbRGB) - cvtColor(mImGray,mImGray,CV_RGBA2GRAY); - else -- cvtColor(mImGray,mImGray,CV_BGRA2GRAY); -+ cvtColor(mImGray,mImGray,cv::COLOR_BGRA2GRAY); - } - - UASSERT(imDepth.type()==CV_32F); -diff --git a/corelib/src/odometry/OdometryORBSLAM3.cpp b/corelib/src/odometry/OdometryORBSLAM3.cpp -index 7cde70a..ff87bce 100644 ---- a/corelib/src/odometry/OdometryORBSLAM3.cpp -+++ b/corelib/src/odometry/OdometryORBSLAM3.cpp -@@ -33,7 +33,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include "rtabmap/utilite/UStl.h" - #include "rtabmap/utilite/UDirectory.h" - #include --#include - #include - - #if defined(RTABMAP_ORB_SLAM) and RTABMAP_ORB_SLAM == 3 -@@ -450,12 +449,12 @@ Transform OdometryORBSLAM3::computeTransform( - cv::Mat leftMono = data.imageRaw(); - if(data.imageRaw().channels() == 3) { - leftMono = cv::Mat(); -- cv::cvtColor(data.imageRaw(), leftMono, CV_BGR2GRAY); -+ cv::cvtColor(data.imageRaw(), leftMono, cv::COLOR_BGR2GRAY); - } - cv::Mat rightMono = data.rightRaw(); - if(data.rightRaw().channels() == 3) { - rightMono = cv::Mat(); -- cv::cvtColor(data.imageRaw(), rightMono, CV_BGR2GRAY); -+ cv::cvtColor(data.imageRaw(), rightMono, cv::COLOR_BGR2GRAY); - } - Tcw = orbslam_->TrackStereo(leftMono, rightMono, data.stamp(), orbslamImus_); - orbslamImus_.clear(); -diff --git a/corelib/src/odometry/OdometryOkvis.cpp b/corelib/src/odometry/OdometryOkvis.cpp -index 10497b9..7c97e27 100644 ---- a/corelib/src/odometry/OdometryOkvis.cpp -+++ b/corelib/src/odometry/OdometryOkvis.cpp -@@ -34,7 +34,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include "rtabmap/utilite/UThread.h" - #include "rtabmap/utilite/UFile.h" - #include "rtabmap/utilite/UDirectory.h" --#include - - #ifdef RTABMAP_OKVIS - #include -@@ -427,7 +426,7 @@ Transform OdometryOkvis::computeTransform( - cv::Mat gray; - if(images[i].type() == CV_8UC3) - { -- cv::cvtColor(images[i], gray, CV_BGR2GRAY); -+ cv::cvtColor(images[i], gray, cv::COLOR_BGR2GRAY); - } - else if(images[i].type() == CV_8UC1) - { -diff --git a/corelib/src/odometry/OdometryOpenVINS.cpp b/corelib/src/odometry/OdometryOpenVINS.cpp -index da81f7e..a14d74c 100644 ---- a/corelib/src/odometry/OdometryOpenVINS.cpp -+++ b/corelib/src/odometry/OdometryOpenVINS.cpp -@@ -32,7 +32,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include "rtabmap/utilite/ULogger.h" - #include "rtabmap/utilite/UTimer.h" - #include --#include - - #ifdef RTABMAP_OPENVINS - #include "core/VioManager.h" -@@ -340,7 +339,7 @@ Transform OdometryOpenVINS::computeTransform( - - cv::Mat image; - if(data.imageRaw().type() == CV_8UC3) -- cv::cvtColor(data.imageRaw(), image, CV_BGR2GRAY); -+ cv::cvtColor(data.imageRaw(), image, cv::COLOR_BGR2GRAY); - else if(data.imageRaw().type() == CV_8UC1) - image = data.imageRaw().clone(); - else -@@ -371,7 +370,7 @@ Transform OdometryOpenVINS::computeTransform( - if(!data.rightRaw().empty()) - { - if(data.rightRaw().type() == CV_8UC3) -- cv::cvtColor(data.rightRaw(), image, CV_BGR2GRAY); -+ cv::cvtColor(data.rightRaw(), image, cv::COLOR_BGR2GRAY); - else if(data.rightRaw().type() == CV_8UC1) - image = data.rightRaw().clone(); - else -diff --git a/corelib/src/odometry/OdometryVINS.cpp b/corelib/src/odometry/OdometryVINS.cpp -index aa18393..bd8585d 100644 ---- a/corelib/src/odometry/OdometryVINS.cpp -+++ b/corelib/src/odometry/OdometryVINS.cpp -@@ -26,6 +26,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - - #include "rtabmap/core/odometry/OdometryVINS.h" -+#if CV_MAJOR_VERSION >= 5 -+#include -+#endif - #include "rtabmap/core/OdometryInfo.h" - #include "rtabmap/core/util3d_transforms.h" - #include "rtabmap/utilite/ULogger.h" -@@ -33,7 +36,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include "rtabmap/utilite/UStl.h" - #include "rtabmap/utilite/UThread.h" - #include "rtabmap/utilite/UDirectory.h" --#include - - #ifdef RTABMAP_VINS - #include -@@ -388,7 +390,7 @@ Transform OdometryVINS::computeTransform( - cv::Mat right; - if(data.imageRaw().type() == CV_8UC3) - { -- cv::cvtColor(data.imageRaw(), left, CV_BGR2GRAY); -+ cv::cvtColor(data.imageRaw(), left, cv::COLOR_BGR2GRAY); - } - else if(data.imageRaw().type() == CV_8UC1) - { -@@ -400,7 +402,7 @@ Transform OdometryVINS::computeTransform( - } - if(data.rightRaw().type() == CV_8UC3) - { -- cv::cvtColor(data.rightRaw(), right, CV_BGR2GRAY); -+ cv::cvtColor(data.rightRaw(), right, cv::COLOR_BGR2GRAY); - } - else if(data.rightRaw().type() == CV_8UC1) - { -diff --git a/corelib/src/odometry/OdometryViso2.cpp b/corelib/src/odometry/OdometryViso2.cpp -index 808e763..dc6192b 100644 ---- a/corelib/src/odometry/OdometryViso2.cpp -+++ b/corelib/src/odometry/OdometryViso2.cpp -@@ -31,7 +31,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include "rtabmap/utilite/ULogger.h" - #include "rtabmap/utilite/UTimer.h" - #include "rtabmap/utilite/UStl.h" --#include - - #ifdef RTABMAP_VISO2 - #include -@@ -131,7 +130,7 @@ Transform OdometryViso2::computeTransform( - cv::Mat leftGray; - if(data.imageRaw().type() == CV_8UC3) - { -- cv::cvtColor(data.imageRaw(), leftGray, CV_BGR2GRAY); -+ cv::cvtColor(data.imageRaw(), leftGray, cv::COLOR_BGR2GRAY); - } - else if(data.imageRaw().type() == CV_8UC1) - { -@@ -144,7 +143,7 @@ Transform OdometryViso2::computeTransform( - cv::Mat rightGray; - if(data.rightRaw().type() == CV_8UC3) - { -- cv::cvtColor(data.rightRaw(), rightGray, CV_BGR2GRAY); -+ cv::cvtColor(data.rightRaw(), rightGray, cv::COLOR_BGR2GRAY); - } - else if(data.rightRaw().type() == CV_8UC1) - { -diff --git a/corelib/src/opencv/ORBextractor.cc b/corelib/src/opencv/ORBextractor.cc -index 2d3cd7c..1197fb6 100644 ---- a/corelib/src/opencv/ORBextractor.cc -+++ b/corelib/src/opencv/ORBextractor.cc -@@ -63,9 +63,13 @@ - - - #include --#include --#include --#include -+#include -+#if CV_MAJOR_VERSION < 5 -+#include -+#else -+#include -+#endif -+#include - #include - #include - #include -diff --git a/corelib/src/opencv/ORBextractor.h b/corelib/src/opencv/ORBextractor.h -index 861ca05..82ede5b 100644 ---- a/corelib/src/opencv/ORBextractor.h -+++ b/corelib/src/opencv/ORBextractor.h -@@ -31,8 +31,6 @@ - - #include - #include --#include -- - - namespace rtabmap - { -diff --git a/corelib/src/opencv/Orb.cpp b/corelib/src/opencv/Orb.cpp -index f56874e..c5034a7 100644 ---- a/corelib/src/opencv/Orb.cpp -+++ b/corelib/src/opencv/Orb.cpp -@@ -40,7 +40,6 @@ - - #include "opencv2/features2d/features2d.hpp" - #include "opencv2/imgproc/imgproc.hpp" --#include "opencv2/imgproc/imgproc_c.h" - #include - #include - -@@ -252,7 +251,7 @@ static void computeOrbDescriptor(const KeyPoint& kpt, - } - } - else -- CV_Error( CV_StsBadSize, "Wrong WTA_K. It can be only 2, 3 or 4." ); -+ CV_Error( cv::Error::StsBadSize, "Wrong WTA_K. It can be only 2, 3 or 4." ); - - #undef GET_VALUE - } -@@ -752,7 +751,7 @@ void CV_ORB::operator()( InputArray _image, InputArray _mask, std::vectornlevels; - -diff --git a/corelib/src/opencv/Orb.h b/corelib/src/opencv/Orb.h -index e05ad9d..464ad16 100644 ---- a/corelib/src/opencv/Orb.h -+++ b/corelib/src/opencv/Orb.h -@@ -46,7 +46,7 @@ - #ifndef CORELIB_SRC_OPENCV_ORB_H_ - #define CORELIB_SRC_OPENCV_ORB_H_ - --#include -+#include - - namespace rtabmap { - -diff --git a/corelib/src/opencv/five-point.cpp b/corelib/src/opencv/five-point.cpp -index 7e5c2c5..a389c9f 100644 ---- a/corelib/src/opencv/five-point.cpp -+++ b/corelib/src/opencv/five-point.cpp -@@ -30,6 +30,9 @@ - */ - - #include "solvepnp.h" -+#if CV_MAJOR_VERSION >= 5 -+#include -+#endif - - using namespace cv; - -diff --git a/corelib/src/opencv/five-point.h b/corelib/src/opencv/five-point.h -index 1a5b778..f1aa8c7 100644 ---- a/corelib/src/opencv/five-point.h -+++ b/corelib/src/opencv/five-point.h -@@ -8,6 +8,10 @@ - #ifndef CORELIB_SRC_OPENCV_FIVE_POINT_H_ - #define CORELIB_SRC_OPENCV_FIVE_POINT_H_ - -+#if CV_MAJOR_VERSION > 4 -+#include ++#ifdef WIN32 ++#include +#endif + - namespace cv3 - { - -diff --git a/corelib/src/opencv/solvepnp.cpp b/corelib/src/opencv/solvepnp.cpp -index f5b3a07..ecd2be9 100644 ---- a/corelib/src/opencv/solvepnp.cpp -+++ b/corelib/src/opencv/solvepnp.cpp -@@ -53,7 +53,7 @@ class PnPRansacCallback : public PointSetRegistrator::Callback - - public: - -- PnPRansacCallback(Mat _cameraMatrix=Mat(3,3,CV_64F), Mat _distCoeffs=Mat(4,1,CV_64F), int _flags=CV_ITERATIVE, -+ PnPRansacCallback(Mat _cameraMatrix=Mat(3,3,CV_64F), Mat _distCoeffs=Mat(4,1,CV_64F), int _flags=cv::SOLVEPNP_ITERATIVE, - bool _useExtrinsicGuess=false, Mat _rvec=Mat(), Mat _tvec=Mat() ) - : cameraMatrix(_cameraMatrix), distCoeffs(_distCoeffs), flags(_flags), useExtrinsicGuess(_useExtrinsicGuess), - rvec(_rvec), tvec(_tvec) {} -@@ -142,12 +142,12 @@ bool solvePnPRansac(InputArray _opoints, InputArray _ipoints, - Mat cameraMatrix = _cameraMatrix.getMat(), distCoeffs = _distCoeffs.getMat(); - - int model_points = 6; -- int ransac_kernel_method = CV_EPNP; -+ int ransac_kernel_method = cv::SOLVEPNP_EPNP; - - if( npoints == 4 ) - { - model_points = 4; -- ransac_kernel_method = CV_P3P; -+ ransac_kernel_method = cv::SOLVEPNP_P3P; - } - - Ptr cb; // pointer to callback -@@ -178,7 +178,7 @@ bool solvePnPRansac(InputArray _opoints, InputArray _ipoints, - opoints_inliers.resize(npoints1); - ipoints_inliers.resize(npoints1); - result = solvePnP(opoints_inliers, ipoints_inliers, cameraMatrix, -- distCoeffs, rvec, tvec, useExtrinsicGuess, flags == CV_P3P ? CV_EPNP : flags) ? 1 : -1; -+ distCoeffs, rvec, tvec, useExtrinsicGuess, flags == cv::SOLVEPNP_P3P ? cv::SOLVEPNP_EPNP : flags) ? 1 : -1; - } - - if( result <= 0 || _local_model.rows <= 0) -@@ -213,7 +213,7 @@ bool solvePnPRansac(InputArray _opoints, InputArray _ipoints, - int RANSACUpdateNumIters( double p, double ep, int modelPoints, int maxIters ) - { - if( modelPoints <= 0 ) -- CV_Error( 0, "the number of model points should be positive" ); -+ CV_Error( cv::Error::Code::StsBadArg, "the number of model points should be positive" ); - - p = MAX(p, 0.); - p = MIN(p, 1.); -diff --git a/corelib/src/opencv/solvepnp.h b/corelib/src/opencv/solvepnp.h -index e88b570..382f9db 100644 ---- a/corelib/src/opencv/solvepnp.h -+++ b/corelib/src/opencv/solvepnp.h -@@ -45,9 +45,10 @@ - #define RTABMAP_CORELIB_SRC_OPENCV_SOLVEPNP_H_ - - #include -+#if CV_MAJOR_VERSION >= 5 -+#include -+#else - #include --#if CV_MAJOR_VERSION >= 3 --#include - #endif - - namespace cv3 { -@@ -95,7 +96,7 @@ bool solvePnPRansac( cv::InputArray objectPoints, cv::InputArray imagePoints, - cv::OutputArray rvec, cv::OutputArray tvec, - bool useExtrinsicGuess = false, int iterationsCount = 100, - float reprojectionError = 8.0, double confidence = 0.99, -- cv::OutputArray inliers = cv::noArray(), int flags = CV_ITERATIVE ); -+ cv::OutputArray inliers = cv::noArray(), int flags = cv::SOLVEPNP_ITERATIVE ); - - int RANSACUpdateNumIters( double p, double ep, int modelPoints, int maxIters ); - -diff --git a/corelib/src/optimizer/OptimizerCeres.cpp b/corelib/src/optimizer/OptimizerCeres.cpp -index 046d401..d2d64c3 100644 ---- a/corelib/src/optimizer/OptimizerCeres.cpp -+++ b/corelib/src/optimizer/OptimizerCeres.cpp -@@ -26,6 +26,12 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - #include "rtabmap/core/Graph.h" - -+#if CV_MAJOR_VERSION < 5 -+#include -+#else -+#include -+#endif -+ - #include - #include - #include -diff --git a/corelib/src/stereo/StereoBM.cpp b/corelib/src/stereo/StereoBM.cpp -index 1b390c6..356266e 100644 ---- a/corelib/src/stereo/StereoBM.cpp -+++ b/corelib/src/stereo/StereoBM.cpp -@@ -27,9 +27,13 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - #include - #include -+#if CV_MAJOR_VERSION < 5 - #include --#include --#include -+#else -+#include -+#include -+#endif -+#include - - namespace rtabmap { - -@@ -88,7 +92,7 @@ cv::Mat StereoBM::computeDisparity( - cv::Mat leftMono; - if(leftImage.channels() == 3) - { -- cv::cvtColor(leftImage, leftMono, CV_BGR2GRAY); -+ cv::cvtColor(leftImage, leftMono, cv::COLOR_BGR2GRAY); - } - else - { -@@ -98,7 +102,7 @@ cv::Mat StereoBM::computeDisparity( - cv::Mat rightMono; - if(rightImage.channels() == 3) - { -- cv::cvtColor(rightImage, rightMono, CV_BGR2GRAY); -+ cv::cvtColor(rightImage, rightMono, cv::COLOR_BGR2GRAY); - } - else - { -diff --git a/corelib/src/stereo/StereoSGBM.cpp b/corelib/src/stereo/StereoSGBM.cpp -index 6763aeb..291ba7f 100644 ---- a/corelib/src/stereo/StereoSGBM.cpp -+++ b/corelib/src/stereo/StereoSGBM.cpp -@@ -27,9 +27,13 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - #include - #include -+#if CV_MAJOR_VERSION < 5 - #include --#include --#include -+#else -+#include -+#include -+#endif -+#include - - namespace rtabmap { - -@@ -77,7 +81,7 @@ cv::Mat StereoSGBM::computeDisparity( - cv::Mat leftMono; - if(leftImage.channels() == 3) - { -- cv::cvtColor(leftImage, leftMono, CV_BGR2GRAY); -+ cv::cvtColor(leftImage, leftMono, cv::COLOR_BGR2GRAY); - } - else - { -@@ -87,7 +91,7 @@ cv::Mat StereoSGBM::computeDisparity( - cv::Mat rightMono; - if(rightImage.channels() == 3) - { -- cv::cvtColor(rightImage, rightMono, CV_BGR2GRAY); -+ cv::cvtColor(rightImage, rightMono, cv::COLOR_BGR2GRAY); - } - else - { -diff --git a/corelib/src/util2d.cpp b/corelib/src/util2d.cpp -index 604eaa3..3642e66 100644 ---- a/corelib/src/util2d.cpp -+++ b/corelib/src/util2d.cpp -@@ -34,16 +34,20 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include - #include - #include --#include --#include -+#include - #include --#include --#include -+#include - #include - #include - - #if CV_MAJOR_VERSION >= 3 --#include -+#include -+#endif -+ -+#if CV_MAJOR_VERSION < 5 -+#include -+#else -+#include - #endif - - namespace rtabmap -@@ -747,7 +751,7 @@ cv::Mat disparityFromStereoImages( - cv::Mat leftMono; - if(leftImage.channels() == 3) - { -- cv::cvtColor(leftImage, leftMono, CV_BGR2GRAY); -+ cv::cvtColor(leftImage, leftMono, cv::COLOR_BGR2GRAY); - } - else - { -@@ -2042,8 +2046,8 @@ cv::Mat brightnessAndContrastAuto(const cv::Mat &src, const cv::Mat & mask, floa - //to calculate grayscale histogram - cv::Mat gray; - if (src.type() == CV_8UC1) gray = src; -- else if (src.type() == CV_8UC3) cvtColor(src, gray, CV_BGR2GRAY); -- else if (src.type() == CV_8UC4) cvtColor(src, gray, CV_BGRA2GRAY); -+ else if (src.type() == CV_8UC3) cvtColor(src, gray, cv::COLOR_BGR2GRAY); -+ else if (src.type() == CV_8UC4) cvtColor(src, gray, cv::COLOR_BGRA2GRAY); - if (clipLowHistPercent == 0 && clipHighHistPercent == 0) - { - // keep full available range -diff --git a/corelib/src/util3d.cpp b/corelib/src/util3d.cpp -index 563e22a..4619868 100644 ---- a/corelib/src/util3d.cpp -+++ b/corelib/src/util3d.cpp -@@ -40,8 +40,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include - #include - #include --#include --#include -+#include - - namespace rtabmap - { -@@ -892,7 +891,7 @@ pcl::PointCloud::Ptr cloudFromStereoImages( - cv::Mat leftMono; - if(leftColor.channels() == 3) - { -- cv::cvtColor(leftColor, leftMono, CV_BGR2GRAY); -+ cv::cvtColor(leftColor, leftMono, cv::COLOR_BGR2GRAY); - } - else - { -@@ -902,7 +901,7 @@ pcl::PointCloud::Ptr cloudFromStereoImages( - cv::Mat rightMono; - if(rightColor.channels() == 3) - { -- cv::cvtColor(rightColor, rightMono, CV_BGR2GRAY); -+ cv::cvtColor(rightColor, rightMono, cv::COLOR_BGR2GRAY); - } - else - { -@@ -1038,7 +1037,7 @@ std::vector::Ptr> cloudsFromSensorData( - cv::Mat leftMono; - if(sensorData.imageRaw().channels() == 3) - { -- cv::cvtColor(sensorData.imageRaw(), leftMono, CV_BGR2GRAY); -+ cv::cvtColor(sensorData.imageRaw(), leftMono, cv::COLOR_BGR2GRAY); - } - else - { -@@ -1048,7 +1047,7 @@ std::vector::Ptr> cloudsFromSensorData( - cv::Mat rightMono; - if(sensorData.rightRaw().channels() == 3) - { -- cv::cvtColor(sensorData.rightRaw(), rightMono, CV_BGR2GRAY); -+ cv::cvtColor(sensorData.rightRaw(), rightMono, cv::COLOR_BGR2GRAY); - } - else - { -diff --git a/corelib/src/util3d_correspondences.cpp b/corelib/src/util3d_correspondences.cpp -index 5a81869..41cc1e6 100644 ---- a/corelib/src/util3d_correspondences.cpp -+++ b/corelib/src/util3d_correspondences.cpp -@@ -30,7 +30,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - #include - #include -+#if CV_MAJOR_VERSION < 5 - #include -+#else -+#include -+#endif - #include - #include - -diff --git a/corelib/src/util3d_motion_estimation.cpp b/corelib/src/util3d_motion_estimation.cpp -index 63ed9ac..41ea2a0 100644 ---- a/corelib/src/util3d_motion_estimation.cpp -+++ b/corelib/src/util3d_motion_estimation.cpp -@@ -26,6 +26,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - - #include "rtabmap/core/util3d_motion_estimation.h" -+#if CV_MAJOR_VERSION >= 5 -+#include -+#endif - - #include "rtabmap/utilite/UStl.h" - #include "rtabmap/utilite/UMath.h" -diff --git a/corelib/src/util3d_surface.cpp b/corelib/src/util3d_surface.cpp -index bccae36..3625426 100644 ---- a/corelib/src/util3d_surface.cpp -+++ b/corelib/src/util3d_surface.cpp -@@ -39,8 +39,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include "rtabmap/utilite/UConversion.h" - #include "rtabmap/utilite/UMath.h" - #include "rtabmap/utilite/UTimer.h" --#include --#include - #include - #include - #include -@@ -1745,7 +1743,7 @@ cv::Mat mergeTextures( - if(resizedImage.type() == CV_8UC1) - { - cv::Mat resizedImageColor; -- cv::cvtColor(resizedImage, resizedImageColor, CV_GRAY2BGR); -+ cv::cvtColor(resizedImage, resizedImageColor, cv::COLOR_GRAY2BGR); - resizedImage = resizedImageColor; - } - UASSERT(resizedImage.type() == globalTextures.type()); -@@ -2609,7 +2607,7 @@ bool multiBandTexturing( - if(imageRoi.channels() == 1) - { - cv::Mat imageRoiColor; -- cv::cvtColor(imageRoi, imageRoiColor, CV_GRAY2BGR); -+ cv::cvtColor(imageRoi, imageRoiColor, cv::COLOR_GRAY2BGR); - imageRoi = imageRoiColor; - } - -@@ -3218,7 +3216,7 @@ float computeNormalsComplexity( - } - if(oi>1) - { -- cv::PCA pca_analysis(cv::Mat(data_normals, cv::Range(0, oi*2)), cv::Mat(), CV_PCA_DATA_AS_ROW); -+ cv::PCA pca_analysis(cv::Mat(data_normals, cv::Range(0, oi*2)), cv::Mat(), cv::PCA::DATA_AS_ROW); - - if(pcaEigenVectors) - { -@@ -3279,7 +3277,7 @@ float computeNormalsComplexity( - } - if(oi>1) - { -- cv::PCA pca_analysis(cv::Mat(data_normals, cv::Range(0, oi*2)), cv::Mat(), CV_PCA_DATA_AS_ROW); -+ cv::PCA pca_analysis(cv::Mat(data_normals, cv::Range(0, oi*2)), cv::Mat(), cv::PCA::DATA_AS_ROW); - - if(pcaEigenVectors) - { -@@ -3335,7 +3333,7 @@ float computeNormalsComplexity( - } - if(oi>1) - { -- cv::PCA pca_analysis(cv::Mat(data_normals, cv::Range(0, oi*2)), cv::Mat(), CV_PCA_DATA_AS_ROW); -+ cv::PCA pca_analysis(cv::Mat(data_normals, cv::Range(0, oi*2)), cv::Mat(), cv::PCA::DATA_AS_ROW); - - if(pcaEigenVectors) - { -@@ -3391,7 +3389,7 @@ float computeNormalsComplexity( - } - if(oi>1) - { -- cv::PCA pca_analysis(cv::Mat(data_normals, cv::Range(0, oi*2)), cv::Mat(), CV_PCA_DATA_AS_ROW); -+ cv::PCA pca_analysis(cv::Mat(data_normals, cv::Range(0, oi*2)), cv::Mat(), cv::PCA::DATA_AS_ROW); - - if(pcaEigenVectors) - { -@@ -3447,7 +3445,7 @@ float computeNormalsComplexity( - } - if(oi>1) - { -- cv::PCA pca_analysis(cv::Mat(data_normals, cv::Range(0, oi*2)), cv::Mat(), CV_PCA_DATA_AS_ROW); -+ cv::PCA pca_analysis(cv::Mat(data_normals, cv::Range(0, oi*2)), cv::Mat(), cv::PCA::DATA_AS_ROW); - - if(pcaEigenVectors) - { -diff --git a/guilib/include/rtabmap/gui/DatabaseViewer.h b/guilib/include/rtabmap/gui/DatabaseViewer.h -index a11b4c9..28fbc38 100644 ---- a/guilib/include/rtabmap/gui/DatabaseViewer.h -+++ b/guilib/include/rtabmap/gui/DatabaseViewer.h -@@ -36,7 +36,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include - #include - #include --#include -+#include - #include - #include - #include -diff --git a/guilib/include/rtabmap/gui/ImageView.h b/guilib/include/rtabmap/gui/ImageView.h -index 8e8df85..eaf9134 100644 ---- a/guilib/include/rtabmap/gui/ImageView.h -+++ b/guilib/include/rtabmap/gui/ImageView.h -@@ -34,7 +34,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include - #include - #include --#include -+#include - #include - #include "rtabmap/utilite/UCv2Qt.h" - #include -diff --git a/guilib/include/rtabmap/gui/KeypointItem.h b/guilib/include/rtabmap/gui/KeypointItem.h -index 7f4f9f6..11a896d 100644 ---- a/guilib/include/rtabmap/gui/KeypointItem.h -+++ b/guilib/include/rtabmap/gui/KeypointItem.h -@@ -34,7 +34,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include - #include - #include --#include -+#include - - namespace rtabmap { - -diff --git a/guilib/src/CalibrationDialog.cpp b/guilib/src/CalibrationDialog.cpp -index dd4a052..8262210 100644 ---- a/guilib/src/CalibrationDialog.cpp -+++ b/guilib/src/CalibrationDialog.cpp -@@ -29,14 +29,12 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include "ui_calibrationDialog.h" - - #include --#include --#include --#include -+#include -+#include - #if CV_MAJOR_VERSION >= 3 --#include - #endif --#include --#if CV_MAJOR_VERSION > 2 or (CV_MAJOR_VERSION == 2 and (CV_MINOR_VERSION >4 or (CV_MINOR_VERSION == 4 and CV_SUBMINOR_VERSION >=10))) -+#include -+#if (CV_MAJOR_VERSION > 2 and CV_MAJOR_VERSION < 5) or (CV_MAJOR_VERSION == 2 and (CV_MINOR_VERSION >4 or (CV_MINOR_VERSION == 4 and CV_SUBMINOR_VERSION >=10))) - #include - #endif - -@@ -736,7 +734,7 @@ void CalibrationDialog::processImages(const cv::Mat & imageLeft, const cv::Mat & - cv::Size boardSize(ui_->spinBox_boardWidth->value(), ui_->spinBox_boardHeight->value()); - if(!viewGray.empty()) - { -- int flags = CV_CALIB_CB_ADAPTIVE_THRESH | CV_CALIB_CB_NORMALIZE_IMAGE; -+ int flags = cv::CALIB_CB_ADAPTIVE_THRESH | cv::CALIB_CB_NORMALIZE_IMAGE; - - if(!viewGray.empty()) - { -@@ -747,7 +745,7 @@ void CalibrationDialog::processImages(const cv::Mat & imageLeft, const cv::Mat & - if( scale == 1 ) - timg = viewGray; - else -- cv::resize(viewGray, timg, cv::Size(), scale, scale, CV_INTER_CUBIC); -+ cv::resize(viewGray, timg, cv::Size(), scale, scale, cv::INTER_CUBIC); - - #ifdef HAVE_CHARUCO - if(ui_->comboBox_board_type->currentIndex() >= 1 ) -@@ -832,7 +830,7 @@ void CalibrationDialog::processImages(const cv::Mat & imageLeft, const cv::Mat & - float ratio = ui_->comboBox_board_type->currentIndex() >= 1 ?6.0f:2.0f; - float radius = minSquareDistance==-1.0f?5.0f:(minSquareDistance/ratio); - cv::cornerSubPix( viewGray, pointBuf[id], cv::Size(radius, radius), cv::Size(-1,-1), -- cv::TermCriteria( CV_TERMCRIT_EPS + CV_TERMCRIT_ITER, 30, 0.1 )); -+ cv::TermCriteria( cv::TermCriteria::EPS + cv::TermCriteria::MAX_ITER, 30, 0.1 )); - - // Filter points that drifted to far (caused by reflection or bad subpixel gradient) - float threshold = ui_->doubleSpinBox_subpixel_error->value(); -@@ -1121,7 +1119,7 @@ void CalibrationDialog::processImages(const cv::Mat & imageLeft, const cv::Mat & - int step = imageSize_[id].height/16; - for(int i=step; iimageRaw().channels() == 3) - { -- cv::cvtColor(data->imageRaw(), leftMono, CV_BGR2GRAY); -+ cv::cvtColor(data->imageRaw(), leftMono, cv::COLOR_BGR2GRAY); - } - else - { -@@ -5891,7 +5889,7 @@ void DatabaseViewer::updateStereo(const SensorData * data) - cv::Mat rightMono; - if(data->rightRaw().channels() == 3) - { -- cv::cvtColor(data->rightRaw(), rightMono, CV_BGR2GRAY); -+ cv::cvtColor(data->rightRaw(), rightMono, cv::COLOR_BGR2GRAY); - } - else - { -diff --git a/guilib/src/MainWindow.cpp b/guilib/src/MainWindow.cpp -index 86e6924..06cb82f 100644 ---- a/guilib/src/MainWindow.cpp -+++ b/guilib/src/MainWindow.cpp -@@ -126,6 +126,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #ifdef HAVE_OPENCV_ARUCO - #include - #endif -+#include - - #define LOG_FILE_NAME "LogRtabmap.txt" - #define SHARE_SHOW_LOG_FILE "share/rtabmap/showlogs.m" -diff --git a/tools/Camera/main.cpp b/tools/Camera/main.cpp -index e337030..c856d7b 100644 ---- a/tools/Camera/main.cpp -+++ b/tools/Camera/main.cpp -@@ -31,8 +31,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include "rtabmap/utilite/UFile.h" - #include "rtabmap/utilite/UDirectory.h" - #include "rtabmap/utilite/UConversion.h" --#include --#include -+#include - #include - - void showUsage() -@@ -178,7 +177,7 @@ int main(int argc, char * argv[]) - - cv::Mat rgb; - rgb = camera->takeImage().imageRaw(); -- cv::namedWindow("Video", CV_WINDOW_AUTOSIZE); // create window -+ cv::namedWindow("Video", cv::WINDOW_AUTOSIZE); // create window - while(!rgb.empty()) - { - cv::imshow("Video", rgb); // show frame -diff --git a/tools/CameraRGBD/main.cpp b/tools/CameraRGBD/main.cpp -index 1d562d9..a1274f1 100644 ---- a/tools/CameraRGBD/main.cpp -+++ b/tools/CameraRGBD/main.cpp -@@ -35,12 +35,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include "rtabmap/utilite/UFile.h" - #include "rtabmap/utilite/UDirectory.h" - #include "rtabmap/utilite/UConversion.h" --#include --#include --#include --#if CV_MAJOR_VERSION >= 3 --#include --#endif -+#include -+#include -+#include - #include - #include - #include -@@ -399,7 +396,7 @@ int main(int argc, char * argv[]) - UASSERT(fourcc.size() == 4); - videoWriter.open( - stereoSavePath, -- CV_FOURCC(fourcc.at(0), fourcc.at(1), fourcc.at(2), fourcc.at(3)), -+ cv::VideoWriter::fourcc(fourcc.at(0), fourcc.at(1), fourcc.at(2), fourcc.at(3)), - rate, - targetSize, - data.imageRaw().channels() == 3); -@@ -480,7 +477,7 @@ int main(int argc, char * argv[]) - { - if(right.channels() == 3) - { -- cv::cvtColor(right, right, CV_BGR2GRAY); -+ cv::cvtColor(right, right, cv::COLOR_BGR2GRAY); - } - pcl::PointCloud::Ptr cloud = rtabmap::util3d::cloudFromStereoImages( - rgb, right, -@@ -507,14 +504,14 @@ int main(int argc, char * argv[]) - if(right.type() != left.type()) - { - cv::Mat tmp; -- cv::cvtColor(right, tmp, left.channels()==3?CV_GRAY2BGR:CV_BGR2GRAY); -+ cv::cvtColor(right, tmp, left.channels()==3?cv::COLOR_GRAY2BGR:cv::COLOR_BGR2GRAY); - right = tmp; - } - UASSERT(left.type() == right.type()); - - cv::Mat roiA(targetImage, cv::Rect( 0, 0, left.size().width, left.size().height )); - left.copyTo(roiA); -- cv::Mat roiB( targetImage, cvRect( left.size().width, 0, left.size().width, left.size().height ) ); -+ cv::Mat roiB( targetImage, cv::Rect( left.size().width, 0, left.size().width, left.size().height ) ); - right.copyTo(roiB); - - videoWriter.write(targetImage); -diff --git a/tools/EpipolarGeometry/main.cpp b/tools/EpipolarGeometry/main.cpp -index aa309fa..49cc610 100644 ---- a/tools/EpipolarGeometry/main.cpp -+++ b/tools/EpipolarGeometry/main.cpp -@@ -26,9 +26,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - - #include --#include --#include --#include -+#include -+#include - #include - #include - #include -@@ -36,7 +35,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include - #include - #include --#include -+#include - #include "rtabmap/core/Features2d.h" - #include "rtabmap/core/EpipolarGeometry.h" - #include "rtabmap/core/VWDictionary.h" -diff --git a/tools/ImagesJoiner/main.cpp b/tools/ImagesJoiner/main.cpp -index ad4d3dd..3cf5264 100644 ---- a/tools/ImagesJoiner/main.cpp -+++ b/tools/ImagesJoiner/main.cpp -@@ -31,7 +31,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include "rtabmap/utilite/UFile.h" - #include "rtabmap/utilite/UConversion.h" - #include --#include -+#include - - void showUsage() - { -diff --git a/tools/StereoEval/main.cpp b/tools/StereoEval/main.cpp -index bd3313f..9c15e34 100644 ---- a/tools/StereoEval/main.cpp -+++ b/tools/StereoEval/main.cpp -@@ -37,7 +37,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include - #include - #include --#include - #include - #include - -@@ -222,7 +221,7 @@ int main(int argc, char * argv[]) - cv::Mat leftMono; - if(left.channels() == 3) - { -- cv::cvtColor(left, leftMono, CV_BGR2GRAY); -+ cv::cvtColor(left, leftMono, cv::COLOR_BGR2GRAY); - } - else - { -@@ -231,7 +230,7 @@ int main(int argc, char * argv[]) - cv::Mat rightMono; - if(right.channels() == 3) - { -- cv::cvtColor(right, rightMono, CV_BGR2GRAY); -+ cv::cvtColor(right, rightMono, cv::COLOR_BGR2GRAY); - } - else - { -@@ -266,7 +265,7 @@ int main(int argc, char * argv[]) - cv::cornerSubPix(leftMono, leftCorners, - cv::Size( subPixWinSize, subPixWinSize ), - cv::Size( -1, -1 ), -- cv::TermCriteria( CV_TERMCRIT_ITER | CV_TERMCRIT_EPS, subPixIterations, subPixEps ) ); -+ cv::TermCriteria( cv::TermCriteria::MAX_ITER | cv::TermCriteria::EPS, subPixIterations, subPixEps ) ); - UDEBUG("cv::cornerSubPix() end"); - } - -diff --git a/tools/VocabularyComparison/main.cpp b/tools/VocabularyComparison/main.cpp -index 410439b..cc65f02 100644 ---- a/tools/VocabularyComparison/main.cpp -+++ b/tools/VocabularyComparison/main.cpp -@@ -27,10 +27,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - #include - #include --#include --#include - #include --#include -+#include - #include - #include - #include + #include + #include + #include "rtabmap/utilite/UEventsManager.h" +diff --git a/tools/DatabaseViewer/main.cpp b/tools/DatabaseViewer/main.cpp +index 5625f70..71a5722 100644 +--- a/tools/DatabaseViewer/main.cpp ++++ b/tools/DatabaseViewer/main.cpp +@@ -25,6 +25,10 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + ++#ifdef WIN32 ++#include ++#endif ++ + #include + #include "rtabmap/gui/DatabaseViewer.h" + #include "rtabmap/utilite/ULogger.h" diff --git a/distros/rolling/patch/ros2-rviz-visual-tools.patch b/distros/rolling/patch/ros2-rviz-visual-tools.patch deleted file mode 100644 index f76bc59c..00000000 --- a/distros/rolling/patch/ros2-rviz-visual-tools.patch +++ /dev/null @@ -1,187 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 8b45187..f24262d 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -77,14 +77,15 @@ set(HEADER_FILES - ) - - add_library(${PROJECT_NAME}_gui SHARED ${SOURCE_FILES} ${HEADER_FILES}) --ament_target_dependencies(${PROJECT_NAME}_gui PUBLIC -- rclcpp -- rviz_common -- rviz_rendering -- rviz_default_plugins -- rviz_ogre_vendor -+target_link_libraries(${PROJECT_NAME}_gui PUBLIC -+ rclcpp::rclcpp -+ rviz_common::rviz_common -+ rviz_rendering::rviz_rendering -+ rviz_default_plugins::rviz_default_plugins -+ rviz_ogre_vendor::OgreMain -+ rviz_ogre_vendor::OgreOverlay - ) --target_link_libraries(${PROJECT_NAME}_gui PUBLIC Qt5::Widgets) -+target_link_libraries(${PROJECT_NAME}_gui PUBLIC Qt6::Widgets) - - # prevent pluginlib from using boost - target_compile_definitions(${PROJECT_NAME}_gui PUBLIC "PLUGINLIB__DISABLE_BOOST_FUNCTIONS") -@@ -98,18 +99,18 @@ add_library(${PROJECT_NAME}_remote_control SHARED - # Needed for M_PI on Windows - target_compile_definitions(${PROJECT_NAME}_remote_control PRIVATE _USE_MATH_DEFINES) - --ament_target_dependencies(${PROJECT_NAME}_remote_control -- rclcpp -- rclcpp_components -- visualization_msgs -- tf2 -- tf2_eigen -- tf2_geometry_msgs -- sensor_msgs -- shape_msgs -- std_msgs -- trajectory_msgs -- eigen_stl_containers -+target_link_libraries(${PROJECT_NAME}_remote_control -+ rclcpp::rclcpp -+ rclcpp_components::component -+ ${visualization_msgs_TARGETS} -+ tf2::tf2 -+ tf2_eigen::tf2_eigen -+ ${tf2_geometry_msgs_TARGETS} -+ ${sensor_msgs_TARGETS} -+ ${shape_msgs_TARGETS} -+ ${std_msgs_TARGETS} -+ ${trajectory_msgs_TARGETS} -+ eigen_stl_containers::eigen_stl_containers - ) - - # Visualization Tools Library -@@ -118,22 +119,22 @@ add_library(${PROJECT_NAME} SHARED - src/tf_visual_tools.cpp - ) - target_compile_definitions(${PROJECT_NAME} PRIVATE _USE_MATH_DEFINES) --ament_target_dependencies(${PROJECT_NAME} PUBLIC Eigen3) -+target_link_libraries(${PROJECT_NAME} Eigen3::Eigen) - target_link_libraries(${PROJECT_NAME} - ${PROJECT_NAME}_remote_control - ) --ament_target_dependencies(${PROJECT_NAME} -- rclcpp -- rclcpp_components -- visualization_msgs -- tf2 -- tf2_eigen -- tf2_geometry_msgs -- sensor_msgs -- shape_msgs -- std_msgs -- trajectory_msgs -- eigen_stl_containers -+target_link_libraries(${PROJECT_NAME} -+ rclcpp::rclcpp -+ rclcpp_components::component -+ ${visualization_msgs_TARGETS} -+ tf2::tf2 -+ tf2_eigen::tf2_eigen -+ ${tf2_geometry_msgs_TARGETS} -+ ${sensor_msgs_TARGETS} -+ ${shape_msgs_TARGETS} -+ ${std_msgs_TARGETS} -+ ${trajectory_msgs_TARGETS} -+ eigen_stl_containers::eigen_stl_containers - ) - - # Library -@@ -144,14 +145,14 @@ target_compile_definitions(${PROJECT_NAME}_imarker_simple PRIVATE _USE_MATH_DEFI - target_link_libraries(${PROJECT_NAME}_imarker_simple - ${PROJECT_NAME} - ) --ament_target_dependencies(${PROJECT_NAME}_imarker_simple -- rclcpp -- interactive_markers -- geometry_msgs -- visualization_msgs -- sensor_msgs -- eigen_stl_containers -- Eigen3 -+target_link_libraries(${PROJECT_NAME}_imarker_simple -+ rclcpp::rclcpp -+ interactive_markers::interactive_markers -+ ${geometry_msgs_TARGETS} -+ ${visualization_msgs_TARGETS} -+ ${sensor_msgs_TARGETS} -+ eigen_stl_containers::eigen_stl_containers -+ Eigen3::Eigen - ) - - # Demo executable -@@ -162,10 +163,10 @@ target_compile_definitions(${PROJECT_NAME}_demo PRIVATE _USE_MATH_DEFINES) - target_link_libraries(${PROJECT_NAME}_demo - ${PROJECT_NAME} - ) --ament_target_dependencies(${PROJECT_NAME}_demo -- rclcpp -- geometry_msgs -- std_msgs -+target_link_libraries(${PROJECT_NAME}_demo -+ rclcpp::rclcpp -+ ${geometry_msgs_TARGETS} -+ ${std_msgs_TARGETS} - ) - - # Demo executable -@@ -175,8 +176,8 @@ target_compile_definitions(${PROJECT_NAME}_imarker_simple_demo PRIVATE _USE_MATH - target_link_libraries(${PROJECT_NAME}_imarker_simple_demo - ${PROJECT_NAME}_imarker_simple - ) --ament_target_dependencies(${PROJECT_NAME}_imarker_simple_demo -- rclcpp -+target_link_libraries(${PROJECT_NAME}_imarker_simple_demo -+ rclcpp::rclcpp - ) - - ############# -@@ -248,8 +249,8 @@ if (BUILD_TESTING) - tests/rvt_test.cpp - TIMEOUT 180) - target_compile_definitions(${PROJECT_NAME}_rvt_test PRIVATE _USE_MATH_DEFINES) -- ament_target_dependencies(${PROJECT_NAME}_rvt_test -- rclcpp -+ target_link_libraries(${PROJECT_NAME}_rvt_test -+ rclcpp::rclcpp - ) - target_link_libraries(${PROJECT_NAME}_rvt_test - ${PROJECT_NAME} -diff --git a/src/rviz_visual_tools.cpp b/src/rviz_visual_tools.cpp -index d4a83bf..da9eda5 100644 ---- a/src/rviz_visual_tools.cpp -+++ b/src/rviz_visual_tools.cpp -@@ -42,9 +42,9 @@ - #include - - // Conversions --#include --#include --#include -+#include -+#include -+#include - #if __has_include() - #include - #include -diff --git a/src/tf_visual_tools.cpp b/src/tf_visual_tools.cpp -index 99d7aca..acf429a 100644 ---- a/src/tf_visual_tools.cpp -+++ b/src/tf_visual_tools.cpp -@@ -39,7 +39,7 @@ - #endif - - // TF --#include -+#include - - // C++ - #include -@@ -63 +63 @@ TFVisualTools::TFVisualTools(const std::shared_ptr& node, double l -- tf_broadcaster_ = std::make_shared(node); -+ tf_broadcaster_ = std::make_shared(*node); diff --git a/distros/rolling/pkg_additional_info.yaml b/distros/rolling/pkg_additional_info.yaml index f1ec97d0..c5b1beac 100644 --- a/distros/rolling/pkg_additional_info.yaml +++ b/distros/rolling/pkg_additional_info.yaml @@ -80,27 +80,254 @@ urdfdom_headers: override_version: '3.0.0' zenoh_cpp_vendor: additional_cmake_args: "-DAMENT_VENDOR_POLICY=NEVER_VENDOR_IGNORE_SATISFIED_CHECK -DUSE_SYSTEM_ZENOH=ON" +ackermann_steering_controller: + build_number: 31 +admittance_controller: + build_number: 31 +backward_ros: + build_number: 31 +battery_state_broadcaster: + build_number: 31 +bicycle_steering_controller: + build_number: 31 +chained_filter_controller: + build_number: 31 +chomp_motion_planner: + build_number: 31 +control_toolbox: + build_number: 31 +controller_interface: + build_number: 31 +controller_manager: + build_number: 31 +desktop_full: + build_number: 31 +diff_drive_controller: + build_number: 31 +force_torque_sensor_broadcaster: + build_number: 31 +forward_command_controller: + build_number: 31 +gpio_controllers: + build_number: 31 +gps_sensor_broadcaster: + build_number: 31 gz_gui_vendor: build_number: 30 +gz_ros2_control: + build_number: 31 +gz_ros2_control_demos: + build_number: 31 gz_sim_vendor: - build_number: 30 + build_number: 31 +hardware_interface: + build_number: 31 +hardware_interface_testing: + build_number: 31 +imu_sensor_broadcaster: + build_number: 31 +joint_limits: + build_number: 31 +joint_state_broadcaster: + build_number: 31 +joint_trajectory_controller: + build_number: 31 +kinematics_interface: + build_number: 31 +kinematics_interface_kdl: + build_number: 31 +libpointmatcher: + build_number: 31 livox_ros_driver2: build_number: 31 +magnetometer_broadcaster: + build_number: 31 +mecanum_drive_controller: + build_number: 31 +motion_primitives_controllers: + build_number: 31 +moveit: + build_number: 31 +moveit_common: + build_number: 31 +moveit_core: + build_number: 31 +moveit_hybrid_planning: + build_number: 31 +moveit_kinematics: + build_number: 31 +moveit_planners: + build_number: 31 +moveit_planners_chomp: + build_number: 31 +moveit_planners_ompl: + build_number: 31 +moveit_planners_stomp: + build_number: 31 +moveit_plugins: + build_number: 31 +moveit_py: + build_number: 31 +moveit_resources: + build_number: 31 +moveit_resources_fanuc_moveit_config: + build_number: 31 +moveit_resources_panda_moveit_config: + build_number: 31 +moveit_resources_prbt_ikfast_manipulator_plugin: + build_number: 31 +moveit_resources_prbt_moveit_config: + build_number: 31 +moveit_resources_prbt_pg70_support: + build_number: 31 +moveit_ros: + build_number: 31 +moveit_ros_benchmarks: + build_number: 31 +moveit_ros_control_interface: + build_number: 31 +moveit_ros_move_group: + build_number: 31 +moveit_ros_occupancy_map_monitor: + build_number: 31 +moveit_ros_perception: + build_number: 31 +moveit_ros_planning: + build_number: 31 +moveit_ros_planning_interface: + build_number: 31 +moveit_ros_robot_interaction: + build_number: 31 +moveit_ros_trajectory_cache: + build_number: 31 +moveit_ros_visualization: + build_number: 31 +moveit_ros_warehouse: + build_number: 31 +moveit_runtime: + build_number: 31 +moveit_servo: + build_number: 31 +moveit_setup_app_plugins: + build_number: 31 +moveit_setup_assistant: + build_number: 31 +moveit_setup_controllers: + build_number: 31 +moveit_setup_core_plugins: + build_number: 31 +moveit_setup_framework: + build_number: 31 +moveit_setup_srdf_plugins: + build_number: 31 +moveit_simple_controller_manager: + build_number: 31 +moveit_task_constructor_capabilities: + build_number: 31 +moveit_task_constructor_core: + build_number: 31 +moveit_task_constructor_demo: + build_number: 31 +moveit_task_constructor_visualization: + build_number: 31 +moveit_visual_tools: + build_number: 31 +mujoco_ros2_control: + build_number: 31 +mujoco_ros2_control_demos: + build_number: 31 +mujoco_ros2_control_plugins: + build_number: 31 +nav2_minimal_tb3_sim: + build_number: 31 +nav2_minimal_tb4_sim: + build_number: 31 +omni_wheel_drive_controller: + build_number: 31 +parallel_gripper_controller: + build_number: 31 +pick_ik: + build_number: 31 +pid_controller: + build_number: 31 +pilz_industrial_motion_planner: + build_number: 31 +pilz_industrial_motion_planner_testutils: + build_number: 31 plotjuggler: # Rebuild with the refreshed patch (b29 was built before it; 3.17.2 already wraps the message in a Span). build_number: 30 +pose_broadcaster: + build_number: 31 +python_qt_binding: + build_number: 31 +range_sensor_broadcaster: + build_number: 31 +rmf_demos: + build_number: 31 +rmf_demos_fleet_adapter: + build_number: 31 +rmf_fleet_adapter: + build_number: 31 +rmf_fleet_adapter_python: + build_number: 31 +rmf_reservation_node: + build_number: 31 +rmf_task_ros2: + build_number: 31 +rmf_traffic_ros2: + build_number: 31 +rmf_visualization: + build_number: 31 +rmf_visualization_navgraphs: + build_number: 31 +rmf_visualization_rviz2_plugins: + build_number: 31 +rmf_visualization_schedule: + build_number: 31 +roboplan_ros_franka: + build_number: 31 +robotiq_controllers: + build_number: 31 +ros2_control: + build_number: 31 +ros2_controllers: + build_number: 31 +ros2_fmt_logger: + build_number: 31 ros2cli: # Rebuild with the shell completions under the names bash/zsh/fish load (patch). build_number: 30 +ros2controlcli: + build_number: 31 +ros_gz: + build_number: 31 +ros_gz_sim: + build_number: 31 +ros_gz_sim_demos: + build_number: 31 +ros_image_to_qimage: + build_number: 31 rosidl_cli: # Rebuild with the shell completions installed under the names bash/zsh/fish load (patch). build_number: 30 +rqt_controller_manager: + build_number: 31 +rqt_image_overlay: + build_number: 31 +rqt_image_overlay_layer: + build_number: 31 +rqt_mocap4r2_control: + build_number: 31 rqt_plot: # Rebuild with qt6-main 6.11 (b29 was built against qt6-main 6.12, which pyqt6 6.11 can't install with). build_number: 30 rqt_py_common: # Rebuild with qt6-main 6.11 (b29 was built against qt6-main 6.12, which pyqt6 6.11 can't install with). build_number: 30 +rtabmap: + additional_cmake_args: -DBUILD_TESTING=OFF + build_number: 31 rviz2: # Rebuild with qt6-main 6.11 (b29 was built against qt6-main 6.12, which pyqt6 6.11 can't install with). build_number: 30 @@ -113,6 +340,8 @@ rviz_default_plugins: rviz_imu_plugin: # Rebuild with qt6-main 6.11 (b29 was built against qt6-main 6.12, which pyqt6 6.11 can't install with). build_number: 30 +rviz_marker_tools: + build_number: 31 rviz_rendering: # Rebuild with qt6-main 6.11 (b29 was built against qt6-main 6.12, which pyqt6 6.11 can't install with). build_number: 30 @@ -121,10 +350,62 @@ rviz_rendering_tests: build_number: 30 rviz_satellite: # Rebuild with qt6-main 6.11 (b29 was built against qt6-main 6.12, which pyqt6 6.11 can't install with). - build_number: 30 + build_number: 31 rviz_visual_testing_framework: # Rebuild with qt6-main 6.11 (b29 was built against qt6-main 6.12, which pyqt6 6.11 can't install with). build_number: 30 +rviz_visual_tools: + build_number: 31 +simulation: + build_number: 31 +state_interfaces_broadcaster: + build_number: 31 +steering_controllers_library: + build_number: 31 +trac_ik: + build_number: 31 +trac_ik_kinematics_plugin: + build_number: 31 +transmission_interface: + build_number: 31 +tricycle_controller: + build_number: 31 +tricycle_steering_controller: + build_number: 31 +turtlebot3_gazebo: + build_number: 31 +turtlebot3_simulations: + build_number: 31 turtlesim: # Rebuild with qt6-main 6.11 (b29 was built against qt6-main 6.12, which pyqt6 6.11 can't install with). build_number: 30 +ur: + build_number: 31 +ur_calibration: + build_number: 31 +ur_controllers: + build_number: 31 +ur_moveit_config: + build_number: 31 +ur_robot_driver: + build_number: 31 +ur_simulation_gz: + build_number: 31 +visp: + build_number: 31 +webots_ros2: + build_number: 31 +webots_ros2_control: + build_number: 31 +webots_ros2_epuck: + build_number: 31 +webots_ros2_husarion: + build_number: 31 +webots_ros2_tests: + build_number: 31 +webots_ros2_tiago: + build_number: 31 +webots_ros2_turtlebot: + build_number: 31 +webots_ros2_universal_robot: + build_number: 31 diff --git a/distros/rolling/rosdistro_additional_recipes.yaml b/distros/rolling/rosdistro_additional_recipes.yaml index 1016b064..cc499b0b 100644 --- a/distros/rolling/rosdistro_additional_recipes.yaml +++ b/distros/rolling/rosdistro_additional_recipes.yaml @@ -431,7 +431,10 @@ rslidar_sdk: tag: v1.5.18 url: https://github.com/RoboSense-LiDAR/rslidar_sdk.git version: 1.5.18 -rviz_visual_tools: # temp addition - tag: release/rolling/rviz_visual_tools/4.1.4-4 - url: https://github.com/ros2-gbp/rviz_visual_tools-release - version: 4.1.4 +rtabmap: + # rolling's own release is 0.22.1, which no longer links on Windows against gtsam (LNK2005 + # on a std::vector member); jazzy's 0.23.13 does. rolling has + # no rtabmap_ros to keep in step. + tag: release/jazzy/rtabmap/0.23.13-1 + url: https://github.com/ros2-gbp/rtabmap-release.git + version: 0.23.13 diff --git a/shared/pinning/conda_forge.yaml b/shared/pinning/conda_forge.yaml index 854b233f..25baa1db 100644 --- a/shared/pinning/conda_forge.yaml +++ b/shared/pinning/conda_forge.yaml @@ -2,16 +2,17 @@ # top of it. `pixi run rs render-pinning` combines it with overrides.yaml into # distros//conda_build_config.yaml (tools/robostack.py, vinca_pinning). A # distribution that sets conda_forge_pinning_version / conda_forge_migrations in its -# distro.yaml uses those instead (see #54: the goal is every distribution on this one). +# distro.yaml uses those instead; all distributions are on this one (#54). # Updated by `robostack-bot update-conda-forge-pinning`. -conda_forge_pinning_version: 2026.09.25.23.22.04 +conda_forge_pinning_version: 2026.10.09.13.11.31 migrations: - elfutils0196 - giflib6 - go_macos + - gsl28 - gstreamer128 - hdf52 - libboost190 + - libhwloc2150 - proj99 - urdfdom6 - - vtk970 diff --git a/shared/pinning/overrides.yaml b/shared/pinning/overrides.yaml index 521fe8e7..d7f56db3 100644 --- a/shared/pinning/overrides.yaml +++ b/shared/pinning/overrides.yaml @@ -32,6 +32,10 @@ pinning_overrides: cuda_compiler_version: - None - 12.9 # [((linux and (x86_64 or aarch64)) or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] + # libopencv 5.0.0 builds for openexr 3.5 need qt6-main >= 6.12, but pyqt6 6.11 (via + # qt6-multimedia 6.11) still requires qt6-main 6.11: stay on openexr 3.4 until pyqt6 is rebuilt + openexr: + - '3.4' libzenohc: - 1.10.1 libzenohcxx: diff --git a/shared/pkg_additional_info.yaml b/shared/pkg_additional_info.yaml index 0de6803f..ead8e2ff 100644 --- a/shared/pkg_additional_info.yaml +++ b/shared/pkg_additional_info.yaml @@ -97,6 +97,13 @@ liblz4_vendor: additional_cmake_args: "-DAMENT_VENDOR_POLICY=NEVER_VENDOR_IGNORE_SATISFIED_CHECK" libnabo: additional_cmake_args: "-DLIBNABO_BUILD_PYTHON=OFF" +libpointmatcher: + # Windows installs libpointmatcherConfig.cmake into both /Library/cmake and + # share/libpointmatcher/cmake but its export file only into the latter; CMake finds the + # former first and fails to include libpointmatcher-config.cmake. Keep both together. + additional_cmake_args: + if: win + then: "-DINSTALL_CMAKE_DIR=share/libpointmatcher/cmake" moveit_ros_visualization: additional_cmake_args: "-DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON" mujoco_vendor: diff --git a/shared/robostack.yaml b/shared/robostack.yaml index e1dd8aea..6e8b59e1 100644 --- a/shared/robostack.yaml +++ b/shared/robostack.yaml @@ -496,49 +496,49 @@ libqhull: robostack: [qhull] libqt5-core: robostack: - linux: [qt-main, libopengl-devel, libgl-devel] - osx: [qt-main] - win64: [qt-main] + linux: [qt6-main, libopengl-devel, libgl-devel] + osx: [qt6-main] + win64: [qt6-main] libqt5-gui: robostack: - linux: [qt-main, libopengl-devel, libgl-devel] - osx: [qt-main] - win64: [qt-main] + linux: [qt6-main, libopengl-devel, libgl-devel] + osx: [qt6-main] + win64: [qt6-main] libqt5-opengl: robostack: - linux: [qt-main, libopengl-devel, libgl-devel] - osx: [qt-main] - win64: [qt-main] + linux: [qt6-main, libopengl-devel, libgl-devel] + osx: [qt6-main] + win64: [qt6-main] libqt5-opengl-dev: robostack: - linux: [qt-main, libopengl-devel, libgl-devel] - osx: [qt-main] - win64: [qt-main] + linux: [qt6-main, libopengl-devel, libgl-devel] + osx: [qt6-main] + win64: [qt6-main] libqt5-svg: robostack: - linux: [qt-main, libopengl-devel, libgl-devel] - osx: [qt-main] - win64: [qt-main] + linux: [qt6-main, libopengl-devel, libgl-devel] + osx: [qt6-main] + win64: [qt6-main] libqt5-svg-dev: robostack: - linux: [qt-main, libopengl-devel, libgl-devel] - osx: [qt-main] - win64: [qt-main] + linux: [qt6-main, libopengl-devel, libgl-devel] + osx: [qt6-main] + win64: [qt6-main] libqt5-websockets-dev: robostack: - linux: [qt-main, libopengl-devel, libgl-devel] - osx: [qt-main] - win64: [qt-main] + linux: [qt6-main, libopengl-devel, libgl-devel] + osx: [qt6-main] + win64: [qt6-main] libqt5-widgets: robostack: - linux: [qt-main, libopengl-devel, libgl-devel] - osx: [qt-main] - win64: [qt-main] + linux: [qt6-main, libopengl-devel, libgl-devel] + osx: [qt6-main] + win64: [qt6-main] libqt5x11extras5-dev: robostack: - linux: [qt-main, libopengl-devel, libgl-devel] - osx: [qt-main] - win64: [qt-main] + linux: [qt6-main, libopengl-devel, libgl-devel] + osx: [qt6-main] + win64: [qt6-main] libqt6-core: robostack: linux: [qt6-main, libopengl-devel, libgl-devel] @@ -857,7 +857,7 @@ python-pygraphviz: python-pyusb-pip: robostack: [pyusb] python-qt5-bindings: - robostack: [pyqt, pyqt-builder] + robostack: [pyqt6, pyqt-builder] python-rosdep: robostack: [rosdep] python-rosdep-modules: @@ -1070,9 +1070,9 @@ python3-pytest-mock: python3-pytest-timeout: robostack: [pytest-timeout] python3-qt5-bindings: - robostack: [pyqt, pyqt-builder] + robostack: [pyqt6, pyqt-builder] python3-qt5-bindings-gl: - robostack: [pyqt, pyqt-builder] + robostack: [pyqt6, pyqt-builder] python3-qt5-bindings-webkit: robostack: [pyqtwebengine] python3-requests: @@ -1186,14 +1186,14 @@ qt-base-dev: win64: [qt6-main] qt5-image-formats-plugins: robostack: - linux: [qt-main, libopengl-devel, libgl-devel] - osx: [qt-main] - win64: [qt-main] + linux: [qt6-main, libopengl-devel, libgl-devel] + osx: [qt6-main] + win64: [qt6-main] qt5-qmake: robostack: - linux: [qt-main, libopengl-devel, libgl-devel] - osx: [qt-main] - win64: [qt-main] + linux: [qt6-main, libopengl-devel, libgl-devel] + osx: [qt6-main] + win64: [qt6-main] qt6-base-dev: robostack: linux: [qt6-main, libopengl-devel, libgl-devel] @@ -1203,9 +1203,9 @@ qt6-scxml-dev: robostack: [qt6-scxml] qtbase5-dev: robostack: - linux: [qt-main, libopengl-devel, libgl-devel] - osx: [qt-main] - win64: [qt-main] + linux: [qt6-main, libopengl-devel, libgl-devel] + osx: [qt6-main] + win64: [qt6-main] range-v3: robostack: [range-v3] rapidjson-dev: diff --git a/shared/tests/ros2-rcutils.yaml b/shared/tests/ros2-rcutils.yaml index 4903914a..89c253d9 100644 --- a/shared/tests/ros2-rcutils.yaml +++ b/shared/tests/ros2-rcutils.yaml @@ -1,4 +1,10 @@ tests: - - python: - imports: + - package_contents: + lib: - rcutils + # rcutils 7 (lyrical, rolling) no longer installs its Python module + - if: ros_distro in ["humble", "jazzy"] + then: + - python: + imports: + - rcutils From fd9e531a109f0d6551549e093e354b068182bcb1 Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Fri, 16 Oct 2026 16:36:16 +1000 Subject: [PATCH 02/21] rolling: rosdistro snapshot of 2026-10-16, full rebuild `rs rolling update-snapshot` (rolling has no sync tags: rosdistro master): new versions, 33 packages added and 10 removed (system_modes and its patch among them). Full rebuild: build_number 29 -> 32, mutex 0.22.0 -> 0.23.0. Co-Authored-By: Claude Opus 5.5 --- distros/rolling/patch/ros2-system-modes.patch | 25 - distros/rolling/pkg_additional_info.yaml | 331 +- distros/rolling/rosdistro_snapshot.yaml | 19105 +++++++++++++++- distros/rolling/vinca.yaml | 4 +- 4 files changed, 18019 insertions(+), 1446 deletions(-) delete mode 100644 distros/rolling/patch/ros2-system-modes.patch diff --git a/distros/rolling/patch/ros2-system-modes.patch b/distros/rolling/patch/ros2-system-modes.patch deleted file mode 100644 index 64d0a80d..00000000 --- a/distros/rolling/patch/ros2-system-modes.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 0000000..0000000 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -34,13 +34,13 @@ - target_include_directories(mode PUBLIC - $ - $) --ament_target_dependencies(mode -- "rclcpp" -- "rcl_lifecycle" -- "rclcpp_lifecycle" -- "rosidl_typesupport_cpp" -- "lifecycle_msgs" -- "system_modes_msgs" -+target_link_libraries(mode -+ ${rclcpp_TARGETS} -+ ${rcl_lifecycle_TARGETS} -+ ${rclcpp_lifecycle_TARGETS} -+ ${rosidl_typesupport_cpp_TARGETS} -+ ${lifecycle_msgs_TARGETS} -+ ${system_modes_msgs_TARGETS} - ) - - # Causes the visibility macros to use dllexport rather than dllimport, diff --git a/distros/rolling/pkg_additional_info.yaml b/distros/rolling/pkg_additional_info.yaml index c5b1beac..5374e197 100644 --- a/distros/rolling/pkg_additional_info.yaml +++ b/distros/rolling/pkg_additional_info.yaml @@ -64,6 +64,8 @@ proxsuite: dep_name: proxsuite max_pin: 'x.x' override_version: '0.7.3' +rtabmap: + additional_cmake_args: -DBUILD_TESTING=OFF rviz_ogre_vendor: additional_cmake_args: "-DRVIZ_OGRE_VENDOR_MANGLE_NAME_OF_LIBRARIES_USED_BY_RVIZ=ON" urdfdom: @@ -80,332 +82,3 @@ urdfdom_headers: override_version: '3.0.0' zenoh_cpp_vendor: additional_cmake_args: "-DAMENT_VENDOR_POLICY=NEVER_VENDOR_IGNORE_SATISFIED_CHECK -DUSE_SYSTEM_ZENOH=ON" -ackermann_steering_controller: - build_number: 31 -admittance_controller: - build_number: 31 -backward_ros: - build_number: 31 -battery_state_broadcaster: - build_number: 31 -bicycle_steering_controller: - build_number: 31 -chained_filter_controller: - build_number: 31 -chomp_motion_planner: - build_number: 31 -control_toolbox: - build_number: 31 -controller_interface: - build_number: 31 -controller_manager: - build_number: 31 -desktop_full: - build_number: 31 -diff_drive_controller: - build_number: 31 -force_torque_sensor_broadcaster: - build_number: 31 -forward_command_controller: - build_number: 31 -gpio_controllers: - build_number: 31 -gps_sensor_broadcaster: - build_number: 31 -gz_gui_vendor: - build_number: 30 -gz_ros2_control: - build_number: 31 -gz_ros2_control_demos: - build_number: 31 -gz_sim_vendor: - build_number: 31 -hardware_interface: - build_number: 31 -hardware_interface_testing: - build_number: 31 -imu_sensor_broadcaster: - build_number: 31 -joint_limits: - build_number: 31 -joint_state_broadcaster: - build_number: 31 -joint_trajectory_controller: - build_number: 31 -kinematics_interface: - build_number: 31 -kinematics_interface_kdl: - build_number: 31 -libpointmatcher: - build_number: 31 -livox_ros_driver2: - build_number: 31 -magnetometer_broadcaster: - build_number: 31 -mecanum_drive_controller: - build_number: 31 -motion_primitives_controllers: - build_number: 31 -moveit: - build_number: 31 -moveit_common: - build_number: 31 -moveit_core: - build_number: 31 -moveit_hybrid_planning: - build_number: 31 -moveit_kinematics: - build_number: 31 -moveit_planners: - build_number: 31 -moveit_planners_chomp: - build_number: 31 -moveit_planners_ompl: - build_number: 31 -moveit_planners_stomp: - build_number: 31 -moveit_plugins: - build_number: 31 -moveit_py: - build_number: 31 -moveit_resources: - build_number: 31 -moveit_resources_fanuc_moveit_config: - build_number: 31 -moveit_resources_panda_moveit_config: - build_number: 31 -moveit_resources_prbt_ikfast_manipulator_plugin: - build_number: 31 -moveit_resources_prbt_moveit_config: - build_number: 31 -moveit_resources_prbt_pg70_support: - build_number: 31 -moveit_ros: - build_number: 31 -moveit_ros_benchmarks: - build_number: 31 -moveit_ros_control_interface: - build_number: 31 -moveit_ros_move_group: - build_number: 31 -moveit_ros_occupancy_map_monitor: - build_number: 31 -moveit_ros_perception: - build_number: 31 -moveit_ros_planning: - build_number: 31 -moveit_ros_planning_interface: - build_number: 31 -moveit_ros_robot_interaction: - build_number: 31 -moveit_ros_trajectory_cache: - build_number: 31 -moveit_ros_visualization: - build_number: 31 -moveit_ros_warehouse: - build_number: 31 -moveit_runtime: - build_number: 31 -moveit_servo: - build_number: 31 -moveit_setup_app_plugins: - build_number: 31 -moveit_setup_assistant: - build_number: 31 -moveit_setup_controllers: - build_number: 31 -moveit_setup_core_plugins: - build_number: 31 -moveit_setup_framework: - build_number: 31 -moveit_setup_srdf_plugins: - build_number: 31 -moveit_simple_controller_manager: - build_number: 31 -moveit_task_constructor_capabilities: - build_number: 31 -moveit_task_constructor_core: - build_number: 31 -moveit_task_constructor_demo: - build_number: 31 -moveit_task_constructor_visualization: - build_number: 31 -moveit_visual_tools: - build_number: 31 -mujoco_ros2_control: - build_number: 31 -mujoco_ros2_control_demos: - build_number: 31 -mujoco_ros2_control_plugins: - build_number: 31 -nav2_minimal_tb3_sim: - build_number: 31 -nav2_minimal_tb4_sim: - build_number: 31 -omni_wheel_drive_controller: - build_number: 31 -parallel_gripper_controller: - build_number: 31 -pick_ik: - build_number: 31 -pid_controller: - build_number: 31 -pilz_industrial_motion_planner: - build_number: 31 -pilz_industrial_motion_planner_testutils: - build_number: 31 -plotjuggler: - # Rebuild with the refreshed patch (b29 was built before it; 3.17.2 already wraps the message in a Span). - build_number: 30 -pose_broadcaster: - build_number: 31 -python_qt_binding: - build_number: 31 -range_sensor_broadcaster: - build_number: 31 -rmf_demos: - build_number: 31 -rmf_demos_fleet_adapter: - build_number: 31 -rmf_fleet_adapter: - build_number: 31 -rmf_fleet_adapter_python: - build_number: 31 -rmf_reservation_node: - build_number: 31 -rmf_task_ros2: - build_number: 31 -rmf_traffic_ros2: - build_number: 31 -rmf_visualization: - build_number: 31 -rmf_visualization_navgraphs: - build_number: 31 -rmf_visualization_rviz2_plugins: - build_number: 31 -rmf_visualization_schedule: - build_number: 31 -roboplan_ros_franka: - build_number: 31 -robotiq_controllers: - build_number: 31 -ros2_control: - build_number: 31 -ros2_controllers: - build_number: 31 -ros2_fmt_logger: - build_number: 31 -ros2cli: - # Rebuild with the shell completions under the names bash/zsh/fish load (patch). - build_number: 30 -ros2controlcli: - build_number: 31 -ros_gz: - build_number: 31 -ros_gz_sim: - build_number: 31 -ros_gz_sim_demos: - build_number: 31 -ros_image_to_qimage: - build_number: 31 -rosidl_cli: - # Rebuild with the shell completions installed under the names bash/zsh/fish load (patch). - build_number: 30 -rqt_controller_manager: - build_number: 31 -rqt_image_overlay: - build_number: 31 -rqt_image_overlay_layer: - build_number: 31 -rqt_mocap4r2_control: - build_number: 31 -rqt_plot: - # Rebuild with qt6-main 6.11 (b29 was built against qt6-main 6.12, which pyqt6 6.11 can't install with). - build_number: 30 -rqt_py_common: - # Rebuild with qt6-main 6.11 (b29 was built against qt6-main 6.12, which pyqt6 6.11 can't install with). - build_number: 30 -rtabmap: - additional_cmake_args: -DBUILD_TESTING=OFF - build_number: 31 -rviz2: - # Rebuild with qt6-main 6.11 (b29 was built against qt6-main 6.12, which pyqt6 6.11 can't install with). - build_number: 30 -rviz_common: - # Rebuild with qt6-main 6.11 (b29 was built against qt6-main 6.12, which pyqt6 6.11 can't install with). - build_number: 30 -rviz_default_plugins: - # Rebuild with qt6-main 6.11 (b29 was built against qt6-main 6.12, which pyqt6 6.11 can't install with). - build_number: 30 -rviz_imu_plugin: - # Rebuild with qt6-main 6.11 (b29 was built against qt6-main 6.12, which pyqt6 6.11 can't install with). - build_number: 30 -rviz_marker_tools: - build_number: 31 -rviz_rendering: - # Rebuild with qt6-main 6.11 (b29 was built against qt6-main 6.12, which pyqt6 6.11 can't install with). - build_number: 30 -rviz_rendering_tests: - # Rebuild with qt6-main 6.11 (b29 was built against qt6-main 6.12, which pyqt6 6.11 can't install with). - build_number: 30 -rviz_satellite: - # Rebuild with qt6-main 6.11 (b29 was built against qt6-main 6.12, which pyqt6 6.11 can't install with). - build_number: 31 -rviz_visual_testing_framework: - # Rebuild with qt6-main 6.11 (b29 was built against qt6-main 6.12, which pyqt6 6.11 can't install with). - build_number: 30 -rviz_visual_tools: - build_number: 31 -simulation: - build_number: 31 -state_interfaces_broadcaster: - build_number: 31 -steering_controllers_library: - build_number: 31 -trac_ik: - build_number: 31 -trac_ik_kinematics_plugin: - build_number: 31 -transmission_interface: - build_number: 31 -tricycle_controller: - build_number: 31 -tricycle_steering_controller: - build_number: 31 -turtlebot3_gazebo: - build_number: 31 -turtlebot3_simulations: - build_number: 31 -turtlesim: - # Rebuild with qt6-main 6.11 (b29 was built against qt6-main 6.12, which pyqt6 6.11 can't install with). - build_number: 30 -ur: - build_number: 31 -ur_calibration: - build_number: 31 -ur_controllers: - build_number: 31 -ur_moveit_config: - build_number: 31 -ur_robot_driver: - build_number: 31 -ur_simulation_gz: - build_number: 31 -visp: - build_number: 31 -webots_ros2: - build_number: 31 -webots_ros2_control: - build_number: 31 -webots_ros2_epuck: - build_number: 31 -webots_ros2_husarion: - build_number: 31 -webots_ros2_tests: - build_number: 31 -webots_ros2_tiago: - build_number: 31 -webots_ros2_turtlebot: - build_number: 31 -webots_ros2_universal_robot: - build_number: 31 diff --git a/distros/rolling/rosdistro_snapshot.yaml b/distros/rolling/rosdistro_snapshot.yaml index 55c51dd8..0c3a830c 100644 --- a/distros/rolling/rosdistro_snapshot.yaml +++ b/distros/rolling/rosdistro_snapshot.yaml @@ -1,6349 +1,23274 @@ -# Snapshot generated by vinca-snapshot on 2026-08-24T12:02:07Z UTC for distro rolling -acado_vendor: - tag: release/rolling/acado_vendor/1.0.0-7 - url: https://github.com/ros2-gbp/acado_vendor-release.git - version: 1.0.0 +# Snapshot generated by vinca-snapshot on 2026-10-16T06:32:01Z UTC for distro rolling ackermann_msgs: + dependencies: + - ament_cmake + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ros-drivers/ackermann_msgs tag: release/rolling/ackermann_msgs/2.0.2-6 url: https://github.com/ros2-gbp/ackermann_msgs-release.git version: 2.0.2 ackermann_nlmpc: + dependencies: + - ackermann_msgs + - ackermann_nlmpc_msgs + - ament_pep257 + - geometry_msgs + - nav_msgs + - std_msgs + repository: https://git.ime.uni-luebeck.de/public-projects/asl/ackermann_nlmpc tag: release/rolling/ackermann_nlmpc/1.0.3-2 url: https://github.com/ros2-gbp/ackmerann_nlmpc-release.git version: 1.0.3 ackermann_nlmpc_msgs: + dependencies: + - ament_cmake + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://git.ime.uni-luebeck.de/public-projects/asl/ackermann_nlmpc tag: release/rolling/ackermann_nlmpc_msgs/1.0.3-2 url: https://github.com/ros2-gbp/ackmerann_nlmpc-release.git version: 1.0.3 ackermann_steering_controller: - tag: release/rolling/ackermann_steering_controller/6.9.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - backward_ros + - control_msgs + - controller_interface + - controller_manager + - generate_parameter_library + - hardware_interface + - hardware_interface_testing + - pluginlib + - rclcpp + - rclcpp_lifecycle + - ros2_control_cmake + - ros2_control_test_assets + - std_srvs + - steering_controllers_library + repository: https://github.com/ros-controls/ros2_controllers + tag: release/rolling/ackermann_steering_controller/6.10.0-1 url: https://github.com/ros2-gbp/ros2_controllers-release.git - version: 6.9.0 + version: 6.10.0 action_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - rosidl_core_generators + - rosidl_core_runtime + - service_msgs + - unique_identifier_msgs + repository: https://github.com/ros2/rcl_interfaces tag: release/rolling/action_msgs/2.5.1-1 url: https://github.com/ros2-gbp/rcl_interfaces-release.git version: 2.5.1 action_tutorials_cpp: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - example_interfaces + - rclcpp + - rclcpp_action + - rclcpp_components + repository: https://github.com/ros2/demos tag: release/rolling/action_tutorials_cpp/0.38.0-1 url: https://github.com/ros2-gbp/demos-release.git version: 0.38.0 action_tutorials_py: + dependencies: + - ament_copyright + - ament_flake8 + - ament_mypy + - ament_pep257 + - ament_xmllint + - example_interfaces + - rclpy + repository: https://github.com/ros2/demos tag: release/rolling/action_tutorials_py/0.38.0-1 url: https://github.com/ros2-gbp/demos-release.git version: 0.38.0 actuator_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/rudislabs/actuator_msgs tag: release/rolling/actuator_msgs/0.0.1-4 url: https://github.com/ros2-gbp/actuator_msgs-release.git version: 0.0.1 admittance_controller: - tag: release/rolling/admittance_controller/6.9.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - angles + - backward_ros + - control_msgs + - control_toolbox + - controller_interface + - controller_manager + - generate_parameter_library + - geometry_msgs + - hardware_interface + - hardware_interface_testing + - kinematics_interface + - kinematics_interface_kdl + - pluginlib + - rclcpp + - rclcpp_lifecycle + - realtime_tools + - ros2_control_cmake + - ros2_control_test_assets + - tf2 + - tf2_eigen + - tf2_geometry_msgs + - tf2_kdl + - tf2_ros + - trajectory_msgs + repository: https://github.com/ros-controls/ros2_controllers + tag: release/rolling/admittance_controller/6.10.0-1 url: https://github.com/ros2-gbp/ros2_controllers-release.git - version: 6.9.0 + version: 6.10.0 agni_tf_tools: + dependencies: + - ament_cmake + - angles + - geometry_msgs + - interactive_markers + - pluginlib + - rclcpp + - rviz_common + - rviz_default_plugins + - std_msgs + - tf2 + - tf2_geometry_msgs + - tf2_ros + - visualization_msgs + repository: https://github.com/ubi-agni/agni_tf_tools tag: release/rolling/agni_tf_tools/1.0.2-1 url: https://github.com/ros2-gbp/agni_tf_tools-release.git version: 1.0.2 ament_acceleration: + dependencies: + - ament_cmake_core + repository: https://github.com/ros-acceleration/ament_acceleration tag: release/rolling/ament_acceleration/0.2.0-5 url: https://github.com/ros2-gbp/ament_acceleration-release.git version: 0.2.0 ament_black: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + repository: https://github.com/botsandus/ament_black tag: release/rolling/ament_black/0.2.7-1 url: https://github.com/ros2-gbp/ament_black-release.git version: 0.2.7 ament_clang_format: - tag: release/rolling/ament_clang_format/0.21.1-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_lint + - ament_pep257 + - ament_xmllint + repository: https://github.com/ament/ament_lint + tag: release/rolling/ament_clang_format/0.21.3-1 url: https://github.com/ros2-gbp/ament_lint-release.git - version: 0.21.1 + version: 0.21.3 ament_clang_tidy: - tag: release/rolling/ament_clang_tidy/0.21.1-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_lint + - ament_pep257 + - ament_xmllint + repository: https://github.com/ament/ament_lint + tag: release/rolling/ament_clang_tidy/0.21.3-1 url: https://github.com/ros2-gbp/ament_lint-release.git - version: 0.21.1 + version: 0.21.3 ament_cmake: - tag: release/rolling/ament_cmake/2.9.1-1 + dependencies: + - ament_cmake_core + - ament_cmake_export_definitions + - ament_cmake_export_dependencies + - ament_cmake_export_include_directories + - ament_cmake_export_libraries + - ament_cmake_export_link_flags + - ament_cmake_export_targets + - ament_cmake_gen_version_h + - ament_cmake_libraries + - ament_cmake_python + - ament_cmake_target_dependencies + - ament_cmake_test + - ament_cmake_version + repository: https://github.com/ament/ament_cmake + tag: release/rolling/ament_cmake/2.9.2-1 url: https://github.com/ros2-gbp/ament_cmake-release.git - version: 2.9.1 + version: 2.9.2 ament_cmake_auto: - tag: release/rolling/ament_cmake_auto/2.9.1-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - ament_cmake_gtest + repository: https://github.com/ament/ament_cmake + tag: release/rolling/ament_cmake_auto/2.9.2-1 url: https://github.com/ros2-gbp/ament_cmake-release.git - version: 2.9.1 + version: 2.9.2 ament_cmake_black: + dependencies: + - ament_black + - ament_cmake_copyright + - ament_cmake_core + - ament_cmake_lint_cmake + - ament_cmake_test + - ament_cmake_xmllint + repository: https://github.com/botsandus/ament_black tag: release/rolling/ament_cmake_black/0.2.7-1 url: https://github.com/ros2-gbp/ament_black-release.git version: 0.2.7 ament_cmake_catch2: + dependencies: + - ament_cmake_core + - ament_cmake_test + repository: https://github.com/open-rmf/ament_cmake_catch2 tag: release/rolling/ament_cmake_catch2/1.5.0-2 url: https://github.com/ros2-gbp/ament_cmake_catch2-release.git version: 1.5.0 ament_cmake_clang_format: - tag: release/rolling/ament_cmake_clang_format/0.21.1-1 + dependencies: + - ament_clang_format + - ament_cmake_copyright + - ament_cmake_core + - ament_cmake_lint_cmake + - ament_cmake_test + repository: https://github.com/ament/ament_lint + tag: release/rolling/ament_cmake_clang_format/0.21.3-1 url: https://github.com/ros2-gbp/ament_lint-release.git - version: 0.21.1 + version: 0.21.3 ament_cmake_clang_tidy: - tag: release/rolling/ament_cmake_clang_tidy/0.21.1-1 + dependencies: + - ament_clang_tidy + - ament_cmake_copyright + - ament_cmake_core + - ament_cmake_lint_cmake + - ament_cmake_test + repository: https://github.com/ament/ament_lint + tag: release/rolling/ament_cmake_clang_tidy/0.21.3-1 url: https://github.com/ros2-gbp/ament_lint-release.git - version: 0.21.1 + version: 0.21.3 ament_cmake_copyright: - tag: release/rolling/ament_cmake_copyright/0.21.1-1 + dependencies: + - ament_cmake_core + - ament_cmake_lint_cmake + - ament_cmake_test + - ament_copyright + repository: https://github.com/ament/ament_lint + tag: release/rolling/ament_cmake_copyright/0.21.3-1 url: https://github.com/ros2-gbp/ament_lint-release.git - version: 0.21.1 + version: 0.21.3 ament_cmake_core: - tag: release/rolling/ament_cmake_core/2.9.1-1 + dependencies: + - ament_package + repository: https://github.com/ament/ament_cmake + tag: release/rolling/ament_cmake_core/2.9.2-1 url: https://github.com/ros2-gbp/ament_cmake-release.git - version: 2.9.1 + version: 2.9.2 ament_cmake_cppcheck: - tag: release/rolling/ament_cmake_cppcheck/0.21.1-1 + dependencies: + - ament_cmake_copyright + - ament_cmake_core + - ament_cmake_lint_cmake + - ament_cmake_test + - ament_cppcheck + repository: https://github.com/ament/ament_lint + tag: release/rolling/ament_cmake_cppcheck/0.21.3-1 url: https://github.com/ros2-gbp/ament_lint-release.git - version: 0.21.1 + version: 0.21.3 ament_cmake_cpplint: - tag: release/rolling/ament_cmake_cpplint/0.21.1-1 + dependencies: + - ament_cmake_copyright + - ament_cmake_core + - ament_cmake_lint_cmake + - ament_cmake_test + - ament_cpplint + repository: https://github.com/ament/ament_lint + tag: release/rolling/ament_cmake_cpplint/0.21.3-1 url: https://github.com/ros2-gbp/ament_lint-release.git - version: 0.21.1 + version: 0.21.3 ament_cmake_export_definitions: - tag: release/rolling/ament_cmake_export_definitions/2.9.1-1 + dependencies: + - ament_cmake_core + repository: https://github.com/ament/ament_cmake + tag: release/rolling/ament_cmake_export_definitions/2.9.2-1 url: https://github.com/ros2-gbp/ament_cmake-release.git - version: 2.9.1 + version: 2.9.2 ament_cmake_export_dependencies: - tag: release/rolling/ament_cmake_export_dependencies/2.9.1-1 + dependencies: + - ament_cmake_core + - ament_cmake_libraries + repository: https://github.com/ament/ament_cmake + tag: release/rolling/ament_cmake_export_dependencies/2.9.2-1 url: https://github.com/ros2-gbp/ament_cmake-release.git - version: 2.9.1 + version: 2.9.2 ament_cmake_export_include_directories: - tag: release/rolling/ament_cmake_export_include_directories/2.9.1-1 + dependencies: + - ament_cmake_core + repository: https://github.com/ament/ament_cmake + tag: release/rolling/ament_cmake_export_include_directories/2.9.2-1 url: https://github.com/ros2-gbp/ament_cmake-release.git - version: 2.9.1 + version: 2.9.2 ament_cmake_export_libraries: - tag: release/rolling/ament_cmake_export_libraries/2.9.1-1 + dependencies: + - ament_cmake_core + repository: https://github.com/ament/ament_cmake + tag: release/rolling/ament_cmake_export_libraries/2.9.2-1 url: https://github.com/ros2-gbp/ament_cmake-release.git - version: 2.9.1 + version: 2.9.2 ament_cmake_export_link_flags: - tag: release/rolling/ament_cmake_export_link_flags/2.9.1-1 + dependencies: + - ament_cmake_core + repository: https://github.com/ament/ament_cmake + tag: release/rolling/ament_cmake_export_link_flags/2.9.2-1 url: https://github.com/ros2-gbp/ament_cmake-release.git - version: 2.9.1 + version: 2.9.2 ament_cmake_export_targets: - tag: release/rolling/ament_cmake_export_targets/2.9.1-1 + dependencies: + - ament_cmake_core + - ament_cmake_export_libraries + repository: https://github.com/ament/ament_cmake + tag: release/rolling/ament_cmake_export_targets/2.9.2-1 url: https://github.com/ros2-gbp/ament_cmake-release.git - version: 2.9.1 + version: 2.9.2 ament_cmake_flake8: - tag: release/rolling/ament_cmake_flake8/0.21.1-1 + dependencies: + - ament_cmake_copyright + - ament_cmake_core + - ament_cmake_lint_cmake + - ament_cmake_test + - ament_flake8 + repository: https://github.com/ament/ament_lint + tag: release/rolling/ament_cmake_flake8/0.21.3-1 url: https://github.com/ros2-gbp/ament_lint-release.git - version: 0.21.1 + version: 0.21.3 ament_cmake_gen_version_h: - tag: release/rolling/ament_cmake_gen_version_h/2.9.1-1 + dependencies: + - ament_cmake_core + - ament_cmake_gtest + - ament_package + repository: https://github.com/ament/ament_cmake + tag: release/rolling/ament_cmake_gen_version_h/2.9.2-1 url: https://github.com/ros2-gbp/ament_cmake-release.git - version: 2.9.1 + version: 2.9.2 ament_cmake_gmock: - tag: release/rolling/ament_cmake_gmock/2.9.1-1 + dependencies: + - ament_cmake_core + - ament_cmake_gtest + - ament_cmake_test + repository: https://github.com/ament/ament_cmake + tag: release/rolling/ament_cmake_gmock/2.9.2-1 url: https://github.com/ros2-gbp/ament_cmake-release.git - version: 2.9.1 + version: 2.9.2 ament_cmake_google_benchmark: - tag: release/rolling/ament_cmake_google_benchmark/2.9.1-1 + dependencies: + - ament_cmake_core + - ament_cmake_export_dependencies + - ament_cmake_python + - ament_cmake_test + - google_benchmark_vendor + repository: https://github.com/ament/ament_cmake + tag: release/rolling/ament_cmake_google_benchmark/2.9.2-1 url: https://github.com/ros2-gbp/ament_cmake-release.git - version: 2.9.1 + version: 2.9.2 ament_cmake_gtest: - tag: release/rolling/ament_cmake_gtest/2.9.1-1 + dependencies: + - ament_cmake_core + - ament_cmake_test + repository: https://github.com/ament/ament_cmake + tag: release/rolling/ament_cmake_gtest/2.9.2-1 url: https://github.com/ros2-gbp/ament_cmake-release.git - version: 2.9.1 + version: 2.9.2 ament_cmake_include_directories: - tag: release/rolling/ament_cmake_include_directories/2.9.1-1 + dependencies: + - ament_cmake_core + repository: https://github.com/ament/ament_cmake + tag: release/rolling/ament_cmake_include_directories/2.9.2-1 url: https://github.com/ros2-gbp/ament_cmake-release.git - version: 2.9.1 + version: 2.9.2 ament_cmake_libraries: - tag: release/rolling/ament_cmake_libraries/2.9.1-1 + dependencies: + - ament_cmake_core + repository: https://github.com/ament/ament_cmake + tag: release/rolling/ament_cmake_libraries/2.9.2-1 url: https://github.com/ros2-gbp/ament_cmake-release.git - version: 2.9.1 + version: 2.9.2 ament_cmake_lint_cmake: - tag: release/rolling/ament_cmake_lint_cmake/0.21.1-1 + dependencies: + - ament_cmake_core + - ament_cmake_test + - ament_lint_cmake + repository: https://github.com/ament/ament_lint + tag: release/rolling/ament_cmake_lint_cmake/0.21.3-1 url: https://github.com/ros2-gbp/ament_lint-release.git - version: 0.21.1 + version: 0.21.3 ament_cmake_mypy: - tag: release/rolling/ament_cmake_mypy/0.21.1-1 + dependencies: + - ament_cmake_copyright + - ament_cmake_core + - ament_cmake_lint_cmake + - ament_cmake_test + - ament_mypy + repository: https://github.com/ament/ament_lint + tag: release/rolling/ament_cmake_mypy/0.21.3-1 url: https://github.com/ros2-gbp/ament_lint-release.git - version: 0.21.1 + version: 0.21.3 ament_cmake_pclint: - tag: release/rolling/ament_cmake_pclint/0.21.1-1 + dependencies: + - ament_cmake_copyright + - ament_cmake_core + - ament_cmake_lint_cmake + - ament_cmake_test + - ament_pclint + repository: https://github.com/ament/ament_lint + tag: release/rolling/ament_cmake_pclint/0.21.3-1 url: https://github.com/ros2-gbp/ament_lint-release.git - version: 0.21.1 + version: 0.21.3 ament_cmake_pep257: - tag: release/rolling/ament_cmake_pep257/0.21.1-1 + dependencies: + - ament_cmake_copyright + - ament_cmake_core + - ament_cmake_lint_cmake + - ament_cmake_test + - ament_pep257 + repository: https://github.com/ament/ament_lint + tag: release/rolling/ament_cmake_pep257/0.21.3-1 url: https://github.com/ros2-gbp/ament_lint-release.git - version: 0.21.1 + version: 0.21.3 ament_cmake_pycodestyle: - tag: release/rolling/ament_cmake_pycodestyle/0.21.1-1 + dependencies: + - ament_cmake_copyright + - ament_cmake_core + - ament_cmake_lint_cmake + - ament_cmake_test + - ament_pycodestyle + repository: https://github.com/ament/ament_lint + tag: release/rolling/ament_cmake_pycodestyle/0.21.3-1 url: https://github.com/ros2-gbp/ament_lint-release.git - version: 0.21.1 + version: 0.21.3 ament_cmake_pyflakes: - tag: release/rolling/ament_cmake_pyflakes/0.21.1-1 + dependencies: + - ament_cmake_copyright + - ament_cmake_core + - ament_cmake_lint_cmake + - ament_cmake_test + - ament_pyflakes + repository: https://github.com/ament/ament_lint + tag: release/rolling/ament_cmake_pyflakes/0.21.3-1 url: https://github.com/ros2-gbp/ament_lint-release.git - version: 0.21.1 + version: 0.21.3 ament_cmake_pytest: - tag: release/rolling/ament_cmake_pytest/2.9.1-1 + dependencies: + - ament_cmake_core + - ament_cmake_test + repository: https://github.com/ament/ament_cmake + tag: release/rolling/ament_cmake_pytest/2.9.2-1 url: https://github.com/ros2-gbp/ament_cmake-release.git - version: 2.9.1 + version: 2.9.2 ament_cmake_python: - tag: release/rolling/ament_cmake_python/2.9.1-1 + dependencies: + - ament_cmake_core + repository: https://github.com/ament/ament_cmake + tag: release/rolling/ament_cmake_python/2.9.2-1 url: https://github.com/ros2-gbp/ament_cmake-release.git - version: 2.9.1 + version: 2.9.2 ament_cmake_ros: + dependencies: + - ament_cmake + - ament_cmake_gmock + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - rmw_test_fixture_implementation + repository: https://github.com/ros2/ament_cmake_ros tag: release/rolling/ament_cmake_ros/0.16.0-1 url: https://github.com/ros2-gbp/ament_cmake_ros-release.git version: 0.16.0 ament_cmake_ros_core: + dependencies: + - ament_cmake_core + - ament_cmake_export_dependencies + - ament_cmake_export_targets + - ament_cmake_libraries + - ament_lint_auto + - ament_lint_common + repository: https://github.com/ros2/ament_cmake_ros tag: release/rolling/ament_cmake_ros_core/0.16.0-1 url: https://github.com/ros2-gbp/ament_cmake_ros-release.git version: 0.16.0 ament_cmake_target_dependencies: - tag: release/rolling/ament_cmake_target_dependencies/2.9.1-1 + dependencies: + - ament_cmake_core + - ament_cmake_include_directories + - ament_cmake_libraries + repository: https://github.com/ament/ament_cmake + tag: release/rolling/ament_cmake_target_dependencies/2.9.2-1 url: https://github.com/ros2-gbp/ament_cmake-release.git - version: 2.9.1 + version: 2.9.2 ament_cmake_test: - tag: release/rolling/ament_cmake_test/2.9.1-1 + dependencies: + - ament_cmake_core + - ament_cmake_python + repository: https://github.com/ament/ament_cmake + tag: release/rolling/ament_cmake_test/2.9.2-1 url: https://github.com/ros2-gbp/ament_cmake-release.git - version: 2.9.1 + version: 2.9.2 ament_cmake_uncrustify: - tag: release/rolling/ament_cmake_uncrustify/0.21.1-1 + dependencies: + - ament_cmake_copyright + - ament_cmake_core + - ament_cmake_lint_cmake + - ament_cmake_test + - ament_uncrustify + repository: https://github.com/ament/ament_lint + tag: release/rolling/ament_cmake_uncrustify/0.21.3-1 url: https://github.com/ros2-gbp/ament_lint-release.git - version: 0.21.1 + version: 0.21.3 ament_cmake_vendor_package: - tag: release/rolling/ament_cmake_vendor_package/2.9.1-1 + dependencies: + - ament_cmake_core + - ament_cmake_export_dependencies + - ament_cmake_test + repository: https://github.com/ament/ament_cmake + tag: release/rolling/ament_cmake_vendor_package/2.9.2-1 url: https://github.com/ros2-gbp/ament_cmake-release.git - version: 2.9.1 + version: 2.9.2 ament_cmake_version: - tag: release/rolling/ament_cmake_version/2.9.1-1 + dependencies: + - ament_cmake_core + repository: https://github.com/ament/ament_cmake + tag: release/rolling/ament_cmake_version/2.9.2-1 url: https://github.com/ros2-gbp/ament_cmake-release.git - version: 2.9.1 + version: 2.9.2 ament_cmake_xmllint: - tag: release/rolling/ament_cmake_xmllint/0.21.1-1 + dependencies: + - ament_cmake_copyright + - ament_cmake_core + - ament_cmake_lint_cmake + - ament_cmake_test + - ament_xmllint + repository: https://github.com/ament/ament_lint + tag: release/rolling/ament_cmake_xmllint/0.21.3-1 url: https://github.com/ros2-gbp/ament_lint-release.git - version: 0.21.1 + version: 0.21.3 ament_copyright: - tag: release/rolling/ament_copyright/0.21.1-1 + dependencies: + - ament_flake8 + - ament_lint + - ament_pep257 + repository: https://github.com/ament/ament_lint + tag: release/rolling/ament_copyright/0.21.3-1 url: https://github.com/ros2-gbp/ament_lint-release.git - version: 0.21.1 + version: 0.21.3 ament_cppcheck: - tag: release/rolling/ament_cppcheck/0.21.1-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_pycodestyle + - ament_xmllint + repository: https://github.com/ament/ament_lint + tag: release/rolling/ament_cppcheck/0.21.3-1 url: https://github.com/ros2-gbp/ament_lint-release.git - version: 0.21.1 + version: 0.21.3 ament_cpplint: - tag: release/rolling/ament_cpplint/0.21.1-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + repository: https://github.com/ament/ament_lint + tag: release/rolling/ament_cpplint/0.21.3-1 url: https://github.com/ros2-gbp/ament_lint-release.git - version: 0.21.1 + version: 0.21.3 ament_download: + dependencies: + - ament_cmake + repository: https://github.com/samsung-ros/ament_download tag: release/rolling/ament_download/0.0.5-6 url: https://github.com/ros2-gbp/ament_download-release.git version: 0.0.5 ament_flake8: - tag: release/rolling/ament_flake8/0.21.1-1 + dependencies: + - ament_lint + repository: https://github.com/ament/ament_lint + tag: release/rolling/ament_flake8/0.21.3-1 url: https://github.com/ros2-gbp/ament_lint-release.git - version: 0.21.1 + version: 0.21.3 ament_index_cpp: + dependencies: + - ament_cmake + - ament_cmake_gen_version_h + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + repository: https://github.com/ament/ament_index tag: release/rolling/ament_index_cpp/1.14.2-1 url: https://github.com/ros2-gbp/ament_index-release.git version: 1.14.2 ament_index_python: + dependencies: + - ament_copyright + - ament_flake8 + - ament_mypy + - ament_pep257 + - ament_xmllint + repository: https://github.com/ament/ament_index tag: release/rolling/ament_index_python/1.14.2-1 url: https://github.com/ros2-gbp/ament_index-release.git version: 1.14.2 ament_lint: - tag: release/rolling/ament_lint/0.21.1-1 + dependencies: [] + repository: https://github.com/ament/ament_lint + tag: release/rolling/ament_lint/0.21.3-1 url: https://github.com/ros2-gbp/ament_lint-release.git - version: 0.21.1 + version: 0.21.3 ament_lint_auto: - tag: release/rolling/ament_lint_auto/0.21.1-1 + dependencies: + - ament_cmake_core + - ament_cmake_test + repository: https://github.com/ament/ament_lint + tag: release/rolling/ament_lint_auto/0.21.3-1 url: https://github.com/ros2-gbp/ament_lint-release.git - version: 0.21.1 + version: 0.21.3 ament_lint_cmake: - tag: release/rolling/ament_lint_cmake/0.21.1-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + repository: https://github.com/ament/ament_lint + tag: release/rolling/ament_lint_cmake/0.21.3-1 url: https://github.com/ros2-gbp/ament_lint-release.git - version: 0.21.1 + version: 0.21.3 ament_lint_common: - tag: release/rolling/ament_lint_common/0.21.1-1 + dependencies: + - ament_cmake_copyright + - ament_cmake_core + - ament_cmake_cppcheck + - ament_cmake_cpplint + - ament_cmake_export_dependencies + - ament_cmake_flake8 + - ament_cmake_lint_cmake + - ament_cmake_pep257 + - ament_cmake_uncrustify + - ament_cmake_xmllint + - ament_copyright + - ament_cppcheck + - ament_cpplint + - ament_flake8 + - ament_lint_cmake + - ament_pep257 + - ament_uncrustify + - ament_xmllint + repository: https://github.com/ament/ament_lint + tag: release/rolling/ament_lint_common/0.21.3-1 url: https://github.com/ros2-gbp/ament_lint-release.git - version: 0.21.1 + version: 0.21.3 ament_mypy: - tag: release/rolling/ament_mypy/0.21.1-1 + dependencies: + - ament_flake8 + - ament_xmllint + repository: https://github.com/ament/ament_lint + tag: release/rolling/ament_mypy/0.21.3-1 url: https://github.com/ros2-gbp/ament_lint-release.git - version: 0.21.1 + version: 0.21.3 ament_nodl: - tag: release/rolling/ament_nodl/0.1.0-7 - url: https://github.com/ros2-gbp/ament_nodl-release.git - version: 0.1.0 + dependencies: + - ament_cmake + - ament_cmake_pytest + - launch + - launch_ros + - launch_testing + - launch_testing_ament_cmake + - ros2nodl + repository: https://github.com/ros-tooling/nodl + tag: release/rolling/ament_nodl/2.0.3-1 + url: https://github.com/ros2-gbp/nodl-release.git + version: 2.0.3 ament_package: + dependencies: [] + repository: https://github.com/ament/ament_package tag: release/rolling/ament_package/0.19.1-1 url: https://github.com/ros2-gbp/ament_package-release.git version: 0.19.1 ament_pclint: - tag: release/rolling/ament_pclint/0.21.1-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + repository: https://github.com/ament/ament_lint + tag: release/rolling/ament_pclint/0.21.3-1 url: https://github.com/ros2-gbp/ament_lint-release.git - version: 0.21.1 + version: 0.21.3 ament_pep257: - tag: release/rolling/ament_pep257/0.21.1-1 + dependencies: + - ament_flake8 + - ament_lint + repository: https://github.com/ament/ament_lint + tag: release/rolling/ament_pep257/0.21.3-1 url: https://github.com/ros2-gbp/ament_lint-release.git - version: 0.21.1 + version: 0.21.3 ament_pycodestyle: - tag: release/rolling/ament_pycodestyle/0.21.1-1 + dependencies: + - ament_xmllint + repository: https://github.com/ament/ament_lint + tag: release/rolling/ament_pycodestyle/0.21.3-1 url: https://github.com/ros2-gbp/ament_lint-release.git - version: 0.21.1 + version: 0.21.3 ament_pyflakes: - tag: release/rolling/ament_pyflakes/0.21.1-1 + dependencies: + - ament_pycodestyle + - ament_xmllint + repository: https://github.com/ament/ament_lint + tag: release/rolling/ament_pyflakes/0.21.3-1 url: https://github.com/ros2-gbp/ament_lint-release.git - version: 0.21.1 + version: 0.21.3 ament_uncrustify: - tag: release/rolling/ament_uncrustify/0.21.1-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_pycodestyle + - ament_xmllint + - uncrustify_vendor + repository: https://github.com/ament/ament_lint + tag: release/rolling/ament_uncrustify/0.21.3-1 url: https://github.com/ros2-gbp/ament_lint-release.git - version: 0.21.1 + version: 0.21.3 ament_vitis: + dependencies: + - ament_acceleration + - ament_cmake_core + - ament_cmake_ros + repository: https://github.com/ros-acceleration/ament_vitis tag: release/rolling/ament_vitis/0.10.1-5 url: https://github.com/ros2-gbp/ament_vitis-release.git version: 0.10.1 ament_xmllint: - tag: release/rolling/ament_xmllint/0.21.1-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_lint + - ament_pep257 + repository: https://github.com/ament/ament_lint + tag: release/rolling/ament_xmllint/0.21.3-1 url: https://github.com/ros2-gbp/ament_lint-release.git - version: 0.21.1 + version: 0.21.3 angles: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_python + repository: https://github.com/ros/angles tag: release/rolling/angles/1.16.1-2 url: https://github.com/ros2-gbp/angles-release.git version: 1.16.1 apex_test_tools: + dependencies: + - ament_cmake + - ament_cmake_auto + - ament_cmake_gtest + - ament_cmake_pclint + - ament_lint_auto + - ament_lint_common + - osrf_testing_tools_cpp + repository: https://gitlab.com/ApexAI/apex_test_tools tag: release/rolling/apex_test_tools/0.0.2-9 url: https://github.com/ros2-gbp/apex_test_tools-release.git version: 0.0.2 apriltag: + dependencies: [] + repository: https://github.com/AprilRobotics/apriltag tag: release/rolling/apriltag/3.4.5-2 url: https://github.com/ros2-gbp/apriltag-release.git version: 3.4.5 apriltag_detector: + dependencies: + - ament_cmake + - ament_cmake_clang_format + - ament_lint_auto + - ament_lint_common + - apriltag_msgs + - cv_bridge + - image_transport + - pluginlib + - rclcpp + - rclcpp_components + - ros_environment + - sensor_msgs + repository: https://github.com/ros-misc-utilities/apriltag_detector tag: release/rolling/apriltag_detector/3.0.4-2 url: https://github.com/ros2-gbp/apriltag_detector-release.git version: 3.0.4 apriltag_detector_mit: + dependencies: + - ament_cmake + - ament_cmake_auto + - ament_cmake_clang_format + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - apriltag_detector + - apriltag_mit + - apriltag_msgs + - pluginlib + - rclcpp + - rclcpp_components + - ros_environment + - sensor_msgs + repository: https://github.com/ros-misc-utilities/apriltag_detector tag: release/rolling/apriltag_detector_mit/3.0.4-2 url: https://github.com/ros2-gbp/apriltag_detector-release.git version: 3.0.4 apriltag_detector_umich: + dependencies: + - ament_cmake + - ament_cmake_auto + - ament_cmake_clang_format + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - apriltag + - apriltag_detector + - apriltag_msgs + - pluginlib + - rclcpp + - ros_environment + - sensor_msgs + repository: https://github.com/ros-misc-utilities/apriltag_detector tag: release/rolling/apriltag_detector_umich/3.0.4-2 url: https://github.com/ros2-gbp/apriltag_detector-release.git version: 3.0.4 apriltag_draw: + dependencies: + - ament_cmake + - ament_cmake_clang_format + - ament_lint_auto + - ament_lint_common + - apriltag_msgs + - cv_bridge + - image_transport + - rclcpp + - rclcpp_components + - ros_environment + - sensor_msgs + repository: https://github.com/ros-misc-utilities/apriltag_detector tag: release/rolling/apriltag_draw/3.0.4-2 url: https://github.com/ros2-gbp/apriltag_detector-release.git version: 3.0.4 apriltag_mit: + dependencies: [] + repository: https://github.com/ros-misc-utilities/apriltag_mit tag: release/rolling/apriltag_mit/1.0.3-2 url: https://github.com/ros2-gbp/apriltag_mit-release.git version: 1.0.3 apriltag_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/christianrauch/apriltag_msgs tag: release/rolling/apriltag_msgs/2.0.2-1 url: https://github.com/ros2-gbp/apriltag_msgs-release.git version: 2.0.2 apriltag_ros: + dependencies: + - ament_cmake + - ament_cmake_clang_format + - ament_cmake_cppcheck + - ament_lint_auto + - apriltag + - apriltag_msgs + - camera_ros + - cv_bridge + - image_proc + - image_transport + - image_transport_plugins + - rclcpp + - rclcpp_components + - sensor_msgs + - tf2_ros + repository: https://github.com/christianrauch/apriltag_ros tag: release/rolling/apriltag_ros/3.4.0-1 url: https://github.com/ros2-gbp/apriltag_ros-release.git version: 3.4.0 apriltag_tools: + dependencies: + - ament_cmake + - ament_cmake_clang_format + - ament_lint_auto + - ament_lint_common + - apriltag_detector + - apriltag_draw + - apriltag_msgs + - rclcpp + - ros_environment + - rosbag2_transport + repository: https://github.com/ros-misc-utilities/apriltag_detector tag: release/rolling/apriltag_tools/3.0.4-2 url: https://github.com/ros2-gbp/apriltag_detector-release.git version: 3.0.4 ardrone_sdk: + dependencies: + - ament_cmake + repository: https://github.com/vtalpaert/ardrone-ros2 tag: release/rolling/ardrone_sdk/2.0.3-2 url: https://github.com/ros2-gbp/ardrone_ros-release.git version: 2.0.3 ardrone_sumo: + dependencies: + - ament_cmake + - ardrone_sdk + - cv_bridge + - rclcpp + - sensor_msgs + repository: https://github.com/vtalpaert/ardrone-ros2 tag: release/rolling/ardrone_sumo/2.0.3-2 url: https://github.com/ros2-gbp/ardrone_ros-release.git version: 2.0.3 aruco: - tag: release/rolling/aruco/5.0.5-2 + dependencies: + - ament_cmake + - cv_bridge + repository: https://github.com/pal-robotics/aruco_ros + tag: release/rolling/aruco/5.0.6-1 url: https://github.com/ros2-gbp/aruco_ros-release.git - version: 5.0.5 + version: 5.0.6 aruco_msgs: - tag: release/rolling/aruco_msgs/5.0.5-2 + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/pal-robotics/aruco_ros + tag: release/rolling/aruco_msgs/5.0.6-1 url: https://github.com/ros2-gbp/aruco_ros-release.git - version: 5.0.5 + version: 5.0.6 aruco_opencv: + dependencies: + - ament_cmake + - ament_cmake_copyright + - ament_cmake_cpplint + - ament_cmake_lint_cmake + - ament_cmake_uncrustify + - ament_cmake_xmllint + - ament_lint_auto + - aruco_opencv_msgs + - cv_bridge + - image_transport + - rclcpp + - rclcpp_components + - rclcpp_lifecycle + - tf2_geometry_msgs + - tf2_ros + repository: https://github.com/fictionlab/ros_aruco_opencv tag: release/rolling/aruco_opencv/7.0.0-1 url: https://github.com/ros2-gbp/aruco_opencv-release.git version: 7.0.0 aruco_opencv_msgs: + dependencies: + - ament_cmake + - ament_cmake_lint_cmake + - ament_lint_auto + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/fictionlab/ros_aruco_opencv tag: release/rolling/aruco_opencv_msgs/7.0.0-1 url: https://github.com/ros2-gbp/aruco_opencv-release.git version: 7.0.0 aruco_ros: - tag: release/rolling/aruco_ros/5.0.5-2 + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - aruco + - aruco_msgs + - cv_bridge + - geometry_msgs + - image_transport + - rclcpp + - sensor_msgs + - tf2 + - tf2_geometry_msgs + - tf2_ros + - visualization_msgs + repository: https://github.com/pal-robotics/aruco_ros + tag: release/rolling/aruco_ros/5.0.6-1 url: https://github.com/ros2-gbp/aruco_ros-release.git - version: 5.0.5 + version: 5.0.6 asio_cmake_module: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + repository: https://github.com/ros-drivers/transport_drivers tag: release/rolling/asio_cmake_module/1.2.0-4 url: https://github.com/ros2-gbp/transport_drivers-release.git version: 1.2.0 async_web_server_cpp: + dependencies: + - ament_cmake_ros + - launch_testing + repository: https://github.com/fkie/async_web_server_cpp tag: release/rolling/async_web_server_cpp/2.0.2-1 url: https://github.com/ros2-gbp/async_web_server_cpp-release.git version: 2.0.2 at_sonde_ros_driver: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rclcpp + - std_msgs + repository: https://github.com/ma-shangao/at_sonde_ros_driver tag: release/rolling/at_sonde_ros_driver/1.0.0-2 url: https://github.com/ros2-gbp/at_sonde_ros_driver-release.git version: 1.0.0 audio_capture: - tag: release/rolling/audio_capture/0.4.0-2 + dependencies: + - ament_cmake + - audio_common_msgs + - diagnostic_updater + - launch_xml + - rclcpp + - rclcpp_components + repository: https://github.com/ros-drivers/audio_common + tag: release/rolling/audio_capture/0.4.1-1 url: https://github.com/ros2-gbp/audio_common-release.git - version: 0.4.0 + version: 0.4.1 audio_common: - tag: release/rolling/audio_common/0.4.0-2 + dependencies: + - ament_cmake + - audio_capture + - audio_common_msgs + - audio_play + - sound_play + - sound_play_msgs + repository: https://github.com/ros-drivers/audio_common + tag: release/rolling/audio_common/0.4.1-1 url: https://github.com/ros2-gbp/audio_common-release.git - version: 0.4.0 + version: 0.4.1 audio_common_msgs: - tag: release/rolling/audio_common_msgs/0.4.0-2 + dependencies: + - ament_cmake + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ros-drivers/audio_common + tag: release/rolling/audio_common_msgs/0.4.1-1 url: https://github.com/ros2-gbp/audio_common-release.git - version: 0.4.0 + version: 0.4.1 audio_play: - tag: release/rolling/audio_play/0.4.0-2 + dependencies: + - ament_cmake + - audio_common_msgs + - launch_xml + - rclcpp + - rclcpp_components + repository: https://github.com/ros-drivers/audio_common + tag: release/rolling/audio_play/0.4.1-1 url: https://github.com/ros2-gbp/audio_common-release.git - version: 0.4.0 + version: 0.4.1 auto_apms_behavior_tree: + dependencies: + - ament_cmake + - ament_cmake_copyright + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_python + - ament_index_python + - auto_apms_behavior_tree_core + - auto_apms_interfaces + - auto_apms_util + - generate_parameter_library + - geometry_msgs + - rcl_interfaces + - rclcpp + - rclcpp_action + - rclcpp_components + - rclpy + - ros2cli + - ros2param + - std_srvs + - tf2_geometry_msgs + repository: https://github.com/AutoAPMS/auto-apms tag: release/rolling/auto_apms_behavior_tree/1.5.1-2 url: https://github.com/ros2-gbp/autoapms-release.git version: 1.5.1 auto_apms_behavior_tree_core: + dependencies: + - action_msgs + - ament_cmake + - ament_cmake_copyright + - ament_cmake_gtest + - ament_cmake_python + - ament_index_cpp + - ament_index_python + - auto_apms_util + - behaviortree_cpp + - example_interfaces + - rclcpp + - rclcpp_action + repository: https://github.com/AutoAPMS/auto-apms tag: release/rolling/auto_apms_behavior_tree_core/1.5.1-2 url: https://github.com/ros2-gbp/autoapms-release.git version: 1.5.1 auto_apms_examples: + dependencies: + - ament_cmake + - ament_cmake_copyright + - auto_apms_behavior_tree + - auto_apms_interfaces + - auto_apms_mission + - auto_apms_ros2behavior + - auto_apms_util + - rclcpp_components + repository: https://github.com/AutoAPMS/auto-apms tag: release/rolling/auto_apms_examples/1.5.1-2 url: https://github.com/ros2-gbp/autoapms-release.git version: 1.5.1 auto_apms_interfaces: + dependencies: + - ament_cmake + - ament_cmake_copyright + - rosidl_default_generators + repository: https://github.com/AutoAPMS/auto-apms tag: release/rolling/auto_apms_interfaces/1.5.1-2 url: https://github.com/ros2-gbp/autoapms-release.git version: 1.5.1 auto_apms_mission: + dependencies: + - ament_cmake + - ament_cmake_copyright + - auto_apms_behavior_tree + - auto_apms_util + - rclcpp_components + repository: https://github.com/AutoAPMS/auto-apms tag: release/rolling/auto_apms_mission/1.5.1-2 url: https://github.com/ros2-gbp/autoapms-release.git version: 1.5.1 auto_apms_ros2behavior: + dependencies: + - ament_copyright + - ament_index_python + - auto_apms_behavior_tree + - auto_apms_interfaces + - rcl_interfaces + - rclpy + - ros2cli + - ros2param + - ros2run + - std_srvs + repository: https://github.com/AutoAPMS/auto-apms tag: release/rolling/auto_apms_ros2behavior/1.5.1-2 url: https://github.com/ros2-gbp/autoapms-release.git version: 1.5.1 auto_apms_util: + dependencies: + - ament_cmake + - ament_cmake_copyright + - ament_cmake_gtest + - ament_cmake_python + - ament_index_cpp + - ament_index_python + - auto_apms_interfaces + - generate_parameter_library + - pluginlib + - rclcpp + - rclcpp_action + - rcpputils + - yaml_cpp_vendor + repository: https://github.com/AutoAPMS/auto-apms tag: release/rolling/auto_apms_util/1.5.1-2 url: https://github.com/ros2-gbp/autoapms-release.git version: 1.5.1 automatika_embodied_agents: + dependencies: + - ament_cmake + - ament_cmake_python + - automatika_ros_sugar + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + - std_msgs + repository: https://github.com/automatika-robotics/ros-agents tag: release/rolling/automatika_embodied_agents/0.7.4-1 url: https://github.com/ros2-gbp/automatika_embodied_agents-release.git version: 0.7.4 automatika_ros_sugar: + dependencies: + - ament_cmake + - ament_cmake_pytest + - ament_cmake_python + - ament_index_python + - ament_lint_auto + - builtin_interfaces + - geometry_msgs + - launch + - launch_testing + - lifecycle_msgs + - nav_msgs + - rclcpp + - rclpy + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + - std_msgs + - tf2_ros + repository: https://github.com/automatika-robotics/ros-sugar tag: release/rolling/automatika_ros_sugar/0.7.1-1 url: https://github.com/ros2-gbp/automatika_ros_sugar-release.git version: 0.7.1 automotive_autonomy_msgs: + dependencies: + - ament_cmake + - automotive_navigation_msgs + - automotive_platform_msgs + - ros_environment + repository: https://github.com/astuff/automotive_autonomy_msgs tag: release/rolling/automotive_autonomy_msgs/3.0.4-6 url: https://github.com/ros2-gbp/automotive_autonomy_msgs-release.git version: 3.0.4 automotive_navigation_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - ros_environment + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/astuff/automotive_autonomy_msgs tag: release/rolling/automotive_navigation_msgs/3.0.4-6 url: https://github.com/ros2-gbp/automotive_autonomy_msgs-release.git version: 3.0.4 automotive_platform_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - ros_environment + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/astuff/automotive_autonomy_msgs tag: release/rolling/automotive_platform_msgs/3.0.4-6 url: https://github.com/ros2-gbp/automotive_autonomy_msgs-release.git version: 3.0.4 autoware_adapi_v1_msgs: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - geographic_msgs + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - shape_msgs + - std_msgs + - unique_identifier_msgs + repository: https://github.com/autowarefoundation/autoware_adapi_msgs tag: release/rolling/autoware_adapi_v1_msgs/1.9.1-1 url: https://github.com/ros2-gbp/autoware_adapi_msgs-release.git version: 1.9.1 autoware_adapi_version_msgs: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/autowarefoundation/autoware_adapi_msgs tag: release/rolling/autoware_adapi_version_msgs/1.9.1-1 url: https://github.com/ros2-gbp/autoware_adapi_msgs-release.git version: 1.9.1 autoware_auto_msgs: + dependencies: + - action_msgs + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + - std_msgs + repository: https://gitlab.com/autowarefoundation/autoware.auto/autoware_auto_msgs tag: release/rolling/autoware_auto_msgs/1.0.0-7 url: https://github.com/ros2-gbp/autoware_auto_msgs-release.git version: 1.0.0 autoware_cmake: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - autoware_lint_common + - ros_environment + repository: https://github.com/autowarefoundation/autoware_cmake tag: release/rolling/autoware_cmake/1.4.0-1 url: https://github.com/ros2-gbp/autoware_cmake-release.git version: 1.4.0 autoware_common_msgs: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/autowarefoundation/autoware_msgs tag: release/rolling/autoware_common_msgs/1.12.0-1 url: https://github.com/ros2-gbp/autoware_msgs-release.git version: 1.12.0 autoware_control_msgs: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/autowarefoundation/autoware_msgs tag: release/rolling/autoware_control_msgs/1.12.0-1 url: https://github.com/ros2-gbp/autoware_msgs-release.git version: 1.12.0 autoware_internal_debug_msgs: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/autowarefoundation/autoware_internal_msgs tag: release/rolling/autoware_internal_debug_msgs/1.12.1-2 url: https://github.com/ros2-gbp/autoware_internal_msgs-release.git version: 1.12.1 autoware_internal_localization_msgs: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + - autoware_common_msgs + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/autowarefoundation/autoware_internal_msgs tag: release/rolling/autoware_internal_localization_msgs/1.12.1-2 url: https://github.com/ros2-gbp/autoware_internal_msgs-release.git version: 1.12.1 autoware_internal_metric_msgs: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/autowarefoundation/autoware_internal_msgs tag: release/rolling/autoware_internal_metric_msgs/1.12.1-2 url: https://github.com/ros2-gbp/autoware_internal_msgs-release.git version: 1.12.1 autoware_internal_msgs: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + - autoware_internal_debug_msgs + - autoware_internal_metric_msgs + - autoware_internal_perception_msgs + - autoware_internal_planning_msgs + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/autowarefoundation/autoware_internal_msgs tag: release/rolling/autoware_internal_msgs/1.12.1-2 url: https://github.com/ros2-gbp/autoware_internal_msgs-release.git version: 1.12.1 autoware_internal_perception_msgs: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + - autoware_perception_msgs + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + - std_msgs + repository: https://github.com/autowarefoundation/autoware_internal_msgs tag: release/rolling/autoware_internal_perception_msgs/1.12.1-2 url: https://github.com/ros2-gbp/autoware_internal_msgs-release.git version: 1.12.1 autoware_internal_planning_msgs: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + - autoware_common_msgs + - autoware_perception_msgs + - autoware_planning_msgs + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + - unique_identifier_msgs + repository: https://github.com/autowarefoundation/autoware_internal_msgs tag: release/rolling/autoware_internal_planning_msgs/1.12.1-2 url: https://github.com/ros2-gbp/autoware_internal_msgs-release.git version: 1.12.1 autoware_lanelet2_extension: + dependencies: + - ament_cmake_auto + - ament_cmake_ros + - autoware_cmake + - autoware_map_msgs + - autoware_planning_msgs + - geometry_msgs + - lanelet2_core + - lanelet2_io + - lanelet2_maps + - lanelet2_projection + - lanelet2_routing + - lanelet2_traffic_rules + - lanelet2_validation + - rclcpp + - tf2 + - tf2_geometry_msgs + - visualization_msgs + repository: https://github.com/autowarefoundation/autoware_lanelet2_extension tag: release/rolling/autoware_lanelet2_extension/1.1.0-1 url: https://github.com/ros2-gbp/autoware_lanelet2_extension-release.git version: 1.1.0 autoware_lanelet2_extension_python: + dependencies: + - ament_cmake_auto + - ament_cmake_ros + - autoware_cmake + - autoware_lanelet2_extension + - geometry_msgs + - lanelet2_core + - lanelet2_io + - lanelet2_projection + - lanelet2_python + - lanelet2_routing + - lanelet2_traffic_rules + - lanelet2_validation + - python_cmake_module + - rclcpp + repository: https://github.com/autowarefoundation/autoware_lanelet2_extension tag: release/rolling/autoware_lanelet2_extension_python/1.1.0-1 url: https://github.com/ros2-gbp/autoware_lanelet2_extension-release.git version: 1.1.0 autoware_lint_common: + dependencies: + - ament_cmake_copyright + - ament_cmake_core + - ament_cmake_cppcheck + - ament_cmake_export_dependencies + - ament_cmake_lint_cmake + - ament_cmake_test + - ament_cmake_xmllint + repository: https://github.com/autowarefoundation/autoware_cmake tag: release/rolling/autoware_lint_common/1.4.0-1 url: https://github.com/ros2-gbp/autoware_cmake-release.git version: 1.4.0 autoware_localization_msgs: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + - autoware_common_msgs + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/autowarefoundation/autoware_msgs tag: release/rolling/autoware_localization_msgs/1.12.0-1 url: https://github.com/ros2-gbp/autoware_msgs-release.git version: 1.12.0 autoware_map_msgs: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + - geographic_msgs + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + - std_msgs + repository: https://github.com/autowarefoundation/autoware_msgs tag: release/rolling/autoware_map_msgs/1.12.0-1 url: https://github.com/ros2-gbp/autoware_msgs-release.git version: 1.12.0 autoware_msgs: + dependencies: + - ament_cmake + - autoware_common_msgs + - autoware_control_msgs + - autoware_localization_msgs + - autoware_map_msgs + - autoware_perception_msgs + - autoware_planning_msgs + - autoware_sensing_msgs + - autoware_simulation_msgs + - autoware_system_msgs + - autoware_v2x_msgs + - autoware_vehicle_msgs + repository: https://github.com/autowarefoundation/autoware_msgs tag: release/rolling/autoware_msgs/1.12.0-1 url: https://github.com/ros2-gbp/autoware_msgs-release.git version: 1.12.0 autoware_perception_msgs: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + - unique_identifier_msgs + repository: https://github.com/autowarefoundation/autoware_msgs tag: release/rolling/autoware_perception_msgs/1.12.0-1 url: https://github.com/ros2-gbp/autoware_msgs-release.git version: 1.12.0 autoware_planning_msgs: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + - autoware_common_msgs + - builtin_interfaces + - geometry_msgs + - nav_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + - unique_identifier_msgs + repository: https://github.com/autowarefoundation/autoware_msgs tag: release/rolling/autoware_planning_msgs/1.12.0-1 url: https://github.com/ros2-gbp/autoware_msgs-release.git version: 1.12.0 autoware_sensing_msgs: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + - std_msgs + repository: https://github.com/autowarefoundation/autoware_msgs tag: release/rolling/autoware_sensing_msgs/1.12.0-1 url: https://github.com/ros2-gbp/autoware_msgs-release.git version: 1.12.0 autoware_simulation_msgs: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + - autoware_perception_msgs + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + - unique_identifier_msgs + repository: https://github.com/autowarefoundation/autoware_msgs tag: release/rolling/autoware_simulation_msgs/1.12.0-1 url: https://github.com/ros2-gbp/autoware_msgs-release.git version: 1.12.0 autoware_system_msgs: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + - autoware_common_msgs + - builtin_interfaces + - diagnostic_msgs + - geometry_msgs + - nav_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + - unique_identifier_msgs + repository: https://github.com/autowarefoundation/autoware_msgs tag: release/rolling/autoware_system_msgs/1.12.0-1 url: https://github.com/ros2-gbp/autoware_msgs-release.git version: 1.12.0 autoware_utils: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - autoware_cmake + - autoware_internal_debug_msgs + - autoware_internal_msgs + - autoware_internal_planning_msgs + - autoware_lint_common + - autoware_perception_msgs + - autoware_planning_msgs + - autoware_utils_debug + - autoware_utils_diagnostics + - autoware_utils_geometry + - autoware_utils_logging + - autoware_utils_math + - autoware_utils_pcl + - autoware_utils_rclcpp + - autoware_utils_system + - autoware_utils_tf + - autoware_utils_uuid + - autoware_utils_visualization + repository: https://github.com/autowarefoundation/autoware_utils tag: release/rolling/autoware_utils/1.7.2-1 url: https://github.com/ros2-gbp/autoware_utils-release.git version: 1.7.2 autoware_utils_debug: + dependencies: + - ament_cmake_auto + - ament_cmake_ros + - ament_lint_auto + - autoware_cmake + - autoware_internal_debug_msgs + - autoware_internal_msgs + - autoware_lint_common + - autoware_utils_system + - diagnostic_msgs + - rclcpp + repository: https://github.com/autowarefoundation/autoware_utils tag: release/rolling/autoware_utils_debug/1.7.2-1 url: https://github.com/ros2-gbp/autoware_utils-release.git version: 1.7.2 autoware_utils_diagnostics: + dependencies: + - ament_cmake_auto + - ament_cmake_ros + - ament_lint_auto + - autoware_cmake + - autoware_lint_common + - diagnostic_msgs + - diagnostic_updater + - rclcpp + repository: https://github.com/autowarefoundation/autoware_utils tag: release/rolling/autoware_utils_diagnostics/1.7.2-1 url: https://github.com/ros2-gbp/autoware_utils-release.git version: 1.7.2 autoware_utils_geometry: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - autoware_cmake + - autoware_internal_planning_msgs + - autoware_lint_common + - autoware_utils_math + - autoware_utils_system + - tf2 + - tf2_eigen + - tf2_geometry_msgs + repository: https://github.com/autowarefoundation/autoware_utils tag: release/rolling/autoware_utils_geometry/1.7.2-1 url: https://github.com/ros2-gbp/autoware_utils-release.git version: 1.7.2 autoware_utils_logging: + dependencies: + - ament_cmake_auto + - ament_cmake_ros + - ament_lint_auto + - autoware_cmake + - autoware_lint_common + - logging_demo + - rclcpp + repository: https://github.com/autowarefoundation/autoware_utils tag: release/rolling/autoware_utils_logging/1.7.2-1 url: https://github.com/ros2-gbp/autoware_utils-release.git version: 1.7.2 autoware_utils_math: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - autoware_cmake + - autoware_lint_common + repository: https://github.com/autowarefoundation/autoware_utils tag: release/rolling/autoware_utils_math/1.7.2-1 url: https://github.com/ros2-gbp/autoware_utils-release.git version: 1.7.2 autoware_utils_pcl: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - autoware_cmake + - autoware_lint_common + - autoware_utils_tf + - pcl_conversions + - pcl_ros + repository: https://github.com/autowarefoundation/autoware_utils tag: release/rolling/autoware_utils_pcl/1.7.2-1 url: https://github.com/ros2-gbp/autoware_utils-release.git version: 1.7.2 autoware_utils_rclcpp: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - autoware_cmake + - autoware_lint_common + - rclcpp + - std_msgs + repository: https://github.com/autowarefoundation/autoware_utils tag: release/rolling/autoware_utils_rclcpp/1.7.2-1 url: https://github.com/ros2-gbp/autoware_utils-release.git version: 1.7.2 autoware_utils_system: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - autoware_cmake + - autoware_lint_common + - rclcpp + repository: https://github.com/autowarefoundation/autoware_utils tag: release/rolling/autoware_utils_system/1.7.2-1 url: https://github.com/ros2-gbp/autoware_utils-release.git version: 1.7.2 autoware_utils_tf: + dependencies: + - ament_cmake_auto + - ament_cmake_ros + - ament_lint_auto + - autoware_cmake + - autoware_lint_common + - autoware_utils_geometry + - geometry_msgs + - rclcpp + - tf2_ros + repository: https://github.com/autowarefoundation/autoware_utils tag: release/rolling/autoware_utils_tf/1.7.2-1 url: https://github.com/ros2-gbp/autoware_utils-release.git version: 1.7.2 autoware_utils_uuid: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - autoware_cmake + - autoware_lint_common + - unique_identifier_msgs + repository: https://github.com/autowarefoundation/autoware_utils tag: release/rolling/autoware_utils_uuid/1.7.2-1 url: https://github.com/ros2-gbp/autoware_utils-release.git version: 1.7.2 autoware_utils_visualization: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - autoware_cmake + - autoware_lint_common + - rclcpp + - visualization_msgs + repository: https://github.com/autowarefoundation/autoware_utils tag: release/rolling/autoware_utils_visualization/1.7.2-1 url: https://github.com/ros2-gbp/autoware_utils-release.git version: 1.7.2 autoware_v2x_msgs: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/autowarefoundation/autoware_msgs tag: release/rolling/autoware_v2x_msgs/1.12.0-1 url: https://github.com/ros2-gbp/autoware_msgs-release.git version: 1.12.0 autoware_vehicle_msgs: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + - autoware_planning_msgs + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/autowarefoundation/autoware_msgs tag: release/rolling/autoware_vehicle_msgs/1.12.0-1 url: https://github.com/ros2-gbp/autoware_msgs-release.git version: 1.12.0 avt_vimba_camera: + dependencies: + - ament_cmake_auto + - camera_info_manager + - diagnostic_msgs + - diagnostic_updater + - image_proc + - image_transport + - message_filters + - rclcpp + - rclcpp_components + - sensor_msgs + - std_msgs + - stereo_image_proc + repository: https://github.com/astuff/avt_vimba_camera tag: release/rolling/avt_vimba_camera/2001.1.0-6 url: https://github.com/ros2-gbp/avt_vimba_camera-release.git version: 2001.1.0 aws_sdk_cpp_vendor: + dependencies: + - ament_cmake + - ament_cmake_vendor_package + - ament_lint_auto + - ament_lint_common + repository: https://github.com/wep21/aws_sdk_cpp_vendor tag: release/rolling/aws_sdk_cpp_vendor/0.2.1-3 url: https://github.com/ros2-gbp/aws_sdk_cpp_vendor-release.git version: 0.2.1 backward_ros: + dependencies: [] + repository: https://github.com/pal-robotics/backward_ros tag: release/rolling/backward_ros/1.0.8-4 url: https://github.com/ros2-gbp/backward_ros-release.git version: 1.0.8 bag2_to_image: + dependencies: + - ament_cmake + - ament_cmake_clang_format + - ament_lint_auto + - ament_lint_common + - rclcpp + - rclcpp_components + - rosbag2_cpp + - rosbag2_storage + - sensor_msgs + repository: https://github.com/wep21/bag2_to_image tag: release/rolling/bag2_to_image/0.1.2-2 url: https://github.com/ros2-gbp/bag2_to_image-release.git version: 0.1.2 battery_state_broadcaster: - tag: release/rolling/battery_state_broadcaster/6.9.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - backward_ros + - control_msgs + - controller_interface + - controller_manager + - generate_parameter_library + - hardware_interface + - hardware_interface_testing + - pluginlib + - rclcpp + - rclcpp_lifecycle + - realtime_tools + - ros2_control_cmake + - ros2_control_test_assets + - sensor_msgs + repository: https://github.com/ros-controls/ros2_controllers + tag: release/rolling/battery_state_broadcaster/6.10.0-1 url: https://github.com/ros2-gbp/ros2_controllers-release.git - version: 6.9.0 + version: 6.10.0 battery_state_rviz_overlay: + dependencies: + - ament_cmake + - rclcpp + - rviz_2d_overlay_msgs + - sensor_msgs + repository: https://github.com/ipa320/ros_battery_monitoring tag: release/rolling/battery_state_rviz_overlay/1.2.0-2 url: https://github.com/ros2-gbp/ros_battery_monitoring-release.git version: 1.2.0 behaviortree_cpp: - tag: release/rolling/behaviortree_cpp/4.10.0-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_index_cpp + - rclcpp + - ros_environment + repository: https://github.com/BehaviorTree/BehaviorTree.CPP + tag: release/rolling/behaviortree_cpp/4.10.0-2 url: https://github.com/ros2-gbp/behaviortree_cpp_v4-release.git version: 4.10.0 bicycle_steering_controller: - tag: release/rolling/bicycle_steering_controller/6.9.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - backward_ros + - control_msgs + - controller_interface + - controller_manager + - generate_parameter_library + - hardware_interface + - hardware_interface_testing + - pluginlib + - rclcpp + - rclcpp_lifecycle + - ros2_control_cmake + - ros2_control_test_assets + - std_srvs + - steering_controllers_library + repository: https://github.com/ros-controls/ros2_controllers + tag: release/rolling/bicycle_steering_controller/6.10.0-1 url: https://github.com/ros2-gbp/ros2_controllers-release.git - version: 6.9.0 + version: 6.10.0 bno055: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - example_interfaces + - rclpy + - std_msgs + repository: https://github.com/flynneva/bno055 tag: release/rolling/bno055/0.5.0-3 url: https://github.com/ros2-gbp/bno055-release.git version: 0.5.0 bond: - tag: release/rolling/bond/4.4.0-2 + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ros/bond_core + tag: release/rolling/bond/4.4.1-1 url: https://github.com/ros2-gbp/bond_core-release.git - version: 4.4.0 + version: 4.4.1 bond_core: - tag: release/rolling/bond_core/4.4.0-2 + dependencies: + - ament_cmake + - bond + - bondcpp + - smclib + repository: https://github.com/ros/bond_core + tag: release/rolling/bond_core/4.4.1-1 url: https://github.com/ros2-gbp/bond_core-release.git - version: 4.4.0 + version: 4.4.1 bondcpp: - tag: release/rolling/bondcpp/4.4.0-2 + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - bond + - rclcpp + - rclcpp_lifecycle + - smclib + repository: https://github.com/ros/bond_core + tag: release/rolling/bondcpp/4.4.1-1 url: https://github.com/ros2-gbp/bond_core-release.git - version: 4.4.0 + version: 4.4.1 bondpy: - tag: release/rolling/bondpy/4.4.0-2 + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - bond + - rclpy + - smclib + repository: https://github.com/ros/bond_core + tag: release/rolling/bondpy/4.4.1-1 url: https://github.com/ros2-gbp/bond_core-release.git - version: 4.4.0 + version: 4.4.1 boost_geometry_util: + dependencies: + - ament_cmake + - ament_cmake_auto + - ament_lint_auto + - geometry_msgs + - ouxt_common + - rclcpp + repository: https://github.com/OUXT-Polaris/boost_geometry_util tag: release/rolling/boost_geometry_util/0.0.1-5 url: https://github.com/ros2-gbp/boost_geometry_util-release.git version: 0.0.1 +boost_plugin_loader: + dependencies: + - ros_industrial_cmake_boilerplate + repository: https://github.com/tesseract-robotics/boost_plugin_loader + tag: release/rolling/boost_plugin_loader/0.4.5-1 + url: https://github.com/ros2-gbp/boost_plugin_loader-release.git + version: 0.4.5 boost_sml_vendor: + dependencies: + - ament_cmake + - ament_cmake_vendor_package + repository: https://github.com/nobleo/boost_sml_vendor tag: release/rolling/boost_sml_vendor/1.1.13-2 url: https://github.com/ros2-gbp/boost_sml_vendor-release.git version: 1.1.13 broll: + dependencies: + - ament_cmake + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - rclcpp + - rclcpp_components + - rcutils + - sensor_msgs + repository: https://github.com/ros-tooling/rosbag2_broll tag: release/rolling/broll/0.1.0-2 url: https://github.com/ros2-gbp/rosbag2_broll-release.git version: 0.1.0 builtin_interfaces: + dependencies: + - ament_cmake + - ament_lint_common + - rosidl_core_generators + - rosidl_core_runtime + repository: https://github.com/ros2/rcl_interfaces tag: release/rolling/builtin_interfaces/2.5.1-1 url: https://github.com/ros2-gbp/rcl_interfaces-release.git version: 2.5.1 camera_calibration: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - cv_bridge + - image_geometry + - message_filters + - rclpy + - sensor_msgs + - std_srvs + repository: https://github.com/ros-perception/image_pipeline tag: release/rolling/camera_calibration/8.0.1-1 url: https://github.com/ros2-gbp/image_pipeline-release.git version: 8.0.1 camera_calibration_parsers: - tag: release/rolling/camera_calibration_parsers/7.0.3-1 + dependencies: + - ament_cmake_gen_version_h + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_ros + - ament_cmake_ros_core + - ament_index_python + - ament_lint_auto + - ament_lint_common + - rclcpp + - sensor_msgs + - yaml_cpp_vendor + repository: https://github.com/ros-perception/image_common + tag: release/rolling/camera_calibration_parsers/7.0.4-1 url: https://github.com/ros2-gbp/image_common-release.git - version: 7.0.3 + version: 7.0.4 camera_info_manager: - tag: release/rolling/camera_info_manager/7.0.3-1 + dependencies: + - ament_cmake_gen_version_h + - ament_cmake_gtest + - ament_cmake_ros + - ament_cmake_ros_core + - ament_index_cpp + - ament_lint_auto + - ament_lint_common + - camera_calibration_parsers + - rclcpp + - rclcpp_lifecycle + - rcpputils + - sensor_msgs + repository: https://github.com/ros-perception/image_common + tag: release/rolling/camera_info_manager/7.0.4-1 url: https://github.com/ros2-gbp/image_common-release.git - version: 7.0.3 + version: 7.0.4 camera_info_manager_py: - tag: release/rolling/camera_info_manager_py/7.0.3-1 + dependencies: + - ament_cmake_mypy + - ament_copyright + - ament_flake8 + - ament_index_python + - ament_pep257 + - ament_xmllint + - rclpy + - sensor_msgs + repository: https://github.com/ros-perception/image_common + tag: release/rolling/camera_info_manager_py/7.0.4-1 url: https://github.com/ros2-gbp/image_common-release.git - version: 7.0.3 + version: 7.0.4 camera_ros: + dependencies: + - ament_cmake + - ament_cmake_clang_format + - ament_cmake_cppcheck + - ament_cmake_flake8 + - ament_cmake_lint_cmake + - ament_cmake_mypy + - ament_cmake_pep257 + - ament_cmake_pyflakes + - ament_cmake_xmllint + - ament_index_python + - ament_lint_auto + - camera_info_manager + - cv_bridge + - diagnostic_msgs + - image_view + - libcamera + - rclcpp + - rclcpp_components + - ros2launch + - sensor_msgs + repository: https://github.com/christianrauch/camera_ros tag: release/rolling/camera_ros/0.7.0-1 url: https://github.com/ros2-gbp/camera_ros-release.git version: 0.7.0 can_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ros-industrial/ros_canopen tag: release/rolling/can_msgs/2.0.0-6 url: https://github.com/ros2-gbp/ros_canopen-release.git version: 2.0.0 canopen: + dependencies: + - ament_cmake + - canopen_402_driver + - canopen_base_driver + - canopen_core + - canopen_interfaces + - canopen_proxy_driver + - lely_core_libraries + repository: https://github.com/ros-industrial/ros2_canopen tag: release/rolling/canopen/0.3.4-1 url: https://github.com/ros2-gbp/ros2_canopen-release.git version: 0.3.4 canopen_402_driver: + dependencies: + - ament_cmake_ros + - ament_lint_auto + - canopen_base_driver + - canopen_core + - canopen_interfaces + - canopen_proxy_driver + - rclcpp + - rclcpp_components + - rclcpp_lifecycle + - sensor_msgs + repository: https://github.com/ros-industrial/ros2_canopen tag: release/rolling/canopen_402_driver/0.3.4-1 url: https://github.com/ros2-gbp/ros2_canopen-release.git version: 0.3.4 canopen_base_driver: + dependencies: + - ament_cmake_ros + - ament_lint_auto + - canopen_core + - canopen_interfaces + - diagnostic_updater + - lely_core_libraries + - rclcpp + - rclcpp_components + - rclcpp_lifecycle + - std_msgs + - std_srvs + repository: https://github.com/ros-industrial/ros2_canopen tag: release/rolling/canopen_base_driver/0.3.4-1 url: https://github.com/ros2-gbp/ros2_canopen-release.git version: 0.3.4 canopen_core: + dependencies: + - ament_cmake + - ament_lint_auto + - canopen_interfaces + - lely_core_libraries + - lifecycle_msgs + - rclcpp + - rclcpp_components + - rclcpp_lifecycle + - yaml_cpp_vendor + repository: https://github.com/ros-industrial/ros2_canopen tag: release/rolling/canopen_core/0.3.4-1 url: https://github.com/ros2-gbp/ros2_canopen-release.git version: 0.3.4 canopen_fake_slaves: + dependencies: + - ament_cmake + - ament_lint_auto + - lely_core_libraries + - lifecycle_msgs + - rclcpp + - rclcpp_lifecycle + repository: https://github.com/ros-industrial/ros2_canopen tag: release/rolling/canopen_fake_slaves/0.3.4-1 url: https://github.com/ros2-gbp/ros2_canopen-release.git version: 0.3.4 canopen_interfaces: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/ros-industrial/ros2_canopen tag: release/rolling/canopen_interfaces/0.3.4-1 url: https://github.com/ros2-gbp/ros2_canopen-release.git version: 0.3.4 canopen_master_driver: + dependencies: + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - canopen_core + - canopen_interfaces + - lely_core_libraries + - rclcpp + - rclcpp_components + - rclcpp_lifecycle + repository: https://github.com/ros-industrial/ros2_canopen tag: release/rolling/canopen_master_driver/0.3.4-1 url: https://github.com/ros2-gbp/ros2_canopen-release.git version: 0.3.4 canopen_proxy_driver: + dependencies: + - ament_cmake_ros + - ament_lint_auto + - canopen_base_driver + - canopen_core + - canopen_interfaces + - rclcpp + - rclcpp_components + - rclcpp_lifecycle + repository: https://github.com/ros-industrial/ros2_canopen tag: release/rolling/canopen_proxy_driver/0.3.4-1 url: https://github.com/ros2-gbp/ros2_canopen-release.git version: 0.3.4 canopen_ros2_control: + dependencies: + - ament_cmake + - canopen_402_driver + - canopen_core + - canopen_proxy_driver + - hardware_interface + - pluginlib + - rclcpp + - rclcpp_components + - rclcpp_lifecycle + - ros2_control_test_assets + repository: https://github.com/ros-industrial/ros2_canopen tag: release/rolling/canopen_ros2_control/0.3.4-1 url: https://github.com/ros2-gbp/ros2_canopen-release.git version: 0.3.4 canopen_ros2_controllers: + dependencies: + - ament_cmake + - canopen_402_driver + - canopen_interfaces + - canopen_proxy_driver + - controller_interface + - controller_manager + - hardware_interface + - pluginlib + - rclcpp + - rclcpp_lifecycle + - realtime_tools + - std_msgs + - std_srvs + repository: https://github.com/ros-industrial/ros2_canopen tag: release/rolling/canopen_ros2_controllers/0.3.4-1 url: https://github.com/ros2-gbp/ros2_canopen-release.git version: 0.3.4 canopen_tests: + dependencies: + - ament_cmake + - ament_lint_auto + - canopen_402_driver + - canopen_core + - canopen_fake_slaves + - canopen_proxy_driver + - canopen_ros2_controllers + - controller_manager + - forward_command_controller + - joint_state_broadcaster + - joint_trajectory_controller + - lely_core_libraries + - robot_state_publisher + - xacro + repository: https://github.com/ros-industrial/ros2_canopen tag: release/rolling/canopen_tests/0.3.4-1 url: https://github.com/ros2-gbp/ros2_canopen-release.git version: 0.3.4 canopen_utils: + dependencies: + - ament_lint_auto + - canopen_interfaces + - lifecycle_msgs + - rclpy + - std_msgs + repository: https://github.com/ros-industrial/ros2_canopen tag: release/rolling/canopen_utils/0.3.4-1 url: https://github.com/ros2-gbp/ros2_canopen-release.git version: 0.3.4 cartographer: + dependencies: [] + repository: https://github.com/ros2/cartographer tag: release/rolling/cartographer/2.0.9004-2 url: https://github.com/ros2-gbp/cartographer-release.git version: 2.0.9004 cartographer_ros: + dependencies: + - ament_cmake + - builtin_interfaces + - cartographer + - cartographer_ros_msgs + - geometry_msgs + - launch + - nav_msgs + - pcl_conversions + - rclcpp + - robot_state_publisher + - ros_environment + - rosbag2_cpp + - rosbag2_storage + - sensor_msgs + - std_msgs + - tf2 + - tf2_eigen + - tf2_msgs + - tf2_ros + - urdf + - visualization_msgs + repository: https://github.com/ros2/cartographer_ros tag: release/rolling/cartographer_ros/2.0.9003-2 url: https://github.com/ros2-gbp/cartographer_ros-release.git version: 2.0.9003 cartographer_ros_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ros2/cartographer_ros tag: release/rolling/cartographer_ros_msgs/2.0.9003-2 url: https://github.com/ros2-gbp/cartographer_ros-release.git version: 2.0.9003 cartographer_rviz: + dependencies: + - ament_cmake + - cartographer + - cartographer_ros + - cartographer_ros_msgs + - pluginlib + - rclcpp + - rviz_common + - rviz_ogre_vendor + - rviz_rendering + repository: https://github.com/ros2/cartographer_ros tag: release/rolling/cartographer_rviz/2.0.9003-2 url: https://github.com/ros2-gbp/cartographer_ros-release.git version: 2.0.9003 cascade_lifecycle_msgs: + dependencies: + - ament_cmake + - ament_lint_common + - builtin_interfaces + - lifecycle_msgs + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/fmrico/cascade_lifecycle tag: release/rolling/cascade_lifecycle_msgs/2.0.4-2 url: https://github.com/ros2-gbp/cascade_lifecycle-release.git version: 2.0.4 catch_ros2: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rclcpp + - ros2launch + - std_srvs + repository: https://github.com/ngmor/catch_ros2 tag: release/rolling/catch_ros2/0.2.3-2 url: https://github.com/ros2-gbp/catch_ros2-release.git version: 0.2.3 chained_filter_controller: - tag: release/rolling/chained_filter_controller/6.9.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - controller_interface + - controller_manager + - filters + - generate_parameter_library + - hardware_interface + - hardware_interface_testing + - pluginlib + - rclcpp + - rclcpp_lifecycle + - ros2_control_cmake + - ros2_control_test_assets + repository: https://github.com/ros-controls/ros2_controllers + tag: release/rolling/chained_filter_controller/6.10.0-1 url: https://github.com/ros2-gbp/ros2_controllers-release.git - version: 6.9.0 + version: 6.10.0 chomp_motion_planner: - tag: release/rolling/chomp_motion_planner/2.15.0-1 + dependencies: + - ament_cmake + - moveit_common + - moveit_core + - rclcpp + - rsl + - trajectory_msgs + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/chomp_motion_planner/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 class_loader: - tag: release/rolling/class_loader/3.0.1-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - console_bridge_vendor + - rcpputils + repository: https://github.com/ros/class_loader + tag: release/rolling/class_loader/3.0.2-1 url: https://github.com/ros2-gbp/class_loader-release.git - version: 3.0.1 + version: 3.0.2 classic_bags: + dependencies: + - ament_cmake + - ament_cmake_pytest + - ament_cmake_python + - builtin_interfaces + - rclcpp + - rclpy + - rosbag2_cpp + - rosbag2_py + - rosbag2_storage + - rosbag2_storage_mcap + - rosbag2_storage_sqlite3 + - rosidl_runtime_py + - std_msgs + repository: https://github.com/MetroRobots/classic_bags tag: release/rolling/classic_bags/0.4.0-2 url: https://github.com/ros2-gbp/classic_bags-release.git version: 0.4.0 clips_executive: + dependencies: + - ament_cmake + - cx_ament_index_plugin + - cx_bringup + - cx_clips_env_manager + - cx_config_plugin + - cx_example_plugin + - cx_executive_plugin + - cx_file_load_plugin + - cx_msgs + - cx_plugin + - cx_protobuf_plugin + - cx_ros_comm_gen + - cx_ros_msgs_plugin + - cx_tf2_pose_tracker_plugin + - cx_utils + repository: https://github.com/carologistics/clips_executive tag: release/rolling/clips_executive/0.1.3-2 url: https://github.com/ros2-gbp/clips_executive-release.git version: 0.1.3 clips_vendor: + dependencies: + - ament_cmake + - ament_cmake_vendor_package + repository: https://github.com/carologistics/clips_vendor tag: release/rolling/clips_vendor/6.4.4-1 url: https://github.com/ros2-gbp/clips_vendor-release.git version: 6.4.4 cm_topic_hardware_component: + dependencies: + - ament_cmake + - ament_cmake_gmock + - hardware_interface + - pal_statistics_msgs + - rclcpp + - ros2_control_cmake + - ros2_control_test_assets + repository: https://github.com/ros-controls/topic_based_hardware_interfaces tag: release/rolling/cm_topic_hardware_component/1.1.0-1 url: https://github.com/ros2-gbp/topic_based_hardware-release.git version: 1.1.0 coal: + dependencies: + - eigenpy + repository: https://github.com/coal-library/coal tag: release/rolling/coal/3.0.3-2 url: https://github.com/ros2-gbp/coal-release.git version: 3.0.3 coin_d4_driver: + dependencies: + - ament_cmake + - geometry_msgs + - rclcpp + - rclcpp_lifecycle + - sensor_msgs + repository: https://github.com/ROBOTIS-GIT/coin_d4_driver tag: release/rolling/coin_d4_driver/1.0.1-2 url: https://github.com/ros2-gbp/coin_d4_driver-release.git version: 1.0.1 color_util: + dependencies: + - ament_cmake + - ament_cmake_gtest + - std_msgs + repository: https://github.com/MetroRobots/color_util tag: release/rolling/color_util/1.1.0-2 url: https://github.com/ros2-gbp/color_util-release.git version: 1.1.0 common_interfaces: - tag: release/rolling/common_interfaces/5.10.1-1 + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - diagnostic_msgs + - geometry_msgs + - nav_msgs + - sensor_msgs + - shape_msgs + - std_msgs + - std_srvs + - stereo_msgs + - trajectory_msgs + - visualization_msgs + repository: https://github.com/ros2/common_interfaces + tag: release/rolling/common_interfaces/5.10.2-1 url: https://github.com/ros2-gbp/common_interfaces-release.git - version: 5.10.1 + version: 5.10.2 compass_conversions: + dependencies: + - ament_cmake + - ament_cmake_gen_version_h + - ament_cmake_gtest + - ament_cmake_ros + - angles + - compass_interfaces + - cras_cpp_common + - cras_lint + - geometry_msgs + - magnetic_model + - message_filters + - pluginlib + - rclcpp + - rclcpp_components + - sensor_msgs + - std_msgs + - tf2 + - tf2_geometry_msgs + - tf2_ros + repository: https://github.com/ctu-vras/compass tag: release/rolling/compass_conversions/4.0.1-1 url: https://github.com/ros2-gbp/compass-release.git version: 4.0.1 compass_interfaces: + dependencies: + - ament_cmake + - ament_cmake_gen_version_h + - ament_cmake_gtest + - cras_cpp_common + - cras_lint + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ctu-vras/compass tag: release/rolling/compass_interfaces/4.0.1-1 url: https://github.com/ros2-gbp/compass-release.git version: 4.0.1 composition: + dependencies: + - ament_cmake + - ament_cmake_pytest + - ament_lint_auto + - ament_lint_common + - example_interfaces + - launch + - launch_ros + - launch_testing + - launch_testing_ament_cmake + - launch_testing_ros + - rclcpp + - rclcpp_components + - rcutils + - rmw_implementation_cmake + repository: https://github.com/ros2/demos tag: release/rolling/composition/0.38.0-1 url: https://github.com/ros2-gbp/demos-release.git version: 0.38.0 composition_interfaces: + dependencies: + - ament_cmake + - ament_lint_common + - rcl_interfaces + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/ros2/rcl_interfaces tag: release/rolling/composition_interfaces/2.5.1-1 url: https://github.com/ros2-gbp/rcl_interfaces-release.git version: 2.5.1 compressed_depth_image_transport: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - cv_bridge + - image_transport + - pluginlib + - rcl_interfaces + - rclcpp + - sensor_msgs + repository: https://github.com/ros-perception/image_transport_plugins tag: release/rolling/compressed_depth_image_transport/7.0.1-1 url: https://github.com/ros2-gbp/image_transport_plugins-release.git version: 7.0.1 compressed_image_transport: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - cv_bridge + - image_transport + repository: https://github.com/ros-perception/image_transport_plugins tag: release/rolling/compressed_image_transport/7.0.1-1 url: https://github.com/ros2-gbp/image_transport_plugins-release.git version: 7.0.1 console_bridge_vendor: + dependencies: + - ament_cmake + - ament_cmake_vendor_package + - ament_lint_auto + - ament_lint_common + - performance_test_fixture + repository: https://github.com/ros2/console_bridge_vendor tag: release/rolling/console_bridge_vendor/1.10.0-1 url: https://github.com/ros2-gbp/console_bridge_vendor-release.git version: 1.10.0 control_box_rst: + dependencies: [] + repository: https://github.com/rst-tu-dortmund/control_box_rst tag: release/rolling/control_box_rst/0.0.7-6 url: https://github.com/ros2-gbp/control_box_rst-release.git version: 0.0.7 control_msgs: + dependencies: + - action_msgs + - ament_cmake + - builtin_interfaces + - diagnostic_msgs + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + - std_msgs + - trajectory_msgs + repository: https://github.com/ros-controls/control_msgs tag: release/rolling/control_msgs/6.10.0-1 url: https://github.com/ros2-gbp/control_msgs-release.git version: 6.10.0 control_toolbox: + dependencies: + - ament_cmake + - ament_cmake_gmock + - backward_ros + - control_msgs + - filters + - generate_parameter_library + - geometry_msgs + - pluginlib + - rclcpp + - rclcpp_lifecycle + - rcutils + - realtime_tools + - ros2_control_cmake + - rsl + - tf2 + - tf2_geometry_msgs + - tf2_ros + repository: https://github.com/ros-controls/control_toolbox tag: release/rolling/control_toolbox/6.4.0-1 url: https://github.com/ros2-gbp/control_toolbox-release.git version: 6.4.0 controller_interface: - tag: release/rolling/controller_interface/6.9.0-1 + dependencies: + - ament_cmake + - ament_cmake_gen_version_h + - ament_cmake_gmock + - geometry_msgs + - hardware_interface + - pal_statistics + - rclcpp_lifecycle + - realtime_tools + - ros2_control_cmake + - sensor_msgs + - std_msgs + repository: https://github.com/ros-controls/ros2_control + tag: release/rolling/controller_interface/6.12.0-1 url: https://github.com/ros2-gbp/ros2_control-release.git - version: 6.9.0 + version: 6.12.0 controller_manager: - tag: release/rolling/controller_manager/6.9.0-1 + dependencies: + - ament_cmake + - ament_cmake_gen_version_h + - ament_cmake_gmock + - ament_cmake_pytest + - ament_cmake_python + - backward_ros + - controller_interface + - controller_manager_msgs + - diagnostic_msgs + - diagnostic_updater + - example_interfaces + - generate_parameter_library + - hardware_interface + - hardware_interface_testing + - launch + - launch_ros + - launch_testing + - launch_testing_ament_cmake + - launch_testing_ros + - libstatistics_collector + - lifecycle_msgs + - pluginlib + - rcl_interfaces + - rclcpp + - rclpy + - realtime_tools + - robot_state_publisher + - ros2_control_cmake + - ros2_control_test_assets + - ros2param + - ros2pkg + - sensor_msgs + - std_msgs + repository: https://github.com/ros-controls/ros2_control + tag: release/rolling/controller_manager/6.12.0-1 url: https://github.com/ros2-gbp/ros2_control-release.git - version: 6.9.0 + version: 6.12.0 controller_manager_msgs: - tag: release/rolling/controller_manager_msgs/6.9.0-1 + dependencies: + - ament_cmake + - builtin_interfaces + - lifecycle_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ros-controls/ros2_control + tag: release/rolling/controller_manager_msgs/6.12.0-1 url: https://github.com/ros2-gbp/ros2_control-release.git - version: 6.9.0 + version: 6.12.0 cras_bag_tools: + dependencies: + - ament_cmake + - ament_cmake_python + - ament_cmake_ros + - builtin_interfaces + - cras_lint + - cv_bridge + - rclpy + - rosbag2_py + - rosidl_runtime_py + - sensor_msgs + - tf2_msgs + repository: https://github.com/ctu-vras/ros-utils tag: release/rolling/cras_bag_tools/4.0.2-1 url: https://github.com/ros2-gbp/cras_ros_utils-release.git version: 4.0.2 cras_cpp_common: + dependencies: + - ament_cmake + - ament_cmake_gen_version_h + - ament_cmake_gtest + - ament_cmake_ros + - backward_ros + - builtin_interfaces + - cras_lint + - filters + - geometry_msgs + - rcl + - rclcpp + - rclcpp_components + - rcutils + - rmw + - sensor_msgs + - std_msgs + - tf2 + - tf2_eigen + - tf2_geometry_msgs + - urdf + repository: https://github.com/ctu-vras/ros-utils tag: release/rolling/cras_cpp_common/4.0.2-1 url: https://github.com/ros2-gbp/cras_ros_utils-release.git version: 4.0.2 cras_lint: + dependencies: + - ament_cmake_core + - ament_cmake_test + - ament_lint_common + repository: https://github.com/ctu-vras/ros-utils tag: release/rolling/cras_lint/4.0.2-1 url: https://github.com/ros2-gbp/cras_ros_utils-release.git version: 4.0.2 cras_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - ros_environment + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ctu-vras/cras_msgs tag: release/rolling/cras_msgs/2.0.1-2 url: https://github.com/ros2-gbp/cras_msgs-release.git version: 2.0.1 cras_topic_tools: + dependencies: + - ament_cmake + - ament_cmake_gen_version_h + - cras_cpp_common + - cras_lint + - rclcpp + - rclcpp_components + - std_msgs + - topic_tools + repository: https://github.com/ctu-vras/ros-utils tag: release/rolling/cras_topic_tools/4.0.2-1 url: https://github.com/ros2-gbp/cras_ros_utils-release.git version: 4.0.2 crazyflie: + dependencies: + - ament_cmake + - ament_cmake_python + - ament_lint_auto + - ament_lint_common + - crazyflie_description + - crazyflie_interfaces + - crazyflie_server_cpp + - geometry_msgs + - rclcpp + - rclpy + - sensor_msgs + - std_srvs + repository: https://github.com/IMRCLab/crazyswarm2 tag: release/rolling/crazyflie/1.0.7-1 url: https://github.com/ros2-gbp/crazyswarm2-release.git version: 1.0.7 crazyflie_description: + dependencies: + - ament_cmake + repository: https://github.com/IMRCLab/crazyswarm2 tag: release/rolling/crazyflie_description/1.0.7-1 url: https://github.com/ros2-gbp/crazyswarm2-release.git version: 1.0.7 crazyflie_examples: + dependencies: + - ament_cmake + - ament_cmake_pytest + - ament_cmake_python + - ament_copyright + - ament_flake8 + - ament_pep257 + - crazyflie_py + - geometry_msgs + - nav_msgs + - rclpy + - sensor_msgs + - tf2_ros + - tf_transformations + repository: https://github.com/IMRCLab/crazyswarm2 tag: release/rolling/crazyflie_examples/1.0.7-1 url: https://github.com/ros2-gbp/crazyswarm2-release.git version: 1.0.7 crazyflie_interfaces: + dependencies: + - ament_cmake + - ament_cmake_cppcheck + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + - std_srvs + repository: https://github.com/IMRCLab/crazyswarm2 tag: release/rolling/crazyflie_interfaces/1.0.7-1 url: https://github.com/ros2-gbp/crazyswarm2-release.git version: 1.0.7 crazyflie_py: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - crazyflie_interfaces + - rclpy + repository: https://github.com/IMRCLab/crazyswarm2 tag: release/rolling/crazyflie_py/1.0.7-1 url: https://github.com/ros2-gbp/crazyswarm2-release.git version: 1.0.7 crazyflie_server_cpp: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - crazyflie_interfaces + - geometry_msgs + - motion_capture_tracking_interfaces + - nav_msgs + - rclcpp + - ros_environment + - sensor_msgs + - std_srvs + - tf2_ros + repository: https://github.com/IMRCLab/crazyswarm2 tag: release/rolling/crazyflie_server_cpp/1.0.7-1 url: https://github.com/ros2-gbp/crazyswarm2-release.git version: 1.0.7 crazyflie_server_py: + dependencies: + - ament_flake8 + - ament_pep257 + - crazyflie_interfaces + - geometry_msgs + - motion_capture_tracking_interfaces + - nav_msgs + - rcl_interfaces + - rclpy + - sensor_msgs + - std_msgs + - std_srvs + - tf2_ros + repository: https://github.com/IMRCLab/crazyswarm2 tag: release/rolling/crazyflie_server_py/1.0.7-1 url: https://github.com/ros2-gbp/crazyswarm2-release.git version: 1.0.7 crazyflie_sim: + dependencies: + - ament_cmake + - ament_cmake_pytest + - ament_cmake_python + - ament_copyright + - ament_flake8 + - ament_pep257 + - crazyflie_interfaces + - rclpy + repository: https://github.com/IMRCLab/crazyswarm2 tag: release/rolling/crazyflie_sim/1.0.7-1 url: https://github.com/ros2-gbp/crazyswarm2-release.git version: 1.0.7 crocoddyl: + dependencies: + - ament_cmake + - eigenpy + - jrl_cmakemodules + - pinocchio + repository: https://github.com/loco-3d/crocoddyl tag: release/rolling/crocoddyl/3.2.1-1 url: https://github.com/ros2-gbp/crocoddyl-release.git version: 3.2.1 crx_kinematics: + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - moveit_core + - pluginlib + - tf2_eigen + repository: https://github.com/danielcranston/crx_kinematics tag: release/rolling/crx_kinematics/1.0.0-2 url: https://github.com/ros2-gbp/crx_kinematics-release.git version: 1.0.0 cuda_buffer: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - cuda_buffer_backend_msgs + - rcutils + - rmw + - rosidl_buffer + repository: https://github.com/ros2/rosidl_buffer_backends tag: release/rolling/cuda_buffer/0.1.2-1 url: https://github.com/ros2-gbp/rosidl_buffer_backends-release.git version: 0.1.2 cuda_buffer_backend: + dependencies: + - ament_cmake_auto + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - cuda_buffer + - cuda_buffer_backend_msgs + - launch_ros + - launch_testing + - launch_testing_ament_cmake + - pluginlib + - rclcpp + - rclcpp_components + - rcutils + - rosidl_buffer_backend + - rosidl_buffer_backend_registry + - rosidl_runtime_cpp + - rosidl_typesupport_cpp + - sensor_msgs + - std_msgs + repository: https://github.com/ros2/rosidl_buffer_backends tag: release/rolling/cuda_buffer_backend/0.1.2-1 url: https://github.com/ros2-gbp/rosidl_buffer_backends-release.git version: 0.1.2 cuda_buffer_backend_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/ros2/rosidl_buffer_backends tag: release/rolling/cuda_buffer_backend_msgs/0.1.2-1 url: https://github.com/ros2-gbp/rosidl_buffer_backends-release.git version: 0.1.2 cudnn_cmake_module: + dependencies: + - ament_cmake + - ament_cmake_copyright + - ament_cmake_lint_cmake + - ament_cmake_xmllint + repository: https://github.com/tier4/cudnn_cmake_module tag: release/rolling/cudnn_cmake_module/0.0.1-6 url: https://github.com/ros2-gbp/cudnn_cmake_module-release.git version: 0.0.1 cv_bridge: + dependencies: + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_ros + - ament_index_python + - ament_lint_auto + - ament_lint_common + - python_cmake_module + - rclcpp + - rcpputils + - sensor_msgs + repository: https://github.com/ros-perception/vision_opencv tag: release/rolling/cv_bridge/4.1.0-2 url: https://github.com/ros2-gbp/vision_opencv-release.git version: 4.1.0 cx_ament_index_plugin: + dependencies: + - ament_cmake + - ament_index_cpp + - clips_vendor + - cx_plugin + - cx_utils + - pluginlib + repository: https://github.com/carologistics/clips_executive tag: release/rolling/cx_ament_index_plugin/0.1.3-2 url: https://github.com/ros2-gbp/clips_executive-release.git version: 0.1.3 cx_bringup: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - cx_ament_index_plugin + - cx_clips_env_manager + - cx_config_plugin + - cx_example_plugin + - cx_executive_plugin + - cx_file_load_plugin + - cx_protobuf_plugin + - cx_ros_comm_gen + - cx_ros_msgs_plugin + - example_interfaces + - launch_ros + - std_msgs + - std_srvs + repository: https://github.com/carologistics/clips_executive tag: release/rolling/cx_bringup/0.1.3-2 url: https://github.com/ros2-gbp/clips_executive-release.git version: 0.1.3 cx_clips_env_manager: + dependencies: + - ament_cmake + - bond + - bondcpp + - clips_vendor + - cx_msgs + - cx_plugin + - lifecycle_msgs + - pluginlib + - rclcpp + - rclcpp_components + - rclcpp_lifecycle + repository: https://github.com/carologistics/clips_executive tag: release/rolling/cx_clips_env_manager/0.1.3-2 url: https://github.com/ros2-gbp/clips_executive-release.git version: 0.1.3 cx_config_plugin: + dependencies: + - ament_cmake + - ament_index_cpp + - clips_vendor + - cx_plugin + - cx_utils + - pluginlib + - yaml_cpp_vendor + repository: https://github.com/carologistics/clips_executive tag: release/rolling/cx_config_plugin/0.1.3-2 url: https://github.com/ros2-gbp/clips_executive-release.git version: 0.1.3 cx_example_plugin: + dependencies: + - ament_cmake + - clips_vendor + - cx_plugin + - cx_utils + - pluginlib + - rclcpp + repository: https://github.com/carologistics/clips_executive tag: release/rolling/cx_example_plugin/0.1.3-2 url: https://github.com/ros2-gbp/clips_executive-release.git version: 0.1.3 cx_executive_plugin: + dependencies: + - ament_cmake + - clips_vendor + - cx_plugin + - cx_utils + - pluginlib + - rclcpp + - std_msgs + repository: https://github.com/carologistics/clips_executive tag: release/rolling/cx_executive_plugin/0.1.3-2 url: https://github.com/ros2-gbp/clips_executive-release.git version: 0.1.3 cx_file_load_plugin: + dependencies: + - ament_cmake + - clips_vendor + - cx_plugin + - cx_utils + - pluginlib + - rclcpp + repository: https://github.com/carologistics/clips_executive tag: release/rolling/cx_file_load_plugin/0.1.3-2 url: https://github.com/ros2-gbp/clips_executive-release.git version: 0.1.3 cx_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + repository: https://github.com/carologistics/clips_executive tag: release/rolling/cx_msgs/0.1.3-2 url: https://github.com/ros2-gbp/clips_executive-release.git version: 0.1.3 cx_plugin: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - clips_vendor + - cx_utils + - pluginlib + - rclcpp_lifecycle + repository: https://github.com/carologistics/clips_executive tag: release/rolling/cx_plugin/0.1.3-2 url: https://github.com/ros2-gbp/clips_executive-release.git version: 0.1.3 cx_protobuf_plugin: + dependencies: + - ament_cmake + - cx_plugin + - cx_utils + - pluginlib + - protobuf_comm + - rclcpp + repository: https://github.com/carologistics/clips_executive tag: release/rolling/cx_protobuf_plugin/0.1.3-2 url: https://github.com/ros2-gbp/clips_executive-release.git version: 0.1.3 cx_ros_comm_gen: + dependencies: + - ament_cmake + - ament_index_python + - cx_plugin + - cx_utils + - pluginlib + - rclcpp + - rclcpp_action + - rosidl_runtime_py + repository: https://github.com/carologistics/clips_executive tag: release/rolling/cx_ros_comm_gen/0.1.3-2 url: https://github.com/ros2-gbp/clips_executive-release.git version: 0.1.3 cx_ros_msgs_plugin: + dependencies: + - ament_cmake + - clips_vendor + - cx_plugin + - cx_utils + - pluginlib + - rclcpp + - rcutils + - rosidl_typesupport_cpp + - rosidl_typesupport_introspection_cpp + repository: https://github.com/carologistics/clips_executive tag: release/rolling/cx_ros_msgs_plugin/0.1.3-2 url: https://github.com/ros2-gbp/clips_executive-release.git version: 0.1.3 cx_ros_param_plugin: + dependencies: + - ament_cmake + - cx_plugin + - cx_utils + - pluginlib + - rclcpp + repository: https://github.com/carologistics/clips_executive tag: release/rolling/cx_ros_param_plugin/0.1.3-2 url: https://github.com/ros2-gbp/clips_executive-release.git version: 0.1.3 cx_tf2_pose_tracker_plugin: + dependencies: + - ament_cmake + - clips_vendor + - cx_plugin + - cx_utils + - geometry_msgs + - pluginlib + - tf2_ros + repository: https://github.com/carologistics/clips_executive tag: release/rolling/cx_tf2_pose_tracker_plugin/0.1.3-2 url: https://github.com/ros2-gbp/clips_executive-release.git version: 0.1.3 cx_tutorial_agents: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - cx_bringup + repository: https://github.com/carologistics/clips_executive tag: release/rolling/cx_tutorial_agents/0.1.3-2 url: https://github.com/ros2-gbp/clips_executive-release.git version: 0.1.3 cx_utils: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - clips_vendor + - rclcpp + repository: https://github.com/carologistics/clips_executive tag: release/rolling/cx_utils/0.1.3-2 url: https://github.com/ros2-gbp/clips_executive-release.git version: 0.1.3 cyclonedds: + dependencies: + - iceoryx_hoofs + - iceoryx_posh + repository: https://github.com/eclipse-cyclonedds/cyclonedds tag: release/rolling/cyclonedds/11.0.1-3 url: https://github.com/ros2-gbp/cyclonedds-release.git version: 11.0.1 data_tamer_cpp: + dependencies: + - ament_cmake + - ament_cmake_gtest + - data_tamer_msgs + - gtest_vendor + - mcap_vendor + - rclcpp + - rclcpp_lifecycle + repository: https://github.com/PickNikRobotics/data_tamer tag: release/rolling/data_tamer_cpp/1.0.3-2 url: https://github.com/ros2-gbp/data_tamer-release.git version: 1.0.3 data_tamer_msgs: + dependencies: + - ament_cmake + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/PickNikRobotics/data_tamer tag: release/rolling/data_tamer_msgs/1.0.3-2 url: https://github.com/ros2-gbp/data_tamer-release.git version: 1.0.3 data_tamer_tools: - tag: release/rolling/data_tamer_tools/0.4.0-2 + dependencies: + - ament_cmake + - ament_cmake_clang_format + - ament_cmake_cppcheck + - ament_cmake_gtest + - ament_cmake_lint_cmake + - ament_index_cpp + - ament_lint + - data_tamer_cpp + - data_tamer_msgs + - foxglove_sdk_vendor + - geographic_msgs + - geometry_msgs + - mcap_vendor + - rcl_interfaces + - rclcpp + - rclcpp_components + - rclcpp_lifecycle + - rosidl_default_generators + - sensor_msgs + - tf2_msgs + - visualization_msgs + repository: https://gitlab.com/jlack/data_tamer_tools + tag: release/rolling/data_tamer_tools/0.11.0-1 url: https://github.com/ros2-gbp/data_tamer_tools-release.git - version: 0.4.0 + version: 0.11.0 delphi_esr_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - ros_environment + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/astuff/astuff_sensor_msgs tag: release/rolling/delphi_esr_msgs/4.0.0-4 url: https://github.com/ros2-gbp/astuff_sensor_msgs-release.git version: 4.0.0 delphi_mrr_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - ros_environment + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/astuff/astuff_sensor_msgs tag: release/rolling/delphi_mrr_msgs/4.0.0-4 url: https://github.com/ros2-gbp/astuff_sensor_msgs-release.git version: 4.0.0 delphi_srr_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - ros_environment + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/astuff/astuff_sensor_msgs tag: release/rolling/delphi_srr_msgs/4.0.0-4 url: https://github.com/ros2-gbp/astuff_sensor_msgs-release.git version: 4.0.0 demo_nodes_cpp: + dependencies: + - ament_cmake + - ament_cmake_pytest + - ament_lint_auto + - ament_lint_common + - example_interfaces + - launch + - launch_ros + - launch_testing + - launch_testing_ament_cmake + - launch_testing_ros + - launch_xml + - rcl + - rcl_interfaces + - rclcpp + - rclcpp_components + - rcpputils + - rcutils + - rmw + repository: https://github.com/ros2/demos tag: release/rolling/demo_nodes_cpp/0.38.0-1 url: https://github.com/ros2-gbp/demos-release.git version: 0.38.0 demo_nodes_cpp_native: + dependencies: + - ament_cmake + - ament_cmake_pytest + - ament_lint_auto + - ament_lint_common + - example_interfaces + - launch + - launch_testing + - launch_testing_ament_cmake + - launch_testing_ros + - rclcpp + - rclcpp_components + - rmw_fastrtps_cpp + repository: https://github.com/ros2/demos tag: release/rolling/demo_nodes_cpp_native/0.38.0-1 url: https://github.com/ros2-gbp/demos-release.git version: 0.38.0 demo_nodes_py: + dependencies: + - ament_copyright + - ament_flake8 + - ament_index_python + - ament_pep257 + - ament_xmllint + - example_interfaces + - rcl_interfaces + - rclpy + repository: https://github.com/ros2/demos tag: release/rolling/demo_nodes_py/0.38.0-1 url: https://github.com/ros2-gbp/demos-release.git version: 0.38.0 depth_image_proc: + dependencies: + - ament_cmake_auto + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - class_loader + - cv_bridge + - image_geometry + - image_proc + - image_transport + - message_filters + - rclcpp + - rclcpp_components + - sensor_msgs + - stereo_msgs + - tf2 + - tf2_eigen + - tf2_ros + repository: https://github.com/ros-perception/image_pipeline tag: release/rolling/depth_image_proc/8.0.1-1 url: https://github.com/ros2-gbp/image_pipeline-release.git version: 8.0.1 depthimage_to_laserscan: + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - image_geometry + - rclcpp + - rclcpp_components + - sensor_msgs + repository: https://github.com/ros-perception/depthimage_to_laserscan tag: release/rolling/depthimage_to_laserscan/2.5.1-3 url: https://github.com/ros2-gbp/depthimage_to_laserscan-release.git version: 2.5.1 derived_object_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - ros_environment + - rosidl_default_generators + - rosidl_default_runtime + - shape_msgs + - std_msgs + repository: https://github.com/astuff/astuff_sensor_msgs tag: release/rolling/derived_object_msgs/4.0.0-4 url: https://github.com/ros2-gbp/astuff_sensor_msgs-release.git version: 4.0.0 desktop: + dependencies: + - action_tutorials_cpp + - action_tutorials_py + - ament_cmake + - angles + - composition + - demo_nodes_cpp + - demo_nodes_cpp_native + - demo_nodes_py + - depthimage_to_laserscan + - dummy_map_server + - dummy_robot_bringup + - dummy_sensors + - examples_rclcpp_minimal_action_client + - examples_rclcpp_minimal_action_server + - examples_rclcpp_minimal_client + - examples_rclcpp_minimal_composition + - examples_rclcpp_minimal_publisher + - examples_rclcpp_minimal_service + - examples_rclcpp_minimal_subscriber + - examples_rclcpp_minimal_timer + - examples_rclcpp_multithreaded_executor + - examples_rclpy_executors + - examples_rclpy_minimal_action_client + - examples_rclpy_minimal_action_server + - examples_rclpy_minimal_client + - examples_rclpy_minimal_publisher + - examples_rclpy_minimal_service + - examples_rclpy_minimal_subscriber + - image_tools + - intra_process_demo + - joy + - lifecycle + - logging_demo + - pcl_conversions + - pendulum_control + - pendulum_msgs + - quality_of_service_demo_cpp + - quality_of_service_demo_py + - ros_base + - rqt_common_plugins + - rviz2 + - rviz_default_plugins + - teleop_twist_joy + - teleop_twist_keyboard + - tlsf + - tlsf_cpp + - topic_monitor + - turtlesim + repository: https://github.com/ros2/variants tag: release/rolling/desktop/0.13.0-2 url: https://github.com/ros2-gbp/variants-release.git version: 0.13.0 desktop_full: + dependencies: + - ament_cmake + - desktop + - perception + - ros_gz_sim_demos + - simulation + repository: https://github.com/ros2/variants tag: release/rolling/desktop_full/0.13.0-2 url: https://github.com/ros2-gbp/variants-release.git version: 0.13.0 diagnostic_aggregator: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_python + - ament_lint_auto + - ament_lint_common + - diagnostic_msgs + - launch_pytest + - launch_testing_ament_cmake + - launch_testing_ros + - pluginlib + - rcl_interfaces + - rclcpp + - rclpy + - std_msgs + repository: https://github.com/ros/diagnostics tag: release/rolling/diagnostic_aggregator/4.5.7-1 url: https://github.com/ros2-gbp/diagnostics-release.git version: 4.5.7 diagnostic_common_diagnostics: + dependencies: + - ament_cmake + - ament_cmake_lint_cmake + - ament_cmake_pytest + - ament_cmake_python + - ament_cmake_xmllint + - ament_lint_auto + - diagnostic_updater + - launch_testing_ament_cmake + - rclpy + repository: https://github.com/ros/diagnostics tag: release/rolling/diagnostic_common_diagnostics/4.5.7-1 url: https://github.com/ros2-gbp/diagnostics-release.git version: 4.5.7 diagnostic_msgs: - tag: release/rolling/diagnostic_msgs/5.10.1-1 + dependencies: + - ament_cmake + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ros2/common_interfaces + tag: release/rolling/diagnostic_msgs/5.10.2-1 url: https://github.com/ros2-gbp/common_interfaces-release.git - version: 5.10.1 + version: 5.10.2 diagnostic_remote_logging: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - diagnostic_msgs + - rclcpp_components + repository: https://github.com/ros/diagnostics tag: release/rolling/diagnostic_remote_logging/4.5.7-1 url: https://github.com/ros2-gbp/diagnostics-release.git version: 4.5.7 diagnostic_updater: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_python + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - diagnostic_msgs + - launch + - launch_testing + - launch_testing_ros + - rclcpp + - rclcpp_lifecycle + - rclpy + - std_msgs + repository: https://github.com/ros/diagnostics tag: release/rolling/diagnostic_updater/4.5.7-1 url: https://github.com/ros2-gbp/diagnostics-release.git version: 4.5.7 diagnostics: + dependencies: + - ament_cmake + - diagnostic_aggregator + - diagnostic_common_diagnostics + - diagnostic_remote_logging + - diagnostic_updater + - self_test + repository: https://github.com/ros/diagnostics tag: release/rolling/diagnostics/4.5.7-1 url: https://github.com/ros2-gbp/diagnostics-release.git version: 4.5.7 diff_drive_controller: - tag: release/rolling/diff_drive_controller/6.9.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - backward_ros + - control_msgs + - control_toolbox + - controller_interface + - controller_manager + - generate_parameter_library + - geometry_msgs + - hardware_interface + - hardware_interface_testing + - nav_msgs + - pluginlib + - rclcpp + - rclcpp_lifecycle + - rcpputils + - realtime_tools + - ros2_control_cmake + - ros2_control_test_assets + - tf2 + - tf2_msgs + repository: https://github.com/ros-controls/ros2_controllers + tag: release/rolling/diff_drive_controller/6.10.0-1 url: https://github.com/ros2-gbp/ros2_controllers-release.git - version: 6.9.0 + version: 6.10.0 +dispatcher: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - rclcpp + - sensor_msgs + - std_msgs + - std_srvs + repository: https://github.com/nasa-jpl/dispatcher + tag: release/rolling/dispatcher/0.4.4-2 + url: https://github.com/ros2-gbp/dispatcher-release.git + version: 0.4.4 domain_coordinator: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + repository: https://github.com/ros2/ament_cmake_ros tag: release/rolling/domain_coordinator/0.16.0-1 url: https://github.com/ros2-gbp/ament_cmake_ros-release.git version: 0.16.0 draco_point_cloud_transport: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - pluginlib + - point_cloud_interfaces + - point_cloud_transport + - rclcpp + - rcpputils + - sensor_msgs + - std_msgs + repository: https://github.com/ros-perception/point_cloud_transport_plugins tag: release/rolling/draco_point_cloud_transport/7.0.0-1 url: https://github.com/ros2-gbp/point_cloud_transport_plugins-release.git version: 7.0.0 dual_arm_panda_moveit_config: - tag: release/rolling/dual_arm_panda_moveit_config/3.2.0-1 + dependencies: + - ament_cmake + - joint_state_publisher + - joint_state_publisher_gui + - moveit_resources_panda_description + - robot_state_publisher + - topic_tools + - xacro + repository: https://github.com/ros-planning/moveit_resources + tag: release/rolling/dual_arm_panda_moveit_config/3.2.1-1 url: https://github.com/ros2-gbp/moveit_resources-release.git - version: 3.2.0 + version: 3.2.1 dual_laser_merger: + dependencies: + - ament_cmake + - ament_cmake_auto + - ament_copyright + - ament_cpplint + - ament_flake8 + - ament_lint_auto + - ament_lint_common + - ament_pep257 + - ament_xmllint + - geometry_msgs + - laser_geometry + - message_filters + - pcl_conversions + - pcl_ros + - rclcpp + - rclcpp_components + - tf2 + - tf2_ros + - tf2_sensor_msgs + repository: https://github.com/pradyum/dual_laser_merger tag: release/rolling/dual_laser_merger/0.0.1-2 url: https://github.com/ros2-gbp/dual_laser_merger-release.git version: 0.0.1 dummy_map_server: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - nav_msgs + - rclcpp + repository: https://github.com/ros2/demos tag: release/rolling/dummy_map_server/0.38.0-1 url: https://github.com/ros2-gbp/demos-release.git version: 0.38.0 dummy_robot_bringup: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_index_python + - ament_lint_auto + - ament_lint_common + - dummy_map_server + - dummy_sensors + - launch + - launch_ros + - robot_state_publisher + - rviz2 + repository: https://github.com/ros2/demos tag: release/rolling/dummy_robot_bringup/0.38.0-1 url: https://github.com/ros2-gbp/demos-release.git version: 0.38.0 dummy_sensors: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - rclcpp + - sensor_msgs + repository: https://github.com/ros2/demos tag: release/rolling/dummy_sensors/0.38.0-1 url: https://github.com/ros2-gbp/demos-release.git version: 0.38.0 dynamixel_hardware: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - dynamixel_workbench_toolbox + - hardware_interface + - lifecycle_msgs + - pluginlib + - rclcpp + - rclcpp_lifecycle + repository: https://github.com/dynamixel-community/dynamixel_hardware tag: release/rolling/dynamixel_hardware/0.6.1-1 url: https://github.com/ros2-gbp/dynamixel_hardware-release.git version: 0.6.1 dynamixel_hardware_interface: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - dynamixel_interfaces + - dynamixel_sdk + - hardware_interface + - pluginlib + - rclcpp + - realtime_tools + - std_srvs + repository: https://github.com/ROBOTIS-GIT/dynamixel_hardware_interface tag: release/rolling/dynamixel_hardware_interface/1.5.1-2 url: https://github.com/ros2-gbp/dynamixel_hardware_interface-release.git version: 1.5.1 dynamixel_interfaces: + dependencies: + - action_msgs + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ROBOTIS-GIT/dynamixel_interfaces tag: release/rolling/dynamixel_interfaces/1.0.1-2 url: https://github.com/ros2-gbp/dynamixel_interfaces-release.git version: 1.0.1 dynamixel_sdk: + dependencies: + - ament_cmake + - ament_cmake_python + repository: https://github.com/ROBOTIS-GIT/DynamixelSDK tag: release/rolling/dynamixel_sdk/4.0.3-2 url: https://github.com/ros2-gbp/dynamixel_sdk-release.git version: 4.0.3 dynamixel_sdk_custom_interfaces: + dependencies: + - ament_cmake + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/ROBOTIS-GIT/DynamixelSDK tag: release/rolling/dynamixel_sdk_custom_interfaces/4.0.3-2 url: https://github.com/ros2-gbp/dynamixel_sdk-release.git version: 4.0.3 dynamixel_sdk_examples: + dependencies: + - ament_cmake + - ament_cmake_python + - ament_lint_auto + - ament_lint_common + - dynamixel_sdk + - dynamixel_sdk_custom_interfaces + - rclcpp + - rclpy + repository: https://github.com/ROBOTIS-GIT/DynamixelSDK tag: release/rolling/dynamixel_sdk_examples/4.0.3-2 url: https://github.com/ros2-gbp/dynamixel_sdk-release.git version: 4.0.3 dynamixel_workbench: + dependencies: + - ament_cmake + - dynamixel_workbench_toolbox + repository: https://github.com/ROBOTIS-GIT/dynamixel-workbench tag: release/rolling/dynamixel_workbench/2.2.5-2 url: https://github.com/ros2-gbp/dynamixel_workbench-release.git version: 2.2.5 dynamixel_workbench_msgs: + dependencies: + - ament_cmake + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ROBOTIS-GIT/dynamixel-workbench-msgs tag: release/rolling/dynamixel_workbench_msgs/2.1.0-2 url: https://github.com/ros2-gbp/dynamixel_workbench_msgs-release.git version: 2.1.0 dynamixel_workbench_toolbox: + dependencies: + - ament_cmake + - dynamixel_sdk + repository: https://github.com/ROBOTIS-GIT/dynamixel-workbench tag: release/rolling/dynamixel_workbench_toolbox/2.2.5-2 url: https://github.com/ros2-gbp/dynamixel_workbench-release.git version: 2.2.5 ecl_build: + dependencies: + - ament_cmake + - ecl_license + repository: https://github.com/stonier/ecl_tools tag: release/rolling/ecl_build/1.0.3-5 url: https://github.com/ros2-gbp/ecl_tools-release.git version: 1.0.3 ecl_command_line: + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - ecl_build + - ecl_license + repository: https://github.com/stonier/ecl_core tag: release/rolling/ecl_command_line/1.2.1-5 url: https://github.com/ros2-gbp/ecl_core-release.git version: 1.2.1 ecl_concepts: + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - ecl_build + - ecl_config + - ecl_license + - ecl_type_traits + repository: https://github.com/stonier/ecl_core tag: release/rolling/ecl_concepts/1.2.1-5 url: https://github.com/ros2-gbp/ecl_core-release.git version: 1.2.1 ecl_config: + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - ecl_build + - ecl_license + repository: https://github.com/stonier/ecl_lite tag: release/rolling/ecl_config/1.2.0-5 url: https://github.com/ros2-gbp/ecl_lite-release.git version: 1.2.0 ecl_console: + dependencies: + - ament_cmake_ros + - ecl_build + - ecl_config + - ecl_license + repository: https://github.com/stonier/ecl_lite tag: release/rolling/ecl_console/1.2.0-5 url: https://github.com/ros2-gbp/ecl_lite-release.git version: 1.2.0 ecl_containers: + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - ecl_build + - ecl_config + - ecl_converters + - ecl_errors + - ecl_exceptions + - ecl_formatters + - ecl_license + - ecl_mpl + - ecl_type_traits + - ecl_utilities + repository: https://github.com/stonier/ecl_core tag: release/rolling/ecl_containers/1.2.1-5 url: https://github.com/ros2-gbp/ecl_core-release.git version: 1.2.1 ecl_converters: + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - ecl_build + - ecl_concepts + - ecl_config + - ecl_errors + - ecl_exceptions + - ecl_license + - ecl_mpl + - ecl_type_traits + repository: https://github.com/stonier/ecl_core tag: release/rolling/ecl_converters/1.2.1-5 url: https://github.com/ros2-gbp/ecl_core-release.git version: 1.2.1 ecl_converters_lite: + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - ecl_config + - ecl_license + repository: https://github.com/stonier/ecl_lite tag: release/rolling/ecl_converters_lite/1.2.0-5 url: https://github.com/ros2-gbp/ecl_lite-release.git version: 1.2.0 ecl_core: + dependencies: + - ament_cmake_ros + - ecl_command_line + - ecl_concepts + - ecl_containers + - ecl_converters + - ecl_core_apps + - ecl_devices + - ecl_eigen + - ecl_exceptions + - ecl_formatters + - ecl_geometry + - ecl_ipc + - ecl_linear_algebra + - ecl_math + - ecl_mpl + - ecl_sigslots + - ecl_statistics + - ecl_streams + - ecl_threads + - ecl_time + - ecl_type_traits + - ecl_utilities + repository: https://github.com/stonier/ecl_core tag: release/rolling/ecl_core/1.2.1-5 url: https://github.com/ros2-gbp/ecl_core-release.git version: 1.2.1 ecl_core_apps: + dependencies: + - ament_cmake_ros + - ecl_build + - ecl_command_line + - ecl_config + - ecl_containers + - ecl_converters + - ecl_devices + - ecl_errors + - ecl_exceptions + - ecl_formatters + - ecl_geometry + - ecl_ipc + - ecl_license + - ecl_linear_algebra + - ecl_sigslots + - ecl_streams + - ecl_threads + - ecl_time_lite + - ecl_type_traits + repository: https://github.com/stonier/ecl_core tag: release/rolling/ecl_core_apps/1.2.1-5 url: https://github.com/ros2-gbp/ecl_core-release.git version: 1.2.1 ecl_devices: + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - ecl_build + - ecl_config + - ecl_containers + - ecl_errors + - ecl_license + - ecl_mpl + - ecl_threads + - ecl_type_traits + - ecl_utilities + repository: https://github.com/stonier/ecl_core tag: release/rolling/ecl_devices/1.2.1-5 url: https://github.com/ros2-gbp/ecl_core-release.git version: 1.2.1 ecl_eigen: + dependencies: + - ament_cmake_ros + repository: https://github.com/stonier/ecl_core tag: release/rolling/ecl_eigen/1.2.1-5 url: https://github.com/ros2-gbp/ecl_core-release.git version: 1.2.1 ecl_errors: + dependencies: + - ament_cmake_ros + - ecl_build + - ecl_config + - ecl_license + repository: https://github.com/stonier/ecl_lite tag: release/rolling/ecl_errors/1.2.0-5 url: https://github.com/ros2-gbp/ecl_lite-release.git version: 1.2.0 ecl_exceptions: + dependencies: + - ament_cmake_ros + - ecl_build + - ecl_config + - ecl_errors + - ecl_license + repository: https://github.com/stonier/ecl_core tag: release/rolling/ecl_exceptions/1.2.1-5 url: https://github.com/ros2-gbp/ecl_core-release.git version: 1.2.1 ecl_filesystem: + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - ecl_build + - ecl_config + - ecl_errors + - ecl_license + repository: https://github.com/stonier/ecl_core tag: release/rolling/ecl_filesystem/1.2.1-5 url: https://github.com/ros2-gbp/ecl_core-release.git version: 1.2.1 ecl_formatters: + dependencies: + - ament_cmake_ros + - ecl_build + - ecl_config + - ecl_converters + - ecl_exceptions + - ecl_license + repository: https://github.com/stonier/ecl_core tag: release/rolling/ecl_formatters/1.2.1-5 url: https://github.com/ros2-gbp/ecl_core-release.git version: 1.2.1 ecl_geometry: + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - ecl_build + - ecl_config + - ecl_containers + - ecl_exceptions + - ecl_formatters + - ecl_license + - ecl_linear_algebra + - ecl_math + - ecl_mpl + - ecl_type_traits + repository: https://github.com/stonier/ecl_core tag: release/rolling/ecl_geometry/1.2.1-5 url: https://github.com/ros2-gbp/ecl_core-release.git version: 1.2.1 ecl_io: + dependencies: + - ament_cmake_ros + - ecl_build + - ecl_config + - ecl_errors + - ecl_license + repository: https://github.com/stonier/ecl_lite tag: release/rolling/ecl_io/1.2.0-5 url: https://github.com/ros2-gbp/ecl_lite-release.git version: 1.2.0 ecl_ipc: + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - ecl_build + - ecl_config + - ecl_errors + - ecl_exceptions + - ecl_license + - ecl_threads + - ecl_time + - ecl_time_lite + repository: https://github.com/stonier/ecl_core tag: release/rolling/ecl_ipc/1.2.1-5 url: https://github.com/ros2-gbp/ecl_core-release.git version: 1.2.1 ecl_license: + dependencies: + - ament_cmake + repository: https://github.com/stonier/ecl_tools tag: release/rolling/ecl_license/1.0.3-5 url: https://github.com/ros2-gbp/ecl_tools-release.git version: 1.0.3 ecl_linear_algebra: + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - ecl_build + - ecl_converters + - ecl_eigen + - ecl_exceptions + - ecl_formatters + - ecl_license + - ecl_math + - sophus + repository: https://github.com/stonier/ecl_core tag: release/rolling/ecl_linear_algebra/1.2.1-5 url: https://github.com/ros2-gbp/ecl_core-release.git version: 1.2.1 ecl_lite: + dependencies: + - ament_cmake_ros + - ecl_config + - ecl_converters_lite + - ecl_errors + - ecl_io + - ecl_sigslots_lite + - ecl_time_lite + repository: https://github.com/stonier/ecl_lite tag: release/rolling/ecl_lite/1.2.0-5 url: https://github.com/ros2-gbp/ecl_lite-release.git version: 1.2.0 ecl_manipulators: + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - ecl_build + - ecl_exceptions + - ecl_formatters + - ecl_geometry + - ecl_license + repository: https://github.com/stonier/ecl_core tag: release/rolling/ecl_manipulators/1.2.1-5 url: https://github.com/ros2-gbp/ecl_core-release.git version: 1.2.1 ecl_math: + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - ecl_build + - ecl_license + - ecl_type_traits + repository: https://github.com/stonier/ecl_core tag: release/rolling/ecl_math/1.2.1-5 url: https://github.com/ros2-gbp/ecl_core-release.git version: 1.2.1 ecl_mobile_robot: + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - ecl_build + - ecl_errors + - ecl_formatters + - ecl_geometry + - ecl_license + - ecl_linear_algebra + - ecl_math + repository: https://github.com/stonier/ecl_core tag: release/rolling/ecl_mobile_robot/1.2.1-5 url: https://github.com/ros2-gbp/ecl_core-release.git version: 1.2.1 ecl_mpl: + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - ecl_build + - ecl_license + repository: https://github.com/stonier/ecl_core tag: release/rolling/ecl_mpl/1.2.1-5 url: https://github.com/ros2-gbp/ecl_core-release.git version: 1.2.1 ecl_sigslots: + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - ecl_build + - ecl_config + - ecl_license + - ecl_threads + repository: https://github.com/stonier/ecl_core tag: release/rolling/ecl_sigslots/1.2.1-5 url: https://github.com/ros2-gbp/ecl_core-release.git version: 1.2.1 ecl_sigslots_lite: + dependencies: + - ament_cmake_ros + - ecl_build + - ecl_config + - ecl_errors + - ecl_license + repository: https://github.com/stonier/ecl_lite tag: release/rolling/ecl_sigslots_lite/1.2.0-5 url: https://github.com/ros2-gbp/ecl_lite-release.git version: 1.2.0 ecl_statistics: + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - ecl_build + - ecl_config + - ecl_license + - ecl_linear_algebra + - ecl_mpl + - ecl_type_traits + repository: https://github.com/stonier/ecl_core tag: release/rolling/ecl_statistics/1.2.1-5 url: https://github.com/ros2-gbp/ecl_core-release.git version: 1.2.1 ecl_streams: + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - ecl_build + - ecl_concepts + - ecl_converters + - ecl_devices + - ecl_errors + - ecl_license + - ecl_time + - ecl_type_traits + repository: https://github.com/stonier/ecl_core tag: release/rolling/ecl_streams/1.2.1-5 url: https://github.com/ros2-gbp/ecl_core-release.git version: 1.2.1 ecl_threads: + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - ecl_build + - ecl_concepts + - ecl_config + - ecl_errors + - ecl_exceptions + - ecl_license + - ecl_time + - ecl_utilities + repository: https://github.com/stonier/ecl_core tag: release/rolling/ecl_threads/1.2.1-5 url: https://github.com/ros2-gbp/ecl_core-release.git version: 1.2.1 ecl_time: + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - ecl_build + - ecl_config + - ecl_errors + - ecl_exceptions + - ecl_license + - ecl_time_lite + repository: https://github.com/stonier/ecl_core tag: release/rolling/ecl_time/1.2.1-5 url: https://github.com/ros2-gbp/ecl_core-release.git version: 1.2.1 ecl_time_lite: + dependencies: + - ament_cmake_ros + - ecl_build + - ecl_config + - ecl_errors + - ecl_license + repository: https://github.com/stonier/ecl_lite tag: release/rolling/ecl_time_lite/1.2.0-5 url: https://github.com/ros2-gbp/ecl_lite-release.git version: 1.2.0 ecl_tools: + dependencies: + - ament_cmake + - ecl_build + - ecl_license + repository: https://github.com/stonier/ecl_tools tag: release/rolling/ecl_tools/1.0.3-5 url: https://github.com/ros2-gbp/ecl_tools-release.git version: 1.0.3 ecl_type_traits: + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - ecl_build + - ecl_config + - ecl_license + - ecl_mpl + repository: https://github.com/stonier/ecl_core tag: release/rolling/ecl_type_traits/1.2.1-5 url: https://github.com/ros2-gbp/ecl_core-release.git version: 1.2.1 ecl_utilities: + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - ecl_build + - ecl_concepts + - ecl_license + - ecl_mpl + repository: https://github.com/stonier/ecl_core tag: release/rolling/ecl_utilities/1.2.1-5 url: https://github.com/ros2-gbp/ecl_core-release.git version: 1.2.1 +ehukai: + dependencies: [] + repository: https://github.com/HonuRobotics/ehukai + tag: release/rolling/ehukai/0.0.3-1 + url: https://github.com/ros2-gbp/ehukai-release.git + version: 0.0.3 eigen3_cmake_module: + dependencies: + - ament_cmake + - ament_cmake_copyright + - ament_cmake_lint_cmake + repository: https://github.com/ros2/eigen3_cmake_module tag: release/rolling/eigen3_cmake_module/0.6.0-1 url: https://github.com/ros2-gbp/eigen3_cmake_module-release.git version: 0.6.0 eigen_stl_containers: + dependencies: + - ament_cmake + repository: https://github.com/ros/eigen_stl_containers tag: release/rolling/eigen_stl_containers/1.1.0-2 url: https://github.com/ros2-gbp/eigen_stl_containers-release.git version: 1.1.0 eigenpy: + dependencies: + - jrl_cmakemodules + repository: https://github.com/stack-of-tasks/eigenpy tag: release/rolling/eigenpy/3.13.0-1 url: https://github.com/ros2-gbp/eigenpy-release.git version: 3.13.0 eiquadprog: + dependencies: + - ament_cmake + - jrl_cmakemodules + repository: https://github.com/stack-of-tasks/eiquadprog tag: release/rolling/eiquadprog/1.3.2-1 url: https://github.com/ros2-gbp/eiquadprog-release.git version: 1.3.2 +enpose_tracking: + dependencies: + - ament_cmake + - geometry_msgs + - rclcpp + - tf2 + - tf2_geometry_msgs + - tf2_ros + repository: https://github.com/enpose-tech/enpose-ros + tag: release/rolling/enpose_tracking/0.2.1-1 + url: https://github.com/ros2-gbp/enpose-ros-release.git + version: 0.2.1 event_camera_codecs: + dependencies: + - ament_cmake + - ament_cmake_auto + - ament_cmake_clang_format + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - class_loader + - event_camera_msgs + - rclcpp + - ros_environment + - rosbag2_cpp + repository: https://github.com/ros-event-camera/event_camera_codecs tag: release/rolling/event_camera_codecs/3.0.0-2 url: https://github.com/ros2-gbp/event_camera_codecs-release.git version: 3.0.0 event_camera_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - ros_environment + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ros-event-camera/event_camera_msgs tag: release/rolling/event_camera_msgs/2.0.1-2 url: https://github.com/ros2-gbp/event_camera_msgs-release.git version: 2.0.1 event_camera_py: + dependencies: + - ament_cmake + - ament_cmake_auto + - ament_cmake_clang_format + - ament_cmake_pytest + - ament_cmake_python + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - event_camera_codecs + - event_camera_msgs + - pybind11_vendor + - python_cmake_module + - rclpy + - ros_environment + - rosbag2_py + - rosbag2_storage_default_plugins + - rosbag2_storage_mcap + - rosidl_runtime_py + - rpyutils + repository: https://github.com/ros-event-camera/event_camera_py tag: release/rolling/event_camera_py/3.0.0-2 url: https://github.com/ros2-gbp/event_camera_py-release.git version: 3.0.0 event_camera_renderer: + dependencies: + - ament_cmake + - ament_cmake_auto + - ament_cmake_clang_format + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - event_camera_codecs + - event_camera_msgs + - image_transport + - rclcpp + - rclcpp_components + - ros_environment + - sensor_msgs + repository: https://github.com/ros-event-camera/event_camera_renderer tag: release/rolling/event_camera_renderer/3.0.0-2 url: https://github.com/ros2-gbp/event_camera_renderer-release.git version: 3.0.0 event_camera_tools: + dependencies: + - ament_cmake + - ament_cmake_auto + - ament_cmake_black + - ament_cmake_clang_format + - ament_cmake_ros + - ament_cmake_test + - ament_lint_auto + - ament_lint_common + - event_camera_codecs + - event_camera_msgs + - rclcpp + - rclcpp_components + - ros_environment + - rosbag2_cpp + - rosbag2_storage + - sensor_msgs + repository: https://github.com/ros-event-camera/event_camera_tools tag: release/rolling/event_camera_tools/3.1.5-1 url: https://github.com/ros2-gbp/event_camera_tools-release.git version: 3.1.5 event_image_reconstruction_fibar: + dependencies: + - ament_cmake + - ament_cmake_auto + - ament_cmake_black + - ament_cmake_clang_format + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - cv_bridge + - event_camera_codecs + - event_camera_msgs + - fibar_lib + - image_transport + - rclcpp + - rclcpp_components + - rosbag2_cpp + - rosbag2_transport + - sensor_msgs + repository: https://github.com/ros-event-camera/event_image_reconstruction_fibar tag: release/rolling/event_image_reconstruction_fibar/3.0.4-2 url: https://github.com/ros2-gbp/event_image_reconstruction_fibar-release.git version: 3.0.4 eventdispatch_python: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + repository: https://github.com/cyan-at/ros2_eventdispatch tag: release/rolling/eventdispatch_python/0.2.29-1 url: https://github.com/ros2-gbp/ros2_eventdispatch-release.git version: 0.2.29 eventdispatch_ros2: + dependencies: + - ament_cmake + - ament_cmake_python + - ament_lint_auto + - ament_lint_common + - eventdispatch_python + - eventdispatch_ros2_interfaces + - rclcpp + - rclpy + repository: https://github.com/cyan-at/ros2_eventdispatch tag: release/rolling/eventdispatch_ros2/0.2.29-1 url: https://github.com/ros2-gbp/ros2_eventdispatch-release.git version: 0.2.29 eventdispatch_ros2_interfaces: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/cyan-at/ros2_eventdispatch tag: release/rolling/eventdispatch_ros2_interfaces/0.2.29-1 url: https://github.com/ros2-gbp/ros2_eventdispatch-release.git version: 0.2.29 example_interfaces: + dependencies: + - ament_cmake + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/ros2/example_interfaces tag: release/rolling/example_interfaces/0.15.0-1 url: https://github.com/ros2-gbp/example_interfaces-release.git version: 0.15.0 examples_rclcpp_async_client: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - example_interfaces + - rclcpp + repository: https://github.com/ros2/examples tag: release/rolling/examples_rclcpp_async_client/0.22.0-1 url: https://github.com/ros2-gbp/examples-release.git version: 0.22.0 examples_rclcpp_cbg_executor: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rclcpp + - std_msgs + repository: https://github.com/ros2/examples tag: release/rolling/examples_rclcpp_cbg_executor/0.22.0-1 url: https://github.com/ros2-gbp/examples-release.git version: 0.22.0 examples_rclcpp_minimal_action_client: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - example_interfaces + - rclcpp + - rclcpp_action + repository: https://github.com/ros2/examples tag: release/rolling/examples_rclcpp_minimal_action_client/0.22.0-1 url: https://github.com/ros2-gbp/examples-release.git version: 0.22.0 examples_rclcpp_minimal_action_server: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - example_interfaces + - rclcpp + - rclcpp_action + repository: https://github.com/ros2/examples tag: release/rolling/examples_rclcpp_minimal_action_server/0.22.0-1 url: https://github.com/ros2-gbp/examples-release.git version: 0.22.0 examples_rclcpp_minimal_client: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - example_interfaces + - rclcpp + repository: https://github.com/ros2/examples tag: release/rolling/examples_rclcpp_minimal_client/0.22.0-1 url: https://github.com/ros2-gbp/examples-release.git version: 0.22.0 examples_rclcpp_minimal_composition: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rclcpp + - rclcpp_components + - std_msgs + repository: https://github.com/ros2/examples tag: release/rolling/examples_rclcpp_minimal_composition/0.22.0-1 url: https://github.com/ros2-gbp/examples-release.git version: 0.22.0 examples_rclcpp_minimal_publisher: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rclcpp + - std_msgs + repository: https://github.com/ros2/examples tag: release/rolling/examples_rclcpp_minimal_publisher/0.22.0-1 url: https://github.com/ros2-gbp/examples-release.git version: 0.22.0 examples_rclcpp_minimal_service: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - example_interfaces + - rclcpp + repository: https://github.com/ros2/examples tag: release/rolling/examples_rclcpp_minimal_service/0.22.0-1 url: https://github.com/ros2-gbp/examples-release.git version: 0.22.0 examples_rclcpp_minimal_subscriber: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rclcpp + - rclcpp_components + - std_msgs + repository: https://github.com/ros2/examples tag: release/rolling/examples_rclcpp_minimal_subscriber/0.22.0-1 url: https://github.com/ros2-gbp/examples-release.git version: 0.22.0 examples_rclcpp_minimal_timer: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rclcpp + repository: https://github.com/ros2/examples tag: release/rolling/examples_rclcpp_minimal_timer/0.22.0-1 url: https://github.com/ros2-gbp/examples-release.git version: 0.22.0 examples_rclcpp_multithreaded_executor: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rclcpp + - std_msgs + repository: https://github.com/ros2/examples tag: release/rolling/examples_rclcpp_multithreaded_executor/0.22.0-1 url: https://github.com/ros2-gbp/examples-release.git version: 0.22.0 examples_rclcpp_wait_set: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - example_interfaces + - rclcpp + - rclcpp_components + - std_msgs + repository: https://github.com/ros2/examples tag: release/rolling/examples_rclcpp_wait_set/0.22.0-1 url: https://github.com/ros2-gbp/examples-release.git version: 0.22.0 examples_rclpy_executors: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - rclpy + - std_msgs + repository: https://github.com/ros2/examples tag: release/rolling/examples_rclpy_executors/0.22.0-1 url: https://github.com/ros2-gbp/examples-release.git version: 0.22.0 examples_rclpy_guard_conditions: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - rclpy + repository: https://github.com/ros2/examples tag: release/rolling/examples_rclpy_guard_conditions/0.22.0-1 url: https://github.com/ros2-gbp/examples-release.git version: 0.22.0 examples_rclpy_minimal_action_client: + dependencies: + - action_msgs + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - example_interfaces + - rclpy + repository: https://github.com/ros2/examples tag: release/rolling/examples_rclpy_minimal_action_client/0.22.0-1 url: https://github.com/ros2-gbp/examples-release.git version: 0.22.0 examples_rclpy_minimal_action_server: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - example_interfaces + - rclpy + repository: https://github.com/ros2/examples tag: release/rolling/examples_rclpy_minimal_action_server/0.22.0-1 url: https://github.com/ros2-gbp/examples-release.git version: 0.22.0 examples_rclpy_minimal_client: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - example_interfaces + - rclpy + - std_msgs + repository: https://github.com/ros2/examples tag: release/rolling/examples_rclpy_minimal_client/0.22.0-1 url: https://github.com/ros2-gbp/examples-release.git version: 0.22.0 examples_rclpy_minimal_publisher: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - rclpy + - std_msgs + repository: https://github.com/ros2/examples tag: release/rolling/examples_rclpy_minimal_publisher/0.22.0-1 url: https://github.com/ros2-gbp/examples-release.git version: 0.22.0 examples_rclpy_minimal_service: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - example_interfaces + - rclpy + - std_msgs + repository: https://github.com/ros2/examples tag: release/rolling/examples_rclpy_minimal_service/0.22.0-1 url: https://github.com/ros2-gbp/examples-release.git version: 0.22.0 examples_rclpy_minimal_subscriber: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - rclpy + - std_msgs + repository: https://github.com/ros2/examples tag: release/rolling/examples_rclpy_minimal_subscriber/0.22.0-1 url: https://github.com/ros2-gbp/examples-release.git version: 0.22.0 examples_rclpy_pointcloud_publisher: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - rclpy + - sensor_msgs + - sensor_msgs_py + - std_msgs + repository: https://github.com/ros2/examples tag: release/rolling/examples_rclpy_pointcloud_publisher/0.22.0-1 url: https://github.com/ros2-gbp/examples-release.git version: 0.22.0 examples_tf2_py: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - geometry_msgs + - launch_ros + - rclpy + - sensor_msgs + - tf2_ros_py + repository: https://github.com/ros2/geometry2 tag: release/rolling/examples_tf2_py/0.46.4-1 url: https://github.com/ros2-gbp/geometry2-release.git version: 0.46.4 executive_smach: + dependencies: + - ament_cmake + - smach + - smach_msgs + - smach_ros + repository: https://github.com/ros/executive_smach tag: release/rolling/executive_smach/3.0.3-3 url: https://github.com/ros2-gbp/executive_smach-release.git version: 3.0.3 fastcdr: - tag: release/rolling/fastcdr/2.3.6-1 + dependencies: [] + repository: https://github.com/eProsima/Fast-CDR + tag: release/rolling/fastcdr/2.3.7-1 url: https://github.com/ros2-gbp/fastcdr-release.git - version: 2.3.6 + version: 2.3.7 fastdds: + dependencies: + - fastcdr + - foonathan_memory_vendor + repository: https://github.com/eProsima/Fast-DDS tag: release/rolling/fastdds/3.6.2-1 url: https://github.com/ros2-gbp/fastdds-release.git version: 3.6.2 feetech_ros2_driver: + dependencies: + - ament_cmake + - hardware_interface + - pluginlib + - rclcpp + repository: https://github.com/ros-physical-ai/feetech_ros2_driver tag: release/rolling/feetech_ros2_driver/0.2.1-2 url: https://github.com/ros2-gbp/feetech_ros2_driver-release.git version: 0.2.1 ffmpeg_encoder_decoder: + dependencies: + - ament_cmake + - ament_cmake_clang_format + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - cv_bridge + - ffmpeg_image_transport_msgs + - rclcpp + - ros_environment + - sensor_msgs + - std_msgs + repository: https://github.com/ros-misc-utilities/ffmpeg_encoder_decoder tag: release/rolling/ffmpeg_encoder_decoder/3.0.1-2 url: https://github.com/ros2-gbp/ffmpeg_encoder_decoder-release.git version: 3.0.1 ffmpeg_image_transport: - tag: release/rolling/ffmpeg_image_transport/3.0.4-1 + dependencies: + - ament_cmake + - ament_cmake_black + - ament_cmake_clang_format + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - ffmpeg_encoder_decoder + - ffmpeg_image_transport_msgs + - image_transport + - pluginlib + - rclcpp + - rcutils + - ros_environment + - sensor_msgs + - std_msgs + repository: https://github.com/ros-misc-utilities/ffmpeg_image_transport + tag: release/rolling/ffmpeg_image_transport/3.0.5-1 url: https://github.com/ros2-gbp/ffmpeg_image_transport-release.git - version: 3.0.4 + version: 3.0.5 ffmpeg_image_transport_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ros-misc-utilities/ffmpeg_image_transport_msgs tag: release/rolling/ffmpeg_image_transport_msgs/1.3.0-1 url: https://github.com/ros2-gbp/ffmpeg_image_transport_msgs-release.git version: 1.3.0 ffmpeg_image_transport_tools: + dependencies: + - ament_cmake + - ament_cmake_black + - ament_cmake_clang_format + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - cv_bridge + - ffmpeg_encoder_decoder + - ffmpeg_image_transport_msgs + - rclcpp + - rcutils + - ros_environment + - rosbag2_cpp + - rosbag2_storage + - sensor_msgs + repository: https://github.com/ros-misc-utilities/ffmpeg_image_transport_tools tag: release/rolling/ffmpeg_image_transport_tools/3.0.1-2 url: https://github.com/ros2-gbp/ffmpeg_image_transport_tools-release.git version: 3.0.1 ffw: + dependencies: + - ament_cmake + - ffw_bringup + - ffw_description + - ffw_joint_trajectory_command_broadcaster + - ffw_joystick_controller + - ffw_moveit_config + - ffw_robot_manager + - ffw_spring_actuator_controller + - ffw_swerve_drive_controller + - ffw_teleop + repository: https://github.com/ROBOTIS-GIT/ai_worker tag: release/rolling/ffw/1.1.14-2 url: https://github.com/ros2-gbp/ai_worker-release.git version: 1.1.14 ffw_bringup: + dependencies: + - dynamixel_hardware_interface + - ffw_description + - gz_ros2_control + - image_transport_plugins + - rclpy + - robot_state_publisher + - ros2_control + - ros2_controllers + - ros_gz_bridge + - ros_gz_image + - ros_gz_sim + - rviz2 + - xacro + repository: https://github.com/ROBOTIS-GIT/ai_worker tag: release/rolling/ffw_bringup/1.1.14-2 url: https://github.com/ros2-gbp/ai_worker-release.git version: 1.1.14 ffw_description: + dependencies: + - ament_cmake + - joint_state_publisher + - joint_state_publisher_gui + - robot_state_publisher + - rviz2 + - urdf + - xacro + repository: https://github.com/ROBOTIS-GIT/ai_worker tag: release/rolling/ffw_description/1.1.14-2 url: https://github.com/ros2-gbp/ai_worker-release.git version: 1.1.14 ffw_joint_trajectory_command_broadcaster: + dependencies: + - ament_cmake + - ament_cmake_gmock + - backward_ros + - builtin_interfaces + - control_msgs + - controller_interface + - controller_manager + - generate_parameter_library + - hardware_interface + - hardware_interface_testing + - pluginlib + - rclcpp + - rclcpp_lifecycle + - rcutils + - realtime_tools + - ros2_control_test_assets + - sensor_msgs + - trajectory_msgs + - urdf + repository: https://github.com/ROBOTIS-GIT/ai_worker tag: release/rolling/ffw_joint_trajectory_command_broadcaster/1.1.14-2 url: https://github.com/ros2-gbp/ai_worker-release.git version: 1.1.14 ffw_joystick_controller: + dependencies: + - ament_cmake + - controller_interface + - generate_parameter_library + - hardware_interface + - pluginlib + - rclcpp + - rclcpp_lifecycle + - std_msgs + repository: https://github.com/ROBOTIS-GIT/ai_worker tag: release/rolling/ffw_joystick_controller/1.1.14-2 url: https://github.com/ros2-gbp/ai_worker-release.git version: 1.1.14 ffw_moveit_config: + dependencies: + - ament_cmake + - controller_manager + - joint_state_publisher + - joint_state_publisher_gui + - moveit_configs_utils + - moveit_kinematics + - moveit_planners + - moveit_ros_move_group + - moveit_ros_visualization + - moveit_setup_assistant + - moveit_simple_controller_manager + - robot_state_publisher + - rviz2 + - rviz_common + - rviz_default_plugins + - tf2_ros + - xacro + repository: https://github.com/ROBOTIS-GIT/ai_worker tag: release/rolling/ffw_moveit_config/1.1.14-2 url: https://github.com/ros2-gbp/ai_worker-release.git version: 1.1.14 ffw_robot_manager: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - controller_interface + - dynamixel_hardware_interface + - dynamixel_interfaces + - generate_parameter_library + - hardware_interface + - pluginlib + - rclcpp + - ros2_control_cmake + - sensor_msgs + - std_srvs + repository: https://github.com/ROBOTIS-GIT/ai_worker tag: release/rolling/ffw_robot_manager/1.1.14-2 url: https://github.com/ros2-gbp/ai_worker-release.git version: 1.1.14 ffw_spring_actuator_controller: + dependencies: + - ament_cmake + - controller_interface + - generate_parameter_library + - hardware_interface + - pluginlib + - rclcpp + - rclcpp_lifecycle + - urdf + repository: https://github.com/ROBOTIS-GIT/ai_worker tag: release/rolling/ffw_spring_actuator_controller/1.1.14-2 url: https://github.com/ros2-gbp/ai_worker-release.git version: 1.1.14 ffw_swerve_drive_controller: + dependencies: + - ament_cmake_gmock + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - control_msgs + - controller_interface + - controller_manager + - generate_parameter_library + - geometry_msgs + - hardware_interface + - hardware_interface_testing + - nav_msgs + - pluginlib + - rclcpp + - rclcpp_lifecycle + - rcpputils + - realtime_tools + - ros2_control_test_assets + - sensor_msgs + - std_srvs + - tf2 + - tf2_geometry_msgs + - tf2_msgs + - visualization_msgs + repository: https://github.com/ROBOTIS-GIT/ai_worker tag: release/rolling/ffw_swerve_drive_controller/1.1.14-2 url: https://github.com/ros2-gbp/ai_worker-release.git version: 1.1.14 ffw_teleop: + dependencies: + - rclpy + repository: https://github.com/ROBOTIS-GIT/ai_worker tag: release/rolling/ffw_teleop/1.1.14-2 url: https://github.com/ros2-gbp/ai_worker-release.git version: 1.1.14 fibar_lib: + dependencies: [] + repository: https://github.com/ros-event-camera/fibar_lib tag: release/rolling/fibar_lib/1.0.2-2 url: https://github.com/ros2-gbp/fibar_lib-release.git version: 1.0.2 fields2cover: - tag: release/rolling/fields2cover/2.0.0-17 + dependencies: + - ortools_vendor + repository: https://github.com/Fields2Cover/fields2cover + tag: release/rolling/fields2cover/2.1.1-1 url: https://github.com/ros2-gbp/fields2cover-release.git - version: 2.0.0 + version: 2.1.1 filters: + dependencies: + - ament_cmake + - ament_cmake_cppcheck + - ament_cmake_cpplint + - ament_cmake_gtest + - ament_cmake_uncrustify + - ament_cmake_xmllint + - pluginlib + - rclcpp + repository: https://github.com/ros/filters tag: release/rolling/filters/2.2.2-2 url: https://github.com/ros2-gbp/filters-release.git version: 2.2.2 +find_object_2d: + dependencies: + - ament_cmake + - builtin_interfaces + - cv_bridge + - geometry_msgs + - image_transport + - message_filters + - rclcpp + - ros_environment + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + - std_msgs + - std_srvs + - tf2 + - tf2_geometry_msgs + - tf2_ros + repository: https://github.com/introlab/find-object + tag: release/rolling/find_object_2d/0.7.5-1 + url: https://github.com/ros2-gbp/find_object_2d-release.git + version: 0.7.5 fkie_message_filters: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_ros + - image_transport + - rclcpp + - rclcpp_lifecycle + - sensor_msgs + - std_msgs + - tf2_ros + repository: https://github.com/fkie/message_filters tag: release/rolling/fkie_message_filters/3.4.0-1 url: https://github.com/ros2-gbp/fkie_message_filters-release.git version: 3.4.0 flex_sync: + dependencies: + - ament_clang_format + - ament_cmake + - ament_cmake_clang_format + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - geometry_msgs + - rclcpp + - rclcpp_components + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ros-misc-utilities/flex_sync tag: release/rolling/flex_sync/2.0.1-2 url: https://github.com/ros2-gbp/flex_sync-release.git version: 2.0.1 flexbe_behavior_engine: + dependencies: + - ament_cmake + - flexbe_core + - flexbe_input + - flexbe_mirror + - flexbe_msgs + - flexbe_onboard + - flexbe_states + - flexbe_testing + - flexbe_widget + repository: https://github.com/flexbe/flexbe_behavior_engine tag: release/rolling/flexbe_behavior_engine/4.1.4-1 url: https://github.com/ros2-gbp/flexbe_behavior_engine-release.git version: 4.1.4 flexbe_core: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - flexbe_msgs + - launch_ros + - launch_testing + - rclpy + - std_msgs + - std_srvs + - tf2_ros_py + repository: https://github.com/flexbe/flexbe_behavior_engine tag: release/rolling/flexbe_core/4.1.4-1 url: https://github.com/ros2-gbp/flexbe_behavior_engine-release.git version: 4.1.4 flexbe_input: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - flexbe_core + - flexbe_msgs + - rclpy + repository: https://github.com/flexbe/flexbe_behavior_engine tag: release/rolling/flexbe_input/4.1.4-1 url: https://github.com/ros2-gbp/flexbe_behavior_engine-release.git version: 4.1.4 flexbe_mirror: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - flexbe_core + - flexbe_msgs + - rclpy + repository: https://github.com/flexbe/flexbe_behavior_engine tag: release/rolling/flexbe_mirror/4.1.4-1 url: https://github.com/ros2-gbp/flexbe_behavior_engine-release.git version: 4.1.4 flexbe_msgs: + dependencies: + - action_msgs + - ament_cmake + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/flexbe/flexbe_behavior_engine tag: release/rolling/flexbe_msgs/4.1.4-1 url: https://github.com/ros2-gbp/flexbe_behavior_engine-release.git version: 4.1.4 flexbe_onboard: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - flexbe_core + - flexbe_msgs + - flexbe_states + - launch_ros + - launch_testing + - rclpy + repository: https://github.com/flexbe/flexbe_behavior_engine tag: release/rolling/flexbe_onboard/4.1.4-1 url: https://github.com/ros2-gbp/flexbe_behavior_engine-release.git version: 4.1.4 flexbe_states: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - flexbe_core + - flexbe_msgs + - flexbe_testing + - geometry_msgs + - rclpy + repository: https://github.com/flexbe/flexbe_behavior_engine tag: release/rolling/flexbe_states/4.1.4-1 url: https://github.com/ros2-gbp/flexbe_behavior_engine-release.git version: 4.1.4 flexbe_testing: + dependencies: + - ament_cmake + - ament_cmake_pytest + - ament_cmake_python + - ament_copyright + - ament_flake8 + - ament_index_python + - ament_pep257 + - flexbe_core + - flexbe_msgs + - launch_ros + - launch_testing + - rclpy + - std_msgs + repository: https://github.com/flexbe/flexbe_behavior_engine tag: release/rolling/flexbe_testing/4.1.4-1 url: https://github.com/ros2-gbp/flexbe_behavior_engine-release.git version: 4.1.4 flexbe_widget: + dependencies: + - ament_cmake + - ament_cmake_python + - ament_copyright + - ament_flake8 + - ament_pep257 + - flexbe_core + - flexbe_mirror + - flexbe_msgs + - flexbe_onboard + - launch_ros + - rclpy + - std_msgs + repository: https://github.com/flexbe/flexbe_behavior_engine tag: release/rolling/flexbe_widget/4.1.4-1 url: https://github.com/ros2-gbp/flexbe_behavior_engine-release.git version: 4.1.4 flir_camera_description: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - robot_state_publisher + - urdf + - xacro + repository: https://github.com/ros-drivers/flir_camera_driver tag: release/rolling/flir_camera_description/3.0.5-1 url: https://github.com/ros2-gbp/flir_camera_driver-release.git version: 3.0.5 flir_camera_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ros-drivers/flir_camera_driver tag: release/rolling/flir_camera_msgs/3.0.5-1 url: https://github.com/ros2-gbp/flir_camera_driver-release.git version: 3.0.5 fluent_rviz: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - geometry_msgs + - ouxt_lint_common + - rclcpp + - std_msgs + - visualization_msgs + repository: https://github.com/ForteFibre/FluentRviz tag: release/rolling/fluent_rviz/0.0.3-5 url: https://github.com/ros2-gbp/fluent_rviz-release.git version: 0.0.3 foonathan_memory_vendor: + dependencies: + - ament_cmake_copyright + - ament_cmake_lint_cmake + - ament_cmake_test + - ament_cmake_xmllint + repository: https://github.com/eProsima/foonathan_memory_vendor tag: release/rolling/foonathan_memory_vendor/1.3.1-3 url: https://github.com/ros2-gbp/foonathan_memory_vendor-release.git version: 1.3.1 force_torque_sensor_broadcaster: - tag: release/rolling/force_torque_sensor_broadcaster/6.9.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - backward_ros + - controller_interface + - controller_manager + - filters + - generate_parameter_library + - geometry_msgs + - hardware_interface + - hardware_interface_testing + - pluginlib + - rclcpp + - rclcpp_lifecycle + - realtime_tools + - ros2_control_cmake + - ros2_control_test_assets + - tf2 + - tf2_geometry_msgs + - tf2_ros + repository: https://github.com/ros-controls/ros2_controllers + tag: release/rolling/force_torque_sensor_broadcaster/6.10.0-1 url: https://github.com/ros2-gbp/ros2_controllers-release.git - version: 6.9.0 + version: 6.10.0 forward_command_controller: - tag: release/rolling/forward_command_controller/6.9.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - backward_ros + - controller_interface + - controller_manager + - generate_parameter_library + - hardware_interface + - hardware_interface_testing + - pluginlib + - rclcpp + - rclcpp_lifecycle + - realtime_tools + - ros2_control_cmake + - ros2_control_test_assets + - std_msgs + repository: https://github.com/ros-controls/ros2_controllers + tag: release/rolling/forward_command_controller/6.10.0-1 url: https://github.com/ros2-gbp/ros2_controllers-release.git - version: 6.9.0 + version: 6.10.0 four_wheel_steering_msgs: + dependencies: + - ament_cmake + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ros-drivers/four_wheel_steering_msgs tag: release/rolling/four_wheel_steering_msgs/2.0.1-6 url: https://github.com/ros2-gbp/four_wheel_steering_msgs-release.git version: 2.0.1 foxglove_bridge: - tag: release/rolling/foxglove_bridge/3.4.3-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_index_cpp + - ament_lint_auto + - geometry_msgs + - rcl_interfaces + - rclcpp + - rclcpp_components + - rcpputils + - rcutils + - resource_retriever + - ros_environment + - rosgraph_msgs + - rosidl_typesupport_introspection_cpp + - rosx_introspection + - sensor_msgs + - service_msgs + - std_msgs + - std_srvs + - test_msgs + repository: https://github.com/foxglove/foxglove-sdk + tag: release/rolling/foxglove_bridge/3.6.1-1 url: https://github.com/ros2-gbp/foxglove_bridge-release.git - version: 3.4.3 + version: 3.6.1 foxglove_compressed_video_transport: + dependencies: + - ament_cmake + - ament_cmake_clang_format + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - ffmpeg_encoder_decoder + - foxglove_msgs + - image_transport + - pluginlib + - rclcpp + - rcutils + - ros_environment + - sensor_msgs + - std_msgs + repository: https://github.com/ros-misc-utilities/foxglove_compressed_video_transport tag: release/rolling/foxglove_compressed_video_transport/3.0.3-1 url: https://github.com/ros2-gbp/foxglove_compressed_video_transport-release.git version: 3.0.3 foxglove_msgs: - tag: release/rolling/foxglove_msgs/3.4.3-1 + dependencies: + - ament_cmake + - ament_cmake_pytest + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - ros_environment + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/foxglove/foxglove-sdk + tag: release/rolling/foxglove_msgs/3.6.1-1 url: https://github.com/ros2-gbp/foxglove_bridge-release.git - version: 3.4.3 + version: 3.6.1 foxglove_sdk_vendor: + dependencies: + - ament_cmake + repository: https://gitlab.com/jlack/foxglove_sdk_vendor tag: release/rolling/foxglove_sdk_vendor/0.3.0-1 url: https://github.com/ros2-gbp/foxglove_sdk_vendor-release.git version: 0.3.0 franka_inria_inverse_dynamics_solver: + dependencies: + - ament_cmake + - inverse_dynamics_solver + - pluginlib + repository: https://github.com/unisa-acg/inverse-dynamics-solver tag: release/rolling/franka_inria_inverse_dynamics_solver/6.0.1-4 url: https://github.com/ros2-gbp/inverse_dynamics_solver-release.git version: 6.0.1 frequency_cam: + dependencies: + - ament_cmake + - ament_cmake_auto + - ament_cmake_clang_format + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - cv_bridge + - event_camera_codecs + - event_camera_msgs + - image_transport + - rclcpp + - rclcpp_components + - rosbag2_cpp + - std_msgs + repository: https://github.com/ros-event-camera/frequency_cam tag: release/rolling/frequency_cam/3.1.2-1 url: https://github.com/ros2-gbp/frequency_cam-release.git version: 3.1.2 fuse: + dependencies: + - ament_cmake + - ament_cmake_ros + - fuse_constraints + - fuse_core + - fuse_doc + - fuse_graphs + - fuse_models + - fuse_msgs + - fuse_optimizers + - fuse_publishers + - fuse_variables + - fuse_viz + - gtest_vendor + repository: https://github.com/locusrobotics/fuse tag: release/rolling/fuse/1.3.4-1 url: https://github.com/ros2-gbp/fuse-release.git version: 1.3.4 fuse_constraints: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - fuse_core + - fuse_graphs + - fuse_variables + - geometry_msgs + - gtest_vendor + - pluginlib + - rclcpp + repository: https://github.com/locusrobotics/fuse tag: release/rolling/fuse_constraints/1.3.4-1 url: https://github.com/ros2-gbp/fuse-release.git version: 1.3.4 fuse_core: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - fuse_msgs + - geometry_msgs + - gtest_vendor + - launch + - launch_pytest + - pluginlib + - rcl_interfaces + - rclcpp + - rclcpp_components + repository: https://github.com/locusrobotics/fuse tag: release/rolling/fuse_core/1.3.4-1 url: https://github.com/ros2-gbp/fuse-release.git version: 1.3.4 fuse_doc: + dependencies: + - ament_cmake + - ament_cmake_ros + - gtest_vendor + repository: https://github.com/locusrobotics/fuse tag: release/rolling/fuse_doc/1.3.4-1 url: https://github.com/ros2-gbp/fuse-release.git version: 1.3.4 fuse_graphs: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - fuse_core + - gtest_vendor + - pluginlib + - rclcpp + repository: https://github.com/locusrobotics/fuse tag: release/rolling/fuse_graphs/1.3.4-1 url: https://github.com/ros2-gbp/fuse-release.git version: 1.3.4 fuse_loss: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - fuse_core + - gtest_vendor + - pluginlib + - rclcpp + repository: https://github.com/locusrobotics/fuse tag: release/rolling/fuse_loss/1.3.4-1 url: https://github.com/ros2-gbp/fuse-release.git version: 1.3.4 fuse_models: + dependencies: + - ament_cmake + - ament_cmake_gmock + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - fuse_constraints + - fuse_core + - fuse_graphs + - fuse_msgs + - fuse_publishers + - fuse_variables + - geometry_msgs + - gtest_vendor + - nav_msgs + - pluginlib + - rclcpp + - rclcpp_components + - sensor_msgs + - std_srvs + - tf2 + - tf2_2d + - tf2_geometry_msgs + - tf2_ros + repository: https://github.com/locusrobotics/fuse tag: release/rolling/fuse_models/1.3.4-1 url: https://github.com/ros2-gbp/fuse-release.git version: 1.3.4 fuse_msgs: + dependencies: + - ament_cmake + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - geometry_msgs + - gtest_vendor + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/locusrobotics/fuse tag: release/rolling/fuse_msgs/1.3.4-1 url: https://github.com/ros2-gbp/fuse-release.git version: 1.3.4 fuse_optimizers: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - diagnostic_updater + - fuse_constraints + - fuse_core + - fuse_graphs + - fuse_models + - fuse_msgs + - fuse_variables + - geometry_msgs + - gtest_vendor + - launch + - launch_pytest + - launch_ros + - nav_msgs + - pluginlib + - rclcpp + - rclcpp_components + - std_srvs + repository: https://github.com/locusrobotics/fuse tag: release/rolling/fuse_optimizers/1.3.4-1 url: https://github.com/ros2-gbp/fuse-release.git version: 1.3.4 fuse_publishers: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - fuse_constraints + - fuse_core + - fuse_graphs + - fuse_msgs + - fuse_variables + - geometry_msgs + - gtest_vendor + - nav_msgs + - pluginlib + - rclcpp + - tf2 + - tf2_geometry_msgs + - tf2_ros + repository: https://github.com/locusrobotics/fuse tag: release/rolling/fuse_publishers/1.3.4-1 url: https://github.com/ros2-gbp/fuse-release.git version: 1.3.4 fuse_tutorials: + dependencies: + - ament_cmake + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - fuse_constraints + - fuse_core + - fuse_models + - fuse_optimizers + - fuse_publishers + - fuse_variables + - gtest_vendor + - nav_msgs + - rclcpp + - rviz2 + - sensor_msgs + repository: https://github.com/locusrobotics/fuse tag: release/rolling/fuse_tutorials/1.3.4-1 url: https://github.com/ros2-gbp/fuse-release.git version: 1.3.4 fuse_variables: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - fuse_core + - fuse_graphs + - gtest_vendor + - pluginlib + - rclcpp + repository: https://github.com/locusrobotics/fuse tag: release/rolling/fuse_variables/1.3.4-1 url: https://github.com/ros2-gbp/fuse-release.git version: 1.3.4 fuse_viz: + dependencies: + - ament_cmake + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - fuse_constraints + - fuse_core + - fuse_msgs + - fuse_variables + - geometry_msgs + - gtest_vendor + - rviz_common + - rviz_rendering + - tf2_geometry_msgs + repository: https://github.com/locusrobotics/fuse tag: release/rolling/fuse_viz/1.3.4-1 url: https://github.com/ros2-gbp/fuse-release.git version: 1.3.4 game_controller_spl: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - game_controller_spl_interfaces + - rclpy + repository: https://github.com/ros-sports/game_controller_spl tag: release/rolling/game_controller_spl/5.0.0-3 url: https://github.com/ros2-gbp/game_controller_spl-release.git version: 5.0.0 game_controller_spl_interfaces: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/ros-sports/game_controller_spl tag: release/rolling/game_controller_spl_interfaces/5.0.0-3 url: https://github.com/ros2-gbp/game_controller_spl-release.git version: 5.0.0 generate_parameter_library: - tag: release/rolling/generate_parameter_library/1.3.0-1 + dependencies: + - ament_cmake + - ament_cmake_python + - generate_parameter_library_py + - rclcpp + - rclcpp_lifecycle + - rclpy + - rsl + - tcb_span + repository: https://github.com/PickNikRobotics/generate_parameter_library + tag: release/rolling/generate_parameter_library/1.3.1-1 url: https://github.com/ros2-gbp/generate_parameter_library-release.git - version: 1.3.0 + version: 1.3.1 generate_parameter_library_py: - tag: release/rolling/generate_parameter_library_py/1.3.0-1 + dependencies: [] + repository: https://github.com/PickNikRobotics/generate_parameter_library + tag: release/rolling/generate_parameter_library_py/1.3.1-1 url: https://github.com/ros2-gbp/generate_parameter_library-release.git - version: 1.3.0 + version: 1.3.1 geodesy: + dependencies: + - ament_cmake + - ament_cmake_gtest + - angles + - geographic_msgs + - geometry_msgs + - sensor_msgs + - unique_identifier_msgs + repository: https://github.com/ros-geographic-info/geographic_info tag: release/rolling/geodesy/1.0.7-4 url: https://github.com/ros2-gbp/geographic_info-release.git version: 1.0.7 geographic_info: + dependencies: + - ament_cmake + - geodesy + - geographic_msgs + repository: https://github.com/ros-geographic-info/geographic_info tag: release/rolling/geographic_info/1.0.7-4 url: https://github.com/ros2-gbp/geographic_info-release.git version: 1.0.7 geographic_msgs: + dependencies: + - ament_cmake + - ament_cmake_cppcheck + - ament_cmake_cpplint + - ament_cmake_gtest + - ament_cmake_lint_cmake + - ament_cmake_uncrustify + - ament_cmake_xmllint + - ament_lint_auto + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + - unique_identifier_msgs + repository: https://github.com/ros-geographic-info/geographic_info tag: release/rolling/geographic_msgs/1.0.7-4 url: https://github.com/ros2-gbp/geographic_info-release.git version: 1.0.7 geometric_shapes: + dependencies: + - ament_cmake + - ament_cmake_copyright + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_cmake + - console_bridge_vendor + - eigen3_cmake_module + - eigen_stl_containers + - geometry_msgs + - random_numbers + - rclcpp + - resource_retriever + - rosidl_default_generators + - rosidl_default_runtime + - shape_msgs + - visualization_msgs + repository: https://github.com/ros-planning/geometric_shapes tag: release/rolling/geometric_shapes/2.3.4-1 url: https://github.com/ros2-gbp/geometric_shapes-release.git version: 2.3.4 geometry2: + dependencies: + - ament_cmake + - tf2 + - tf2_bullet + - tf2_eigen + - tf2_eigen_kdl + - tf2_geometry_msgs + - tf2_kdl + - tf2_msgs + - tf2_py + - tf2_ros + - tf2_sensor_msgs + - tf2_tools + repository: https://github.com/ros2/geometry2 tag: release/rolling/geometry2/0.46.4-1 url: https://github.com/ros2-gbp/geometry2-release.git version: 0.46.4 geometry_msgs: - tag: release/rolling/geometry_msgs/5.10.1-1 + dependencies: + - ament_cmake + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ros2/common_interfaces + tag: release/rolling/geometry_msgs/5.10.2-1 url: https://github.com/ros2-gbp/common_interfaces-release.git - version: 5.10.1 + version: 5.10.2 geometry_tutorials: + dependencies: + - ament_cmake + repository: https://github.com/ros/geometry_tutorials tag: release/rolling/geometry_tutorials/0.7.0-2 url: https://github.com/ros2-gbp/geometry_tutorials-release.git version: 0.7.0 gmock_vendor: + dependencies: + - gtest_vendor + repository: https://github.com/ament/googletest tag: release/rolling/gmock_vendor/1.17.0-2 url: https://github.com/ros2-gbp/googletest-release.git version: 1.17.0 google_benchmark_vendor: + dependencies: [] + repository: https://github.com/ament/google_benchmark_vendor tag: release/rolling/google_benchmark_vendor/0.8.0-1 url: https://github.com/ros2-gbp/google_benchmark_vendor-release.git version: 0.8.0 gpio_controllers: - tag: release/rolling/gpio_controllers/6.9.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - control_msgs + - controller_interface + - controller_manager + - generate_parameter_library + - hardware_interface + - hardware_interface_testing + - pluginlib + - rclcpp + - rclcpp_lifecycle + - realtime_tools + - ros2_control_cmake + - ros2_control_test_assets + repository: https://github.com/ros-controls/ros2_controllers + tag: release/rolling/gpio_controllers/6.10.0-1 url: https://github.com/ros2-gbp/ros2_controllers-release.git - version: 6.9.0 + version: 6.10.0 gps_msgs: + dependencies: + - ament_cmake + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/swri-robotics/gps_umd tag: release/rolling/gps_msgs/3.1.1-1 url: https://github.com/ros2-gbp/gps_umd-release.git version: 3.1.1 gps_sensor_broadcaster: - tag: release/rolling/gps_sensor_broadcaster/6.9.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - controller_interface + - controller_manager + - generate_parameter_library + - hardware_interface + - pluginlib + - rclcpp + - rclcpp_lifecycle + - realtime_tools + - ros2_control_cmake + - ros2_control_test_assets + - sensor_msgs + repository: https://github.com/ros-controls/ros2_controllers + tag: release/rolling/gps_sensor_broadcaster/6.10.0-1 url: https://github.com/ros2-gbp/ros2_controllers-release.git - version: 6.9.0 + version: 6.10.0 gps_tools: + dependencies: + - ament_cmake + - ament_cmake_python + - gps_msgs + - nav_msgs + - rclcpp + - rclcpp_components + - rclpy + - sensor_msgs + - std_msgs + repository: https://github.com/swri-robotics/gps_umd tag: release/rolling/gps_tools/3.1.1-1 url: https://github.com/ros2-gbp/gps_umd-release.git version: 3.1.1 gps_umd: + dependencies: + - ament_cmake + - gps_msgs + - gps_tools + - gpsd_client + repository: https://github.com/swri-robotics/gps_umd tag: release/rolling/gps_umd/3.1.1-1 url: https://github.com/ros2-gbp/gps_umd-release.git version: 3.1.1 gpsd_client: + dependencies: + - ament_cmake + - ament_cmake_gtest + - gps_msgs + - rclcpp + - rclcpp_components + - sensor_msgs + repository: https://github.com/swri-robotics/gps_umd tag: release/rolling/gpsd_client/3.1.1-1 url: https://github.com/ros2-gbp/gps_umd-release.git version: 3.1.1 graph_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_cmake + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/PickNikRobotics/graph_msgs tag: release/rolling/graph_msgs/0.2.1-1 url: https://github.com/ros2-gbp/graph_msgs-release.git version: 0.2.1 grasping_msgs: + dependencies: + - ament_cmake + - geometry_msgs + - moveit_msgs + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + - shape_msgs + - std_msgs + repository: https://github.com/mikeferguson/grasping_msgs tag: release/rolling/grasping_msgs/0.5.0-2 url: https://github.com/ros2-gbp/grasping_msgs-release.git version: 0.5.0 grbl_msgs: + dependencies: + - action_msgs + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/flynneva/grbl_msgs tag: release/rolling/grbl_msgs/0.0.2-9 url: https://github.com/ros2-gbp/grbl_msgs-release.git version: 0.0.2 grbl_ros: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - grbl_msgs + - rclpy + - std_msgs + repository: https://github.com/flynneva/grbl_ros tag: release/rolling/grbl_ros/0.0.16-7 url: https://github.com/ros2-gbp/grbl_ros-release.git version: 0.0.16 greenwave_monitor: + dependencies: + - ament_cmake + - ament_cmake_auto + - ament_cmake_pytest + - ament_cmake_python + - ament_flake8 + - ament_lint_auto + - ament_lint_common + - ament_pep257 + - diagnostic_msgs + - greenwave_monitor_interfaces + - launch + - launch_ros + - launch_testing + - launch_testing_ros + - rclcpp + - rclpy + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + - std_msgs + repository: https://github.com/NVIDIA-ISAAC-ROS/greenwave_monitor tag: release/rolling/greenwave_monitor/1.0.0-3 url: https://github.com/ros2-gbp/greenwave_monitor-release.git version: 1.0.0 greenwave_monitor_interfaces: + dependencies: + - ament_cmake + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/NVIDIA-ISAAC-ROS/greenwave_monitor tag: release/rolling/greenwave_monitor_interfaces/1.0.0-3 url: https://github.com/ros2-gbp/greenwave_monitor-release.git version: 1.0.0 gscam: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - camera_calibration_parsers + - camera_info_manager + - class_loader + - image_transport + - rclcpp + - rclcpp_components + - sensor_msgs + repository: https://github.com/ros-drivers/gscam tag: release/rolling/gscam/2.0.4-2 url: https://github.com/ros2-gbp/gscam-release.git version: 2.0.4 gstreamer_ros_babel_fish: + dependencies: + - ament_cmake + - ament_cmake_gtest + - rclcpp + - sensor_msgs + repository: https://github.com/StefanFabian/gstreamer_ros_babel_fish tag: release/rolling/gstreamer_ros_babel_fish/1.26.40-2 url: https://github.com/ros2-gbp/gstreamer_ros_babel_fish-release.git version: 1.26.40 gtest_vendor: + dependencies: [] + repository: https://github.com/ament/googletest tag: release/rolling/gtest_vendor/1.17.0-2 url: https://github.com/ros2-gbp/googletest-release.git version: 1.17.0 gtsam: - tag: release/rolling/gtsam/4.3.0-4 + dependencies: [] + repository: https://github.com/borglab/gtsam + tag: release/rolling/gtsam/4.3.1-3 url: https://github.com/ros2-gbp/gtsam-release.git - version: 4.3.0 + version: 4.3.1 gtsam2mrpt_serial: - tag: release/rolling/gtsam2mrpt_serial/0.2.0-2 + dependencies: + - gtsam + - mola_common + - mrpt_containers + - mrpt_io + - mrpt_math + - mrpt_poses + - mrpt_random + - mrpt_rtti + - mrpt_serialization + - mrpt_system + repository: https://github.com/MRPT/gtsam2mrpt_serial + tag: release/rolling/gtsam2mrpt_serial/0.4.0-1 url: https://github.com/ros2-gbp/gtsam2mrpt_serial-release.git - version: 0.2.0 + version: 0.4.0 gz_cmake_vendor: - tag: release/rolling/gz_cmake_vendor/0.5.1-1 + dependencies: + - ament_cmake_copyright + - ament_cmake_core + - ament_cmake_lint_cmake + - ament_cmake_test + - ament_cmake_vendor_package + - ament_cmake_xmllint + repository: https://github.com/gazebo-release/gz_cmake_vendor + tag: release/rolling/gz_cmake_vendor/0.5.3-1 url: https://github.com/ros2-gbp/gz_cmake_vendor-release.git - version: 0.5.1 + version: 0.5.3 gz_common_vendor: - tag: release/rolling/gz_common_vendor/0.4.2-1 + dependencies: + - ament_cmake_copyright + - ament_cmake_core + - ament_cmake_lint_cmake + - ament_cmake_test + - ament_cmake_vendor_package + - ament_cmake_xmllint + - gz_cmake_vendor + - gz_math_vendor + - gz_utils_vendor + - spdlog_vendor + repository: https://github.com/gazebo-release/gz_common_vendor + tag: release/rolling/gz_common_vendor/0.4.4-1 url: https://github.com/ros2-gbp/gz_common_vendor-release.git - version: 0.4.2 + version: 0.4.4 gz_dartsim_vendor: + dependencies: + - ament_cmake + - ament_cmake_vendor_package + - ament_cmake_xmllint + - ament_lint_auto + repository: https://github.com/gazebo-release/gz_dartsim_vendor tag: release/rolling/gz_dartsim_vendor/0.1.3-2 url: https://github.com/ros2-gbp/gz_dartsim_vendor-release.git version: 0.1.3 gz_fuel_tools_vendor: - tag: release/rolling/gz_fuel_tools_vendor/0.4.0-1 + dependencies: + - ament_cmake_copyright + - ament_cmake_core + - ament_cmake_lint_cmake + - ament_cmake_test + - ament_cmake_vendor_package + - ament_cmake_xmllint + - gz_cmake_vendor + - gz_common_vendor + - gz_math_vendor + - gz_msgs_vendor + - gz_tools_vendor + - gz_utils_vendor + repository: https://github.com/gazebo-release/gz_fuel_tools_vendor + tag: release/rolling/gz_fuel_tools_vendor/0.4.2-1 url: https://github.com/ros2-gbp/gz_fuel_tools_vendor-release.git - version: 0.4.0 + version: 0.4.2 gz_gui_vendor: - tag: release/rolling/gz_gui_vendor/0.4.0-1 + dependencies: + - ament_cmake_copyright + - ament_cmake_core + - ament_cmake_lint_cmake + - ament_cmake_test + - ament_cmake_vendor_package + - ament_cmake_xmllint + - gz_cmake_vendor + - gz_common_vendor + - gz_math_vendor + - gz_msgs_vendor + - gz_plugin_vendor + - gz_rendering_vendor + - gz_tools_vendor + - gz_transport_vendor + - gz_utils_vendor + repository: https://github.com/gazebo-release/gz_gui_vendor + tag: release/rolling/gz_gui_vendor/0.4.2-1 url: https://github.com/ros2-gbp/gz_gui_vendor-release.git - version: 0.4.0 -gz_launch_vendor: - tag: release/rolling/gz_launch_vendor/0.4.1-1 - url: https://github.com/ros2-gbp/gz_launch_vendor-release.git - version: 0.4.1 + version: 0.4.2 gz_math_vendor: - tag: release/rolling/gz_math_vendor/0.5.1-1 + dependencies: + - ament_cmake_copyright + - ament_cmake_core + - ament_cmake_lint_cmake + - ament_cmake_test + - ament_cmake_vendor_package + - ament_cmake_xmllint + - gz_cmake_vendor + - gz_utils_vendor + repository: https://github.com/gazebo-release/gz_math_vendor + tag: release/rolling/gz_math_vendor/0.5.3-1 url: https://github.com/ros2-gbp/gz_math_vendor-release.git - version: 0.5.1 + version: 0.5.3 gz_msgs_vendor: - tag: release/rolling/gz_msgs_vendor/0.4.1-2 + dependencies: + - ament_cmake_copyright + - ament_cmake_core + - ament_cmake_lint_cmake + - ament_cmake_test + - ament_cmake_vendor_package + - ament_cmake_xmllint + - gz_cmake_vendor + - gz_math_vendor + - gz_tools_vendor + repository: https://github.com/gazebo-release/gz_msgs_vendor + tag: release/rolling/gz_msgs_vendor/0.4.3-1 url: https://github.com/ros2-gbp/gz_msgs_vendor-release.git - version: 0.4.1 + version: 0.4.3 gz_ogre_next_vendor: + dependencies: + - ament_cmake + - ament_cmake_vendor_package + - ament_cmake_xmllint + - ament_lint_auto + - gz_cmake_vendor + repository: https://github.com/gazebo-release/gz_ogre_next_vendor tag: release/rolling/gz_ogre_next_vendor/0.2.1-1 url: https://github.com/ros2-gbp/gz_ogre_next_vendor-release.git version: 0.2.1 gz_physics_vendor: - tag: release/rolling/gz_physics_vendor/0.5.2-1 + dependencies: + - ament_cmake_copyright + - ament_cmake_core + - ament_cmake_lint_cmake + - ament_cmake_test + - ament_cmake_vendor_package + - ament_cmake_xmllint + - gz_cmake_vendor + - gz_common_vendor + - gz_dartsim_vendor + - gz_math_vendor + - gz_plugin_vendor + - gz_utils_vendor + - sdformat_vendor + repository: https://github.com/gazebo-release/gz_physics_vendor + tag: release/rolling/gz_physics_vendor/0.5.4-1 url: https://github.com/ros2-gbp/gz_physics_vendor-release.git - version: 0.5.2 + version: 0.5.4 gz_plugin_vendor: - tag: release/rolling/gz_plugin_vendor/0.4.0-1 + dependencies: + - ament_cmake_copyright + - ament_cmake_core + - ament_cmake_lint_cmake + - ament_cmake_test + - ament_cmake_vendor_package + - ament_cmake_xmllint + - gz_cmake_vendor + - gz_tools_vendor + - gz_utils_vendor + repository: https://github.com/gazebo-release/gz_plugin_vendor + tag: release/rolling/gz_plugin_vendor/0.4.2-1 url: https://github.com/ros2-gbp/gz_plugin_vendor-release.git - version: 0.4.0 + version: 0.4.2 gz_rendering_vendor: - tag: release/rolling/gz_rendering_vendor/0.5.1-1 + dependencies: + - ament_cmake_copyright + - ament_cmake_core + - ament_cmake_lint_cmake + - ament_cmake_test + - ament_cmake_vendor_package + - ament_cmake_xmllint + - gz_cmake_vendor + - gz_common_vendor + - gz_math_vendor + - gz_ogre_next_vendor + - gz_plugin_vendor + - gz_utils_vendor + repository: https://github.com/gazebo-release/gz_rendering_vendor + tag: release/rolling/gz_rendering_vendor/0.5.3-1 url: https://github.com/ros2-gbp/gz_rendering_vendor-release.git - version: 0.5.1 + version: 0.5.3 gz_ros2_control: - tag: release/rolling/gz_ros2_control/4.0.0-1 + dependencies: + - ament_cmake + - controller_manager + - gz_plugin_vendor + - gz_sim_vendor + - hardware_interface + - pluginlib + - rclcpp + - rclcpp_lifecycle + - ros2_control_cmake + - yaml_cpp_vendor + repository: https://github.com/ros-controls/gz_ros2_control + tag: release/rolling/gz_ros2_control/4.0.1-1 url: https://github.com/ros2-gbp/ign_ros2_control-release.git - version: 4.0.0 + version: 4.0.1 gz_ros2_control_demos: - tag: release/rolling/gz_ros2_control_demos/4.0.0-1 + dependencies: + - ackermann_steering_controller + - ament_cmake + - ament_index_python + - control_msgs + - control_toolbox + - diff_drive_controller + - force_torque_sensor_broadcaster + - forward_command_controller + - geometry_msgs + - gz_ros2_control + - gz_sim_vendor + - hardware_interface + - imu_sensor_broadcaster + - joint_state_broadcaster + - joint_trajectory_controller + - launch + - launch_ros + - mecanum_drive_controller + - pluginlib + - rclcpp + - rclcpp_action + - rclcpp_lifecycle + - robot_state_publisher + - ros2_control_cmake + - ros2controlcli + - ros2launch + - ros_gz_bridge + - ros_gz_sim + - std_msgs + - tricycle_controller + - xacro + repository: https://github.com/ros-controls/gz_ros2_control + tag: release/rolling/gz_ros2_control_demos/4.0.1-1 url: https://github.com/ros2-gbp/ign_ros2_control-release.git - version: 4.0.0 + version: 4.0.1 gz_sensors_vendor: - tag: release/rolling/gz_sensors_vendor/0.4.1-1 + dependencies: + - ament_cmake_copyright + - ament_cmake_core + - ament_cmake_lint_cmake + - ament_cmake_test + - ament_cmake_vendor_package + - ament_cmake_xmllint + - gz_cmake_vendor + - gz_common_vendor + - gz_math_vendor + - gz_msgs_vendor + - gz_rendering_vendor + - gz_tools_vendor + - gz_transport_vendor + - gz_utils_vendor + - sdformat_vendor + repository: https://github.com/gazebo-release/gz_sensors_vendor + tag: release/rolling/gz_sensors_vendor/0.4.3-1 url: https://github.com/ros2-gbp/gz_sensors_vendor-release.git - version: 0.4.1 + version: 0.4.3 gz_sim_vendor: - tag: release/rolling/gz_sim_vendor/0.5.2-1 + dependencies: + - ament_cmake_copyright + - ament_cmake_core + - ament_cmake_lint_cmake + - ament_cmake_test + - ament_cmake_vendor_package + - ament_cmake_xmllint + - gz_cmake_vendor + - gz_common_vendor + - gz_fuel_tools_vendor + - gz_gui_vendor + - gz_math_vendor + - gz_msgs_vendor + - gz_physics_vendor + - gz_plugin_vendor + - gz_rendering_vendor + - gz_sensors_vendor + - gz_tools_vendor + - gz_transport_vendor + - gz_utils_vendor + - sdformat_vendor + repository: https://github.com/gazebo-release/gz_sim_vendor + tag: release/rolling/gz_sim_vendor/0.5.4-1 url: https://github.com/ros2-gbp/gz_sim_vendor-release.git - version: 0.5.2 + version: 0.5.4 gz_tools_vendor: - tag: release/rolling/gz_tools_vendor/0.3.1-1 + dependencies: + - ament_cmake_copyright + - ament_cmake_core + - ament_cmake_lint_cmake + - ament_cmake_test + - ament_cmake_vendor_package + - ament_cmake_xmllint + - gz_cmake_vendor + repository: https://github.com/gazebo-release/gz_tools_vendor + tag: release/rolling/gz_tools_vendor/0.3.2-1 url: https://github.com/ros2-gbp/gz_tools_vendor-release.git - version: 0.3.1 + version: 0.3.2 gz_transport_vendor: - tag: release/rolling/gz_transport_vendor/0.4.1-1 + dependencies: + - ament_cmake_copyright + - ament_cmake_core + - ament_cmake_lint_cmake + - ament_cmake_test + - ament_cmake_vendor_package + - ament_cmake_xmllint + - gz_cmake_vendor + - gz_math_vendor + - gz_msgs_vendor + - gz_tools_vendor + - gz_utils_vendor + - zenoh_cpp_vendor + repository: https://github.com/gazebo-release/gz_transport_vendor + tag: release/rolling/gz_transport_vendor/0.4.3-1 url: https://github.com/ros2-gbp/gz_transport_vendor-release.git - version: 0.4.1 + version: 0.4.3 gz_utils_vendor: - tag: release/rolling/gz_utils_vendor/0.5.0-1 + dependencies: + - ament_cmake_copyright + - ament_cmake_core + - ament_cmake_lint_cmake + - ament_cmake_test + - ament_cmake_vendor_package + - ament_cmake_xmllint + - gz_cmake_vendor + - spdlog_vendor + repository: https://github.com/gazebo-release/gz_utils_vendor + tag: release/rolling/gz_utils_vendor/0.5.2-1 url: https://github.com/ros2-gbp/gz_utils_vendor-release.git - version: 0.5.0 + version: 0.5.2 hardware_interface: - tag: release/rolling/hardware_interface/6.9.0-1 + dependencies: + - ament_cmake + - ament_cmake_gen_version_h + - ament_cmake_gmock + - backward_ros + - control_msgs + - joint_limits + - lifecycle_msgs + - pal_statistics + - pluginlib + - rclcpp_lifecycle + - rcpputils + - rcutils + - realtime_tools + - ros2_control_cmake + - ros2_control_test_assets + - sdformat_urdf + - urdf + repository: https://github.com/ros-controls/ros2_control + tag: release/rolling/hardware_interface/6.12.0-1 url: https://github.com/ros2-gbp/ros2_control-release.git - version: 6.9.0 + version: 6.12.0 hardware_interface_testing: - tag: release/rolling/hardware_interface_testing/6.9.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - control_msgs + - hardware_interface + - lifecycle_msgs + - pluginlib + - rclcpp_lifecycle + - ros2_control_cmake + - ros2_control_test_assets + repository: https://github.com/ros-controls/ros2_control + tag: release/rolling/hardware_interface_testing/6.12.0-1 url: https://github.com/ros2-gbp/ros2_control-release.git - version: 6.9.0 + version: 6.12.0 hash_library_vendor: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + repository: https://github.com/tier4/hash_library_vendor tag: release/rolling/hash_library_vendor/0.1.1-7 url: https://github.com/ros2-gbp/hash_library_vendor-release.git version: 0.1.1 hatchbed_common: + dependencies: + - ament_cmake + - ament_cmake_cpplint + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - geometry_msgs + - nav_msgs + - rclcpp + - rclcpp_components + - rclcpp_lifecycle + - sensor_msgs + - std_msgs + - tf2 + - tf2_msgs + - tf2_ros + - visualization_msgs + repository: https://github.com/hatchbed/hatchbed_common tag: release/rolling/hatchbed_common/0.1.8-1 url: https://github.com/ros2-gbp/hatchbed_common-release.git version: 0.1.8 heaphook: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - tlsf + repository: https://github.com/tier4/heaphook tag: release/rolling/heaphook/0.1.1-3 url: https://github.com/ros2-gbp/heaphook-release.git version: 0.1.1 hebi_cpp_api: + dependencies: + - ament_cmake + repository: https://github.com/HebiRobotics/hebi_cpp_api_ros tag: release/rolling/hebi_cpp_api/3.16.0-2 url: https://github.com/ros2-gbp/hebi_cpp_api-release.git version: 3.16.0 hls_lfcd_lds_driver: + dependencies: + - ament_cmake + - rclcpp + - sensor_msgs + repository: https://github.com/ROBOTIS-GIT/hls_lfcd_lds_driver tag: release/rolling/hls_lfcd_lds_driver/2.1.1-2 url: https://github.com/ros2-gbp/hls_lfcd_lds_driver-release.git version: 2.1.1 hri: + dependencies: + - ament_cmake_auto + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - cv_bridge + - geometry_msgs + - hri_msgs + - magic_enum + - rclcpp + - rclcpp_lifecycle + - sensor_msgs + - std_msgs + - tf2 + - tf2_ros + repository: https://github.com/ros4hri/libhri tag: release/rolling/hri/2.9.0-2 url: https://github.com/ros2-gbp/libhri-release.git version: 2.9.0 hri_actions_msgs: + dependencies: + - action_msgs + - ament_cmake + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ros4hri/hri_actions_msgs tag: release/rolling/hri_actions_msgs/2.5.0-2 url: https://github.com/ros2-gbp/hri_actions_msgs-release.git version: 2.5.0 hri_msgs: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + repository: https://github.com/ros4hri/hri_msgs tag: release/rolling/hri_msgs/2.3.2-2 url: https://github.com/ros2-gbp/hri_msgs-release.git version: 2.3.2 hri_rviz: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + - cv_bridge + - hri + - hri_msgs + - rclcpp + - rcpputils + - rviz_common + - rviz_default_plugins + - rviz_ogre_vendor + - sensor_msgs + repository: https://github.com/ros4hri/hri_rviz tag: release/rolling/hri_rviz/2.3.0-2 url: https://github.com/ros2-gbp/hri_rviz-release.git version: 2.3.0 human_description: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + - launch + - launch_pal + - launch_param_builder + - launch_ros + - launch_testing_ament_cmake + - robot_state_publisher + - urdf_test + - xacro + repository: https://github.com/ros4hri/human_description tag: release/rolling/human_description/2.0.2-2 url: https://github.com/ros2-gbp/human_description-release.git version: 2.0.2 ibeo_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - ros_environment + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/astuff/astuff_sensor_msgs tag: release/rolling/ibeo_msgs/4.0.0-4 url: https://github.com/ros2-gbp/astuff_sensor_msgs-release.git version: 4.0.0 iceoryx_binding_c: + dependencies: + - iceoryx_hoofs + - iceoryx_posh + repository: https://github.com/eclipse-iceoryx/iceoryx tag: release/rolling/iceoryx_binding_c/2.0.6-1 url: https://github.com/ros2-gbp/iceoryx-release.git version: 2.0.6 iceoryx_hoofs: + dependencies: [] + repository: https://github.com/eclipse-iceoryx/iceoryx tag: release/rolling/iceoryx_hoofs/2.0.6-1 url: https://github.com/ros2-gbp/iceoryx-release.git version: 2.0.6 iceoryx_introspection: + dependencies: + - iceoryx_hoofs + - iceoryx_posh + repository: https://github.com/eclipse-iceoryx/iceoryx tag: release/rolling/iceoryx_introspection/2.0.6-1 url: https://github.com/ros2-gbp/iceoryx-release.git version: 2.0.6 iceoryx_posh: + dependencies: + - iceoryx_hoofs + repository: https://github.com/eclipse-iceoryx/iceoryx tag: release/rolling/iceoryx_posh/2.0.6-1 url: https://github.com/ros2-gbp/iceoryx-release.git version: 2.0.6 ifm3d_core: + dependencies: + - cv_bridge tag: release/rolling/ifm3d_core/0.18.0-10 url: https://github.com/ros2-gbp/ifm3d-release.git version: 0.18.0 image_common: - tag: release/rolling/image_common/7.0.3-1 + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - camera_calibration_parsers + - camera_info_manager + - image_transport + repository: https://github.com/ros-perception/image_common + tag: release/rolling/image_common/7.0.4-1 url: https://github.com/ros2-gbp/image_common-release.git - version: 7.0.3 + version: 7.0.4 image_geometry: + dependencies: + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_python + - ament_cmake_ros + - sensor_msgs + repository: https://github.com/ros-perception/vision_opencv tag: release/rolling/image_geometry/4.1.0-2 url: https://github.com/ros2-gbp/vision_opencv-release.git version: 4.1.0 image_pipeline: + dependencies: + - ament_cmake + - ament_cmake_lint_cmake + - ament_cmake_xmllint + - ament_lint_auto + - camera_calibration + - depth_image_proc + - image_proc + - image_publisher + - image_rotate + - image_view + - stereo_image_proc + repository: https://github.com/ros-perception/image_pipeline tag: release/rolling/image_pipeline/8.0.1-1 url: https://github.com/ros2-gbp/image_pipeline-release.git version: 8.0.1 image_proc: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + - camera_calibration_parsers + - cv_bridge + - geometry_msgs + - image_geometry + - image_transport + - rclcpp + - rclcpp_components + - rcutils + - sensor_msgs + - tf2 + - tf2_geometry_msgs + - tracetools_image_pipeline + repository: https://github.com/ros-perception/image_pipeline tag: release/rolling/image_proc/8.0.1-1 url: https://github.com/ros2-gbp/image_pipeline-release.git version: 8.0.1 image_publisher: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + - camera_info_manager + - cv_bridge + - image_transport + - rcl_interfaces + - rclcpp + - rclcpp_components + repository: https://github.com/ros-perception/image_pipeline tag: release/rolling/image_publisher/8.0.1-1 url: https://github.com/ros2-gbp/image_pipeline-release.git version: 8.0.1 image_rotate: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + - class_loader + - cv_bridge + - geometry_msgs + - image_transport + - rcl_interfaces + - rclcpp + - rclcpp_components + - sensor_msgs + - tf2 + - tf2_geometry_msgs + - tf2_ros + repository: https://github.com/ros-perception/image_pipeline tag: release/rolling/image_rotate/8.0.1-1 url: https://github.com/ros2-gbp/image_pipeline-release.git version: 8.0.1 image_tools: + dependencies: + - ament_cmake + - ament_cmake_pytest + - ament_lint_auto + - ament_lint_common + - example_interfaces + - launch + - launch_ros + - launch_testing + - launch_testing_ament_cmake + - launch_testing_ros + - rclcpp + - rclcpp_components + - rmw_implementation_cmake + - sensor_msgs + - std_msgs + repository: https://github.com/ros2/demos tag: release/rolling/image_tools/0.38.0-1 url: https://github.com/ros2-gbp/demos-release.git version: 0.38.0 image_transport: - tag: release/rolling/image_transport/7.0.3-1 + dependencies: + - ament_cmake_gen_version_h + - ament_cmake_gtest + - ament_cmake_ros + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - message_filters + - pluginlib + - rclcpp + - rclcpp_components + - rclcpp_lifecycle + - sensor_msgs + repository: https://github.com/ros-perception/image_common + tag: release/rolling/image_transport/7.0.4-1 url: https://github.com/ros2-gbp/image_common-release.git - version: 7.0.3 + version: 7.0.4 image_transport_plugins: + dependencies: + - ament_cmake + - compressed_depth_image_transport + - compressed_image_transport + - theora_image_transport + - zstd_image_transport + repository: https://github.com/ros-perception/image_transport_plugins tag: release/rolling/image_transport_plugins/7.0.1-1 url: https://github.com/ros2-gbp/image_transport_plugins-release.git version: 7.0.1 image_transport_py: - tag: release/rolling/image_transport_py/7.0.3-1 + dependencies: + - ament_cmake_python + - ament_cmake_ros + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - image_transport + - rclcpp + - rpyutils + - sensor_msgs + repository: https://github.com/ros-perception/image_common + tag: release/rolling/image_transport_py/7.0.4-1 url: https://github.com/ros2-gbp/image_common-release.git - version: 7.0.3 + version: 7.0.4 image_view: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + - camera_calibration_parsers + - cv_bridge + - image_transport + - message_filters + - rclcpp + - rclcpp_components + - rclpy + - sensor_msgs + - std_srvs + - stereo_msgs + repository: https://github.com/ros-perception/image_pipeline tag: release/rolling/image_view/8.0.1-1 url: https://github.com/ros2-gbp/image_pipeline-release.git version: 8.0.1 imu_complementary_filter: - tag: release/rolling/imu_complementary_filter/2.2.4-2 + dependencies: + - ament_cmake + - ament_cmake_gtest + - geometry_msgs + - message_filters + - rclcpp + - sensor_msgs + - std_msgs + - tf2 + - tf2_ros + repository: https://github.com/CCNYRoboticsLab/imu_tools + tag: release/rolling/imu_complementary_filter/2.2.5-1 url: https://github.com/ros2-gbp/imu_tools-release.git - version: 2.2.4 + version: 2.2.5 imu_filter_madgwick: - tag: release/rolling/imu_filter_madgwick/2.2.4-2 + dependencies: + - ament_cmake + - ament_cmake_gtest + - builtin_interfaces + - geometry_msgs + - nav_msgs + - rclcpp + - rclcpp_action + - rclcpp_lifecycle + - sensor_msgs + - tf2_geometry_msgs + - tf2_ros + - visualization_msgs + repository: https://github.com/CCNYRoboticsLab/imu_tools + tag: release/rolling/imu_filter_madgwick/2.2.5-1 url: https://github.com/ros2-gbp/imu_tools-release.git - version: 2.2.4 + version: 2.2.5 imu_pipeline: - tag: release/rolling/imu_pipeline/0.6.1-2 + dependencies: + - ament_cmake + - imu_processors + - imu_transformer + repository: https://github.com/ros-perception/imu_pipeline + tag: release/rolling/imu_pipeline/0.6.2-1 url: https://github.com/ros2-gbp/imu_pipeline-release.git - version: 0.6.1 + version: 0.6.2 imu_processors: - tag: release/rolling/imu_processors/0.6.1-2 + dependencies: + - ament_cmake + - ament_cmake_cpplint + - geometry_msgs + - nav_msgs + - rclcpp + - rclcpp_components + - sensor_msgs + - tf2_ros + repository: https://github.com/ros-perception/imu_pipeline + tag: release/rolling/imu_processors/0.6.2-1 url: https://github.com/ros2-gbp/imu_pipeline-release.git - version: 0.6.1 + version: 0.6.2 imu_sensor_broadcaster: - tag: release/rolling/imu_sensor_broadcaster/6.9.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - backward_ros + - controller_interface + - controller_manager + - generate_parameter_library + - hardware_interface + - hardware_interface_testing + - pluginlib + - rclcpp + - rclcpp_lifecycle + - realtime_tools + - ros2_control_cmake + - ros2_control_test_assets + - sensor_msgs + - tf2 + - tf2_geometry_msgs + repository: https://github.com/ros-controls/ros2_controllers + tag: release/rolling/imu_sensor_broadcaster/6.10.0-1 url: https://github.com/ros2-gbp/ros2_controllers-release.git - version: 6.9.0 + version: 6.10.0 imu_tools: - tag: release/rolling/imu_tools/2.2.4-2 + dependencies: + - ament_cmake + - imu_complementary_filter + - imu_filter_madgwick + - rviz_imu_plugin + repository: https://github.com/CCNYRoboticsLab/imu_tools + tag: release/rolling/imu_tools/2.2.5-1 url: https://github.com/ros2-gbp/imu_tools-release.git - version: 2.2.4 + version: 2.2.5 imu_transformer: - tag: release/rolling/imu_transformer/0.6.1-2 + dependencies: + - ament_cmake + - ament_cmake_gtest + - geometry_msgs + - message_filters + - rclcpp + - rclcpp_components + - sensor_msgs + - tf2_geometry_msgs + - tf2_ros + - tf2_sensor_msgs + repository: https://github.com/ros-perception/imu_pipeline + tag: release/rolling/imu_transformer/0.6.2-1 url: https://github.com/ros2-gbp/imu_pipeline-release.git - version: 0.6.1 + version: 0.6.2 +int2dds_ffi_vendor: + dependencies: + - ament_cmake + repository: https://github.com/IntellectusCorp/rmw_int2dds + tag: release/rolling/int2dds_ffi_vendor/0.1.8-1 + url: https://github.com/ros2-gbp/rmw_int2dds-release.git + version: 0.1.8 interactive_markers: - tag: release/rolling/interactive_markers/2.9.1-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_python + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - rclcpp + - rclpy + - rcutils + - rmw + - std_msgs + - tf2 + - tf2_geometry_msgs + - visualization_msgs + repository: https://github.com/ros-visualization/interactive_markers + tag: release/rolling/interactive_markers/2.9.2-1 url: https://github.com/ros2-gbp/interactive_markers-release.git - version: 2.9.1 + version: 2.9.2 intra_process_demo: + dependencies: + - ament_cmake + - ament_cmake_pytest + - ament_lint_auto + - ament_lint_common + - example_interfaces + - launch + - launch_testing + - launch_testing_ament_cmake + - launch_testing_ros + - rclcpp + - rmw_implementation_cmake + - sensor_msgs + repository: https://github.com/ros2/demos tag: release/rolling/intra_process_demo/0.38.0-1 url: https://github.com/ros2-gbp/demos-release.git version: 0.38.0 inverse_dynamics_solver: + dependencies: + - ament_cmake + - pluginlib + - rclcpp + - rosbag2_cpp + - rosbag2_storage + - rosbag2_storage_default_plugins + - sensor_msgs + - urdf + repository: https://github.com/unisa-acg/inverse-dynamics-solver tag: release/rolling/inverse_dynamics_solver/6.0.1-4 url: https://github.com/ros2-gbp/inverse_dynamics_solver-release.git version: 6.0.1 io_context: + dependencies: + - ament_cmake_auto + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - asio_cmake_module + - rclcpp + - std_msgs + - udp_msgs + repository: https://github.com/ros-drivers/transport_drivers tag: release/rolling/io_context/1.2.0-4 url: https://github.com/ros2-gbp/transport_drivers-release.git version: 1.2.0 irobot_create_msgs: + dependencies: + - action_msgs + - ament_cmake + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/iRobotEducation/irobot_create_msgs tag: release/rolling/irobot_create_msgs/2.1.0-4 url: https://github.com/ros2-gbp/irobot_create_msgs-release.git version: 2.1.0 jacro: + dependencies: + - ament_cmake + - ament_cmake_pytest + - ament_index_python + - std_msgs + repository: https://github.com/JafarAbdi/jacro tag: release/rolling/jacro/0.2.0-3 url: https://github.com/ros2-gbp/jacro-release.git version: 0.2.0 joint_limits: - tag: release/rolling/joint_limits/6.9.0-1 + dependencies: + - ament_cmake + - ament_cmake_gen_version_h + - ament_cmake_gmock + - backward_ros + - generate_parameter_library + - launch_ros + - launch_testing_ament_cmake + - pluginlib + - rclcpp + - rclcpp_lifecycle + - realtime_tools + - ros2_control_cmake + - trajectory_msgs + - urdf + repository: https://github.com/ros-controls/ros2_control + tag: release/rolling/joint_limits/6.12.0-1 url: https://github.com/ros2-gbp/ros2_control-release.git - version: 6.9.0 + version: 6.12.0 joint_state_broadcaster: - tag: release/rolling/joint_state_broadcaster/6.9.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - backward_ros + - builtin_interfaces + - controller_interface + - controller_manager + - generate_parameter_library + - hardware_interface + - hardware_interface_testing + - pluginlib + - rclcpp + - rclcpp_lifecycle + - realtime_tools + - ros2_control_cmake + - ros2_control_test_assets + - sensor_msgs + - urdf + repository: https://github.com/ros-controls/ros2_controllers + tag: release/rolling/joint_state_broadcaster/6.10.0-1 url: https://github.com/ros2-gbp/ros2_controllers-release.git - version: 6.9.0 + version: 6.10.0 joint_state_publisher: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - launch_testing + - launch_testing_ros + - rclpy + - ros2topic + - sensor_msgs + - std_msgs + repository: https://github.com/ros/joint_state_publisher tag: release/rolling/joint_state_publisher/2.4.3-1 url: https://github.com/ros2-gbp/joint_state_publisher-release.git version: 2.4.3 joint_state_publisher_gui: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - joint_state_publisher + - python_qt_binding + - rclpy + repository: https://github.com/ros/joint_state_publisher tag: release/rolling/joint_state_publisher_gui/2.4.3-1 url: https://github.com/ros2-gbp/joint_state_publisher-release.git version: 2.4.3 joint_state_topic_hardware_interface: + dependencies: + - ament_cmake + - ament_cmake_gmock + - ament_cmake_ros + - angles + - control_msgs + - controller_manager + - forward_command_controller + - hardware_interface + - joint_state_broadcaster + - joint_trajectory_controller + - launch + - launch_ros + - launch_testing + - launch_testing_ament_cmake + - rclcpp + - rclpy + - robot_state_publisher + - ros2_control_cmake + - ros2_control_test_assets + - sensor_msgs + - topic_tools + - xacro + repository: https://github.com/ros-controls/topic_based_hardware_interfaces tag: release/rolling/joint_state_topic_hardware_interface/1.1.0-1 url: https://github.com/ros2-gbp/topic_based_hardware-release.git version: 1.1.0 joint_trajectory_controller: - tag: release/rolling/joint_trajectory_controller/6.9.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - angles + - backward_ros + - control_msgs + - control_toolbox + - controller_interface + - controller_manager + - generate_parameter_library + - hardware_interface + - hardware_interface_testing + - pluginlib + - rclcpp + - rclcpp_action + - rclcpp_lifecycle + - realtime_tools + - ros2_control_cmake + - ros2_control_test_assets + - rsl + - trajectory_msgs + - urdf + repository: https://github.com/ros-controls/ros2_controllers + tag: release/rolling/joint_trajectory_controller/6.10.0-1 url: https://github.com/ros2-gbp/ros2_controllers-release.git - version: 6.9.0 + version: 6.10.0 joy: + dependencies: + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - rclcpp + - rclcpp_components + - sdl2_vendor + - sensor_msgs + repository: https://github.com/ros-drivers/joystick_drivers tag: release/rolling/joy/3.3.0-3 url: https://github.com/ros2-gbp/joystick_drivers-release.git version: 3.3.0 joy_linux: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - diagnostic_msgs + - diagnostic_updater + - rclcpp + - sensor_msgs + repository: https://github.com/ros-drivers/joystick_drivers tag: release/rolling/joy_linux/3.3.0-3 url: https://github.com/ros2-gbp/joystick_drivers-release.git version: 3.3.0 joy_teleop: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - control_msgs + - example_interfaces + - geometry_msgs + - launch_ros + - launch_testing + - rclpy + - rosidl_runtime_py + - sensor_msgs + - std_msgs + - std_srvs + - teleop_tools_msgs + - test_msgs + - trajectory_msgs + repository: https://github.com/ros-teleop/teleop_tools tag: release/rolling/joy_teleop/2.0.0-2 url: https://github.com/ros2-gbp/teleop_tools-release.git version: 2.0.0 joy_tester: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - rclpy + - sensor_msgs + repository: https://github.com/joshnewans/joy_tester tag: release/rolling/joy_tester/0.0.2-4 url: https://github.com/ros2-gbp/joy_tester-release.git version: 0.0.2 jrl_cmakemodules: + dependencies: [] + repository: https://github.com/jrl-umi3218/jrl-cmakemodules tag: release/rolling/jrl_cmakemodules/2.3.0-1 url: https://github.com/ros2-gbp/jrl_cmakemodules-release.git version: 2.3.0 kartech_linear_actuator_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - ros_environment + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/astuff/astuff_sensor_msgs tag: release/rolling/kartech_linear_actuator_msgs/4.0.0-4 url: https://github.com/ros2-gbp/astuff_sensor_msgs-release.git version: 4.0.0 kdl_inverse_dynamics_solver: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - inverse_dynamics_solver + - kdl_parser + - pluginlib + - rclcpp + - ros_testing + - ur_description + repository: https://github.com/unisa-acg/inverse-dynamics-solver tag: release/rolling/kdl_inverse_dynamics_solver/6.0.1-4 url: https://github.com/ros2-gbp/inverse_dynamics_solver-release.git version: 6.0.1 kdl_parser: + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - eigen3_cmake_module + - rcutils + - urdf + - urdfdom_headers + repository: https://github.com/ros/kdl_parser tag: release/rolling/kdl_parser/3.1.0-1 url: https://github.com/ros2-gbp/kdl_parser-release.git version: 3.1.0 kdl_parser_py: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - python_orocos_kdl_vendor + - urdfdom_py + repository: https://github.com/ros/kdl_parser_py tag: release/rolling/kdl_parser_py/3.0.0-2 url: https://github.com/ros2-gbp/kdl_parser_py-release.git version: 3.0.0 key_teleop: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - geometry_msgs + - rclpy + repository: https://github.com/ros-teleop/teleop_tools tag: release/rolling/key_teleop/2.0.0-2 url: https://github.com/ros2-gbp/teleop_tools-release.git version: 2.0.0 keyboard_handler: + dependencies: + - ament_cmake + - ament_cmake_gmock + - ament_lint_auto + - ament_lint_common + repository: https://github.com/ros-tooling/keyboard_handler tag: release/rolling/keyboard_handler/0.6.0-1 url: https://github.com/ros2-gbp/keyboard_handler-release.git version: 0.6.0 kinematics_interface: + dependencies: + - ament_cmake + - ament_cmake_gmock + - backward_ros + - pluginlib + - rclcpp + - rclcpp_lifecycle + - ros2_control_cmake + - ros2_control_test_assets + repository: https://github.com/ros-controls/kinematics_interface tag: release/rolling/kinematics_interface/2.4.2-1 url: https://github.com/ros2-gbp/kinematics_interface-release.git version: 2.4.2 kinematics_interface_kdl: + dependencies: + - ament_cmake + - ament_cmake_gmock + - backward_ros + - eigen3_cmake_module + - kdl_parser + - kinematics_interface + - pluginlib + - ros2_control_cmake + - tf2_eigen_kdl + repository: https://github.com/ros-controls/kinematics_interface tag: release/rolling/kinematics_interface_kdl/2.4.2-1 url: https://github.com/ros2-gbp/kinematics_interface-release.git version: 2.4.2 kinematics_interface_pinocchio: + dependencies: + - ament_cmake + - ament_cmake_gmock + - eigen3_cmake_module + - kinematics_interface + - pinocchio + - pluginlib + - ros2_control_cmake + - ros2_control_test_assets + repository: https://github.com/ros-controls/kinematics_interface tag: release/rolling/kinematics_interface_pinocchio/2.4.2-1 url: https://github.com/ros2-gbp/kinematics_interface-release.git version: 2.4.2 kinova_gen3_6dof_robotiq_2f_85_moveit_config: + dependencies: + - ament_cmake + - controller_manager + - joint_state_publisher + - joint_state_publisher_gui + - joint_trajectory_controller + - kortex_description + - moveit_configs_utils + - moveit_kinematics + - moveit_planners + - moveit_ros_move_group + - moveit_ros_visualization + - moveit_ros_warehouse + - moveit_setup_assistant + - moveit_simple_controller_manager + - picknik_reset_fault_controller + - picknik_twist_controller + - robot_state_publisher + - rviz2 + - rviz_common + - rviz_default_plugins + - tf2_ros + - xacro + repository: https://github.com/Kinovarobotics/ros2_kortex tag: release/rolling/kinova_gen3_6dof_robotiq_2f_85_moveit_config/0.2.5-2 url: https://github.com/ros2-gbp/ros2_kortex-release.git version: 0.2.5 kinova_gen3_7dof_robotiq_2f_85_moveit_config: + dependencies: + - ament_cmake + - controller_manager + - joint_state_publisher + - joint_state_publisher_gui + - joint_trajectory_controller + - kortex_description + - moveit_configs_utils + - moveit_kinematics + - moveit_planners + - moveit_ros_move_group + - moveit_ros_visualization + - moveit_ros_warehouse + - moveit_setup_assistant + - moveit_simple_controller_manager + - picknik_reset_fault_controller + - picknik_twist_controller + - robot_state_publisher + - rviz2 + - rviz_common + - rviz_default_plugins + - tf2_ros + - xacro + repository: https://github.com/Kinovarobotics/ros2_kortex tag: release/rolling/kinova_gen3_7dof_robotiq_2f_85_moveit_config/0.2.5-2 url: https://github.com/ros2-gbp/ros2_kortex-release.git version: 0.2.5 kinova_gen3_lite_moveit_config: + dependencies: + - ament_cmake + - controller_manager + - joint_state_publisher + - joint_state_publisher_gui + - kortex_description + - moveit_configs_utils + - moveit_kinematics + - moveit_planners + - moveit_ros_move_group + - moveit_ros_visualization + - moveit_ros_warehouse + - moveit_setup_assistant + - moveit_simple_controller_manager + - picknik_reset_fault_controller + - picknik_twist_controller + - robot_state_publisher + - rviz2 + - rviz_common + - rviz_default_plugins + - tf2_ros + - xacro + repository: https://github.com/Kinovarobotics/ros2_kortex tag: release/rolling/kinova_gen3_lite_moveit_config/0.2.5-2 url: https://github.com/ros2-gbp/ros2_kortex-release.git version: 0.2.5 kitti_metrics_eval: - tag: release/rolling/kitti_metrics_eval/3.0.0-2 + dependencies: + - mola_common + - mrpt_math + - mrpt_poses + repository: https://github.com/MOLAorg/mola_academic_datasets + tag: release/rolling/kitti_metrics_eval/3.1.0-1 url: https://github.com/ros2-gbp/mola_academic_datasets-release.git - version: 3.0.0 + version: 3.1.0 kobuki_core: + dependencies: + - ament_cmake_ros + - ecl_build + - ecl_command_line + - ecl_config + - ecl_console + - ecl_converters + - ecl_devices + - ecl_geometry + - ecl_mobile_robot + - ecl_sigslots + - ecl_threads + - ecl_time + repository: https://github.com/kobuki-base/kobuki_core tag: release/rolling/kobuki_core/1.4.0-4 url: https://github.com/ros2-gbp/kobuki_core-release.git version: 1.4.0 kobuki_ros_interfaces: + dependencies: + - action_msgs + - ament_cmake + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/kobuki-base/kobuki_ros_interfaces tag: release/rolling/kobuki_ros_interfaces/1.0.0-5 url: https://github.com/ros2-gbp/kobuki_ros_interfaces-release.git version: 1.0.0 kobuki_velocity_smoother: + dependencies: + - ament_cmake_cppcheck + - ament_cmake_cpplint + - ament_cmake_flake8 + - ament_cmake_lint_cmake + - ament_cmake_pep257 + - ament_cmake_ros + - ament_cmake_uncrustify + - ament_cmake_xmllint + - ament_lint_auto + - ecl_build + - geometry_msgs + - launch_testing + - launch_testing_ament_cmake + - launch_testing_ros + - nav_msgs + - rcl_interfaces + - rclcpp + - rclcpp_components + - ros2test + repository: https://github.com/kobuki-base/kobuki_velocity_smoother tag: release/rolling/kobuki_velocity_smoother/0.15.1-2 url: https://github.com/ros2-gbp/kobuki_velocity_smoother-release.git version: 0.15.1 kompass: + dependencies: + - automatika_ros_sugar + - kompass_interfaces + repository: https://github.com/automatika-robotics/kompass tag: release/rolling/kompass/0.6.0-1 url: https://github.com/ros2-gbp/kompass-release.git version: 0.6.0 kompass_interfaces: + dependencies: + - action_msgs + - ament_cmake + - builtin_interfaces + - geometry_msgs + - nav_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/automatika-robotics/kompass tag: release/rolling/kompass_interfaces/0.6.0-1 url: https://github.com/ros2-gbp/kompass-release.git version: 0.6.0 kortex_api: + dependencies: + - ament_cmake + repository: https://github.com/Kinovarobotics/ros2_kortex tag: release/rolling/kortex_api/0.2.5-2 url: https://github.com/ros2-gbp/ros2_kortex-release.git version: 0.2.5 kortex_bringup: + dependencies: + - ament_cmake + - ament_cmake_python + - controller_manager + - joint_state_broadcaster + - joint_state_publisher + - joint_trajectory_controller + - kortex_description + - kortex_driver + - launch + - launch_ros + - parallel_gripper_controller + - rclpy + - robotiq_description + - ros_gz_bridge + - ros_gz_sim + - rviz2 + - urdf + - xacro + repository: https://github.com/Kinovarobotics/ros2_kortex tag: release/rolling/kortex_bringup/0.2.5-2 url: https://github.com/ros2-gbp/ros2_kortex-release.git version: 0.2.5 kortex_description: + dependencies: + - ament_cmake + - gz_ros2_control + - joint_state_publisher + - joint_state_publisher_gui + - joint_trajectory_controller + - parallel_gripper_controller + - picknik_reset_fault_controller + - picknik_twist_controller + - robot_state_publisher + - robotiq_description + - rviz2 + repository: https://github.com/Kinovarobotics/ros2_kortex tag: release/rolling/kortex_description/0.2.5-2 url: https://github.com/ros2-gbp/ros2_kortex-release.git version: 0.2.5 kortex_driver: + dependencies: + - ament_cmake + - hardware_interface + - kortex_api + - pluginlib + - rclcpp + repository: https://github.com/Kinovarobotics/ros2_kortex tag: release/rolling/kortex_driver/0.2.5-2 url: https://github.com/ros2-gbp/ros2_kortex-release.git version: 0.2.5 lanelet2: + dependencies: + - ament_cmake_core + - lanelet2_core + - lanelet2_examples + - lanelet2_io + - lanelet2_maps + - lanelet2_matching + - lanelet2_projection + - lanelet2_python + - lanelet2_routing + - lanelet2_traffic_rules + - lanelet2_validation + - ros_environment + repository: https://github.com/fzi-forschungszentrum-informatik/lanelet2 tag: release/rolling/lanelet2/1.2.1-7 url: https://github.com/ros2-gbp/lanelet2-release.git version: 1.2.1 lanelet2_core: + dependencies: + - ament_cmake_core + - mrt_cmake_modules + repository: https://github.com/fzi-forschungszentrum-informatik/lanelet2 tag: release/rolling/lanelet2_core/1.2.1-7 url: https://github.com/ros2-gbp/lanelet2-release.git version: 1.2.1 lanelet2_examples: + dependencies: + - ament_cmake_core + - lanelet2_core + - lanelet2_io + - lanelet2_matching + - lanelet2_projection + - lanelet2_python + - lanelet2_routing + - lanelet2_traffic_rules + - mrt_cmake_modules + - ros2cli + repository: https://github.com/fzi-forschungszentrum-informatik/lanelet2 tag: release/rolling/lanelet2_examples/1.2.1-7 url: https://github.com/ros2-gbp/lanelet2-release.git version: 1.2.1 lanelet2_io: + dependencies: + - ament_cmake_core + - lanelet2_core + - mrt_cmake_modules + repository: https://github.com/fzi-forschungszentrum-informatik/lanelet2 tag: release/rolling/lanelet2_io/1.2.1-7 url: https://github.com/ros2-gbp/lanelet2-release.git version: 1.2.1 lanelet2_maps: + dependencies: + - ament_cmake_core + - lanelet2_core + - mrt_cmake_modules + repository: https://github.com/fzi-forschungszentrum-informatik/lanelet2 tag: release/rolling/lanelet2_maps/1.2.1-7 url: https://github.com/ros2-gbp/lanelet2-release.git version: 1.2.1 lanelet2_matching: + dependencies: + - ament_cmake_core + - lanelet2_core + - lanelet2_io + - lanelet2_maps + - lanelet2_projection + - lanelet2_traffic_rules + - mrt_cmake_modules + repository: https://github.com/fzi-forschungszentrum-informatik/lanelet2 tag: release/rolling/lanelet2_matching/1.2.1-7 url: https://github.com/ros2-gbp/lanelet2-release.git version: 1.2.1 lanelet2_projection: + dependencies: + - ament_cmake_core + - lanelet2_io + - mrt_cmake_modules + repository: https://github.com/fzi-forschungszentrum-informatik/lanelet2 tag: release/rolling/lanelet2_projection/1.2.1-7 url: https://github.com/ros2-gbp/lanelet2-release.git version: 1.2.1 lanelet2_python: + dependencies: + - ament_cmake_core + - lanelet2_core + - lanelet2_io + - lanelet2_matching + - lanelet2_projection + - lanelet2_routing + - lanelet2_traffic_rules + - mrt_cmake_modules + repository: https://github.com/fzi-forschungszentrum-informatik/lanelet2 tag: release/rolling/lanelet2_python/1.2.1-7 url: https://github.com/ros2-gbp/lanelet2-release.git version: 1.2.1 lanelet2_routing: + dependencies: + - ament_cmake_core + - lanelet2_core + - lanelet2_traffic_rules + - mrt_cmake_modules + repository: https://github.com/fzi-forschungszentrum-informatik/lanelet2 tag: release/rolling/lanelet2_routing/1.2.1-7 url: https://github.com/ros2-gbp/lanelet2-release.git version: 1.2.1 lanelet2_traffic_rules: + dependencies: + - ament_cmake_core + - lanelet2_core + - mrt_cmake_modules + repository: https://github.com/fzi-forschungszentrum-informatik/lanelet2 tag: release/rolling/lanelet2_traffic_rules/1.2.1-7 url: https://github.com/ros2-gbp/lanelet2-release.git version: 1.2.1 lanelet2_validation: + dependencies: + - ament_cmake_core + - lanelet2_core + - lanelet2_io + - lanelet2_maps + - lanelet2_projection + - lanelet2_routing + - lanelet2_traffic_rules + - mrt_cmake_modules + repository: https://github.com/fzi-forschungszentrum-informatik/lanelet2 tag: release/rolling/lanelet2_validation/1.2.1-7 url: https://github.com/ros2-gbp/lanelet2-release.git version: 1.2.1 laser_filters: - tag: release/rolling/laser_filters/2.3.2-2 + dependencies: + - ament_cmake_auto + - ament_cmake_gtest + - angles + - diagnostic_msgs + - diagnostic_updater + - filters + - laser_geometry + - launch_testing_ament_cmake + - message_filters + - pluginlib + - rclcpp + - rclcpp_components + - rclcpp_lifecycle + - sensor_msgs + - tf2 + - tf2_geometry_msgs + - tf2_kdl + - tf2_ros + repository: https://github.com/ros-perception/laser_filters + tag: release/rolling/laser_filters/2.3.3-1 url: https://github.com/ros2-gbp/laser_filters-release.git - version: 2.3.2 + version: 2.3.3 laser_geometry: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_python + - ament_lint_auto + - ament_lint_common + - eigen3_cmake_module + - rclcpp + - rclpy + - sensor_msgs + - sensor_msgs_py + - tf2 + - tf2_geometry_msgs + repository: https://github.com/ros-perception/laser_geometry tag: release/rolling/laser_geometry/3.0.1-1 url: https://github.com/ros2-gbp/laser_geometry-release.git version: 3.0.1 laser_proc: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - class_loader + - rclcpp + - rclcpp_components + - sensor_msgs + repository: https://github.com/ros-perception/laser_proc tag: release/rolling/laser_proc/1.0.3-2 url: https://github.com/ros2-gbp/laser_proc-release.git version: 1.0.3 laser_segmentation: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - rclcpp + - rclcpp_components + - rclcpp_lifecycle + - sensor_msgs + - slg_msgs + - visualization_msgs + repository: https://github.com/ajtudela/laser_segmentation tag: release/rolling/laser_segmentation/3.0.2-2 url: https://github.com/ros2-gbp/laser_segmentation-release.git version: 3.0.2 launch: - tag: release/rolling/launch/3.10.0-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_index_python + - ament_mypy + - ament_pep257 + - ament_xmllint + repository: https://github.com/ros2/launch + tag: release/rolling/launch/3.10.2-1 url: https://github.com/ros2-gbp/launch-release.git - version: 3.10.0 + version: 3.10.2 launch_frontend_py: + dependencies: + - ament_cmake + - ament_cmake_mypy + - ament_cmake_pytest + - ament_cmake_python + - ament_copyright + - ament_lint_auto + - ament_lint_common + - launch + repository: https://github.com/ros-tooling/launch_frontend_py tag: release/rolling/launch_frontend_py/0.1.0-3 url: https://github.com/ros2-gbp/launch_frontend_py-release.git version: 0.1.0 launch_pal: + dependencies: + - ament_copyright + - ament_flake8 + - ament_index_python + - ament_pep257 + - launch + - launch_ros + repository: https://github.com/pal-robotics/launch_pal tag: release/rolling/launch_pal/0.20.3-2 url: https://github.com/ros2-gbp/launch_pal-release.git version: 0.20.3 launch_param_builder: + dependencies: + - ament_copyright + - ament_index_python + - rclpy + - xacro + repository: https://github.com/PickNikRobotics/launch_param_builder tag: release/rolling/launch_param_builder/0.1.1-4 url: https://github.com/ros2-gbp/launch_param_builder-release.git version: 0.1.1 launch_pytest: - tag: release/rolling/launch_pytest/3.10.0-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_index_python + - ament_pep257 + - ament_xmllint + - launch + - launch_testing + repository: https://github.com/ros2/launch + tag: release/rolling/launch_pytest/3.10.2-1 url: https://github.com/ros2-gbp/launch-release.git - version: 3.10.0 + version: 3.10.2 launch_ros: - tag: release/rolling/launch_ros/0.30.1-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_index_python + - ament_pep257 + - ament_xmllint + - composition_interfaces + - launch + - lifecycle_msgs + - rclpy + repository: https://github.com/ros2/launch_ros + tag: release/rolling/launch_ros/0.30.2-1 url: https://github.com/ros2-gbp/launch_ros-release.git - version: 0.30.1 -launch_system_modes: - tag: release/rolling/launch_system_modes/0.9.0-6 - url: https://github.com/ros2-gbp/system_modes-release.git - version: 0.9.0 + version: 0.30.2 launch_testing: - tag: release/rolling/launch_testing/3.10.0-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_index_python + - ament_pep257 + - ament_xmllint + - launch + - launch_xml + - launch_yaml + repository: https://github.com/ros2/launch + tag: release/rolling/launch_testing/3.10.2-1 url: https://github.com/ros2-gbp/launch-release.git - version: 3.10.0 + version: 3.10.2 launch_testing_ament_cmake: - tag: release/rolling/launch_testing_ament_cmake/3.10.0-1 + dependencies: + - ament_cmake + - ament_cmake_copyright + - ament_cmake_test + - launch_testing + repository: https://github.com/ros2/launch + tag: release/rolling/launch_testing_ament_cmake/3.10.2-1 url: https://github.com/ros2-gbp/launch-release.git - version: 3.10.0 + version: 3.10.2 launch_testing_examples: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - demo_nodes_cpp + - launch + - launch_ros + - launch_testing + - launch_testing_ros + - rcl_interfaces + - rclpy + - ros2bag + - std_msgs + repository: https://github.com/ros2/examples tag: release/rolling/launch_testing_examples/0.22.0-1 url: https://github.com/ros2-gbp/examples-release.git version: 0.22.0 launch_testing_ros: - tag: release/rolling/launch_testing_ros/0.30.1-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_index_python + - ament_pep257 + - ament_xmllint + - launch_ros + - launch_testing + - rclpy + - rmw_test_fixture_implementation + - std_msgs + repository: https://github.com/ros2/launch_ros + tag: release/rolling/launch_testing_ros/0.30.2-1 url: https://github.com/ros2-gbp/launch_ros-release.git - version: 0.30.1 + version: 0.30.2 launch_xml: - tag: release/rolling/launch_xml/3.10.0-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - launch + repository: https://github.com/ros2/launch + tag: release/rolling/launch_xml/3.10.2-1 url: https://github.com/ros2-gbp/launch-release.git - version: 3.10.0 + version: 3.10.2 launch_yaml: - tag: release/rolling/launch_yaml/3.10.0-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - launch + repository: https://github.com/ros2/launch + tag: release/rolling/launch_yaml/3.10.2-1 url: https://github.com/ros2-gbp/launch-release.git - version: 3.10.0 + version: 3.10.2 ld08_driver: + dependencies: + - ament_cmake + - rclcpp + - sensor_msgs + repository: https://github.com/ROBOTIS-GIT/ld08_driver tag: release/rolling/ld08_driver/1.1.4-2 url: https://github.com/ros2-gbp/ld08_driver-release.git version: 1.1.4 lely_core_libraries: + dependencies: + - ament_cmake + repository: https://github.com/ros-industrial/ros2_canopen tag: release/rolling/lely_core_libraries/0.3.4-1 url: https://github.com/ros2-gbp/ros2_canopen-release.git version: 0.3.4 leo: + dependencies: + - ament_cmake + - leo_description + - leo_msgs + - leo_teleop + repository: https://github.com/LeoRover/leo_common-ros2 tag: release/rolling/leo/3.2.0-2 url: https://github.com/ros2-gbp/leo_common-release.git version: 3.2.0 leo_bringup: + dependencies: + - ament_cmake + - ament_cmake_black + - ament_cmake_lint_cmake + - ament_cmake_xmllint + - ament_index_python + - ament_lint_auto + - geometry_msgs + - image_proc + - launch + - launch_ros + - leo_description + - leo_filters + - leo_fw + - leo_msgs + - rclpy + - robot_state_publisher + - rosapi + - rosbridge_server + - sensor_msgs + - tf_transformations + - web_video_server + - xacro + repository: https://github.com/LeoRover/leo_robot-ros2 tag: release/rolling/leo_bringup/2.6.1-1 url: https://github.com/ros2-gbp/leo_robot-release.git version: 2.6.1 leo_description: + dependencies: + - ament_cmake + - ament_cmake_lint_cmake + - ament_cmake_xmllint + - ament_lint_auto + - robot_state_publisher + - xacro + repository: https://github.com/LeoRover/leo_common-ros2 tag: release/rolling/leo_description/3.2.0-2 url: https://github.com/ros2-gbp/leo_common-release.git version: 3.2.0 leo_desktop: + dependencies: + - ament_cmake + - leo + - leo_viz + repository: https://github.com/LeoRover/leo_desktop-ros2 tag: release/rolling/leo_desktop/3.0.0-3 url: https://github.com/ros2-gbp/leo_desktop-release.git version: 3.0.0 leo_filters: + dependencies: + - ament_cmake + - ament_cmake_copyright + - ament_cmake_lint_cmake + - ament_cmake_uncrustify + - ament_cmake_xmllint + - ament_lint_auto + - generate_parameter_library + - geometry_msgs + - nav_msgs + - rclcpp + - rclcpp_components + - sensor_msgs + - std_srvs + - tf2 + - tf2_ros + repository: https://github.com/LeoRover/leo_robot-ros2 tag: release/rolling/leo_filters/2.6.1-1 url: https://github.com/ros2-gbp/leo_robot-release.git version: 2.6.1 leo_fw: + dependencies: + - ament_cmake + - ament_cmake_black + - ament_cmake_copyright + - ament_cmake_lint_cmake + - ament_cmake_mypy + - ament_cmake_pep257 + - ament_cmake_python + - ament_cmake_uncrustify + - ament_cmake_xmllint + - ament_index_python + - ament_lint_auto + - geometry_msgs + - leo_msgs + - nav_msgs + - rcl_interfaces + - rclcpp + - rclcpp_components + - rclpy + - ros2cli + - sensor_msgs + - std_msgs + - std_srvs + repository: https://github.com/LeoRover/leo_robot-ros2 tag: release/rolling/leo_fw/2.6.1-1 url: https://github.com/ros2-gbp/leo_robot-release.git version: 2.6.1 leo_gz_bringup: + dependencies: + - ament_cmake + - ament_cmake_black + - ament_cmake_copyright + - ament_cmake_lint_cmake + - ament_cmake_mypy + - ament_cmake_xmllint + - ament_index_python + - ament_lint_auto + - launch + - launch_ros + - leo_description + - leo_gz_plugins + - leo_gz_worlds + - robot_state_publisher + - ros_gz_bridge + - ros_gz_image + - ros_gz_sim + - xacro + repository: https://github.com/LeoRover/leo_simulator-ros2 tag: release/rolling/leo_gz_bringup/2.0.2-2 url: https://github.com/ros2-gbp/leo_simulator-release.git version: 2.0.2 leo_gz_plugins: + dependencies: + - ament_cmake + - ament_cmake_copyright + - ament_cmake_cpplint + - ament_cmake_lint_cmake + - ament_cmake_uncrustify + - ament_cmake_xmllint + - ament_lint_auto + - gz_plugin_vendor + - gz_sim_vendor + repository: https://github.com/LeoRover/leo_simulator-ros2 tag: release/rolling/leo_gz_plugins/2.0.2-2 url: https://github.com/ros2-gbp/leo_simulator-release.git version: 2.0.2 leo_gz_worlds: + dependencies: + - ament_cmake + - ament_cmake_copyright + - ament_cmake_lint_cmake + - ament_cmake_xmllint + - ament_lint_auto + repository: https://github.com/LeoRover/leo_simulator-ros2 tag: release/rolling/leo_gz_worlds/2.0.2-2 url: https://github.com/ros2-gbp/leo_simulator-release.git version: 2.0.2 leo_msgs: + dependencies: + - ament_cmake + - ament_cmake_lint_cmake + - ament_cmake_xmllint + - ament_lint_auto + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/LeoRover/leo_common-ros2 tag: release/rolling/leo_msgs/3.2.0-2 url: https://github.com/ros2-gbp/leo_common-release.git version: 3.2.0 leo_robot: + dependencies: + - ament_cmake + - leo + - leo_bringup + - leo_filters + - leo_fw + repository: https://github.com/LeoRover/leo_robot-ros2 tag: release/rolling/leo_robot/2.6.1-1 url: https://github.com/ros2-gbp/leo_robot-release.git version: 2.6.1 leo_simulator: + dependencies: + - ament_cmake + - ament_cmake_copyright + - ament_cmake_lint_cmake + - ament_cmake_xmllint + - ament_lint_auto + - leo_gz_bringup + - leo_gz_plugins + - leo_gz_worlds + repository: https://github.com/LeoRover/leo_simulator-ros2 tag: release/rolling/leo_simulator/2.0.2-2 url: https://github.com/ros2-gbp/leo_simulator-release.git version: 2.0.2 leo_teleop: + dependencies: + - ament_cmake + - ament_cmake_lint_cmake + - ament_cmake_xmllint + - ament_lint_auto + - joy_linux + - teleop_twist_joy + - teleop_twist_keyboard + repository: https://github.com/LeoRover/leo_common-ros2 tag: release/rolling/leo_teleop/3.2.0-2 url: https://github.com/ros2-gbp/leo_common-release.git version: 3.2.0 leo_viz: + dependencies: + - ament_cmake + - ament_cmake_lint_cmake + - ament_cmake_xmllint + - ament_lint_auto + - joint_state_publisher + - joint_state_publisher_gui + - leo_description + - rviz2 + repository: https://github.com/LeoRover/leo_desktop-ros2 tag: release/rolling/leo_viz/3.0.0-3 url: https://github.com/ros2-gbp/leo_desktop-release.git version: 3.0.0 lgsvl_msgs: + dependencies: + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - ros_environment + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + - std_msgs + repository: https://github.com/lgsvl/lgsvl_msgs tag: release/rolling/lgsvl_msgs/0.0.4-5 url: https://github.com/ros2-gbp/lgsvl_msgs-release.git version: 0.0.4 libcaer_driver: + dependencies: + - ament_cmake + - ament_cmake_auto + - ament_cmake_clang_format + - ament_cmake_copyright + - ament_cmake_cppcheck + - ament_cmake_cpplint + - ament_cmake_flake8 + - ament_cmake_lint_cmake + - ament_cmake_ros + - ament_cmake_xmllint + - camera_info_manager + - event_camera_msgs + - image_transport + - libcaer_vendor + - rclcpp + - rclcpp_components + - ros_environment + - sensor_msgs + - std_srvs + repository: https://github.com/ros-event-camera/libcaer_driver tag: release/rolling/libcaer_driver/1.5.6-1 url: https://github.com/ros2-gbp/libcaer_driver-release.git version: 1.5.6 libcaer_vendor: + dependencies: + - ament_cmake + - ament_cmake_vendor_package + repository: https://github.com/ros-event-camera/libcaer_vendor tag: release/rolling/libcaer_vendor/2.0.0-2 url: https://github.com/ros2-gbp/libcaer_vendor-release.git version: 2.0.0 libcamera: + dependencies: [] + repository: https://git.libcamera.org/libcamera/libcamera tag: release/rolling/libcamera/0.7.2-1 url: https://github.com/ros2-gbp/libcamera-release.git version: 0.7.2 libg2o: + dependencies: + - ament_cmake tag: release/rolling/libg2o/2020.5.29-6 url: https://github.com/ros2-gbp/libg2o-release.git version: 2020.5.29 libmavconn: - tag: release/rolling/libmavconn/2.15.1-1 + dependencies: + - ament_cmake + - ament_cmake_google_benchmark + - ament_cmake_gtest + - ament_cmake_pytest + - ament_lint_auto + - ament_lint_common + - mavlink + repository: https://github.com/mavlink/mavros + tag: release/rolling/libmavconn/2.16.0-1 url: https://github.com/ros2-gbp/mavros-release.git - version: 2.15.1 + version: 2.16.0 libphidget22: + dependencies: + - ament_cmake + repository: https://github.com/ros-drivers/phidgets_drivers tag: release/rolling/libphidget22/2.4.0-2 url: https://github.com/ros2-gbp/phidgets_drivers-release.git version: 2.4.0 librealsense2: - tag: release/rolling/librealsense2/2.58.3-2 + dependencies: [] + repository: https://github.com/IntelRealSense/librealsense + tag: release/rolling/librealsense2/2.59.1-1 url: https://github.com/ros2-gbp/librealsense2-release.git - version: 2.58.3 + version: 2.59.1 libstatistics_collector: + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - performance_test_fixture + - rcl + - rcpputils + - rcutils + - rmw + - rosidl_default_generators + - rosidl_default_runtime + - statistics_msgs + - std_msgs + repository: https://github.com/ros-tooling/libstatistics_collector tag: release/rolling/libstatistics_collector/3.0.0-1 url: https://github.com/ros2-gbp/libstatistics_collector-release.git version: 3.0.0 libtorch_vendor: + dependencies: + - ament_cmake + - ament_cmake_vendor_package + - ament_cmake_xmllint + - ament_lint_auto + - ament_lint_common + repository: https://github.com/ros2/rosidl_buffer_backends tag: release/rolling/libtorch_vendor/0.1.2-1 url: https://github.com/ros2-gbp/rosidl_buffer_backends-release.git version: 0.1.2 libyaml_vendor: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - performance_test_fixture + repository: https://github.com/ros2/libyaml_vendor tag: release/rolling/libyaml_vendor/1.9.0-1 url: https://github.com/ros2-gbp/libyaml_vendor-release.git version: 1.9.0 lifecycle: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - example_interfaces + - lifecycle_msgs + - rclcpp + - rclcpp_lifecycle + - ros_testing + repository: https://github.com/ros2/demos tag: release/rolling/lifecycle/0.38.0-1 url: https://github.com/ros2-gbp/demos-release.git version: 0.38.0 lifecycle_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/ros2/rcl_interfaces tag: release/rolling/lifecycle_msgs/2.5.1-1 url: https://github.com/ros2-gbp/rcl_interfaces-release.git version: 2.5.1 lifecycle_py: + dependencies: + - ament_copyright + - ament_flake8 + - ament_mypy + - ament_pep257 + - ament_xmllint + - example_interfaces + - lifecycle + - lifecycle_msgs + - rclpy + - ros_testing + repository: https://github.com/ros2/demos tag: release/rolling/lifecycle_py/0.38.0-1 url: https://github.com/ros2-gbp/demos-release.git version: 0.38.0 linear_feedback_controller: + dependencies: + - ament_cmake_auto + - ament_cmake_python + - ament_lint_auto + - control_toolbox + - controller_interface + - generate_parameter_library + - gmock_vendor + - gtest_vendor + - hardware_interface + - jrl_cmakemodules + - linear_feedback_controller_msgs + - message_filters + - nav_msgs + - pal_statistics + - pinocchio + - pluginlib + - rcl + - rclcpp + - rclcpp_lifecycle + - realtime_tools + - rosidl_dynamic_typesupport + - sensor_msgs + repository: https://github.com/loco-3d/linear-feedback-controller tag: release/rolling/linear_feedback_controller/4.0.4-1 url: https://github.com/ros2-gbp/linear-feedback-controller-release.git version: 4.0.4 linear_feedback_controller_msgs: - tag: release/rolling/linear_feedback_controller_msgs/1.2.2-2 + dependencies: + - ament_cmake + - ament_cmake_cppcheck + - ament_cmake_cpplint + - ament_cmake_flake8 + - ament_cmake_gtest + - ament_cmake_pep257 + - ament_cmake_pytest + - ament_cmake_uncrustify + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - jrl_cmakemodules + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + - std_msgs + - tf2_eigen + repository: https://github.com/loco-3d/linear-feedback-controller-msgs + tag: release/rolling/linear_feedback_controller_msgs/1.3.0-1 url: https://github.com/ros2-gbp/linear-feedback-controller-msgs-release.git - version: 1.2.2 + version: 1.3.0 linux_isolate_process: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + repository: https://github.com/adityapande-1995/linux_isolate_process tag: release/rolling/linux_isolate_process/0.0.2-3 url: https://github.com/ros2-gbp/linux_isolate_process-release.git version: 0.0.2 live555_vendor: + dependencies: [] + repository: https://github.com/fkie/live555_vendor tag: release/rolling/live555_vendor/0.20251106.0-2 url: https://github.com/ros2-gbp/live555_vendor-release.git version: 0.20251106.0 log_view: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rcl_interfaces + - rclcpp + - rosbag2_cpp + - rosgraph_msgs + - yaml_cpp_vendor + repository: https://github.com/hatchbed/log_view tag: release/rolling/log_view/0.5.0-1 url: https://github.com/ros2-gbp/log_view-release.git version: 0.5.0 logging_demo: + dependencies: + - ament_cmake + - ament_cmake_pytest + - ament_lint_auto + - ament_lint_common + - example_interfaces + - launch + - launch_testing + - launch_testing_ament_cmake + - launch_testing_ros + - rclcpp + - rclcpp_components + - rcutils + - rmw_implementation_cmake + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/ros2/demos tag: release/rolling/logging_demo/0.38.0-1 url: https://github.com/ros2-gbp/demos-release.git version: 0.38.0 lttngpy: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_pytest + - ament_lint_auto + - ament_lint_common + - rpyutils + repository: https://github.com/ros2/ros2_tracing tag: release/rolling/lttngpy/9.0.0-1 url: https://github.com/ros2-gbp/ros2_tracing-release.git version: 9.0.0 lz4_cmake_module: - tag: release/rolling/lz4_cmake_module/0.34.0-1 + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + repository: https://github.com/ros2/rosbag2 + tag: release/rolling/lz4_cmake_module/0.35.0-1 url: https://github.com/ros2-gbp/rosbag2-release.git - version: 0.34.0 + version: 0.35.0 magic_enum: + dependencies: [] + repository: https://github.com/Neargye/magic_enum tag: release/rolling/magic_enum/0.9.8-1 url: https://github.com/ros2-gbp/magic_enum-release.git version: 0.9.8 magnetic_model: + dependencies: + - ament_cmake + - ament_cmake_gen_version_h + - ament_cmake_gtest + - angles + - cras_cpp_common + - cras_lint + - geometry_msgs + - rclcpp + - sensor_msgs + repository: https://github.com/ctu-vras/compass tag: release/rolling/magnetic_model/4.0.1-1 url: https://github.com/ros2-gbp/compass-release.git version: 4.0.1 magnetometer_broadcaster: - tag: release/rolling/magnetometer_broadcaster/6.9.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - backward_ros + - controller_interface + - controller_manager + - generate_parameter_library + - hardware_interface + - pluginlib + - rclcpp + - rclcpp_lifecycle + - realtime_tools + - ros2_control_cmake + - ros2_control_test_assets + - sensor_msgs + repository: https://github.com/ros-controls/ros2_controllers + tag: release/rolling/magnetometer_broadcaster/6.10.0-1 url: https://github.com/ros2-gbp/ros2_controllers-release.git - version: 6.9.0 + version: 6.10.0 magnetometer_compass: + dependencies: + - ament_cmake + - ament_cmake_gen_version_h + - ament_cmake_gtest + - ament_cmake_ros + - angles + - builtin_interfaces + - compass_conversions + - compass_interfaces + - cras_cpp_common + - cras_lint + - geometry_msgs + - magnetometer_pipeline + - message_filters + - pluginlib + - rclcpp + - rclcpp_components + - sensor_msgs + - std_msgs + - tf2 + - tf2_geometry_msgs + - tf2_ros + - tf2_sensor_msgs + repository: https://github.com/ctu-vras/compass tag: release/rolling/magnetometer_compass/4.0.1-1 url: https://github.com/ros2-gbp/compass-release.git version: 4.0.1 magnetometer_pipeline: + dependencies: + - ament_cmake + - ament_cmake_gen_version_h + - ament_cmake_gtest + - ament_cmake_python + - ament_cmake_ros + - cras_cpp_common + - cras_lint + - message_filters + - pluginlib + - rclcpp + - rclcpp_components + - rclpy + - sensor_msgs + - std_msgs + - std_srvs + - tf2_eigen + repository: https://github.com/ctu-vras/compass tag: release/rolling/magnetometer_pipeline/4.0.1-1 url: https://github.com/ros2-gbp/compass-release.git version: 4.0.1 map_msgs: + dependencies: + - ament_cmake + - ament_lint_common + - nav_msgs + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + - std_msgs + repository: https://github.com/ros-planning/navigation_msgs tag: release/rolling/map_msgs/2.6.1-1 url: https://github.com/ros2-gbp/navigation_msgs-release.git version: 2.6.1 mapviz: - tag: release/rolling/mapviz/4.0.3-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - geometry_msgs + - image_transport + - mapviz_interfaces + - pluginlib + - qt_gui_cpp + - rclcpp + - rqt_gui + - rqt_gui_cpp + - std_msgs + - std_srvs + - swri_math_util + - swri_transform_util + - tf2 + - tf2_geometry_msgs + - tf2_ros + repository: https://github.com/swri-robotics/mapviz + tag: release/rolling/mapviz/4.1.2-1 url: https://github.com/ros2-gbp/mapviz-release.git - version: 4.0.3 + version: 4.1.2 mapviz_interfaces: - tag: release/rolling/mapviz_interfaces/4.0.3-1 + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - marti_common_msgs + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/swri-robotics/mapviz + tag: release/rolling/mapviz_interfaces/4.1.2-1 url: https://github.com/ros2-gbp/mapviz-release.git - version: 4.0.3 + version: 4.1.2 mapviz_plugins: - tag: release/rolling/mapviz_plugins/4.0.3-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_index_cpp + - ament_lint_auto + - ament_lint_common + - cv_bridge + - geometry_msgs + - gps_msgs + - image_transport + - map_msgs + - mapviz + - marti_common_msgs + - marti_nav_msgs + - marti_sensor_msgs + - marti_visualization_msgs + - nav_msgs + - pluginlib + - rclcpp + - rclcpp_action + - ros_environment + - sensor_msgs + - std_msgs + - stereo_msgs + - swri_image_util + - swri_math_util + - swri_route_util + - swri_transform_util + - tf2 + - tf2_geometry_msgs + - urdf + - visualization_msgs + repository: https://github.com/swri-robotics/mapviz + tag: release/rolling/mapviz_plugins/4.1.2-1 url: https://github.com/ros2-gbp/mapviz-release.git - version: 4.0.3 + version: 4.1.2 marine_acoustic_msgs: + dependencies: + - ament_cmake + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/apl-ocean-engineering/marine_msgs tag: release/rolling/marine_acoustic_msgs/2.1.0-2 url: https://github.com/ros2-gbp/marine_msgs-release.git version: 2.1.0 marine_sensor_msgs: + dependencies: + - ament_cmake + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/apl-ocean-engineering/marine_msgs tag: release/rolling/marine_sensor_msgs/2.1.0-2 url: https://github.com/ros2-gbp/marine_msgs-release.git version: 2.1.0 marker_msgs: + dependencies: + - ament_cmake + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/tuw-robotics/marker_msgs tag: release/rolling/marker_msgs/0.0.8-2 url: https://github.com/ros2-gbp/marker_msgs-release.git version: 0.0.8 marti_can_msgs: + dependencies: + - ament_cmake + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/swri-robotics/marti_messages tag: release/rolling/marti_can_msgs/1.6.1-2 url: https://github.com/ros2-gbp/marti_messages-release.git version: 1.6.1 marti_common_msgs: + dependencies: + - ament_cmake + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/swri-robotics/marti_messages tag: release/rolling/marti_common_msgs/1.6.1-2 url: https://github.com/ros2-gbp/marti_messages-release.git version: 1.6.1 marti_dbw_msgs: + dependencies: + - ament_cmake + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/swri-robotics/marti_messages tag: release/rolling/marti_dbw_msgs/1.6.1-2 url: https://github.com/ros2-gbp/marti_messages-release.git version: 1.6.1 marti_introspection_msgs: + dependencies: + - ament_cmake + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/swri-robotics/marti_messages tag: release/rolling/marti_introspection_msgs/1.6.1-2 url: https://github.com/ros2-gbp/marti_messages-release.git version: 1.6.1 marti_nav_msgs: + dependencies: + - ament_cmake + - builtin_interfaces + - geographic_msgs + - geometry_msgs + - marti_common_msgs + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + - std_msgs + repository: https://github.com/swri-robotics/marti_messages tag: release/rolling/marti_nav_msgs/1.6.1-2 url: https://github.com/ros2-gbp/marti_messages-release.git version: 1.6.1 marti_perception_msgs: + dependencies: + - ament_cmake + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + - std_msgs + repository: https://github.com/swri-robotics/marti_messages tag: release/rolling/marti_perception_msgs/1.6.1-2 url: https://github.com/ros2-gbp/marti_messages-release.git version: 1.6.1 marti_sensor_msgs: + dependencies: + - ament_cmake + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/swri-robotics/marti_messages tag: release/rolling/marti_sensor_msgs/1.6.1-2 url: https://github.com/ros2-gbp/marti_messages-release.git version: 1.6.1 marti_status_msgs: + dependencies: + - ament_cmake + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/swri-robotics/marti_messages tag: release/rolling/marti_status_msgs/1.6.1-2 url: https://github.com/ros2-gbp/marti_messages-release.git version: 1.6.1 marti_visualization_msgs: + dependencies: + - ament_cmake + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + repository: https://github.com/swri-robotics/marti_messages tag: release/rolling/marti_visualization_msgs/1.6.1-2 url: https://github.com/ros2-gbp/marti_messages-release.git version: 1.6.1 mavlink: - tag: release/rolling/mavlink/2026.8.8-1 + dependencies: + - ament_cmake + - ros_environment + tag: release/rolling/mavlink/2026.9.9-1 url: https://github.com/ros2-gbp/mavlink-gbp-release.git - version: 2026.8.8 + version: 2026.9.9 mavros: - tag: release/rolling/mavros/2.15.1-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - ament_cmake_google_benchmark + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_python + - ament_lint_auto + - ament_lint_common + - angles + - diagnostic_msgs + - diagnostic_updater + - eigen3_cmake_module + - eigen_stl_containers + - geographic_msgs + - geometry_msgs + - libmavconn + - mavlink + - mavros_msgs + - message_filters + - nav_msgs + - pluginlib + - rcl + - rclcpp + - rclcpp_components + - rclpy + - rcpputils + - rosidl_default_runtime + - sensor_msgs + - std_msgs + - std_srvs + - tf2_eigen + - tf2_ros + - trajectory_msgs + repository: https://github.com/mavlink/mavros + tag: release/rolling/mavros/2.16.0-1 url: https://github.com/ros2-gbp/mavros-release.git - version: 2.15.1 + version: 2.16.0 mavros_examples: - tag: release/rolling/mavros_examples/2.15.1-1 + dependencies: + - ament_cmake + - ament_cmake_python + - ament_lint_auto + - ament_lint_common + - eigen3_cmake_module + - geometry_msgs + - mavros + - mavros_msgs + - rclpy + - sensor_msgs + - std_msgs + - std_srvs + - trajectory_msgs + repository: https://github.com/mavlink/mavros + tag: release/rolling/mavros_examples/2.16.0-1 url: https://github.com/ros2-gbp/mavros-release.git - version: 2.15.1 + version: 2.16.0 mavros_extras: - tag: release/rolling/mavros_extras/2.15.1-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_python + - ament_lint_auto + - ament_lint_common + - angles + - diagnostic_msgs + - diagnostic_updater + - eigen3_cmake_module + - eigen_stl_containers + - geographic_msgs + - geometry_msgs + - libmavconn + - mavlink + - mavros + - mavros_msgs + - message_filters + - nav_msgs + - pluginlib + - rclcpp + - rclcpp_components + - rclpy + - rcpputils + - rosidl_default_runtime + - sensor_msgs + - std_msgs + - std_srvs + - tf2_eigen + - tf2_ros + - trajectory_msgs + - urdf + - visualization_msgs + - yaml_cpp_vendor + repository: https://github.com/mavlink/mavros + tag: release/rolling/mavros_extras/2.16.0-1 url: https://github.com/ros2-gbp/mavros-release.git - version: 2.15.1 + version: 2.16.0 mavros_msgs: - tag: release/rolling/mavros_msgs/2.15.1-1 + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - geographic_msgs + - geometry_msgs + - rcl_interfaces + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + repository: https://github.com/mavlink/mavros + tag: release/rolling/mavros_msgs/2.16.0-1 url: https://github.com/ros2-gbp/mavros-release.git - version: 2.15.1 + version: 2.16.0 mcap_vendor: - tag: release/rolling/mcap_vendor/0.34.0-1 + dependencies: + - ament_cmake + - ament_cmake_ros_core + - lz4_cmake_module + - zstd_cmake_module + repository: https://github.com/ros2/rosbag2 + tag: release/rolling/mcap_vendor/0.35.0-1 url: https://github.com/ros2-gbp/rosbag2-release.git - version: 0.34.0 + version: 0.35.0 mecanum_drive_controller: - tag: release/rolling/mecanum_drive_controller/6.9.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - backward_ros + - control_msgs + - control_toolbox + - controller_interface + - controller_manager + - generate_parameter_library + - geometry_msgs + - hardware_interface + - hardware_interface_testing + - nav_msgs + - pluginlib + - rclcpp + - rclcpp_lifecycle + - rcpputils + - realtime_tools + - ros2_control_cmake + - ros2_control_test_assets + - tf2 + - tf2_geometry_msgs + - tf2_msgs + repository: https://github.com/ros-controls/ros2_controllers + tag: release/rolling/mecanum_drive_controller/6.10.0-1 url: https://github.com/ros2-gbp/ros2_controllers-release.git - version: 6.9.0 + version: 6.10.0 menge_vendor: + dependencies: + - ament_cmake + repository: https://github.com/open-rmf/menge_vendor tag: release/rolling/menge_vendor/1.3.0-2 url: https://github.com/ros2-gbp/menge_vendor-release.git version: 1.3.0 message_filters: - tag: release/rolling/message_filters/8.0.2-1 + dependencies: + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_python + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - rclcpp + - rclcpp_lifecycle + - rclpy + - rcutils + - sensor_msgs + - std_msgs + repository: https://github.com/ros2/message_filters + tag: release/rolling/message_filters/8.0.4-1 url: https://github.com/ros2-gbp/ros2_message_filters-release.git - version: 8.0.2 + version: 8.0.4 message_tf_frame_transformer: + dependencies: + - ament_cmake + - geometry_msgs + - rclcpp + - sensor_msgs + - tf2 + - tf2_geometry_msgs + - tf2_ros + - tf2_sensor_msgs + repository: https://github.com/ika-rwth-aachen/message_tf_frame_transformer tag: release/rolling/message_tf_frame_transformer/1.1.3-3 url: https://github.com/ros2-gbp/message_tf_frame_transformer-release.git version: 1.1.3 metavision_driver: + dependencies: + - ament_cmake + - ament_cmake_auto + - ament_cmake_clang_format + - ament_cmake_copyright + - ament_cmake_cppcheck + - ament_cmake_cpplint + - ament_cmake_flake8 + - ament_cmake_lint_cmake + - ament_cmake_ros + - ament_cmake_xmllint + - event_camera_msgs + - openeb_vendor + - rclcpp + - rclcpp_components + - ros_environment + - std_srvs + repository: https://github.com/ros-event-camera/metavision_driver tag: release/rolling/metavision_driver/3.0.0-2 url: https://github.com/ros2-gbp/metavision_driver-release.git version: 3.0.0 micro_ros_diagnostic_bridge: + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - diagnostic_msgs + - micro_ros_diagnostic_msgs + - osrf_testing_tools_cpp + - rclcpp + - ros_environment + repository: https://github.com/micro-ROS/micro_ros_diagnostics tag: release/rolling/micro_ros_diagnostic_bridge/0.3.0-6 url: https://github.com/ros2-gbp/micro_ros_diagnostics-release.git version: 0.3.0 micro_ros_diagnostic_msgs: + dependencies: + - ament_cmake + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/micro-ROS/micro_ros_diagnostics tag: release/rolling/micro_ros_diagnostic_msgs/0.3.0-6 url: https://github.com/ros2-gbp/micro_ros_diagnostics-release.git version: 0.3.0 micro_ros_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/micro-ROS/micro_ros_msgs tag: release/rolling/micro_ros_msgs/1.0.0-5 url: https://github.com/ros2-gbp/micro_ros_msgs-release.git version: 1.0.0 microstrain_inertial_description: - tag: release/rolling/microstrain_inertial_description/4.9.0-1 + dependencies: + - ament_cmake + - xacro + repository: https://github.com/LORD-MicroStrain/microstrain_inertial + tag: release/rolling/microstrain_inertial_description/4.10.0-1 url: https://github.com/ros2-gbp/microstrain_inertial-release.git - version: 4.9.0 + version: 4.10.0 microstrain_inertial_driver: - tag: release/rolling/microstrain_inertial_driver/4.9.0-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_target_dependencies + - ament_cpplint + - diagnostic_aggregator + - diagnostic_updater + - geometry_msgs + - lifecycle_msgs + - microstrain_inertial_msgs + - nav_msgs + - nmea_msgs + - rclcpp_lifecycle + - ros_environment + - rosidl_default_generators + - rosidl_default_runtime + - rtcm_msgs + - sensor_msgs + - std_msgs + - std_srvs + - tf2 + - tf2_geometry_msgs + - tf2_ros + repository: https://github.com/LORD-MicroStrain/microstrain_inertial + tag: release/rolling/microstrain_inertial_driver/4.10.0-1 url: https://github.com/ros2-gbp/microstrain_inertial-release.git - version: 4.9.0 + version: 4.10.0 microstrain_inertial_examples: - tag: release/rolling/microstrain_inertial_examples/4.9.0-1 + dependencies: + - ament_cmake + - microstrain_inertial_driver + - rviz2 + - rviz_imu_plugin + - sensor_msgs + - tf2_ros + repository: https://github.com/LORD-MicroStrain/microstrain_inertial + tag: release/rolling/microstrain_inertial_examples/4.10.0-1 url: https://github.com/ros2-gbp/microstrain_inertial-release.git - version: 4.9.0 + version: 4.10.0 microstrain_inertial_msgs: - tag: release/rolling/microstrain_inertial_msgs/4.9.0-1 + dependencies: + - geometry_msgs + - rosidl_default_generators + - std_msgs + repository: https://github.com/LORD-MicroStrain/microstrain_inertial + tag: release/rolling/microstrain_inertial_msgs/4.10.0-1 url: https://github.com/ros2-gbp/microstrain_inertial-release.git - version: 4.9.0 + version: 4.10.0 microstrain_inertial_rqt: - tag: release/rolling/microstrain_inertial_rqt/4.9.0-1 + dependencies: + - geometry_msgs + - microstrain_inertial_msgs + - nav_msgs + - rclpy + - rqt_gui + - rqt_gui_py + - std_msgs + repository: https://github.com/LORD-MicroStrain/microstrain_inertial + tag: release/rolling/microstrain_inertial_rqt/4.10.0-1 url: https://github.com/ros2-gbp/microstrain_inertial-release.git - version: 4.9.0 + version: 4.10.0 mimick_vendor: + dependencies: + - ament_cmake + - ament_cmake_vendor_package + - ament_lint_auto + - ament_lint_common + repository: https://github.com/ros2/mimick_vendor tag: release/rolling/mimick_vendor/0.10.0-1 url: https://github.com/ros2-gbp/mimick_vendor-release.git version: 0.10.0 mobileye_560_660_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - ros_environment + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/astuff/astuff_sensor_msgs tag: release/rolling/mobileye_560_660_msgs/4.0.0-4 url: https://github.com/ros2-gbp/astuff_sensor_msgs-release.git version: 4.0.0 mola: - tag: release/rolling/mola/3.2.0-1 + dependencies: + - mola_bridge_ros2 + - mola_demos + - mola_input_rawlog + - mola_input_rosbag2 + - mola_input_video + - mola_kernel + - mola_launcher + - mola_metric_maps + - mola_pose_list + - mola_relocalization + - mola_traj_tools + - mola_viz + - mola_yaml + repository: https://github.com/MOLAorg/mola + tag: release/rolling/mola/3.3.2-1 url: https://github.com/ros2-gbp/mola-release.git - version: 3.2.0 + version: 3.3.2 mola_academic_datasets: - tag: release/rolling/mola_academic_datasets/3.0.0-2 + dependencies: + - kitti_metrics_eval + - mola_input_euroc_dataset + - mola_input_kitti360_dataset + - mola_input_kitti_dataset + - mola_input_mulran_dataset + - mola_input_paris_luco_dataset + repository: https://github.com/MOLAorg/mola_academic_datasets + tag: release/rolling/mola_academic_datasets/3.1.0-1 url: https://github.com/ros2-gbp/mola_academic_datasets-release.git - version: 3.0.0 + version: 3.1.0 mola_bridge_ros2: - tag: release/rolling/mola_bridge_ros2/3.2.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - ament_cmake_gtest + - ament_cmake_xmllint + - ament_lint_auto + - ament_lint_cmake + - diagnostic_msgs + - geographic_msgs + - geometry_msgs + - gps_msgs + - mola_common + - mola_kernel + - mola_msgs + - mrpt_libros_bridge + - mrpt_maps + - mrpt_nav_interfaces + - nav_msgs + - rclcpp + - ros_environment + - sensor_msgs + - tf2 + - tf2_geometry_msgs + repository: https://github.com/MOLAorg/mola + tag: release/rolling/mola_bridge_ros2/3.3.2-1 url: https://github.com/ros2-gbp/mola-release.git - version: 3.2.0 + version: 3.3.2 mola_common: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_xmllint + - ament_lint_auto + - ament_lint_common + - ros_environment + repository: https://github.com/MOLAorg/mola_common tag: release/rolling/mola_common/0.6.1-1 url: https://github.com/ros2-gbp/mola_common-release.git version: 0.6.1 mola_demos: - tag: release/rolling/mola_demos/3.2.0-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_lint_cmake + - ament_cmake_pep257 + - ament_cmake_xmllint + - ament_lint_auto + - ros_environment + repository: https://github.com/MOLAorg/mola + tag: release/rolling/mola_demos/3.3.2-1 url: https://github.com/ros2-gbp/mola-release.git - version: 3.2.0 + version: 3.3.2 mola_georeferencing: - tag: release/rolling/mola_georeferencing/2.4.2-1 + dependencies: + - gtsam + - mola_common + - mola_gtsam_factors + - mola_yaml + - mp2p_icp + - mrpt_maps + repository: https://github.com/MOLAorg/mola_state_estimation + tag: release/rolling/mola_georeferencing/3.0.4-1 url: https://github.com/ros2-gbp/mola_state_estimation-release.git - version: 2.4.2 + version: 3.0.4 mola_gnss_to_markers: - tag: release/rolling/mola_gnss_to_markers/0.1.2-2 + dependencies: + - ament_cmake + - ament_cmake_xmllint + - ament_lint_auto + - mrpt_nav_interfaces + - mrpt_topography + - rclcpp + - sensor_msgs + - std_msgs + - visualization_msgs + repository: https://github.com/MOLAorg/mola_gnss_to_markers + tag: release/rolling/mola_gnss_to_markers/0.2.0-1 url: https://github.com/ros2-gbp/mola_gnss_to_markers-release.git - version: 0.1.2 + version: 0.2.0 mola_gtsam_factors: - tag: release/rolling/mola_gtsam_factors/2.4.2-1 + dependencies: + - gtsam + - mola_common + - mrpt_poses + repository: https://github.com/MOLAorg/mola_state_estimation + tag: release/rolling/mola_gtsam_factors/3.0.4-1 url: https://github.com/ros2-gbp/mola_state_estimation-release.git - version: 2.4.2 + version: 3.0.4 mola_imu_preintegration: - tag: release/rolling/mola_imu_preintegration/1.17.1-1 + dependencies: + - mola_common + - mrpt_containers + - mrpt_obs + - mrpt_poses + repository: https://github.com/MOLAorg/mola_imu_preintegration + tag: release/rolling/mola_imu_preintegration/3.0.0-1 url: https://github.com/ros2-gbp/mola_imu_preintegration-release.git - version: 1.17.1 + version: 3.0.0 mola_input_euroc_dataset: - tag: release/rolling/mola_input_euroc_dataset/3.0.0-2 + dependencies: + - mola_common + - mola_kernel + - mrpt_math + - mrpt_obs + repository: https://github.com/MOLAorg/mola_academic_datasets + tag: release/rolling/mola_input_euroc_dataset/3.1.0-1 url: https://github.com/ros2-gbp/mola_academic_datasets-release.git - version: 3.0.0 + version: 3.1.0 mola_input_kitti360_dataset: - tag: release/rolling/mola_input_kitti360_dataset/3.0.0-2 + dependencies: + - mola_common + - mola_kernel + - mrpt_maps + - mrpt_math + repository: https://github.com/MOLAorg/mola_academic_datasets + tag: release/rolling/mola_input_kitti360_dataset/3.1.0-1 url: https://github.com/ros2-gbp/mola_academic_datasets-release.git - version: 3.0.0 + version: 3.1.0 mola_input_kitti_dataset: - tag: release/rolling/mola_input_kitti_dataset/3.0.0-2 + dependencies: + - mola_common + - mola_kernel + - mrpt_maps + - mrpt_math + repository: https://github.com/MOLAorg/mola_academic_datasets + tag: release/rolling/mola_input_kitti_dataset/3.1.0-1 url: https://github.com/ros2-gbp/mola_academic_datasets-release.git - version: 3.0.0 + version: 3.1.0 mola_input_lidar_bin_dataset: - tag: release/rolling/mola_input_lidar_bin_dataset/3.2.0-1 + dependencies: + - mola_common + - mola_kernel + - mola_yaml + - mrpt_core + - mrpt_maps + - mrpt_obs + - mrpt_system + repository: https://github.com/MOLAorg/mola + tag: release/rolling/mola_input_lidar_bin_dataset/3.3.2-1 url: https://github.com/ros2-gbp/mola-release.git - version: 3.2.0 + version: 3.3.2 mola_input_mulran_dataset: - tag: release/rolling/mola_input_mulran_dataset/3.0.0-2 + dependencies: + - mola_common + - mola_kernel + - mrpt_maps + - mrpt_math + - mrpt_poses + repository: https://github.com/MOLAorg/mola_academic_datasets + tag: release/rolling/mola_input_mulran_dataset/3.1.0-1 url: https://github.com/ros2-gbp/mola_academic_datasets-release.git - version: 3.0.0 + version: 3.1.0 mola_input_ouster: - tag: release/rolling/mola_input_ouster/0.1.0-1 + dependencies: + - mola_kernel + - mola_yaml + - mrpt_maps + - mrpt_obs + repository: https://github.com/MOLAorg/mola_input_ouster + tag: release/rolling/mola_input_ouster/0.2.0-1 url: https://github.com/ros2-gbp/mola_input_ouster-release.git - version: 0.1.0 + version: 0.2.0 mola_input_paris_luco_dataset: - tag: release/rolling/mola_input_paris_luco_dataset/3.0.0-2 + dependencies: + - mola_common + - mola_kernel + - mrpt_maps + - mrpt_math + repository: https://github.com/MOLAorg/mola_academic_datasets + tag: release/rolling/mola_input_paris_luco_dataset/3.1.0-1 url: https://github.com/ros2-gbp/mola_academic_datasets-release.git - version: 3.0.0 + version: 3.1.0 mola_input_rawlog: - tag: release/rolling/mola_input_rawlog/3.2.0-1 + dependencies: + - mola_kernel + - mrpt_obs + repository: https://github.com/MOLAorg/mola + tag: release/rolling/mola_input_rawlog/3.3.2-1 url: https://github.com/ros2-gbp/mola-release.git - version: 3.2.0 + version: 3.3.2 mola_input_rosbag1: - tag: release/rolling/mola_input_rosbag1/0.4.0-1 + dependencies: + - geometry_msgs + - mola_common + - mola_kernel + - mrpt_maps + - mrpt_obs + - tf2 + - tf2_geometry_msgs + - tf2_ros + repository: https://github.com/MOLAorg/mola_input_rosbag1 + tag: release/rolling/mola_input_rosbag1/0.5.0-1 url: https://github.com/ros2-gbp/mola_input_rosbag1-release.git - version: 0.4.0 + version: 0.5.0 mola_input_rosbag2: - tag: release/rolling/mola_input_rosbag2/3.2.0-1 + dependencies: + - cv_bridge + - gps_msgs + - mola_kernel + - mrpt_libros_bridge + - mrpt_obs + - rosbag2_cpp + - sensor_msgs + - tf2_geometry_msgs + - tf2_msgs + - tf2_ros + repository: https://github.com/MOLAorg/mola + tag: release/rolling/mola_input_rosbag2/3.3.2-1 url: https://github.com/ros2-gbp/mola-release.git - version: 3.2.0 + version: 3.3.2 mola_input_video: - tag: release/rolling/mola_input_video/3.2.0-1 + dependencies: + - mola_kernel + - mrpt_hwdrivers + - mrpt_obs + repository: https://github.com/MOLAorg/mola + tag: release/rolling/mola_input_video/3.3.2-1 url: https://github.com/ros2-gbp/mola-release.git - version: 3.2.0 + version: 3.3.2 mola_kernel: - tag: release/rolling/mola_kernel/3.2.0-1 + dependencies: + - mola_common + - mola_yaml + - mrpt_maps + - mrpt_obs + - mrpt_topography + repository: https://github.com/MOLAorg/mola + tag: release/rolling/mola_kernel/3.3.2-1 url: https://github.com/ros2-gbp/mola-release.git - version: 3.2.0 + version: 3.3.2 mola_launcher: - tag: release/rolling/mola_launcher/3.2.0-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_pep257 + - ament_cmake_xmllint + - ament_lint_auto + - mola_kernel + - mrpt_core + - ros_environment + repository: https://github.com/MOLAorg/mola + tag: release/rolling/mola_launcher/3.3.2-1 url: https://github.com/ros2-gbp/mola-release.git - version: 3.2.0 + version: 3.3.2 mola_lidar_odometry: - tag: release/rolling/mola_lidar_odometry/3.2.0-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_xmllint + - ament_lint_auto + - ament_lint_cmake + - mola_bridge_ros2 + - mola_common + - mola_imu_preintegration + - mola_input_kitti360_dataset + - mola_input_kitti_dataset + - mola_input_mulran_dataset + - mola_input_paris_luco_dataset + - mola_input_rawlog + - mola_input_rosbag1 + - mola_input_rosbag2 + - mola_kernel + - mola_launcher + - mola_metric_maps + - mola_pose_list + - mola_state_estimation_simple + - mola_state_estimation_smoother + - mola_test_datasets + - mola_viz + - mola_viz_imgui + - mola_yaml + - mp2p_icp + - mrpt_maps + - mrpt_obs + - ros_environment + - rosbag2_storage_mcap + repository: https://github.com/MOLAorg/mola_lidar_odometry + tag: release/rolling/mola_lidar_odometry/3.3.0-1 url: https://github.com/ros2-gbp/mola_lidar_odometry-release.git - version: 3.2.0 + version: 3.3.0 mola_metric_maps: - tag: release/rolling/mola_metric_maps/3.2.0-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_xmllint + - ament_lint_auto + - ament_lint_common + - mola_common + - mola_kernel + - mola_test_datasets + - mp2p_icp + - mrpt_maps + - mrpt_viz + - nanoflann_vendor + - ros_environment + repository: https://github.com/MOLAorg/mola + tag: release/rolling/mola_metric_maps/3.3.2-1 url: https://github.com/ros2-gbp/mola-release.git - version: 3.2.0 + version: 3.3.2 mola_msgs: - tag: release/rolling/mola_msgs/3.2.0-1 + dependencies: + - action_msgs + - ament_cmake + - mrpt_msgs + - nav_msgs + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/MOLAorg/mola + tag: release/rolling/mola_msgs/3.3.2-1 url: https://github.com/ros2-gbp/mola-release.git - version: 3.2.0 + version: 3.3.2 mola_pose_list: - tag: release/rolling/mola_pose_list/3.2.0-1 + dependencies: + - mola_common + - mrpt_maps + - mrpt_poses + repository: https://github.com/MOLAorg/mola + tag: release/rolling/mola_pose_list/3.3.2-1 url: https://github.com/ros2-gbp/mola-release.git - version: 3.2.0 + version: 3.3.2 mola_relocalization: - tag: release/rolling/mola_relocalization/3.2.0-1 + dependencies: + - mola_common + - mola_pose_list + - mola_test_datasets + - mp2p_icp + - mrpt_maps + - mrpt_obs + repository: https://github.com/MOLAorg/mola + tag: release/rolling/mola_relocalization/3.3.2-1 url: https://github.com/ros2-gbp/mola-release.git - version: 3.2.0 + version: 3.3.2 mola_sm_loop_closure: - tag: release/rolling/mola_sm_loop_closure/1.2.2-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_lint_cmake + - ament_cmake_pep257 + - ament_cmake_uncrustify + - ament_cmake_xmllint + - ament_lint_auto + - gtsam + - mola_common + - mola_georeferencing + - mola_gtsam_factors + - mola_metric_maps + - mola_pose_list + - mola_relocalization + - mola_test_datasets + - mola_yaml + - mp2p_icp + - mrpt_maps + - mrpt_viz + - ros_environment + repository: https://github.com/MOLAorg/mola_sm_loop_closure + tag: release/rolling/mola_sm_loop_closure/1.3.0-1 url: https://github.com/ros2-gbp/mola_sm_loop_closure-release.git - version: 1.2.2 + version: 1.3.0 mola_state_estimation: - tag: release/rolling/mola_state_estimation/2.4.2-1 + dependencies: + - ament_cmake + - ament_cmake_xmllint + - ament_lint_auto + - ament_lint_cmake + - mola_state_estimation_simple + - mola_state_estimation_smoother + repository: https://github.com/MOLAorg/mola_state_estimation + tag: release/rolling/mola_state_estimation/3.0.4-1 url: https://github.com/ros2-gbp/mola_state_estimation-release.git - version: 2.4.2 + version: 3.0.4 mola_state_estimation_simple: - tag: release/rolling/mola_state_estimation_simple/2.4.2-1 + dependencies: + - mola_common + - mola_imu_preintegration + - mola_kernel + - mola_yaml + - mrpt_obs + repository: https://github.com/MOLAorg/mola_state_estimation + tag: release/rolling/mola_state_estimation_simple/3.0.4-1 url: https://github.com/ros2-gbp/mola_state_estimation-release.git - version: 2.4.2 + version: 3.0.4 mola_state_estimation_smoother: - tag: release/rolling/mola_state_estimation_smoother/2.4.2-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_xmllint + - geometry_msgs + - gtsam + - launch_testing + - launch_testing_ament_cmake + - launch_testing_ros + - mola_bridge_ros2 + - mola_common + - mola_demos + - mola_gtsam_factors + - mola_imu_preintegration + - mola_kernel + - mola_launcher + - mrpt_obs + - nav_msgs + - rclpy + - ros_environment + - rviz2 + - sensor_msgs + - tf2_ros + repository: https://github.com/MOLAorg/mola_state_estimation + tag: release/rolling/mola_state_estimation_smoother/3.0.4-1 url: https://github.com/ros2-gbp/mola_state_estimation-release.git - version: 2.4.2 + version: 3.0.4 mola_test_datasets: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_lint_cmake + - ament_cmake_pep257 + - ament_cmake_uncrustify + - ament_cmake_xmllint + - ament_lint_auto + - ros_environment + repository: https://github.com/MOLAorg/mola_test_datasets tag: release/rolling/mola_test_datasets/0.5.0-1 url: https://github.com/ros2-gbp/mola_test_datasets-release.git version: 0.5.0 mola_traj_tools: - tag: release/rolling/mola_traj_tools/3.2.0-1 + dependencies: + - mola_common + - mrpt_poses + repository: https://github.com/MOLAorg/mola + tag: release/rolling/mola_traj_tools/3.3.2-1 url: https://github.com/ros2-gbp/mola-release.git - version: 3.2.0 + version: 3.3.2 mola_viz: - tag: release/rolling/mola_viz/3.2.0-1 + dependencies: + - mola_kernel + - mrpt_gui + - mrpt_maps + - mrpt_opengl + - mrpt_viz + repository: https://github.com/MOLAorg/mola + tag: release/rolling/mola_viz/3.3.2-1 url: https://github.com/ros2-gbp/mola-release.git - version: 3.2.0 + version: 3.3.2 mola_viz_imgui: - tag: release/rolling/mola_viz_imgui/3.2.0-1 + dependencies: + - mola_kernel + - mrpt_gui + - mrpt_imgui + - mrpt_maps + - mrpt_obs + - mrpt_opengl + - mrpt_viz + repository: https://github.com/MOLAorg/mola + tag: release/rolling/mola_viz_imgui/3.3.2-1 url: https://github.com/ros2-gbp/mola-release.git - version: 3.2.0 + version: 3.3.2 mola_yaml: - tag: release/rolling/mola_yaml/3.2.0-1 + dependencies: + - mola_common + - mrpt_containers + - mrpt_system + repository: https://github.com/MOLAorg/mola + tag: release/rolling/mola_yaml/3.3.2-1 url: https://github.com/ros2-gbp/mola-release.git - version: 3.2.0 + version: 3.3.2 motion_capture_tracking: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - eigen3_cmake_module + - motion_capture_tracking_interfaces + - rclcpp + - sensor_msgs + - tf2_ros + repository: https://github.com/IMRCLab/motion_capture_tracking tag: release/rolling/motion_capture_tracking/1.0.9-1 url: https://github.com/ros2-gbp/motion_capture_tracking-release.git version: 1.0.9 motion_capture_tracking_interfaces: + dependencies: + - ament_cmake + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/IMRCLab/motion_capture_tracking tag: release/rolling/motion_capture_tracking_interfaces/1.0.9-1 url: https://github.com/ros2-gbp/motion_capture_tracking-release.git version: 1.0.9 motion_primitives_controllers: - tag: release/rolling/motion_primitives_controllers/6.9.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - control_msgs + - controller_interface + - controller_manager + - generate_parameter_library + - hardware_interface + - pluginlib + - rclcpp + - rclcpp_lifecycle + - realtime_tools + - ros2_control_cmake + - ros2_control_test_assets + - std_srvs + repository: https://github.com/ros-controls/ros2_controllers + tag: release/rolling/motion_primitives_controllers/6.10.0-1 url: https://github.com/ros2-gbp/ros2_controllers-release.git - version: 6.9.0 + version: 6.10.0 mouse_teleop: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - geometry_msgs + - rclpy + repository: https://github.com/ros-teleop/teleop_tools tag: release/rolling/mouse_teleop/2.0.0-2 url: https://github.com/ros2-gbp/teleop_tools-release.git version: 2.0.0 moveit: - tag: release/rolling/moveit/2.15.0-1 + dependencies: + - ament_cmake + - moveit_core + - moveit_planners + - moveit_plugins + - moveit_ros + - moveit_setup_assistant + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_common: - tag: release/rolling/moveit_common/2.15.0-1 + dependencies: + - ament_cmake + - backward_ros + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_common/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_configs_utils: - tag: release/rolling/moveit_configs_utils/2.15.0-1 + dependencies: + - ament_index_python + - launch + - launch_param_builder + - launch_ros + - srdfdom + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_configs_utils/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_core: - tag: release/rolling/moveit_core/2.15.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - ament_cmake_google_benchmark + - ament_cmake_gtest + - ament_index_cpp + - angles + - common_interfaces + - eigen3_cmake_module + - eigen_stl_containers + - generate_parameter_library + - geometric_shapes + - geometry_msgs + - google_benchmark_vendor + - kdl_parser + - launch_testing_ament_cmake + - moveit_common + - moveit_msgs + - moveit_resources_panda_moveit_config + - moveit_resources_pr2_description + - octomap_msgs + - orocos_kdl_vendor + - osqp_vendor + - pluginlib + - random_numbers + - rcl_interfaces + - rclcpp + - rclpy + - rsl + - ruckig + - sensor_msgs + - shape_msgs + - srdfdom + - std_msgs + - tf2 + - tf2_eigen + - tf2_geometry_msgs + - tf2_kdl + - trajectory_msgs + - urdf + - urdfdom + - urdfdom_headers + - visualization_msgs + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_core/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_hybrid_planning: - tag: release/rolling/moveit_hybrid_planning/2.15.0-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_index_cpp + - controller_manager + - forward_command_controller + - moveit_common + - moveit_configs_utils + - moveit_core + - moveit_msgs + - moveit_planners_ompl + - moveit_resources_panda_moveit_config + - moveit_ros_planning + - moveit_ros_planning_interface + - moveit_simple_controller_manager + - pluginlib + - rclcpp + - rclcpp_action + - rclcpp_components + - robot_state_publisher + - ros_testing + - rviz2 + - std_msgs + - std_srvs + - tf2_ros + - trajectory_msgs + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_hybrid_planning/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_kinematics: - tag: release/rolling/moveit_kinematics/2.15.0-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - class_loader + - generate_parameter_library + - launch_param_builder + - moveit_common + - moveit_configs_utils + - moveit_core + - moveit_msgs + - moveit_resources_fanuc_description + - moveit_resources_fanuc_moveit_config + - moveit_resources_panda_description + - moveit_resources_panda_moveit_config + - moveit_ros_planning + - orocos_kdl_vendor + - pluginlib + - ros_testing + - rsl + - tf2 + - tf2_kdl + - urdfdom + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_kinematics/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_msgs: + dependencies: + - action_msgs + - ament_cmake + - ament_lint_auto + - ament_lint_cmake + - geometry_msgs + - object_recognition_msgs + - octomap_msgs + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + - shape_msgs + - std_msgs + - trajectory_msgs + repository: https://github.com/ros-planning/moveit_msgs tag: release/rolling/moveit_msgs/2.7.2-1 url: https://github.com/ros2-gbp/moveit_msgs-release.git version: 2.7.2 moveit_planners: - tag: release/rolling/moveit_planners/2.15.0-1 + dependencies: + - ament_cmake + - moveit_planners_chomp + - moveit_planners_ompl + - moveit_planners_stomp + - pilz_industrial_motion_planner + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_planners/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_planners_chomp: - tag: release/rolling/moveit_planners_chomp/2.15.0-1 + dependencies: + - ament_cmake + - chomp_motion_planner + - moveit_common + - moveit_core + - pluginlib + - rclcpp + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_planners_chomp/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_planners_ompl: - tag: release/rolling/moveit_planners_ompl/2.15.0-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - eigen3_cmake_module + - moveit_common + - moveit_core + - moveit_msgs + - moveit_resources_fanuc_moveit_config + - moveit_resources_panda_moveit_config + - moveit_resources_pr2_description + - moveit_ros_planning + - ompl + - pluginlib + - rclcpp + - tf2_eigen + - tf2_ros + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_planners_ompl/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_planners_stomp: - tag: release/rolling/moveit_planners_stomp/2.15.0-1 + dependencies: + - ament_cmake + - generate_parameter_library + - moveit_common + - moveit_core + - rsl + - std_msgs + - stomp + - tf2_eigen + - visualization_msgs + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_planners_stomp/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_plugins: - tag: release/rolling/moveit_plugins/2.15.0-1 + dependencies: + - ament_cmake + - moveit_simple_controller_manager + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_plugins/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_py: - tag: release/rolling/moveit_py/2.15.0-1 + dependencies: + - ament_cmake + - ament_cmake_pytest + - ament_index_python + - geometry_msgs + - moveit_core + - moveit_ros_planning + - moveit_ros_planning_interface + - octomap_msgs + - rclcpp + - rclpy + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_py/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_resources: - tag: release/rolling/moveit_resources/3.2.0-1 + dependencies: + - ament_cmake + - joint_state_publisher + - moveit_resources_fanuc_description + - moveit_resources_fanuc_moveit_config + - moveit_resources_panda_description + - moveit_resources_panda_moveit_config + - moveit_resources_pr2_description + - robot_state_publisher + repository: https://github.com/ros-planning/moveit_resources + tag: release/rolling/moveit_resources/3.2.1-1 url: https://github.com/ros2-gbp/moveit_resources-release.git - version: 3.2.0 + version: 3.2.1 moveit_resources_fanuc_description: - tag: release/rolling/moveit_resources_fanuc_description/3.2.0-1 + dependencies: + - ament_cmake + repository: https://github.com/ros-planning/moveit_resources + tag: release/rolling/moveit_resources_fanuc_description/3.2.1-1 url: https://github.com/ros2-gbp/moveit_resources-release.git - version: 3.2.0 + version: 3.2.1 moveit_resources_fanuc_moveit_config: - tag: release/rolling/moveit_resources_fanuc_moveit_config/3.2.0-1 + dependencies: + - ament_cmake + - controller_manager + - joint_state_publisher + - moveit_resources_fanuc_description + - robot_state_publisher + - ros2cli_common_extensions + - tf2_ros + - xacro + repository: https://github.com/ros-planning/moveit_resources + tag: release/rolling/moveit_resources_fanuc_moveit_config/3.2.1-1 url: https://github.com/ros2-gbp/moveit_resources-release.git - version: 3.2.0 + version: 3.2.1 moveit_resources_panda_description: - tag: release/rolling/moveit_resources_panda_description/3.2.0-1 + dependencies: + - ament_cmake + repository: https://github.com/ros-planning/moveit_resources + tag: release/rolling/moveit_resources_panda_description/3.2.1-1 url: https://github.com/ros2-gbp/moveit_resources-release.git - version: 3.2.0 + version: 3.2.1 moveit_resources_panda_moveit_config: - tag: release/rolling/moveit_resources_panda_moveit_config/3.2.0-1 + dependencies: + - ament_cmake + - controller_manager + - joint_state_publisher + - joint_state_publisher_gui + - moveit_resources_panda_description + - parallel_gripper_controller + - robot_state_publisher + - ros2cli_common_extensions + - topic_tools + - xacro + repository: https://github.com/ros-planning/moveit_resources + tag: release/rolling/moveit_resources_panda_moveit_config/3.2.1-1 url: https://github.com/ros2-gbp/moveit_resources-release.git - version: 3.2.0 + version: 3.2.1 moveit_resources_pr2_description: - tag: release/rolling/moveit_resources_pr2_description/3.2.0-1 + dependencies: + - ament_cmake + repository: https://github.com/ros-planning/moveit_resources + tag: release/rolling/moveit_resources_pr2_description/3.2.1-1 url: https://github.com/ros2-gbp/moveit_resources-release.git - version: 3.2.0 + version: 3.2.1 moveit_resources_prbt_ikfast_manipulator_plugin: - tag: release/rolling/moveit_resources_prbt_ikfast_manipulator_plugin/2.15.0-1 + dependencies: + - ament_cmake + - generate_parameter_library + - moveit_core + - pluginlib + - rclcpp + - tf2_eigen + - tf2_eigen_kdl + - tf2_geometry_msgs + - tf2_kdl + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_resources_prbt_ikfast_manipulator_plugin/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_resources_prbt_moveit_config: - tag: release/rolling/moveit_resources_prbt_moveit_config/2.15.0-1 + dependencies: + - ament_cmake + - joint_state_publisher + - moveit_resources_prbt_ikfast_manipulator_plugin + - moveit_resources_prbt_support + - moveit_ros_move_group + - robot_state_publisher + - rviz2 + - xacro + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_resources_prbt_moveit_config/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_resources_prbt_pg70_support: - tag: release/rolling/moveit_resources_prbt_pg70_support/2.15.0-1 + dependencies: + - ament_cmake + - moveit_resources_prbt_ikfast_manipulator_plugin + - moveit_resources_prbt_moveit_config + - moveit_resources_prbt_support + - xacro + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_resources_prbt_pg70_support/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_resources_prbt_support: - tag: release/rolling/moveit_resources_prbt_support/2.15.0-1 + dependencies: + - ament_cmake + - xacro + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_resources_prbt_support/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_ros: - tag: release/rolling/moveit_ros/2.15.0-1 + dependencies: + - ament_cmake + - moveit_ros_benchmarks + - moveit_ros_move_group + - moveit_ros_planning + - moveit_ros_planning_interface + - moveit_ros_robot_interaction + - moveit_ros_visualization + - moveit_ros_warehouse + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_ros/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_ros_benchmarks: - tag: release/rolling/moveit_ros_benchmarks/2.15.0-1 + dependencies: + - ament_cmake + - launch_param_builder + - moveit_common + - moveit_configs_utils + - moveit_core + - moveit_ros_planning + - moveit_ros_warehouse + - pluginlib + - rclcpp + - tf2_eigen + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_ros_benchmarks/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_ros_control_interface: - tag: release/rolling/moveit_ros_control_interface/2.15.0-1 + dependencies: + - ament_cmake + - controller_manager_msgs + - moveit_common + - moveit_core + - moveit_simple_controller_manager + - pluginlib + - rclcpp_action + - trajectory_msgs + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_ros_control_interface/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_ros_move_group: - tag: release/rolling/moveit_ros_move_group/2.15.0-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - moveit_common + - moveit_configs_utils + - moveit_core + - moveit_kinematics + - moveit_resources_fanuc_moveit_config + - moveit_resources_panda_moveit_config + - moveit_ros_occupancy_map_monitor + - moveit_ros_planning + - pluginlib + - rclcpp + - rclcpp_action + - ros_testing + - std_srvs + - tf2 + - tf2_geometry_msgs + - tf2_ros + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_ros_move_group/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_ros_occupancy_map_monitor: - tag: release/rolling/moveit_ros_occupancy_map_monitor/2.15.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - eigen3_cmake_module + - geometric_shapes + - moveit_common + - moveit_core + - moveit_msgs + - pluginlib + - rclcpp + - tf2_ros + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_ros_occupancy_map_monitor/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_ros_perception: - tag: release/rolling/moveit_ros_perception/2.15.0-1 + dependencies: + - ament_cmake + - cv_bridge + - image_transport + - message_filters + - moveit_common + - moveit_core + - moveit_msgs + - moveit_ros_occupancy_map_monitor + - moveit_ros_planning + - object_recognition_msgs + - pluginlib + - rclcpp + - sensor_msgs + - tf2 + - tf2_eigen + - tf2_geometry_msgs + - tf2_ros + - urdf + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_ros_perception/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_ros_planning: - tag: release/rolling/moveit_ros_planning/2.15.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - ament_cmake_gtest + - ament_index_cpp + - eigen3_cmake_module + - generate_parameter_library + - launch_testing_ament_cmake + - message_filters + - moveit_common + - moveit_configs_utils + - moveit_core + - moveit_msgs + - moveit_resources_panda_moveit_config + - moveit_ros_occupancy_map_monitor + - pluginlib + - rclcpp + - rclcpp_action + - rclcpp_components + - ros_testing + - srdfdom + - std_msgs + - tf2 + - tf2_eigen + - tf2_geometry_msgs + - tf2_msgs + - tf2_ros + - urdf + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_ros_planning/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_ros_planning_interface: - tag: release/rolling/moveit_ros_planning_interface/2.15.0-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - eigen3_cmake_module + - geometry_msgs + - moveit_common + - moveit_configs_utils + - moveit_core + - moveit_msgs + - moveit_resources_fanuc_moveit_config + - moveit_resources_panda_moveit_config + - moveit_ros_move_group + - moveit_ros_planning + - moveit_ros_warehouse + - moveit_simple_controller_manager + - rclcpp + - rclcpp_action + - rclpy + - ros_testing + - rviz2 + - tf2 + - tf2_eigen + - tf2_geometry_msgs + - tf2_ros + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_ros_planning_interface/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_ros_robot_interaction: - tag: release/rolling/moveit_ros_robot_interaction/2.15.0-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - interactive_markers + - moveit_common + - moveit_core + - moveit_ros_planning + - rclcpp + - tf2 + - tf2_eigen + - tf2_geometry_msgs + - tf2_ros + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_ros_robot_interaction/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_ros_tests: - tag: release/rolling/moveit_ros_tests/2.15.0-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - moveit_common + - moveit_configs_utils + - moveit_core + - moveit_planners_chomp + - moveit_planners_ompl + - moveit_planners_stomp + - moveit_resources_panda_moveit_config + - moveit_ros_move_group + - moveit_ros_planning + - moveit_ros_planning_interface + - moveit_simple_controller_manager + - pilz_industrial_motion_planner + - rclcpp + - ros_testing + - tf2_ros + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_ros_tests/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_ros_trajectory_cache: - tag: release/rolling/moveit_ros_trajectory_cache/2.15.0-1 + dependencies: + - ament_cmake + - ament_cmake_pytest + - ament_cmake_uncrustify + - geometry_msgs + - launch_pytest + - launch_testing_ament_cmake + - moveit_common + - moveit_configs_utils + - moveit_planners_ompl + - moveit_resources + - moveit_ros + - moveit_ros_planning_interface + - rclcpp + - rclcpp_action + - rmf_utils + - robot_state_publisher + - ros2_control + - tf2_ros + - trajectory_msgs + - warehouse_ros_sqlite + - xacro + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_ros_trajectory_cache/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_ros_visualization: - tag: release/rolling/moveit_ros_visualization/2.15.0-1 + dependencies: + - ament_cmake + - class_loader + - geometric_shapes + - interactive_markers + - moveit_common + - moveit_ros_planning_interface + - moveit_ros_robot_interaction + - moveit_ros_warehouse + - object_recognition_msgs + - pluginlib + - rclcpp + - rclpy + - rviz2 + - tf2_eigen + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_ros_visualization/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_ros_warehouse: - tag: release/rolling/moveit_ros_warehouse/2.15.0-1 + dependencies: + - ament_cmake + - moveit_common + - moveit_core + - moveit_ros_planning + - rclcpp + - tf2_eigen + - tf2_ros + - warehouse_ros + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_ros_warehouse/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_runtime: - tag: release/rolling/moveit_runtime/2.15.0-1 + dependencies: + - ament_cmake + - moveit_core + - moveit_planners + - moveit_plugins + - moveit_ros_move_group + - moveit_ros_perception + - moveit_ros_planning + - moveit_ros_planning_interface + - moveit_ros_warehouse + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_runtime/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_servo: - tag: release/rolling/moveit_servo/2.15.0-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - control_msgs + - controller_manager + - generate_parameter_library + - geometry_msgs + - joint_state_broadcaster + - joint_trajectory_controller + - joy + - launch_param_builder + - moveit_common + - moveit_configs_utils + - moveit_core + - moveit_msgs + - moveit_resources_panda_moveit_config + - moveit_ros_planning + - moveit_ros_planning_interface + - moveit_ros_visualization + - pluginlib + - realtime_tools + - robot_state_publisher + - ros_testing + - sensor_msgs + - std_msgs + - std_srvs + - tf2_eigen + - tf2_ros + - trajectory_msgs + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_servo/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_setup_app_plugins: - tag: release/rolling/moveit_setup_app_plugins/2.15.0-1 + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - ament_index_cpp + - moveit_configs_utils + - moveit_ros_visualization + - moveit_setup_framework + - pluginlib + - rclcpp + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_setup_app_plugins/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_setup_assistant: - tag: release/rolling/moveit_setup_assistant/2.15.0-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_index_cpp + - moveit_configs_utils + - moveit_resources_panda_moveit_config + - moveit_setup_app_plugins + - moveit_setup_controllers + - moveit_setup_core_plugins + - moveit_setup_framework + - moveit_setup_srdf_plugins + - pluginlib + - rclcpp + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_setup_assistant/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_setup_controllers: - tag: release/rolling/moveit_setup_controllers/2.15.0-1 + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - ament_index_cpp + - moveit_configs_utils + - moveit_resources_fanuc_moveit_config + - moveit_resources_panda_moveit_config + - moveit_setup_framework + - pluginlib + - rclcpp + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_setup_controllers/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_setup_core_plugins: - tag: release/rolling/moveit_setup_core_plugins/2.15.0-1 + dependencies: + - ament_cmake_ros + - ament_index_cpp + - moveit_ros_visualization + - moveit_setup_framework + - pluginlib + - rclcpp + - srdfdom + - urdf + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_setup_core_plugins/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_setup_framework: - tag: release/rolling/moveit_setup_framework/2.15.0-1 + dependencies: + - ament_cmake_ros + - ament_index_cpp + - moveit_common + - moveit_core + - moveit_ros_planning + - moveit_ros_visualization + - pluginlib + - rclcpp + - rviz_common + - rviz_rendering + - srdfdom + - urdf + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_setup_framework/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_setup_srdf_plugins: - tag: release/rolling/moveit_setup_srdf_plugins/2.15.0-1 + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - moveit_resources_fanuc_description + - moveit_setup_framework + - pluginlib + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_setup_srdf_plugins/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_simple_controller_manager: - tag: release/rolling/moveit_simple_controller_manager/2.15.0-1 + dependencies: + - ament_cmake + - control_msgs + - moveit_common + - moveit_core + - pluginlib + - rclcpp + - rclcpp_action + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/moveit_simple_controller_manager/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 moveit_task_constructor_capabilities: - tag: release/rolling/moveit_task_constructor_capabilities/0.1.6-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - controller_manager + - launch_testing + - launch_testing_ament_cmake + - moveit_configs_utils + - moveit_core + - moveit_resources_panda_moveit_config + - moveit_ros_move_group + - moveit_ros_planning + - moveit_task_constructor_core + - moveit_task_constructor_msgs + - pluginlib + - rclcpp_action + - std_msgs + repository: https://github.com/moveit/moveit_task_constructor + tag: release/rolling/moveit_task_constructor_capabilities/0.2.0-1 url: https://github.com/ros2-gbp/moveit_task_constructor-release.git - version: 0.1.6 + version: 0.2.0 moveit_task_constructor_core: - tag: release/rolling/moveit_task_constructor_core/0.1.6-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_python + - geometry_msgs + - launch_testing_ament_cmake + - moveit_configs_utils + - moveit_core + - moveit_planners_ompl + - moveit_py + - moveit_resources_fanuc_moveit_config + - moveit_ros_planning + - moveit_ros_planning_interface + - moveit_task_constructor_msgs + - py_binding_tools + - rclcpp + - rviz_marker_tools + - tf2_eigen + - visualization_msgs + repository: https://github.com/moveit/moveit_task_constructor + tag: release/rolling/moveit_task_constructor_core/0.2.0-1 url: https://github.com/ros2-gbp/moveit_task_constructor-release.git - version: 0.1.6 + version: 0.2.0 moveit_task_constructor_demo: - tag: release/rolling/moveit_task_constructor_demo/0.1.6-1 + dependencies: + - ament_cmake + - controller_manager + - generate_parameter_library + - moveit_configs_utils + - moveit_core + - moveit_resources_panda_moveit_config + - moveit_ros_planning_interface + - moveit_task_constructor_capabilities + - moveit_task_constructor_core + - moveit_task_constructor_visualization + - py_binding_tools + repository: https://github.com/moveit/moveit_task_constructor + tag: release/rolling/moveit_task_constructor_demo/0.2.0-1 url: https://github.com/ros2-gbp/moveit_task_constructor-release.git - version: 0.1.6 + version: 0.2.0 moveit_task_constructor_msgs: - tag: release/rolling/moveit_task_constructor_msgs/0.1.6-1 + dependencies: + - ament_cmake + - moveit_msgs + - rosidl_default_generators + - rosidl_default_runtime + - visualization_msgs + repository: https://github.com/moveit/moveit_task_constructor + tag: release/rolling/moveit_task_constructor_msgs/0.2.0-1 url: https://github.com/ros2-gbp/moveit_task_constructor-release.git - version: 0.1.6 + version: 0.2.0 moveit_task_constructor_visualization: - tag: release/rolling/moveit_task_constructor_visualization/0.1.6-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - ament_cmake_gtest + - launch + - launch_testing + - launch_testing_ament_cmake + - launch_testing_ros + - libyaml_vendor + - moveit_core + - moveit_ros_visualization + - moveit_task_constructor_core + - moveit_task_constructor_msgs + - rclcpp + - rviz2 + repository: https://github.com/moveit/moveit_task_constructor + tag: release/rolling/moveit_task_constructor_visualization/0.2.0-1 url: https://github.com/ros2-gbp/moveit_task_constructor-release.git - version: 0.1.6 + version: 0.2.0 moveit_visual_tools: + dependencies: + - ament_cmake + - ament_index_cpp + - ament_lint_auto + - ament_lint_common + - geometric_shapes + - geometry_msgs + - graph_msgs + - interactive_markers + - moveit_common + - moveit_core + - moveit_msgs + - moveit_ros_planning + - rclcpp + - rviz_visual_tools + - std_msgs + - tf2_eigen + - tf2_ros + - trajectory_msgs + - visualization_msgs + repository: https://github.com/ros-planning/moveit_visual_tools tag: release/rolling/moveit_visual_tools/4.2.0-1 url: https://github.com/ros2-gbp/moveit_visual_tools-release.git version: 4.2.0 mp2p_icp: - tag: release/rolling/mp2p_icp/2.13.0-1 + dependencies: + - mp2p_icp_core + - mp2p_icp_viz + repository: https://github.com/MOLAorg/mp2p_icp + tag: release/rolling/mp2p_icp/3.0.2-1 url: https://github.com/ros2-gbp/mp2p_icp-release.git - version: 2.13.0 + version: 3.0.2 mp2p_icp_core: - tag: release/rolling/mp2p_icp_core/2.13.0-1 + dependencies: + - mola_common + - mola_imu_preintegration + - mrpt_containers + - mrpt_maps + - mrpt_obs + - mrpt_poses + - mrpt_rtti + - mrpt_serialization + - mrpt_system + - mrpt_tfest + - mrpt_topography + - ros_environment + repository: https://github.com/MOLAorg/mp2p_icp + tag: release/rolling/mp2p_icp_core/3.0.2-1 url: https://github.com/ros2-gbp/mp2p_icp-release.git - version: 2.13.0 + version: 3.0.2 mp2p_icp_viz: - tag: release/rolling/mp2p_icp_viz/2.13.0-1 + dependencies: + - mola_common + - mp2p_icp_core + - mrpt_gui + - mrpt_imgui + - mrpt_imgui_vendor + - mrpt_opengl + - ros_environment + repository: https://github.com/MOLAorg/mp2p_icp + tag: release/rolling/mp2p_icp_viz/3.0.2-1 url: https://github.com/ros2-gbp/mp2p_icp-release.git - version: 2.13.0 + version: 3.0.2 mp_units_vendor: + dependencies: + - ament_cmake + - ament_cmake_vendor_package + repository: https://github.com/nobleo/mp_units_vendor tag: release/rolling/mp_units_vendor/2.5.0-3 url: https://github.com/ros2-gbp/mp_units_vendor-release.git version: 2.5.0 mqtt_client: + dependencies: + - ament_cmake + - mqtt_client_interfaces + - rclcpp + - rclcpp_components + - rcpputils + - rosx_introspection + - std_msgs + repository: https://github.com/ika-rwth-aachen/mqtt_client tag: release/rolling/mqtt_client/2.5.0-1 url: https://github.com/ros2-gbp/mqtt_client-release.git version: 2.5.0 mqtt_client_interfaces: + dependencies: + - ament_cmake + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ika-rwth-aachen/mqtt_client tag: release/rolling/mqtt_client_interfaces/2.5.0-1 url: https://github.com/ros2-gbp/mqtt_client-release.git version: 2.5.0 mrpt_apps: + dependencies: + - ament_cmake + - mrpt_libapps + - mrpt_libnav + repository: https://github.com/MRPT/mrpt_ros tag: release/rolling/mrpt_apps/2.15.21-1 url: https://github.com/ros2-gbp/mrpt_ros-release.git version: 2.15.21 mrpt_apps_cli: - tag: release/rolling/mrpt_apps_cli/3.1.3-1 + dependencies: + - mrpt_common + - mrpt_libapps_cli + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_apps_cli/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_apps_gui: - tag: release/rolling/mrpt_apps_gui/3.1.3-1 + dependencies: + - mrpt_common + - mrpt_graphslam + - mrpt_kinematics + - mrpt_libapps_gui + - mrpt_nav + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_apps_gui/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_bayes: - tag: release/rolling/mrpt_bayes/3.1.3-1 + dependencies: + - mrpt_common + - mrpt_config + - mrpt_math + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_bayes/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_common: - tag: release/rolling/mrpt_common/3.1.3-1 + dependencies: [] + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_common/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_comms: - tag: release/rolling/mrpt_comms/3.1.3-1 + dependencies: + - mrpt_common + - mrpt_io + - mrpt_poses + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_comms/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_config: - tag: release/rolling/mrpt_config/3.1.3-1 + dependencies: + - mrpt_common + - mrpt_expr + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_config/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_containers: - tag: release/rolling/mrpt_containers/3.1.3-1 + dependencies: + - mrpt_common + - mrpt_core + - mrpt_typemeta + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_containers/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_core: - tag: release/rolling/mrpt_core/3.1.3-1 + dependencies: + - mrpt_common + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_core/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_data: - tag: release/rolling/mrpt_data/3.1.3-1 + dependencies: [] + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_data/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_examples_cpp: - tag: release/rolling/mrpt_examples_cpp/3.1.3-1 + dependencies: + - mrpt_common + - mrpt_data + - mrpt_graphslam + - mrpt_gui + - mrpt_imgui + - mrpt_imgui_vendor + - mrpt_libapps_cli + - mrpt_libapps_gui + - mrpt_nav + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_examples_cpp/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_expr: - tag: release/rolling/mrpt_expr/3.1.3-1 + dependencies: + - mrpt_common + - mrpt_system + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_expr/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_generic_sensor: - tag: release/rolling/mrpt_generic_sensor/0.3.0-1 + dependencies: + - ament_cmake + - ament_cmake_xmllint + - ament_lint_auto + - mrpt_msgs + - mrpt_sensorlib + - rclcpp + - rclcpp_components + - ros_environment + - sensor_msgs + - tf2 + - tf2_geometry_msgs + - tf2_ros + repository: https://github.com/mrpt-ros-pkg/mrpt_sensors + tag: release/rolling/mrpt_generic_sensor/0.4.0-1 url: https://github.com/ros2-gbp/mrpt_sensors-release.git - version: 0.3.0 + version: 0.4.0 mrpt_graphs: - tag: release/rolling/mrpt_graphs/3.1.3-1 + dependencies: + - mrpt_common + - mrpt_io + - mrpt_poses + - mrpt_viz + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_graphs/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_graphslam: - tag: release/rolling/mrpt_graphslam/3.1.3-1 + dependencies: + - mrpt_gui + - mrpt_slam + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_graphslam/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_gui: - tag: release/rolling/mrpt_gui/3.1.3-1 + dependencies: + - mrpt_opengl + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_gui/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_hwdrivers: - tag: release/rolling/mrpt_hwdrivers/3.1.3-1 + dependencies: + - mrpt_comms + - mrpt_maps + - mrpt_viz + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_hwdrivers/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_img: - tag: release/rolling/mrpt_img/3.1.3-1 + dependencies: + - mrpt_common + - mrpt_config + - mrpt_io + - mrpt_math + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_img/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_imgui: - tag: release/rolling/mrpt_imgui/3.1.3-1 + dependencies: + - mrpt_imgui_vendor + - mrpt_opengl + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_imgui/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 +mrpt_imgui_vendor: + dependencies: + - mrpt_common + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_imgui_vendor/3.5.2-1 + url: https://github.com/ros2-gbp/mrpt3-release.git + version: 3.5.2 mrpt_io: - tag: release/rolling/mrpt_io/3.1.3-1 + dependencies: + - mrpt_common + - mrpt_serialization + - mrpt_system + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_io/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_kinematics: - tag: release/rolling/mrpt_kinematics/3.1.3-1 + dependencies: + - mrpt_common + - mrpt_viz + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_kinematics/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_libapps: + dependencies: + - mrpt_libgui + - mrpt_libhwdrivers + - mrpt_libmaps + - mrpt_libslam + - mrpt_libtclap + repository: https://github.com/MRPT/mrpt_ros tag: release/rolling/mrpt_libapps/2.15.21-1 url: https://github.com/ros2-gbp/mrpt_ros-release.git version: 2.15.21 mrpt_libapps_cli: - tag: release/rolling/mrpt_libapps_cli/3.1.3-1 + dependencies: + - mrpt_hwdrivers + - mrpt_slam + - mrpt_topography + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_libapps_cli/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_libapps_gui: - tag: release/rolling/mrpt_libapps_gui/3.1.3-1 + dependencies: + - mrpt_gui + - mrpt_libapps_cli + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_libapps_gui/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_libbase: + dependencies: + - nanoflann_vendor + repository: https://github.com/MRPT/mrpt_ros tag: release/rolling/mrpt_libbase/2.15.21-1 url: https://github.com/ros2-gbp/mrpt_ros-release.git version: 2.15.21 mrpt_libgui: + dependencies: + - mrpt_libopengl + repository: https://github.com/MRPT/mrpt_ros tag: release/rolling/mrpt_libgui/2.15.21-1 url: https://github.com/ros2-gbp/mrpt_ros-release.git version: 2.15.21 mrpt_libhwdrivers: + dependencies: + - mrpt_libgui + - mrpt_libmaps + - mrpt_libslam + repository: https://github.com/MRPT/mrpt_ros tag: release/rolling/mrpt_libhwdrivers/2.15.21-1 url: https://github.com/ros2-gbp/mrpt_ros-release.git version: 2.15.21 mrpt_libmaps: + dependencies: + - mrpt_libobs + repository: https://github.com/MRPT/mrpt_ros tag: release/rolling/mrpt_libmaps/2.15.21-1 url: https://github.com/ros2-gbp/mrpt_ros-release.git version: 2.15.21 mrpt_libmath: + dependencies: + - mrpt_libbase + - nanoflann_vendor + repository: https://github.com/MRPT/mrpt_ros tag: release/rolling/mrpt_libmath/2.15.21-1 url: https://github.com/ros2-gbp/mrpt_ros-release.git version: 2.15.21 mrpt_libnav: + dependencies: + - mrpt_libmaps + repository: https://github.com/MRPT/mrpt_ros tag: release/rolling/mrpt_libnav/2.15.21-1 url: https://github.com/ros2-gbp/mrpt_ros-release.git version: 2.15.21 mrpt_libobs: + dependencies: + - mrpt_libopengl + - mrpt_libposes + repository: https://github.com/MRPT/mrpt_ros tag: release/rolling/mrpt_libobs/2.15.21-1 url: https://github.com/ros2-gbp/mrpt_ros-release.git version: 2.15.21 mrpt_libopengl: + dependencies: + - mrpt_libbase + - mrpt_libposes + repository: https://github.com/MRPT/mrpt_ros tag: release/rolling/mrpt_libopengl/2.15.21-1 url: https://github.com/ros2-gbp/mrpt_ros-release.git version: 2.15.21 mrpt_libposes: + dependencies: + - mrpt_libbase + - mrpt_libmath + repository: https://github.com/MRPT/mrpt_ros tag: release/rolling/mrpt_libposes/2.15.21-1 url: https://github.com/ros2-gbp/mrpt_ros-release.git version: 2.15.21 mrpt_libros_bridge: - tag: release/rolling/mrpt_libros_bridge/3.5.3-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - geometry_msgs + - gps_msgs + - mrpt_maps + - mrpt_obs + - nav_msgs + - ros_environment + - rosbag2_cpp + - sensor_msgs + - std_msgs + - stereo_msgs + - tf2 + - tf2_geometry_msgs + repository: https://github.com/MRPT/mrpt_ros_bridge + tag: release/rolling/mrpt_libros_bridge/4.0.0-1 url: https://github.com/ros2-gbp/mrpt_ros_bridge-release.git - version: 3.5.3 + version: 4.0.0 mrpt_libslam: + dependencies: + - mrpt_libmaps + repository: https://github.com/MRPT/mrpt_ros tag: release/rolling/mrpt_libslam/2.15.21-1 url: https://github.com/ros2-gbp/mrpt_ros-release.git version: 2.15.21 mrpt_libtclap: + dependencies: + - mrpt_libbase + - nanoflann_vendor + repository: https://github.com/MRPT/mrpt_ros tag: release/rolling/mrpt_libtclap/2.15.21-1 url: https://github.com/ros2-gbp/mrpt_ros-release.git version: 2.15.21 mrpt_map_server: - tag: release/rolling/mrpt_map_server/2.5.0-1 + dependencies: + - ament_cmake + - ament_cmake_lint_cmake + - ament_cmake_xmllint + - ament_lint_auto + - mp2p_icp + - mrpt_libros_bridge + - mrpt_maps + - mrpt_msgs + - mrpt_nav_interfaces + - mrpt_obs + - mrpt_topography + - rclcpp_components + - tf2 + - tf2_geometry_msgs + - tf2_ros + repository: https://github.com/mrpt-ros-pkg/mrpt_navigation + tag: release/rolling/mrpt_map_server/2.6.1-1 url: https://github.com/ros2-gbp/mrpt_navigation-release.git - version: 2.5.0 + version: 2.6.1 mrpt_maps: - tag: release/rolling/mrpt_maps/3.1.3-1 + dependencies: + - mrpt_graphs + - mrpt_obs + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_maps/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_math: - tag: release/rolling/mrpt_math/3.1.3-1 + dependencies: + - mrpt_common + - mrpt_io + - mrpt_random + - mrpt_serialization + - mrpt_system + - nanoflann_vendor + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_math/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_msgs: + dependencies: + - ament_cmake + - ament_cppcheck + - ament_cpplint + - ament_lint_auto + - ament_lint_cmake + - ament_lint_common + - geometry_msgs + - ros_environment + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + - std_msgs + repository: https://github.com/mrpt-ros-pkg/mrpt_msgs tag: release/rolling/mrpt_msgs/0.6.0-2 url: https://github.com/ros2-gbp/mrpt_msgs-release.git version: 0.6.0 mrpt_msgs_bridge: - tag: release/rolling/mrpt_msgs_bridge/2.5.0-1 + dependencies: + - ament_cmake + - ament_cmake_lint_cmake + - ament_cmake_xmllint + - ament_lint_auto + - geometry_msgs + - mrpt_graphs + - mrpt_libros_bridge + - mrpt_msgs + - mrpt_obs + - rclcpp + - ros_environment + - tf2 + repository: https://github.com/mrpt-ros-pkg/mrpt_navigation + tag: release/rolling/mrpt_msgs_bridge/2.6.1-1 url: https://github.com/ros2-gbp/mrpt_navigation-release.git - version: 2.5.0 + version: 2.6.1 mrpt_nav: - tag: release/rolling/mrpt_nav/3.1.3-1 + dependencies: + - mrpt_kinematics + - mrpt_maps + - mrpt_viz + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_nav/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_nav_interfaces: - tag: release/rolling/mrpt_nav_interfaces/2.5.0-1 + dependencies: + - action_msgs + - ament_cmake + - geometry_msgs + - mrpt_msgs + - nav_msgs + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/mrpt-ros-pkg/mrpt_navigation + tag: release/rolling/mrpt_nav_interfaces/2.6.1-1 url: https://github.com/ros2-gbp/mrpt_navigation-release.git - version: 2.5.0 + version: 2.6.1 mrpt_navigation: - tag: release/rolling/mrpt_navigation/2.5.0-1 + dependencies: + - ament_cmake + - ament_cmake_lint_cmake + - ament_cmake_xmllint + - ament_lint_auto + - mrpt_map_server + - mrpt_msgs_bridge + - mrpt_nav_interfaces + - mrpt_pf_localization + - mrpt_pointcloud_pipeline + - mrpt_reactivenav2d + - mrpt_tps_astar_planner + - mrpt_tutorials + repository: https://github.com/mrpt-ros-pkg/mrpt_navigation + tag: release/rolling/mrpt_navigation/2.6.1-1 url: https://github.com/ros2-gbp/mrpt_navigation-release.git - version: 2.5.0 + version: 2.6.1 mrpt_obs: - tag: release/rolling/mrpt_obs/3.1.3-1 + dependencies: + - mrpt_common + - mrpt_tfest + - mrpt_viz + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_obs/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_opengl: - tag: release/rolling/mrpt_opengl/3.1.3-1 + dependencies: + - mrpt_img + - mrpt_poses + - mrpt_viz + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_opengl/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_path_planning: - tag: release/rolling/mrpt_path_planning/1.0.1-1 + dependencies: + - mrpt_path_planning_apps + - mrpt_path_planning_core + repository: https://github.com/MRPT/mrpt_path_planning + tag: release/rolling/mrpt_path_planning/2.0.0-1 url: https://github.com/ros2-gbp/mrpt_path_planning-release.git - version: 1.0.1 + version: 2.0.0 +mrpt_path_planning_apps: + dependencies: + - mrpt_gui + - mrpt_nav + - mrpt_path_planning_core + - mvsim + repository: https://github.com/MRPT/mrpt_path_planning + tag: release/rolling/mrpt_path_planning_apps/2.0.0-1 + url: https://github.com/ros2-gbp/mrpt_path_planning-release.git + version: 2.0.0 +mrpt_path_planning_core: + dependencies: + - mrpt_containers + - mrpt_graphs + - mrpt_maps + - mrpt_nav + repository: https://github.com/MRPT/mrpt_path_planning + tag: release/rolling/mrpt_path_planning_core/2.0.0-1 + url: https://github.com/ros2-gbp/mrpt_path_planning-release.git + version: 2.0.0 mrpt_pf_localization: - tag: release/rolling/mrpt_pf_localization/2.5.0-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_lint_cmake + - ament_cmake_xmllint + - ament_lint_auto + - mola_relocalization + - mp2p_icp + - mrpt_gui + - mrpt_libros_bridge + - mrpt_msgs + - mrpt_msgs_bridge + - mrpt_slam + - mrpt_tutorials + - mrpt_viz + - nav_msgs + - pose_cov_ops + - rclcpp + - rclcpp_components + - sensor_msgs + - std_msgs + - tf2 + - tf2_geometry_msgs + repository: https://github.com/mrpt-ros-pkg/mrpt_navigation + tag: release/rolling/mrpt_pf_localization/2.6.1-1 url: https://github.com/ros2-gbp/mrpt_navigation-release.git - version: 2.5.0 + version: 2.6.1 mrpt_pointcloud_pipeline: - tag: release/rolling/mrpt_pointcloud_pipeline/2.5.0-1 + dependencies: + - ament_cmake + - ament_cmake_lint_cmake + - ament_cmake_xmllint + - ament_lint_auto + - mp2p_icp + - mrpt_gui + - mrpt_libros_bridge + - mrpt_maps + - mrpt_obs + - nav_msgs + - rclcpp + - rclcpp_components + - sensor_msgs + - tf2 + - tf2_geometry_msgs + repository: https://github.com/mrpt-ros-pkg/mrpt_navigation + tag: release/rolling/mrpt_pointcloud_pipeline/2.6.1-1 url: https://github.com/ros2-gbp/mrpt_navigation-release.git - version: 2.5.0 + version: 2.6.1 mrpt_poses: - tag: release/rolling/mrpt_poses/3.1.3-1 + dependencies: + - mrpt_bayes + - mrpt_common + - mrpt_io + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_poses/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_random: - tag: release/rolling/mrpt_random/3.1.3-1 + dependencies: + - mrpt_common + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_random/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_reactivenav2d: - tag: release/rolling/mrpt_reactivenav2d/2.5.0-1 + dependencies: + - ament_cmake + - ament_cmake_lint_cmake + - ament_cmake_xmllint + - ament_lint_auto + - geometry_msgs + - mrpt_kinematics + - mrpt_libros_bridge + - mrpt_nav + - mrpt_nav_interfaces + - nav_msgs + - rclcpp + - rclcpp_components + - sensor_msgs + - std_msgs + - stereo_msgs + - tf2 + - tf2_geometry_msgs + - tf2_ros + - visualization_msgs + repository: https://github.com/mrpt-ros-pkg/mrpt_navigation + tag: release/rolling/mrpt_reactivenav2d/2.6.1-1 url: https://github.com/ros2-gbp/mrpt_navigation-release.git - version: 2.5.0 + version: 2.6.1 mrpt_rtti: - tag: release/rolling/mrpt_rtti/3.1.3-1 + dependencies: + - mrpt_common + - mrpt_core + - mrpt_typemeta + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_rtti/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_sensor_bumblebee_stereo: - tag: release/rolling/mrpt_sensor_bumblebee_stereo/0.3.0-1 + dependencies: + - ament_cmake + - ament_cmake_xmllint + - ament_lint_auto + - mrpt_hwdrivers + - mrpt_libros_bridge + - mrpt_msgs + - mrpt_sensorlib + - rclcpp_components + - ros_environment + - tf2_ros + repository: https://github.com/mrpt-ros-pkg/mrpt_sensors + tag: release/rolling/mrpt_sensor_bumblebee_stereo/0.4.0-1 url: https://github.com/ros2-gbp/mrpt_sensors-release.git - version: 0.3.0 + version: 0.4.0 mrpt_sensor_gnss_nmea: - tag: release/rolling/mrpt_sensor_gnss_nmea/0.3.0-1 + dependencies: + - ament_cmake + - ament_cmake_xmllint + - ament_lint_auto + - mrpt_hwdrivers + - mrpt_libros_bridge + - mrpt_msgs + - mrpt_sensorlib + - nmea_msgs + - rclcpp_components + - ros_environment + - tf2_ros + repository: https://github.com/mrpt-ros-pkg/mrpt_sensors + tag: release/rolling/mrpt_sensor_gnss_nmea/0.4.0-1 url: https://github.com/ros2-gbp/mrpt_sensors-release.git - version: 0.3.0 + version: 0.4.0 mrpt_sensor_gnss_novatel: - tag: release/rolling/mrpt_sensor_gnss_novatel/0.3.0-1 + dependencies: + - ament_cmake + - ament_cmake_xmllint + - ament_lint_auto + - mrpt_hwdrivers + - mrpt_libros_bridge + - mrpt_msgs + - mrpt_sensorlib + - novatel_oem6_msgs + - rclcpp_components + - ros_environment + - tf2_ros + repository: https://github.com/mrpt-ros-pkg/mrpt_sensors + tag: release/rolling/mrpt_sensor_gnss_novatel/0.4.0-1 url: https://github.com/ros2-gbp/mrpt_sensors-release.git - version: 0.3.0 + version: 0.4.0 mrpt_sensor_imu_taobotics: - tag: release/rolling/mrpt_sensor_imu_taobotics/0.3.0-1 + dependencies: + - ament_cmake + - ament_cmake_xmllint + - ament_lint_auto + - mrpt_hwdrivers + - mrpt_libros_bridge + - mrpt_msgs + - mrpt_sensorlib + - rclcpp_components + - ros_environment + - tf2_ros + repository: https://github.com/mrpt-ros-pkg/mrpt_sensors + tag: release/rolling/mrpt_sensor_imu_taobotics/0.4.0-1 url: https://github.com/ros2-gbp/mrpt_sensors-release.git - version: 0.3.0 + version: 0.4.0 mrpt_sensorlib: - tag: release/rolling/mrpt_sensorlib/0.3.0-1 + dependencies: + - ament_cmake + - ament_cmake_xmllint + - ament_lint_auto + - diagnostic_updater + - mrpt_hwdrivers + - mrpt_libros_bridge + - mrpt_msgs + - rclcpp_components + - ros_environment + - tf2_geometry_msgs + - tf2_ros + repository: https://github.com/mrpt-ros-pkg/mrpt_sensors + tag: release/rolling/mrpt_sensorlib/0.4.0-1 url: https://github.com/ros2-gbp/mrpt_sensors-release.git - version: 0.3.0 + version: 0.4.0 mrpt_sensors: - tag: release/rolling/mrpt_sensors/0.3.0-1 + dependencies: + - ament_cmake + - ament_cmake_xmllint + - ament_lint_auto + - mrpt_generic_sensor + - mrpt_sensor_bumblebee_stereo + - mrpt_sensor_gnss_nmea + - mrpt_sensor_gnss_novatel + - mrpt_sensor_imu_taobotics + - mrpt_sensorlib + repository: https://github.com/mrpt-ros-pkg/mrpt_sensors + tag: release/rolling/mrpt_sensors/0.4.0-1 url: https://github.com/ros2-gbp/mrpt_sensors-release.git - version: 0.3.0 + version: 0.4.0 mrpt_serialization: - tag: release/rolling/mrpt_serialization/3.1.3-1 + dependencies: + - mrpt_common + - mrpt_rtti + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_serialization/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_slam: - tag: release/rolling/mrpt_slam/3.1.3-1 + dependencies: + - mrpt_maps + - mrpt_topography + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_slam/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_system: - tag: release/rolling/mrpt_system/3.1.3-1 + dependencies: + - mrpt_common + - mrpt_containers + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_system/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_tfest: - tag: release/rolling/mrpt_tfest/3.1.3-1 + dependencies: + - mrpt_common + - mrpt_poses + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_tfest/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_topography: - tag: release/rolling/mrpt_topography/3.1.3-1 + dependencies: + - mrpt_common + - mrpt_math + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_topography/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_tps_astar_planner: - tag: release/rolling/mrpt_tps_astar_planner/2.5.0-1 + dependencies: + - ament_cmake + - ament_cmake_lint_cmake + - ament_cmake_xmllint + - ament_lint_auto + - mrpt_containers + - mrpt_gui + - mrpt_kinematics + - mrpt_libros_bridge + - mrpt_maps + - mrpt_math + - mrpt_msgs + - mrpt_nav + - mrpt_nav_interfaces + - mrpt_opengl + - mrpt_path_planning_apps + - mrpt_path_planning_core + - mrpt_system + - mrpt_viz + - nav_msgs + - rclcpp + - rclcpp_components + - sensor_msgs + - tf2 + - tf2_geometry_msgs + - tf2_ros + - visualization_msgs + repository: https://github.com/mrpt-ros-pkg/mrpt_navigation + tag: release/rolling/mrpt_tps_astar_planner/2.6.1-1 url: https://github.com/ros2-gbp/mrpt_navigation-release.git - version: 2.5.0 + version: 2.6.1 +mrpt_trajectory_follower: + dependencies: + - ament_cmake + - ament_cmake_lint_cmake + - ament_cmake_xmllint + - ament_lint_auto + - geometry_msgs + - mrpt_containers + - mrpt_libros_bridge + - mrpt_maps + - mrpt_math + - mrpt_path_planning_core + - mrpt_system + - nav_msgs + - rclcpp + - sensor_msgs + - std_msgs + - tf2 + - tf2_geometry_msgs + - tf2_ros + repository: https://github.com/mrpt-ros-pkg/mrpt_navigation + tag: release/rolling/mrpt_trajectory_follower/2.6.1-1 + url: https://github.com/ros2-gbp/mrpt_navigation-release.git + version: 2.6.1 mrpt_tutorials: - tag: release/rolling/mrpt_tutorials/2.5.0-1 + dependencies: + - ament_cmake + - ament_cmake_lint_cmake + - ament_cmake_xmllint + - ament_lint_auto + - mvsim + - teleop_twist_keyboard + repository: https://github.com/mrpt-ros-pkg/mrpt_navigation + tag: release/rolling/mrpt_tutorials/2.6.1-1 url: https://github.com/ros2-gbp/mrpt_navigation-release.git - version: 2.5.0 + version: 2.6.1 mrpt_typemeta: - tag: release/rolling/mrpt_typemeta/3.1.3-1 + dependencies: + - mrpt_common + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_typemeta/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrpt_viz: - tag: release/rolling/mrpt_viz/3.1.3-1 + dependencies: + - mrpt_common + - mrpt_img + - mrpt_poses + repository: https://github.com/MRPT/mrpt + tag: release/rolling/mrpt_viz/3.5.2-1 url: https://github.com/ros2-gbp/mrpt3-release.git - version: 3.1.3 + version: 3.5.2 mrt_cmake_modules: + dependencies: + - ament_cmake_core + - gtest_vendor + - ros_environment + repository: https://github.com/KIT-MRT/mrt_cmake_modules tag: release/rolling/mrt_cmake_modules/1.0.11-2 url: https://github.com/ros2-gbp/mrt_cmake_modules-release.git version: 1.0.11 mujoco_3d_lidar: - tag: release/rolling/mujoco_3d_lidar/0.1.0-2 + dependencies: + - ament_cmake + - mujoco_vendor + repository: https://github.com/ros-controls/mujoco_ros2_control + tag: release/rolling/mujoco_3d_lidar/0.1.3-1 url: https://github.com/ros2-gbp/mujoco_ros2_control-release.git - version: 0.1.0 + version: 0.1.3 mujoco_ros2_control: - tag: release/rolling/mujoco_ros2_control/0.1.0-2 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_python + - ament_index_cpp + - ament_index_python + - backward_ros + - control_toolbox + - controller_manager + - geometry_msgs + - hardware_interface + - mujoco_ros2_control_msgs + - mujoco_ros2_control_plugins + - mujoco_vendor + - nav_msgs + - pluginlib + - rclcpp + - rclcpp_lifecycle + - realtime_tools + - ros2_control_cmake + - ros2pkg + - rosgraph_msgs + - sensor_msgs + - std_msgs + - transmission_interface + - urdfdom_py + repository: https://github.com/ros-controls/mujoco_ros2_control + tag: release/rolling/mujoco_ros2_control/0.1.3-1 url: https://github.com/ros2-gbp/mujoco_ros2_control-release.git - version: 0.1.0 + version: 0.1.3 mujoco_ros2_control_demos: - tag: release/rolling/mujoco_ros2_control_demos/0.1.0-2 + dependencies: + - ament_cmake + - controller_manager + - forward_command_controller + - joint_state_broadcaster + - launch + - launch_ros + - mujoco_ros2_control + - mujoco_ros2_control_msgs + - pose_broadcaster + - robot_state_publisher + - rviz2 + - xacro + repository: https://github.com/ros-controls/mujoco_ros2_control + tag: release/rolling/mujoco_ros2_control_demos/0.1.3-1 url: https://github.com/ros2-gbp/mujoco_ros2_control-release.git - version: 0.1.0 + version: 0.1.3 mujoco_ros2_control_msgs: - tag: release/rolling/mujoco_ros2_control_msgs/0.1.0-2 + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + - std_msgs + repository: https://github.com/ros-controls/mujoco_ros2_control + tag: release/rolling/mujoco_ros2_control_msgs/0.1.3-1 url: https://github.com/ros2-gbp/mujoco_ros2_control-release.git - version: 0.1.0 + version: 0.1.3 mujoco_ros2_control_plugins: - tag: release/rolling/mujoco_ros2_control_plugins/0.1.0-2 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_index_cpp + - backward_ros + - geometry_msgs + - mujoco_3d_lidar + - mujoco_ros2_control_msgs + - mujoco_vendor + - pluginlib + - rclcpp + - realtime_tools + - ros2_control_cmake + - sensor_msgs + - std_msgs + - std_srvs + - visualization_msgs + repository: https://github.com/ros-controls/mujoco_ros2_control + tag: release/rolling/mujoco_ros2_control_plugins/0.1.3-1 url: https://github.com/ros2-gbp/mujoco_ros2_control-release.git - version: 0.1.0 + version: 0.1.3 mujoco_vendor: - tag: release/rolling/mujoco_vendor/0.0.9-1 + dependencies: + - ament_cmake + - ament_cmake_vendor_package + repository: https://github.com/pal-robotics/mujoco_vendor + tag: release/rolling/mujoco_vendor/0.1.0-1 url: https://github.com/ros2-gbp/mujoco_vendor-release.git - version: 0.0.9 + version: 0.1.0 multires_image: - tag: release/rolling/multires_image/4.0.3-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - gps_msgs + - mapviz + - mapviz_interfaces + - marti_common_msgs + - pluginlib + - rclcpp + - rclpy + - swri_math_util + - swri_transform_util + - tf2 + repository: https://github.com/swri-robotics/mapviz + tag: release/rolling/multires_image/4.1.2-1 url: https://github.com/ros2-gbp/mapviz-release.git - version: 4.0.3 + version: 4.1.2 mvsim: - tag: release/rolling/mvsim/1.4.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - ament_cmake_gtest + - ament_cmake_xmllint + - ament_lint_auto + - ament_lint_common + - mrpt_gui + - mrpt_libros_bridge + - mrpt_maps + - mrpt_tfest + - mrpt_topography + - nav_msgs + - ros2launch + - ros_environment + - sensor_msgs + - stereo_msgs + - tf2 + - tf2_geometry_msgs + - visualization_msgs + repository: https://github.com/MRPT/mvsim + tag: release/rolling/mvsim/1.6.0-1 url: https://github.com/ros2-gbp/mvsim-release.git - version: 1.4.0 + version: 1.6.0 nanoeigenpy: + dependencies: [] + repository: https://github.com/Simple-Robotics/nanoeigenpy tag: release/rolling/nanoeigenpy/0.5.0-2 url: https://github.com/ros2-gbp/nanoeigenpy-release.git version: 0.5.0 nanoflann_vendor: - tag: release/rolling/nanoflann_vendor/1.12.1-1 + dependencies: [] + repository: https://github.com/jlblancoc/nanoflann + tag: release/rolling/nanoflann_vendor/2.0.1-1 url: https://github.com/ros2-gbp/nanoflann-release.git - version: 1.12.1 + version: 2.0.1 nao_button_sim: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - nao_lola_sensor_msgs + repository: https://github.com/ijnek/nao_button_sim tag: release/rolling/nao_button_sim/1.0.1-2 url: https://github.com/ros2-gbp/nao_button_sim-release.git version: 1.0.1 nao_command_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ijnek/nao_interfaces tag: release/rolling/nao_command_msgs/1.0.0-3 url: https://github.com/ros2-gbp/nao_interfaces-release.git version: 1.0.0 nao_lola: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - nao_command_msgs + - nao_sensor_msgs + - rclcpp + repository: https://github.com/ros-sports/nao_lola tag: release/rolling/nao_lola/1.3.0-2 url: https://github.com/ros2-gbp/nao_lola-release.git version: 1.3.0 nao_lola_client: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - nao_lola_command_msgs + - nao_lola_sensor_msgs + - rcl_interfaces + - rclcpp + - rclcpp_components + - sensor_msgs + repository: https://github.com/ros-sports/nao_lola tag: release/rolling/nao_lola_client/1.3.0-2 url: https://github.com/ros2-gbp/nao_lola-release.git version: 1.3.0 nao_lola_command_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ros-sports/nao_lola tag: release/rolling/nao_lola_command_msgs/1.3.0-2 url: https://github.com/ros2-gbp/nao_lola-release.git version: 1.3.0 nao_lola_sensor_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/ros-sports/nao_lola tag: release/rolling/nao_lola_sensor_msgs/1.3.0-2 url: https://github.com/ros2-gbp/nao_lola-release.git version: 1.3.0 nao_sensor_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/ijnek/nao_interfaces tag: release/rolling/nao_sensor_msgs/1.0.0-3 url: https://github.com/ros2-gbp/nao_interfaces-release.git version: 1.0.0 nav2_minimal_tb3_sim: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - robot_state_publisher + - ros_gz_bridge + - ros_gz_image + - ros_gz_interfaces + - ros_gz_sim + - xacro + repository: https://github.com/ros-navigation/nav2_minimal_turtlebot_simulation tag: release/rolling/nav2_minimal_tb3_sim/1.3.0-1 url: https://github.com/ros2-gbp/nav2_minimal_turtlebot_simulation-release.git version: 1.3.0 nav2_minimal_tb4_description: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - joint_state_publisher + - robot_state_publisher + - urdf + - xacro + repository: https://github.com/ros-navigation/nav2_minimal_turtlebot_simulation tag: release/rolling/nav2_minimal_tb4_description/1.3.0-1 url: https://github.com/ros2-gbp/nav2_minimal_turtlebot_simulation-release.git version: 1.3.0 nav2_minimal_tb4_sim: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - nav2_minimal_tb4_description + - robot_state_publisher + - ros_gz_bridge + - ros_gz_image + - ros_gz_interfaces + - ros_gz_sim + - xacro + repository: https://github.com/ros-navigation/nav2_minimal_turtlebot_simulation tag: release/rolling/nav2_minimal_tb4_sim/1.3.0-1 url: https://github.com/ros2-gbp/nav2_minimal_turtlebot_simulation-release.git version: 1.3.0 nav_msgs: - tag: release/rolling/nav_msgs/5.10.1-1 + dependencies: + - ament_cmake + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ros2/common_interfaces + tag: release/rolling/nav_msgs/5.10.2-1 url: https://github.com/ros2-gbp/common_interfaces-release.git - version: 5.10.1 + version: 5.10.2 ndcurves: + dependencies: + - ament_cmake + - eigenpy + - jrl_cmakemodules + - pinocchio + repository: https://github.com/loco-3d/ndcurves tag: release/rolling/ndcurves/2.3.0-1 url: https://github.com/ros2-gbp/ndcurves-release.git version: 2.3.0 neobotix_usboard_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - ros_environment + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/astuff/astuff_sensor_msgs tag: release/rolling/neobotix_usboard_msgs/4.0.0-4 url: https://github.com/ros2-gbp/astuff_sensor_msgs-release.git version: 4.0.0 network_bridge: - tag: release/rolling/network_bridge/3.0.0-2 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_pytest + - ament_index_python + - ament_lint_auto + - ament_lint_common + - demo_nodes_cpp + - launch_ros + - launch_testing + - launch_testing_ament_cmake + - launch_testing_ros + - pluginlib + - rclcpp + - rclpy + - std_msgs + - tf2_msgs + - tf2_ros + repository: https://github.com/brow1633/network_bridge + tag: release/rolling/network_bridge/3.1.0-1 url: https://github.com/ros2-gbp/network_bridge-release.git - version: 3.0.0 + version: 3.1.0 nlohmann_json_schema_validator_vendor: + dependencies: + - ament_cmake + repository: https://github.com/open-rmf/nlohmann_json_schema_validator_vendor tag: release/rolling/nlohmann_json_schema_validator_vendor/0.5.0-2 url: https://github.com/ros2-gbp/nlohmann_json_schema_validator_vendor-release.git version: 0.5.0 nmea_msgs: + dependencies: + - ament_cmake + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ros-drivers/nmea_msgs tag: release/rolling/nmea_msgs/2.1.0-3 url: https://github.com/ros2-gbp/nmea_msgs-release.git version: 2.1.0 nmea_navsat_driver: + dependencies: + - geometry_msgs + - nmea_msgs + - rclpy + - sensor_msgs + - tf_transformations + repository: https://github.com/ros-drivers/nmea_navsat_driver tag: release/rolling/nmea_navsat_driver/2.0.1-3 url: https://github.com/ros2-gbp/nmea_navsat_driver-release.git version: 2.0.1 nobleo_socketcan_bridge: + dependencies: + - ament_cmake + - ament_cmake_clang_format + - ament_cmake_cppcheck + - ament_cmake_cpplint + - ament_cmake_lint_cmake + - ament_cmake_ros + - ament_cmake_xmllint + - ament_lint_auto + - can_msgs + - diagnostic_msgs + - diagnostic_updater + - rclcpp + - rclcpp_components + repository: https://github.com/nobleo/nobleo_socketcan_bridge tag: release/rolling/nobleo_socketcan_bridge/1.0.4-2 url: https://github.com/ros2-gbp/nobleo_socketcan_bridge-release.git version: 1.0.4 -nodl_python: - tag: release/rolling/nodl_python/0.3.1-5 +nodl: + dependencies: + - ament_cmake + - ament_nodl + - nodl_common_interfaces + - nodl_generator_cpp + - nodl_schema + - ros2nodl + repository: https://github.com/ros-tooling/nodl + tag: release/rolling/nodl/2.0.3-1 url: https://github.com/ros2-gbp/nodl-release.git - version: 0.3.1 + version: 2.0.3 +nodl_common_interfaces: + dependencies: + - ament_cmake + - ament_nodl + repository: https://github.com/ros-tooling/nodl + tag: release/rolling/nodl_common_interfaces/2.0.3-1 + url: https://github.com/ros2-gbp/nodl-release.git + version: 2.0.3 +nodl_conformance: + dependencies: + - nodl_schema + repository: https://github.com/ros-tooling/nodl + tag: release/rolling/nodl_conformance/2.0.3-1 + url: https://github.com/ros2-gbp/nodl-release.git + version: 2.0.3 +nodl_docgen: + dependencies: + - nodl_schema + repository: https://github.com/ros-tooling/nodl + tag: release/rolling/nodl_docgen/2.0.3-1 + url: https://github.com/ros2-gbp/nodl-release.git + version: 2.0.3 +nodl_generator_cpp: + dependencies: + - ament_cmake + - ament_cmake_python + - generate_parameter_library + - generate_parameter_library_py + - nodl_schema + repository: https://github.com/ros-tooling/nodl + tag: release/rolling/nodl_generator_cpp/2.0.3-1 + url: https://github.com/ros2-gbp/nodl-release.git + version: 2.0.3 +nodl_observe: + dependencies: + - ament_cmake + - ament_cmake_auto + - ament_cmake_gtest + - ament_cmake_pytest + - builtin_interfaces + - example_interfaces + - rcl_action + - rcl_interfaces + - rclcpp + - rclpy + - rmw + - rmw_cyclonedds_cpp + - rmw_fastrtps_cpp + - rmw_implementation_cmake + - rmw_zenoh_cpp + - ros_environment + - rosgraph_msgs + - rosidl_runtime_py + - std_msgs + repository: https://github.com/ros-tooling/nodl + tag: release/rolling/nodl_observe/2.0.3-1 + url: https://github.com/ros2-gbp/nodl-release.git + version: 2.0.3 +nodl_schema: + dependencies: + - ament_index_python + repository: https://github.com/ros-tooling/nodl + tag: release/rolling/nodl_schema/2.0.3-1 + url: https://github.com/ros2-gbp/nodl-release.git + version: 2.0.3 nodl_to_policy: + dependencies: + - ament_copyright + - ament_flake8 + - ament_lint_auto + - ament_mypy + - ament_pep257 + - ament_pycodestyle + - ros2cli + - ros2nodl + - ros2run + - ros_testing + - sros2 + - test_msgs + repository: https://github.com/osrf/nodl_to_policy tag: release/rolling/nodl_to_policy/1.0.0-5 url: https://github.com/ros2-gbp/nodl_to_policy-release.git version: 1.0.0 novatel_gps_driver: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_index_cpp + - ament_lint_auto + - diagnostic_msgs + - diagnostic_updater + - gps_msgs + - nav_msgs + - novatel_gps_msgs + - rclcpp + - rclcpp_components + - sensor_msgs + - std_msgs + - swri_math_util + - swri_serial_util + - tf2 + - tf2_geometry_msgs + repository: https://github.com/swri-robotics/novatel_gps_driver tag: release/rolling/novatel_gps_driver/5.0.0-1 url: https://github.com/ros2-gbp/novatel_gps_driver-release.git version: 5.0.0 novatel_gps_msgs: + dependencies: + - ament_cmake + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/swri-robotics/novatel_gps_driver tag: release/rolling/novatel_gps_msgs/5.0.0-1 url: https://github.com/ros2-gbp/novatel_gps_driver-release.git version: 5.0.0 novatel_oem6_msgs: - tag: release/rolling/novatel_oem6_msgs/0.3.0-1 + dependencies: + - ament_cmake + - ament_cmake_xmllint + - ros_environment + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/mrpt-ros-pkg/mrpt_sensors + tag: release/rolling/novatel_oem6_msgs/0.4.0-1 url: https://github.com/ros2-gbp/mrpt_sensors-release.git - version: 0.3.0 + version: 0.4.0 ntpd_driver: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rclcpp + - rclcpp_components + - sensor_msgs + repository: https://github.com/vooon/ntpd_driver tag: release/rolling/ntpd_driver/2.3.0-2 url: https://github.com/ros2-gbp/ntpd_driver-release.git version: 2.3.0 ntrip_client: + dependencies: + - nmea_msgs + - rclpy + - rtcm_msgs + - sensor_msgs + - std_msgs + repository: https://github.com/LORD-MicroStrain/ntrip_client tag: release/rolling/ntrip_client/1.4.1-2 url: https://github.com/ros2-gbp/ntrip_client-release.git version: 1.4.1 ntrip_client_node: + dependencies: + - ament_cmake + - ament_cmake_copyright + - ament_cmake_cppcheck + - ament_cmake_uncrustify + - ament_lint_auto + - ament_lint_common + - rclcpp + - rclcpp_components + - rtcm_msgs + - std_msgs + repository: https://github.com/aussierobots/ublox_dgnss tag: release/rolling/ntrip_client_node/0.7.6-1 url: https://github.com/ros2-gbp/ublox_dgnss-release.git version: 0.7.6 object_recognition_msgs: + dependencies: + - action_msgs + - ament_cmake + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + - shape_msgs + - std_msgs + repository: https://github.com/wg-perception/object_recognition_msgs tag: release/rolling/object_recognition_msgs/2.0.0-5 url: https://github.com/ros2-gbp/object_recognition_msgs-release.git version: 2.0.0 octomap_mapping: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - octomap_server + repository: https://github.com/OctoMap/octomap_mapping tag: release/rolling/octomap_mapping/2.3.1-2 url: https://github.com/ros2-gbp/octomap_mapping-release.git version: 2.3.1 octomap_msgs: + dependencies: + - ament_cmake + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/octomap/octomap_msgs tag: release/rolling/octomap_msgs/2.0.1-2 url: https://github.com/ros2-gbp/octomap_msgs-release.git version: 2.0.1 octomap_ros: + dependencies: + - ament_cmake_auto + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - octomap_msgs + - sensor_msgs + - tf2 + repository: https://github.com/OctoMap/octomap_ros tag: release/rolling/octomap_ros/0.4.5-2 url: https://github.com/ros2-gbp/octomap_ros-release.git version: 0.4.5 octomap_rviz_plugins: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + - octomap_msgs + - rclcpp + - rviz_common + - rviz_default_plugins + - rviz_rendering + repository: https://github.com/OctoMap/octomap_rviz_plugins tag: release/rolling/octomap_rviz_plugins/2.2.0-2 url: https://github.com/ros2-gbp/octomap_rviz_plugins-release.git version: 2.2.0 octomap_server: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + - geometry_msgs + - message_filters + - nav_msgs + - octomap_msgs + - octomap_ros + - pcl_conversions + - pcl_ros + - rclcpp + - rclcpp_components + - sensor_msgs + - std_msgs + - std_srvs + - tf2 + - tf2_eigen + - tf2_geometry_msgs + - tf2_ros + - visualization_msgs + repository: https://github.com/OctoMap/octomap_mapping tag: release/rolling/octomap_server/2.3.1-2 url: https://github.com/ros2-gbp/octomap_mapping-release.git version: 2.3.1 odom_to_tf_ros2: - tag: release/rolling/odom_to_tf_ros2/1.0.8-2 + dependencies: + - ament_cmake + - geometry_msgs + - nav_msgs + - rclcpp + - tf2_geometry_msgs + - tf2_ros + repository: https://github.com/gstavrinos/odom_to_tf_ros2 + tag: release/rolling/odom_to_tf_ros2/1.1.1-3 url: https://github.com/ros2-gbp/odom_to_tf_ros2-release.git - version: 1.0.8 + version: 1.1.1 odri_master_board_sdk: + dependencies: [] tag: release/rolling/odri_master_board_sdk/1.0.7-3 url: https://github.com/ros2-gbp/odri_master_board_sdk-release.git version: 1.0.7 off_highway_can: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - can_msgs + - diagnostic_updater + - rclcpp + - ros2_socketcan_msgs + repository: https://github.com/bosch-engineering/off_highway_sensor_drivers tag: release/rolling/off_highway_can/1.3.0-2 url: https://github.com/ros2-gbp/off_highway_sensor_drivers-release.git version: 1.3.0 off_highway_general_purpose_radar: + dependencies: + - ament_cmake + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - can_msgs + - off_highway_can + - off_highway_general_purpose_radar_msgs + - rclcpp + - rclcpp_components + - sensor_msgs + repository: https://github.com/bosch-engineering/off_highway_sensor_drivers tag: release/rolling/off_highway_general_purpose_radar/1.3.0-2 url: https://github.com/ros2-gbp/off_highway_sensor_drivers-release.git version: 1.3.0 off_highway_general_purpose_radar_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/bosch-engineering/off_highway_sensor_drivers tag: release/rolling/off_highway_general_purpose_radar_msgs/1.3.0-2 url: https://github.com/ros2-gbp/off_highway_sensor_drivers-release.git version: 1.3.0 off_highway_mm7p10: + dependencies: + - ament_cmake + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - can_msgs + - off_highway_can + - off_highway_mm7p10_msgs + - rclcpp + - rclcpp_components + - sensor_msgs + - tf2 + - tf2_geometry_msgs + repository: https://github.com/bosch-engineering/off_highway_sensor_drivers tag: release/rolling/off_highway_mm7p10/1.3.0-2 url: https://github.com/ros2-gbp/off_highway_sensor_drivers-release.git version: 1.3.0 off_highway_mm7p10_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/bosch-engineering/off_highway_sensor_drivers tag: release/rolling/off_highway_mm7p10_msgs/1.3.0-2 url: https://github.com/ros2-gbp/off_highway_sensor_drivers-release.git version: 1.3.0 off_highway_premium_radar: + dependencies: + - ament_cmake + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - asio_cmake_module + - diagnostic_updater + - io_context + - off_highway_premium_radar_msgs + - rclcpp + - rclcpp_components + - sensor_msgs + - std_msgs + repository: https://github.com/bosch-engineering/off_highway_sensor_drivers tag: release/rolling/off_highway_premium_radar/1.3.0-2 url: https://github.com/ros2-gbp/off_highway_sensor_drivers-release.git version: 1.3.0 off_highway_premium_radar_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/bosch-engineering/off_highway_sensor_drivers tag: release/rolling/off_highway_premium_radar_msgs/1.3.0-2 url: https://github.com/ros2-gbp/off_highway_sensor_drivers-release.git version: 1.3.0 off_highway_premium_radar_sample: + dependencies: + - ament_cmake + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - asio_cmake_module + - diagnostic_updater + - io_context + - off_highway_premium_radar_sample_msgs + - pcl_conversions + - rclcpp + - rclcpp_components + - sensor_msgs + - std_msgs + - tf2 + - tf2_geometry_msgs + repository: https://github.com/bosch-engineering/off_highway_sensor_drivers tag: release/rolling/off_highway_premium_radar_sample/1.3.0-2 url: https://github.com/ros2-gbp/off_highway_sensor_drivers-release.git version: 1.3.0 off_highway_premium_radar_sample_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/bosch-engineering/off_highway_sensor_drivers tag: release/rolling/off_highway_premium_radar_sample_msgs/1.3.0-2 url: https://github.com/ros2-gbp/off_highway_sensor_drivers-release.git version: 1.3.0 off_highway_radar: + dependencies: + - ament_cmake + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - can_msgs + - off_highway_can + - off_highway_radar_msgs + - rclcpp + - rclcpp_components + - sensor_msgs + repository: https://github.com/bosch-engineering/off_highway_sensor_drivers tag: release/rolling/off_highway_radar/1.3.0-2 url: https://github.com/ros2-gbp/off_highway_sensor_drivers-release.git version: 1.3.0 off_highway_radar_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/bosch-engineering/off_highway_sensor_drivers tag: release/rolling/off_highway_radar_msgs/1.3.0-2 url: https://github.com/ros2-gbp/off_highway_sensor_drivers-release.git version: 1.3.0 off_highway_sensor_drivers: + dependencies: + - ament_cmake + - off_highway_can + - off_highway_general_purpose_radar + - off_highway_general_purpose_radar_msgs + - off_highway_premium_radar + - off_highway_premium_radar_msgs + - off_highway_premium_radar_sample + - off_highway_premium_radar_sample_msgs + - off_highway_radar + - off_highway_radar_msgs + - off_highway_uss + - off_highway_uss_msgs + repository: https://github.com/bosch-engineering/off_highway_sensor_drivers tag: release/rolling/off_highway_sensor_drivers/1.3.0-2 url: https://github.com/ros2-gbp/off_highway_sensor_drivers-release.git version: 1.3.0 off_highway_sensor_drivers_examples: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - geometry_msgs + - nav_msgs + - off_highway_premium_radar + - off_highway_radar + - rclcpp + - rclcpp_components + repository: https://github.com/bosch-engineering/off_highway_sensor_drivers tag: release/rolling/off_highway_sensor_drivers_examples/1.3.0-2 url: https://github.com/ros2-gbp/off_highway_sensor_drivers-release.git version: 1.3.0 off_highway_uss: + dependencies: + - ament_cmake + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - can_msgs + - off_highway_can + - off_highway_uss_msgs + - rclcpp + - rclcpp_components + - sensor_msgs + repository: https://github.com/bosch-engineering/off_highway_sensor_drivers tag: release/rolling/off_highway_uss/1.3.0-2 url: https://github.com/ros2-gbp/off_highway_sensor_drivers-release.git version: 1.3.0 off_highway_uss_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/bosch-engineering/off_highway_sensor_drivers tag: release/rolling/off_highway_uss_msgs/1.3.0-2 url: https://github.com/ros2-gbp/off_highway_sensor_drivers-release.git version: 1.3.0 om_gravity_compensation_controller: + dependencies: + - ament_cmake + - angles + - backward_ros + - control_msgs + - control_toolbox + - controller_interface + - generate_parameter_library + - hardware_interface + - kdl_parser + - pluginlib + - rclcpp + - rclcpp_lifecycle + - realtime_tools + - rsl + - urdf + repository: https://github.com/ROBOTIS-GIT/open_manipulator tag: release/rolling/om_gravity_compensation_controller/4.1.2-2 url: https://github.com/ros2-gbp/open_manipulator-release.git version: 4.1.2 om_joint_trajectory_command_broadcaster: + dependencies: + - ament_cmake + - backward_ros + - builtin_interfaces + - control_msgs + - controller_interface + - generate_parameter_library + - pluginlib + - rclcpp_lifecycle + - rcutils + - realtime_tools + - sensor_msgs + - trajectory_msgs + - urdf + repository: https://github.com/ROBOTIS-GIT/open_manipulator tag: release/rolling/om_joint_trajectory_command_broadcaster/4.1.2-2 url: https://github.com/ros2-gbp/open_manipulator-release.git version: 4.1.2 om_spring_actuator_controller: + dependencies: + - ament_cmake + - controller_interface + - generate_parameter_library + - hardware_interface + - pluginlib + - rclcpp + - rclcpp_lifecycle + - urdf + repository: https://github.com/ROBOTIS-GIT/open_manipulator tag: release/rolling/om_spring_actuator_controller/4.1.2-2 url: https://github.com/ros2-gbp/open_manipulator-release.git version: 4.1.2 omni_wheel_drive_controller: - tag: release/rolling/omni_wheel_drive_controller/6.9.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - control_msgs + - controller_interface + - controller_manager + - generate_parameter_library + - geometry_msgs + - hardware_interface + - nav_msgs + - pluginlib + - rclcpp + - rclcpp_lifecycle + - realtime_tools + - ros2_control_cmake + - ros2_control_test_assets + - tf2 + - tf2_msgs + repository: https://github.com/ros-controls/ros2_controllers + tag: release/rolling/omni_wheel_drive_controller/6.10.0-1 url: https://github.com/ros2-gbp/ros2_controllers-release.git - version: 6.9.0 + version: 6.10.0 ompl: - tag: release/rolling/ompl/2.0.1-3 + dependencies: [] + repository: https://github.com/ompl/ompl + tag: release/rolling/ompl/2.0.2-1 url: https://github.com/ros2-gbp/ompl-release.git - version: 2.0.1 + version: 2.0.2 onnxruntime_vendor: - tag: release/rolling/onnxruntime_vendor/0.1.0-2 + dependencies: + - ament_cmake + - ament_cmake_vendor_package + repository: https://github.com/ros-controls/onnxruntime_vendor + tag: release/rolling/onnxruntime_vendor/0.1.1-1 url: https://github.com/ros2-gbp/onnxruntime_vendor-release.git - version: 0.1.0 + version: 0.1.1 open3d_vendor: + dependencies: [] + repository: https://github.com/christian-rauch/open3d_colcon tag: release/rolling/open3d_vendor/0.19.0-2 url: https://github.com/ros2-gbp/open3d_vendor-release.git version: 0.19.0 open_manipulator: + dependencies: + - ament_cmake + - om_gravity_compensation_controller + - om_joint_trajectory_command_broadcaster + - om_spring_actuator_controller + - open_manipulator_bringup + - open_manipulator_collision + - open_manipulator_description + - open_manipulator_gui + - open_manipulator_moveit_config + - open_manipulator_playground + - open_manipulator_teleop + repository: https://github.com/ROBOTIS-GIT/open_manipulator tag: release/rolling/open_manipulator/4.1.2-2 url: https://github.com/ros2-gbp/open_manipulator-release.git version: 4.1.2 open_manipulator_bringup: + dependencies: + - dynamixel_hardware_interface + - gz_ros2_control + - open_manipulator_description + - rclpy + - robot_state_publisher + - ros2_control + - ros2_controllers + - ros_gz_bridge + - ros_gz_image + - ros_gz_sim + - rviz2 + - xacro + repository: https://github.com/ROBOTIS-GIT/open_manipulator tag: release/rolling/open_manipulator_bringup/4.1.2-2 url: https://github.com/ros2-gbp/open_manipulator-release.git version: 4.1.2 open_manipulator_collision: + dependencies: + - ament_cmake + - kdl_parser + - rclcpp + - sensor_msgs + - std_msgs + - urdf + - visualization_msgs + repository: https://github.com/ROBOTIS-GIT/open_manipulator tag: release/rolling/open_manipulator_collision/4.1.2-2 url: https://github.com/ros2-gbp/open_manipulator-release.git version: 4.1.2 open_manipulator_description: + dependencies: + - ament_cmake + - joint_state_publisher + - joint_state_publisher_gui + - robot_state_publisher + - rviz2 + repository: https://github.com/ROBOTIS-GIT/open_manipulator tag: release/rolling/open_manipulator_description/4.1.2-2 url: https://github.com/ros2-gbp/open_manipulator-release.git version: 4.1.2 open_manipulator_gui: + dependencies: + - ament_cmake + - eigen3_cmake_module + - geometry_msgs + - moveit_core + - moveit_msgs + - moveit_ros_planning + - moveit_ros_planning_interface + - rclcpp + - sensor_msgs + - std_msgs + repository: https://github.com/ROBOTIS-GIT/open_manipulator tag: release/rolling/open_manipulator_gui/4.1.2-2 url: https://github.com/ros2-gbp/open_manipulator-release.git version: 4.1.2 open_manipulator_moveit_config: + dependencies: + - ament_cmake + - controller_manager + - joint_state_publisher + - joint_state_publisher_gui + - moveit_configs_utils + - moveit_kinematics + - moveit_planners + - moveit_ros_move_group + - moveit_ros_visualization + - moveit_ros_warehouse + - moveit_setup_assistant + - moveit_simple_controller_manager + - open_manipulator_description + - robot_state_publisher + - rviz2 + - rviz_common + - rviz_default_plugins + - tf2_ros + - warehouse_ros_sqlite + - xacro + repository: https://github.com/ROBOTIS-GIT/open_manipulator tag: release/rolling/open_manipulator_moveit_config/4.1.2-2 url: https://github.com/ros2-gbp/open_manipulator-release.git version: 4.1.2 open_manipulator_playground: + dependencies: + - ament_cmake + - moveit_ros_planning_interface + - rclcpp + repository: https://github.com/ROBOTIS-GIT/open_manipulator tag: release/rolling/open_manipulator_playground/4.1.2-2 url: https://github.com/ros2-gbp/open_manipulator-release.git version: 4.1.2 open_manipulator_teleop: + dependencies: + - control_msgs + - rclpy + - sensor_msgs + - std_msgs + - trajectory_msgs + repository: https://github.com/ROBOTIS-GIT/open_manipulator tag: release/rolling/open_manipulator_teleop/4.1.2-2 url: https://github.com/ros2-gbp/open_manipulator-release.git version: 4.1.2 openeb_vendor: + dependencies: + - ament_cmake + - ament_cmake_vendor_package + repository: https://github.com/ros-event-camera/openeb_vendor tag: release/rolling/openeb_vendor/2.0.3-1 url: https://github.com/ros2-gbp/openeb_vendor-release.git version: 2.0.3 openni2_camera: + dependencies: + - ament_cmake + - builtin_interfaces + - camera_info_manager + - depth_image_proc + - image_transport + - rclcpp + - rclcpp_components + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + repository: https://github.com/ros-drivers/openni2_camera tag: release/rolling/openni2_camera/2.3.0-2 url: https://github.com/ros2-gbp/openni2_camera-release.git version: 2.3.0 +orbbec_camera: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_index_cpp + - ament_index_python + - ament_lint_auto + - ament_lint_common + - backward_ros + - builtin_interfaces + - camera_info_manager + - cv_bridge + - diagnostic_msgs + - diagnostic_updater + - geometry_msgs + - image_publisher + - image_transport + - launch + - launch_ros + - message_filters + - orbbec_camera_msgs + - rcl_interfaces + - rclcpp + - rclcpp_action + - rclcpp_components + - rclpy + - rmw + - sensor_msgs + - statistics_msgs + - std_msgs + - std_srvs + - tf2 + - tf2_msgs + - tf2_ros + - tf2_sensor_msgs + repository: https://github.com/orbbec/OrbbecSDK_ROS2 + tag: release/rolling/orbbec_camera/2.10.6-3 + url: https://github.com/ros2-gbp/orbbec_camera_v2-release.git + version: 2.10.6 +orbbec_camera_msgs: + dependencies: + - action_msgs + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + - std_msgs + repository: https://github.com/orbbec/OrbbecSDK_ROS2 + tag: release/rolling/orbbec_camera_msgs/2.10.6-3 + url: https://github.com/ros2-gbp/orbbec_camera_v2-release.git + version: 2.10.6 +orbbec_description: + dependencies: + - ament_cmake + - ament_index_python + - ament_lint_auto + - ament_lint_common + - launch + - launch_ros + - robot_state_publisher + - rviz2 + - xacro + repository: https://github.com/orbbec/OrbbecSDK_ROS2 + tag: release/rolling/orbbec_description/2.10.6-3 + url: https://github.com/ros2-gbp/orbbec_camera_v2-release.git + version: 2.10.6 orocos_kdl_vendor: + dependencies: + - ament_cmake + - ament_cmake_vendor_package + - ament_lint_auto + - ament_lint_common + - eigen3_cmake_module + repository: https://github.com/ros2/orocos_kdl_vendor tag: release/rolling/orocos_kdl_vendor/0.8.0-2 url: https://github.com/ros2-gbp/orocos_kdl_vendor-release.git version: 0.8.0 ortools_vendor: + dependencies: + - ament_cmake + - ament_cmake_vendor_package + - ament_cmake_xmllint + - ament_lint_auto + repository: https://github.com/Fields2Cover/ortools_vendor tag: release/rolling/ortools_vendor/9.9.1-5 url: https://github.com/ros2-gbp/ortools_vendor-release.git version: 9.9.1 osqp_vendor: + dependencies: + - ament_cmake + - ament_lint_common + - ros_environment + repository: https://github.com/moveit/osqp_vendor tag: release/rolling/osqp_vendor/1.0.0-1 url: https://github.com/ros2-gbp/osqp_vendor-release.git version: 1.0.0 -osrf_pycommon: - tag: release/rolling/osrf_pycommon/2.1.7-2 - url: https://github.com/ros2-gbp/osrf_pycommon-release.git - version: 2.1.7 osrf_testing_tools_cpp: + dependencies: [] + repository: https://github.com/osrf/osrf_testing_tools_cpp tag: release/rolling/osrf_testing_tools_cpp/2.3.1-1 url: https://github.com/ros2-gbp/osrf_testing_tools_cpp-release.git version: 2.3.1 ouster_ros: + dependencies: + - ament_cmake + - ament_cmake_gtest + - class_loader + - cv_bridge + - geometry_msgs + - launch + - launch_ros + - ouster_sensor_msgs + - pcl_conversions + - rclcpp + - rclcpp_components + - rclcpp_lifecycle + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + - std_msgs + - std_srvs + - tf2_eigen + - tf2_ros + repository: https://github.com/ouster-lidar/ouster-ros tag: release/rolling/ouster_ros/0.15.1-1 url: https://github.com/ros2-gbp/ouster-ros-release.git version: 0.15.1 ouster_sensor_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ouster-lidar/ouster-ros tag: release/rolling/ouster_sensor_msgs/0.15.1-1 url: https://github.com/ros2-gbp/ouster-ros-release.git version: 0.15.1 ouxt_common: + dependencies: + - ament_cmake + - ouxt_lint_common + repository: https://github.com/OUXT-Polaris/ouxt_common tag: release/rolling/ouxt_common/0.0.8-5 url: https://github.com/ros2-gbp/ouxt_common-release.git version: 0.0.8 ouxt_lint_common: + dependencies: + - ament_cmake + - ament_cmake_clang_format + - ament_cmake_copyright + - ament_cmake_pep257 + - ament_cmake_xmllint + repository: https://github.com/OUXT-Polaris/ouxt_common tag: release/rolling/ouxt_lint_common/0.0.8-5 url: https://github.com/ros2-gbp/ouxt_common-release.git version: 0.0.8 pal_statistics: + dependencies: + - ament_cmake_auto + - ament_cmake_gmock + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_python + - ament_lint_auto + - ament_lint_common + - pal_statistics_msgs + - rclcpp + - rclcpp_lifecycle + - rclpy + repository: https://github.com/pal-robotics/pal_statistics tag: release/rolling/pal_statistics/2.8.2-1 url: https://github.com/ros2-gbp/pal_statistics-release.git version: 2.8.2 pal_statistics_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/pal-robotics/pal_statistics tag: release/rolling/pal_statistics_msgs/2.8.2-1 url: https://github.com/ros2-gbp/pal_statistics-release.git version: 2.8.2 pal_urdf_utils: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + - realsense2_description + - xacro + repository: https://github.com/pal-robotics/pal_urdf_utils tag: release/rolling/pal_urdf_utils/2.9.2-1 url: https://github.com/ros2-gbp/pal_urdf_utils-release.git version: 2.9.2 pangolin: + dependencies: [] + repository: https://github.com/stevenlovegrove/Pangolin tag: release/rolling/pangolin/0.9.6-1 url: https://github.com/ros2-gbp/Pangolin-release.git version: 0.9.6 parallel_gripper_controller: - tag: release/rolling/parallel_gripper_controller/6.9.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - backward_ros + - control_msgs + - control_toolbox + - controller_interface + - controller_manager + - generate_parameter_library + - hardware_interface + - pluginlib + - rclcpp + - rclcpp_action + - realtime_tools + - ros2_control_cmake + - ros2_control_test_assets + repository: https://github.com/ros-controls/ros2_controllers + tag: release/rolling/parallel_gripper_controller/6.10.0-1 url: https://github.com/ros2-gbp/ros2_controllers-release.git - version: 6.9.0 + version: 6.10.0 parameter_expression: + dependencies: + - ament_cmake + - ament_cmake_auto + - ament_cmake_clang_format + - ament_cmake_gmock + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - rclcpp + - std_msgs + repository: https://github.com/ForteFibre/parameter_expression tag: release/rolling/parameter_expression/0.0.2-2 url: https://github.com/ros2-gbp/parameter_expression-release.git version: 0.0.2 pcl_conversions: + dependencies: + - ament_cmake + - ament_cmake_gtest + - message_filters + - pcl_msgs + - rclcpp + - sensor_msgs + - std_msgs + repository: https://github.com/ros-perception/perception_pcl tag: release/rolling/pcl_conversions/2.10.0-1 url: https://github.com/ros2-gbp/perception_pcl-release.git version: 2.10.0 pcl_msgs: + dependencies: + - ament_cmake + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + - std_msgs + repository: https://github.com/ros-perception/pcl_msgs tag: release/rolling/pcl_msgs/1.0.0-9 url: https://github.com/ros2-gbp/pcl_msgs-release.git version: 1.0.0 pcl_ros: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - geometry_msgs + - launch + - launch_ros + - launch_testing + - launch_testing_ros + - pcl_conversions + - rclcpp + - rclcpp_components + - rosbag2_transport + - sensor_msgs + - tf2 + - tf2_eigen + - tf2_geometry_msgs + - tf2_ros + - visualization_msgs + repository: https://github.com/ros-perception/perception_pcl tag: release/rolling/pcl_ros/2.10.0-1 url: https://github.com/ros2-gbp/perception_pcl-release.git version: 2.10.0 pendulum_control: + dependencies: + - ament_cmake + - ament_cmake_pytest + - ament_lint_auto + - ament_lint_common + - launch + - launch_testing + - launch_testing_ament_cmake + - launch_testing_ros + - pendulum_msgs + - rclcpp + - rmw_implementation_cmake + - ros2run + - rttest + - tlsf_cpp + repository: https://github.com/ros2/demos tag: release/rolling/pendulum_control/0.38.0-1 url: https://github.com/ros2-gbp/demos-release.git version: 0.38.0 pendulum_msgs: + dependencies: + - ament_cmake + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/ros2/demos tag: release/rolling/pendulum_msgs/0.38.0-1 url: https://github.com/ros2-gbp/demos-release.git version: 0.38.0 perception: + dependencies: + - ament_cmake + - image_common + - image_pipeline + - image_transport_plugins + - laser_filters + - laser_geometry + - perception_pcl + - ros_base + - vision_opencv + repository: https://github.com/ros2/variants tag: release/rolling/perception/0.13.0-2 url: https://github.com/ros2-gbp/variants-release.git version: 0.13.0 perception_pcl: + dependencies: + - ament_cmake + - pcl_conversions + - pcl_msgs + - pcl_ros + repository: https://github.com/ros-perception/perception_pcl tag: release/rolling/perception_pcl/2.10.0-1 url: https://github.com/ros2-gbp/perception_pcl-release.git version: 2.10.0 performance_test: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - rclcpp + - rmw_implementation + - ros_environment + - rosidl_default_generators + - rosidl_default_runtime + repository: https://gitlab.com/ApexAI/performance_test tag: release/rolling/performance_test/2.3.0-3 url: https://github.com/ros2-gbp/performance_test-release.git version: 2.3.0 performance_test_fixture: - tag: release/rolling/performance_test_fixture/0.5.0-1 + dependencies: + - ament_cmake_core + - ament_cmake_export_dependencies + - ament_cmake_export_targets + - ament_cmake_google_benchmark + - ament_cmake_ros_core + - ament_cmake_test + - ament_lint_auto + - ament_lint_common + - google_benchmark_vendor + - osrf_testing_tools_cpp + repository: https://github.com/ros2/performance_test_fixture + tag: release/rolling/performance_test_fixture/0.5.1-1 url: https://github.com/ros2-gbp/performance_test_fixture-release.git - version: 0.5.0 + version: 0.5.1 persist_parameter_server: + dependencies: + - ament_cmake + - ament_cmake_pytest + - ament_lint_auto + - ament_lint_common + - launch + - launch_ros + - rclcpp + - rclcpp_components + - rcutils + - rmw + - rmw_implementation_cmake + - std_msgs + - std_srvs + - yaml_cpp_vendor + repository: https://github.com/fujitatomoya/ros2_persist_parameter_server tag: release/rolling/persist_parameter_server/4.0.0-2 url: https://github.com/ros2-gbp/persist_parameter_server-release.git version: 4.0.0 pfs: + dependencies: [] + repository: https://github.com/dtrugman/pfs tag: release/rolling/pfs/0.15.0-1 url: https://github.com/ros2-gbp/pfs-release.git version: 0.15.0 phidgets_accelerometer: + dependencies: + - ament_cmake_ros + - launch + - phidgets_api + - rclcpp + - rclcpp_components + - sensor_msgs + repository: https://github.com/ros-drivers/phidgets_drivers tag: release/rolling/phidgets_accelerometer/2.4.0-2 url: https://github.com/ros2-gbp/phidgets_drivers-release.git version: 2.4.0 phidgets_analog_inputs: + dependencies: + - ament_cmake_ros + - launch + - phidgets_api + - rclcpp + - rclcpp_components + - std_msgs + repository: https://github.com/ros-drivers/phidgets_drivers tag: release/rolling/phidgets_analog_inputs/2.4.0-2 url: https://github.com/ros2-gbp/phidgets_drivers-release.git version: 2.4.0 phidgets_analog_outputs: + dependencies: + - ament_cmake_ros + - phidgets_api + - phidgets_msgs + - rclcpp + - rclcpp_components + - std_msgs + repository: https://github.com/ros-drivers/phidgets_drivers tag: release/rolling/phidgets_analog_outputs/2.4.0-2 url: https://github.com/ros2-gbp/phidgets_drivers-release.git version: 2.4.0 phidgets_api: + dependencies: + - ament_cmake_ros + - libphidget22 + repository: https://github.com/ros-drivers/phidgets_drivers tag: release/rolling/phidgets_api/2.4.0-2 url: https://github.com/ros2-gbp/phidgets_drivers-release.git version: 2.4.0 phidgets_digital_inputs: + dependencies: + - ament_cmake_ros + - launch + - phidgets_api + - rclcpp + - rclcpp_components + - std_msgs + repository: https://github.com/ros-drivers/phidgets_drivers tag: release/rolling/phidgets_digital_inputs/2.4.0-2 url: https://github.com/ros2-gbp/phidgets_drivers-release.git version: 2.4.0 phidgets_digital_outputs: + dependencies: + - ament_cmake_ros + - launch + - phidgets_api + - phidgets_msgs + - rclcpp + - rclcpp_components + - std_msgs + repository: https://github.com/ros-drivers/phidgets_drivers tag: release/rolling/phidgets_digital_outputs/2.4.0-2 url: https://github.com/ros2-gbp/phidgets_drivers-release.git version: 2.4.0 phidgets_drivers: + dependencies: + - ament_cmake + - libphidget22 + - phidgets_accelerometer + - phidgets_analog_inputs + - phidgets_api + - phidgets_digital_inputs + - phidgets_digital_outputs + - phidgets_gyroscope + - phidgets_high_speed_encoder + - phidgets_ik + - phidgets_magnetometer + - phidgets_motors + - phidgets_msgs + - phidgets_spatial + - phidgets_temperature + repository: https://github.com/ros-drivers/phidgets_drivers tag: release/rolling/phidgets_drivers/2.4.0-2 url: https://github.com/ros2-gbp/phidgets_drivers-release.git version: 2.4.0 phidgets_gyroscope: + dependencies: + - ament_cmake_ros + - launch + - phidgets_api + - rclcpp + - rclcpp_components + - sensor_msgs + - std_msgs + - std_srvs + repository: https://github.com/ros-drivers/phidgets_drivers tag: release/rolling/phidgets_gyroscope/2.4.0-2 url: https://github.com/ros2-gbp/phidgets_drivers-release.git version: 2.4.0 phidgets_high_speed_encoder: + dependencies: + - ament_cmake_ros + - launch + - phidgets_api + - phidgets_msgs + - rclcpp + - rclcpp_components + - sensor_msgs + repository: https://github.com/ros-drivers/phidgets_drivers tag: release/rolling/phidgets_high_speed_encoder/2.4.0-2 url: https://github.com/ros2-gbp/phidgets_drivers-release.git version: 2.4.0 phidgets_ik: + dependencies: + - ament_cmake + - launch + - phidgets_analog_inputs + - phidgets_digital_inputs + - phidgets_digital_outputs + repository: https://github.com/ros-drivers/phidgets_drivers tag: release/rolling/phidgets_ik/2.4.0-2 url: https://github.com/ros2-gbp/phidgets_drivers-release.git version: 2.4.0 phidgets_magnetometer: + dependencies: + - ament_cmake_ros + - launch + - phidgets_api + - rclcpp + - rclcpp_components + - sensor_msgs + repository: https://github.com/ros-drivers/phidgets_drivers tag: release/rolling/phidgets_magnetometer/2.4.0-2 url: https://github.com/ros2-gbp/phidgets_drivers-release.git version: 2.4.0 phidgets_motors: + dependencies: + - ament_cmake_ros + - launch + - phidgets_api + - phidgets_msgs + - rclcpp + - rclcpp_components + - std_msgs + repository: https://github.com/ros-drivers/phidgets_drivers tag: release/rolling/phidgets_motors/2.4.0-2 url: https://github.com/ros2-gbp/phidgets_drivers-release.git version: 2.4.0 phidgets_msgs: + dependencies: + - ament_cmake + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ros-drivers/phidgets_drivers tag: release/rolling/phidgets_msgs/2.4.0-2 url: https://github.com/ros2-gbp/phidgets_drivers-release.git version: 2.4.0 phidgets_spatial: + dependencies: + - ament_cmake_ros + - launch + - phidgets_api + - rclcpp + - rclcpp_components + - sensor_msgs + - std_msgs + - std_srvs + repository: https://github.com/ros-drivers/phidgets_drivers tag: release/rolling/phidgets_spatial/2.4.0-2 url: https://github.com/ros2-gbp/phidgets_drivers-release.git version: 2.4.0 phidgets_stepper: + dependencies: + - ament_cmake_ros + - launch + - phidgets_api + - phidgets_msgs + - rclcpp + - rclcpp_components + - sensor_msgs + - std_msgs + - std_srvs + repository: https://github.com/ros-drivers/phidgets_drivers tag: release/rolling/phidgets_stepper/2.4.0-2 url: https://github.com/ros2-gbp/phidgets_drivers-release.git version: 2.4.0 phidgets_temperature: + dependencies: + - ament_cmake_ros + - launch + - phidgets_api + - rclcpp + - rclcpp_components + - std_msgs + repository: https://github.com/ros-drivers/phidgets_drivers tag: release/rolling/phidgets_temperature/2.4.0-2 url: https://github.com/ros2-gbp/phidgets_drivers-release.git version: 2.4.0 pick_ik: + dependencies: + - ament_cmake_ros + - generate_parameter_library + - moveit_core + - moveit_resources_panda_moveit_config + - pluginlib + - rclcpp + - rsl + - tf2 + - tf2_geometry_msgs + - tf2_kdl + repository: https://github.com/PickNikRobotics/pick_ik tag: release/rolling/pick_ik/1.1.3-1 url: https://github.com/ros2-gbp/pick_ik-release.git version: 1.1.3 picknik_ament_copyright: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 tag: release/rolling/picknik_ament_copyright/0.0.2-5 url: https://github.com/ros2-gbp/picknik_ament_copyright-release.git version: 0.0.2 +picknik_reset_fault_controller: + dependencies: + - ament_cmake_ros + - controller_interface + - example_interfaces + - geometry_msgs + - hardware_interface + - rclcpp + - realtime_tools + repository: https://github.com/PickNikRobotics/picknik_controllers + tag: release/rolling/picknik_reset_fault_controller/0.0.5-1 + url: https://github.com/ros2-gbp/picknik_controllers-release.git + version: 0.0.5 +picknik_twist_controller: + dependencies: + - ament_cmake_ros + - controller_interface + - example_interfaces + - geometry_msgs + - hardware_interface + - rclcpp + - realtime_tools + repository: https://github.com/PickNikRobotics/picknik_controllers + tag: release/rolling/picknik_twist_controller/0.0.5-1 + url: https://github.com/ros2-gbp/picknik_controllers-release.git + version: 0.0.5 pid_controller: - tag: release/rolling/pid_controller/6.9.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - angles + - backward_ros + - control_msgs + - control_toolbox + - controller_interface + - controller_manager + - generate_parameter_library + - hardware_interface + - hardware_interface_testing + - pluginlib + - rclcpp + - rclcpp_lifecycle + - realtime_tools + - ros2_control_cmake + - ros2_control_test_assets + - std_srvs + repository: https://github.com/ros-controls/ros2_controllers + tag: release/rolling/pid_controller/6.10.0-1 url: https://github.com/ros2-gbp/ros2_controllers-release.git - version: 6.9.0 + version: 6.10.0 pilz_industrial_motion_planner: - tag: release/rolling/pilz_industrial_motion_planner/2.15.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - ament_cmake_gtest + - eigen3_cmake_module + - generate_parameter_library + - geometry_msgs + - launch_param_builder + - moveit_common + - moveit_configs_utils + - moveit_core + - moveit_msgs + - moveit_resources_panda_moveit_config + - moveit_resources_prbt_moveit_config + - moveit_resources_prbt_pg70_support + - moveit_resources_prbt_support + - moveit_ros_move_group + - moveit_ros_planning + - orocos_kdl_vendor + - pilz_industrial_motion_planner_testutils + - pluginlib + - rclcpp + - ros_testing + - tf2 + - tf2_eigen + - tf2_eigen_kdl + - tf2_geometry_msgs + - tf2_kdl + - tf2_ros + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/pilz_industrial_motion_planner/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 pilz_industrial_motion_planner_testutils: - tag: release/rolling/pilz_industrial_motion_planner_testutils/2.15.0-1 + dependencies: + - ament_cmake + - eigen3_cmake_module + - moveit_common + - moveit_core + - moveit_msgs + - rclcpp + - tf2_eigen + repository: https://github.com/ros-planning/moveit2 + tag: release/rolling/pilz_industrial_motion_planner_testutils/2.15.2-1 url: https://github.com/ros2-gbp/moveit2-release.git - version: 2.15.0 + version: 2.15.2 pinocchio: + dependencies: + - coal + - eigenpy + - jrl_cmakemodules + - ros_environment + - urdfdom + repository: https://github.com/stack-of-tasks/pinocchio tag: release/rolling/pinocchio/4.1.0-1 url: https://github.com/ros2-gbp/pinocchio-release.git version: 4.1.0 play_motion2: + dependencies: + - ament_cmake_auto + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_python + - ament_index_cpp + - ament_lint_auto + - ament_lint_common + - backward_ros + - control_msgs + - controller_interface + - controller_manager + - controller_manager_msgs + - hardware_interface + - joint_state_broadcaster + - joint_trajectory_controller + - launch + - launch_ros + - launch_testing_ament_cmake + - lifecycle_msgs + - moveit_ros_planning_interface + - play_motion2_msgs + - pluginlib + - rclcpp + - rclcpp_action + - rclcpp_components + - rclcpp_lifecycle + - realtime_tools + - robot_state_publisher + - sensor_msgs + - std_msgs + - trajectory_msgs + - xacro + repository: https://github.com/pal-robotics/play_motion2 tag: release/rolling/play_motion2/1.8.4-2 url: https://github.com/ros2-gbp/play_motion2-release.git version: 1.8.4 play_motion2_cli: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - launch + - launch_ros + - launch_testing + - launch_testing_ros + - play_motion2 + - rclpy + - ros2cli + repository: https://github.com/pal-robotics/play_motion2 tag: release/rolling/play_motion2_cli/1.8.4-2 url: https://github.com/ros2-gbp/play_motion2-release.git version: 1.8.4 play_motion2_msgs: + dependencies: + - action_msgs + - ament_cmake + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/pal-robotics/play_motion2 tag: release/rolling/play_motion2_msgs/1.8.4-2 url: https://github.com/ros2-gbp/play_motion2-release.git version: 1.8.4 play_motion_builder: + dependencies: + - ament_cmake_auto + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - play_motion2 + - play_motion2_msgs + - play_motion_builder_msgs + - rclcpp + - rclcpp_action + - sensor_msgs + repository: https://github.com/pal-robotics/play_motion_builder tag: release/rolling/play_motion_builder/1.4.1-2 url: https://github.com/ros2-gbp/play_motion_builder-release.git version: 1.4.1 play_motion_builder_msgs: + dependencies: + - action_msgs + - ament_cmake + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/pal-robotics/play_motion_builder tag: release/rolling/play_motion_builder_msgs/1.4.1-2 url: https://github.com/ros2-gbp/play_motion_builder-release.git version: 1.4.1 plotjuggler: + dependencies: + - ament_cmake + - ament_index_cpp + - data_tamer_cpp + repository: https://github.com/facontidavide/PlotJuggler tag: release/rolling/plotjuggler/3.17.2-1 url: https://github.com/ros2-gbp/plotjuggler-release.git version: 3.17.2 plotjuggler_msgs: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/facontidavide/plotjuggler_msgs tag: release/rolling/plotjuggler_msgs/0.2.3-5 url: https://github.com/ros2-gbp/plotjuggler_msgs-release.git version: 0.2.3 plotjuggler_ros: + dependencies: + - ament_cmake + - plotjuggler + - plotjuggler_msgs + - rclcpp + - rcpputils + - rosbag2_transport + - tf2_msgs + - tf2_ros + repository: https://github.com/PlotJuggler/plotjuggler-ros-plugins tag: release/rolling/plotjuggler_ros/2.3.1-2 url: https://github.com/ros2-gbp/plotjuggler-ros-plugins-release.git version: 2.3.1 pluginlib: - tag: release/rolling/pluginlib/6.0.1-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_ros_core + - ament_index_cpp + - ament_lint_auto + - ament_lint_common + - class_loader + - rcpputils + - rcutils + repository: https://github.com/ros/pluginlib + tag: release/rolling/pluginlib/6.0.2-1 url: https://github.com/ros2-gbp/pluginlib-release.git - version: 6.0.1 + version: 6.0.2 point_cloud_interfaces: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + - std_msgs + repository: https://github.com/ros-perception/point_cloud_transport_plugins tag: release/rolling/point_cloud_interfaces/7.0.0-1 url: https://github.com/ros2-gbp/point_cloud_transport_plugins-release.git version: 7.0.0 point_cloud_msg_wrapper: + dependencies: + - ament_cmake + - ament_cmake_auto + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - geometry_msgs + - sensor_msgs + repository: https://gitlab.com/ApexAI/point_cloud_msg_wrapper tag: release/rolling/point_cloud_msg_wrapper/1.0.7-5 url: https://github.com/ros2-gbp/point_cloud_msg_wrapper-release.git version: 1.0.7 point_cloud_transport: - tag: release/rolling/point_cloud_transport/6.0.2-1 + dependencies: + - ament_cmake_gen_version_h + - ament_cmake_gtest + - ament_cmake_ros + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - message_filters + - pluginlib + - rcl_interfaces + - rclcpp + - rclcpp_components + - rcpputils + - sensor_msgs + repository: https://github.com/ros-perception/point_cloud_transport + tag: release/rolling/point_cloud_transport/6.0.4-1 url: https://github.com/ros2-gbp/point_cloud_transport-release.git - version: 6.0.2 + version: 6.0.4 point_cloud_transport_plugins: + dependencies: + - ament_cmake + - draco_point_cloud_transport + - point_cloud_interfaces + - zlib_point_cloud_transport + - zstd_point_cloud_transport + repository: https://github.com/ros-perception/point_cloud_transport_plugins tag: release/rolling/point_cloud_transport_plugins/7.0.0-1 url: https://github.com/ros2-gbp/point_cloud_transport_plugins-release.git version: 7.0.0 point_cloud_transport_py: - tag: release/rolling/point_cloud_transport_py/6.0.2-1 + dependencies: + - ament_cmake + - ament_cmake_python + - ament_cmake_ros + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - pluginlib + - point_cloud_transport + - rclcpp + - rclpy + - rpyutils + - sensor_msgs + repository: https://github.com/ros-perception/point_cloud_transport + tag: release/rolling/point_cloud_transport_py/6.0.4-1 url: https://github.com/ros2-gbp/point_cloud_transport-release.git - version: 6.0.2 + version: 6.0.4 point_cloud_transport_tutorial: + dependencies: + - ament_cmake_copyright + - ament_cmake_cppcheck + - ament_cmake_cpplint + - ament_cmake_lint_cmake + - ament_cmake_ros + - ament_cmake_uncrustify + - ament_cmake_xmllint + - point_cloud_transport + - point_cloud_transport_plugins + - rclcpp + - rosbag2_cpp + - sensor_msgs + repository: https://github.com/ros-perception/point_cloud_transport_tutorial tag: release/rolling/point_cloud_transport_tutorial/0.0.9-2 url: https://github.com/ros2-gbp/point_cloud_transport_tutorial-release.git version: 0.0.9 pointcloud_to_laserscan: - tag: release/rolling/pointcloud_to_laserscan/2.1.0-2 + dependencies: + - ament_cmake + - ament_cmake_cppcheck + - ament_cmake_cpplint + - ament_cmake_flake8 + - ament_cmake_lint_cmake + - ament_cmake_pep257 + - ament_cmake_uncrustify + - ament_cmake_xmllint + - ament_lint_auto + - laser_geometry + - launch + - launch_ros + - message_filters + - rclcpp + - rclcpp_components + - sensor_msgs + - tf2 + - tf2_ros + - tf2_sensor_msgs + repository: https://github.com/ros-perception/pointcloud_to_laserscan + tag: release/rolling/pointcloud_to_laserscan/2.1.1-1 url: https://github.com/ros2-gbp/pointcloud_to_laserscan-release.git - version: 2.1.0 + version: 2.1.1 polygon_demos: + dependencies: + - ament_cmake + - angles + - color_util + - geometry_msgs + - polygon_msgs + - polygon_rviz_plugins + - polygon_utils + - rclcpp + - rviz2 + - rviz_common + - rviz_default_plugins + repository: https://github.com/MetroRobots/polygon_ros tag: release/rolling/polygon_demos/1.3.0-2 url: https://github.com/ros2-gbp/polygon_ros-release.git version: 1.3.0 polygon_msgs: + dependencies: + - ament_cmake + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/MetroRobots/polygon_ros tag: release/rolling/polygon_msgs/1.3.0-2 url: https://github.com/ros2-gbp/polygon_ros-release.git version: 1.3.0 polygon_rviz_plugins: + dependencies: + - ament_cmake_ros + - color_util + - geometry_msgs + - pluginlib + - polygon_msgs + - polygon_utils + - rviz_common + - std_msgs + repository: https://github.com/MetroRobots/polygon_ros tag: release/rolling/polygon_rviz_plugins/1.3.0-2 url: https://github.com/ros2-gbp/polygon_ros-release.git version: 1.3.0 polygon_utils: + dependencies: + - ament_cmake + - ament_cmake_pytest + - ament_cmake_python + - geometry_msgs + - polygon_msgs + repository: https://github.com/MetroRobots/polygon_ros tag: release/rolling/polygon_utils/1.3.0-2 url: https://github.com/ros2-gbp/polygon_ros-release.git version: 1.3.0 pose_broadcaster: - tag: release/rolling/pose_broadcaster/6.9.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - backward_ros + - controller_interface + - controller_manager + - generate_parameter_library + - geometry_msgs + - hardware_interface_testing + - pluginlib + - rclcpp + - rclcpp_lifecycle + - realtime_tools + - ros2_control_cmake + - ros2_control_test_assets + - tf2_msgs + repository: https://github.com/ros-controls/ros2_controllers + tag: release/rolling/pose_broadcaster/6.10.0-1 url: https://github.com/ros2-gbp/ros2_controllers-release.git - version: 6.9.0 + version: 6.10.0 pose_cov_ops: - tag: release/rolling/pose_cov_ops/0.4.0-2 + dependencies: + - ament_cmake + - ament_cmake_gmock + - ament_cmake_gtest + - ament_cmake_xmllint + - ament_lint_auto + - ament_lint_common + - cv_bridge + - geometry_msgs + - mrpt_libros_bridge + - mrpt_poses + - nav_msgs + - rclcpp + - ros_environment + - sensor_msgs + - std_msgs + - stereo_msgs + - tf2 + repository: https://github.com/mrpt-ros-pkg/pose_cov_ops + tag: release/rolling/pose_cov_ops/0.5.0-1 url: https://github.com/ros2-gbp/pose_cov_ops-release.git - version: 0.4.0 + version: 0.5.0 protobuf_comm: + dependencies: [] + repository: https://github.com/fawkesrobotics/protobuf_comm tag: release/rolling/protobuf_comm/0.9.4-1 url: https://github.com/ros2-gbp/protobuf_comm-release.git version: 0.9.4 proxsuite: + dependencies: [] + repository: https://github.com/Simple-Robotics/proxsuite tag: release/rolling/proxsuite/0.7.3-1 url: https://github.com/ros2-gbp/proxsuite-release.git version: 0.7.3 py_binding_tools: - tag: release/rolling/py_binding_tools/2.1.3-1 + dependencies: + - ament_cmake + - ament_cmake_pytest + - ament_cmake_python + - geometry_msgs + - rclcpp + - rclpy + - std_msgs + repository: https://github.com/ros-planning/py_binding_tools + tag: release/rolling/py_binding_tools/2.1.4-1 url: https://github.com/ros2-gbp/py_binding_tools-release.git - version: 2.1.3 + version: 2.1.4 py_trees: - tag: release/rolling/py_trees/2.5.0-1 + dependencies: [] + repository: https://github.com/splintered-reality/py_trees + tag: release/rolling/py_trees/2.6.0-1 url: https://github.com/ros2-gbp/py_trees-release.git - version: 2.5.0 + version: 2.6.0 py_trees_js: - tag: release/rolling/py_trees_js/0.6.7-1 + dependencies: [] + repository: https://github.com/splintered-reality/py_trees_js + tag: release/rolling/py_trees_js/0.7.0-1 url: https://github.com/ros2-gbp/py_trees_js-release.git - version: 0.6.7 + version: 0.7.0 py_trees_ros: - tag: release/rolling/py_trees_ros/2.5.0-1 + dependencies: + - geometry_msgs + - py_trees + - py_trees_ros_interfaces + - rcl_interfaces + - rclpy + - ros2topic + - sensor_msgs + - std_msgs + - std_srvs + - tf2_ros_py + - unique_identifier_msgs + repository: https://github.com/splintered-reality/py_trees_ros + tag: release/rolling/py_trees_ros/2.6.0-1 url: https://github.com/ros2-gbp/py_trees_ros-release.git - version: 2.5.0 + version: 2.6.0 py_trees_ros_interfaces: + dependencies: + - action_msgs + - ament_cmake + - ament_lint_common + - diagnostic_msgs + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - unique_identifier_msgs + repository: https://github.com/splintered-reality/py_trees_ros_interfaces tag: release/rolling/py_trees_ros_interfaces/2.1.2-1 url: https://github.com/ros2-gbp/py_trees_ros_interfaces-release.git version: 2.1.2 py_trees_ros_tutorials: - tag: release/rolling/py_trees_ros_tutorials/2.5.0-1 + dependencies: + - action_msgs + - geometry_msgs + - launch + - launch_ros + - py_trees + - py_trees_ros + - py_trees_ros_interfaces + - rcl_interfaces + - rclpy + - ros2launch + - ros2param + - ros2run + - ros2service + - ros2topic + - sensor_msgs + - std_msgs + repository: https://github.com/splintered-reality/py_trees_ros_tutorials + tag: release/rolling/py_trees_ros_tutorials/2.6.0-1 url: https://github.com/ros2-gbp/py_trees_ros_tutorials-release.git - version: 2.5.0 + version: 2.6.0 py_trees_ros_viewer: + dependencies: + - py_trees_js + - py_trees_ros_interfaces + - rclpy + - unique_identifier_msgs + repository: https://github.com/splintered-reality/py_trees_ros_viewer tag: release/rolling/py_trees_ros_viewer/0.3.0-1 url: https://github.com/ros2-gbp/py_trees_ros_viewer-release.git version: 0.3.0 pybind11_vendor: + dependencies: + - ament_cmake + - ament_cmake_vendor_package + repository: https://github.com/ros2/pybind11_vendor tag: release/rolling/pybind11_vendor/3.3.1-2 url: https://github.com/ros2-gbp/pybind11_vendor-release.git version: 3.3.1 pyhri: + dependencies: + - ament_cmake_auto + - ament_cmake_pytest + - ament_cmake_python + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - cv_bridge + - geometry_msgs + - hri + - hri_msgs + - pybind11_vendor + - rclcpp + - rclpy + - sensor_msgs + - std_msgs + - tf2_ros_py + repository: https://github.com/ros4hri/libhri tag: release/rolling/pyhri/2.9.0-2 url: https://github.com/ros2-gbp/libhri-release.git version: 2.9.0 pymoveit2: - tag: release/rolling/pymoveit2/4.2.0-2 + dependencies: + - action_msgs + - ament_cmake + - ament_cmake_pytest + - ament_cmake_python + - control_msgs + - geometry_msgs + - moveit_msgs + - rcl_interfaces + - rclpy + - sensor_msgs + - shape_msgs + - std_msgs + - std_srvs + - trajectory_msgs + repository: https://github.com/AndrejOrsula/pymoveit2 + tag: release/rolling/pymoveit2/5.0.0-1 url: https://github.com/ros2-gbp/pymoveit2-release.git - version: 4.2.0 + version: 5.0.0 python_cmake_module: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + repository: https://github.com/ros2/python_cmake_module tag: release/rolling/python_cmake_module/0.12.0-2 url: https://github.com/ros2-gbp/python_cmake_module-release.git version: 0.12.0 python_mrpt: + dependencies: + - ament_cmake + - cv_bridge + - mrpt_libapps + - mrpt_libgui + - mrpt_libnav + - mrpt_libslam + - rclcpp + - ros_environment + - rosbag2_storage + repository: https://github.com/MRPT/python_mrpt_ros tag: release/rolling/python_mrpt/2.15.3-2 url: https://github.com/ros2-gbp/python_mrpt_ros-release.git version: 2.15.3 python_orocos_kdl_vendor: + dependencies: + - ament_cmake + - ament_cmake_python + - ament_lint_auto + - ament_lint_common + - orocos_kdl_vendor + - pybind11_vendor + repository: https://github.com/ros2/orocos_kdl_vendor tag: release/rolling/python_orocos_kdl_vendor/0.8.0-2 url: https://github.com/ros2-gbp/orocos_kdl_vendor-release.git version: 0.8.0 python_qt_binding: - tag: release/rolling/python_qt_binding/2.6.1-1 + dependencies: + - ament_cmake + - ament_cmake_pytest + - ament_lint_auto + - ament_lint_common + repository: https://github.com/ros-visualization/python_qt_binding + tag: release/rolling/python_qt_binding/2.6.2-1 url: https://github.com/ros2-gbp/python_qt_binding-release.git - version: 2.6.1 + version: 2.6.2 qml6_ros2_plugin: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_index_cpp + - ament_lint_auto + - example_interfaces + - image_transport + - rclcpp + - ros_babel_fish + - ros_babel_fish_test_msgs + - std_srvs + - tf2_ros + repository: https://github.com/StefanFabian/qml6_ros2_plugin tag: release/rolling/qml6_ros2_plugin/4.26.42-2 url: https://github.com/ros2-gbp/qml6_ros2_plugin-release.git version: 4.26.42 -qml_ros2_plugin: - tag: release/rolling/qml_ros2_plugin/3.26.30-2 - url: https://github.com/ros2-gbp/qml_ros2_plugin-release.git - version: 3.26.30 qpoases_vendor: + dependencies: + - ament_cmake_auto + repository: https://github.com/Autoware-AI/qpoases_vendor tag: release/rolling/qpoases_vendor/3.2.3-5 url: https://github.com/ros2-gbp/qpoases_vendor-release.git version: 3.2.3 qt_dotgraph: - tag: release/rolling/qt_dotgraph/3.0.2-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - python_qt_binding + repository: https://github.com/ros-visualization/qt_gui_core + tag: release/rolling/qt_dotgraph/3.0.3-1 url: https://github.com/ros2-gbp/qt_gui_core-release.git - version: 3.0.2 + version: 3.0.3 qt_gui: - tag: release/rolling/qt_gui/3.0.2-1 + dependencies: + - ament_cmake + - ament_index_python + - ament_lint_auto + - ament_lint_common + - python_qt_binding + - tango_icons_vendor + repository: https://github.com/ros-visualization/qt_gui_core + tag: release/rolling/qt_gui/3.0.3-1 url: https://github.com/ros2-gbp/qt_gui_core-release.git - version: 3.0.2 + version: 3.0.3 qt_gui_app: - tag: release/rolling/qt_gui_app/3.0.2-1 + dependencies: + - ament_cmake + - ament_index_python + - ament_lint_auto + - ament_lint_common + - qt_gui + repository: https://github.com/ros-visualization/qt_gui_core + tag: release/rolling/qt_gui_app/3.0.3-1 url: https://github.com/ros2-gbp/qt_gui_core-release.git - version: 3.0.2 + version: 3.0.3 qt_gui_core: - tag: release/rolling/qt_gui_core/3.0.2-1 + dependencies: + - ament_cmake + - qt_dotgraph + - qt_gui + - qt_gui_app + - qt_gui_cpp + - qt_gui_py_common + repository: https://github.com/ros-visualization/qt_gui_core + tag: release/rolling/qt_gui_core/3.0.3-1 url: https://github.com/ros2-gbp/qt_gui_core-release.git - version: 3.0.2 + version: 3.0.3 qt_gui_cpp: - tag: release/rolling/qt_gui_cpp/3.0.2-1 + dependencies: + - ament_cmake + - ament_cmake_pytest + - ament_lint_auto + - ament_lint_common + - pluginlib + - python_qt_binding + - qt_gui + repository: https://github.com/ros-visualization/qt_gui_core + tag: release/rolling/qt_gui_cpp/3.0.3-1 url: https://github.com/ros2-gbp/qt_gui_core-release.git - version: 3.0.2 + version: 3.0.3 qt_gui_py_common: - tag: release/rolling/qt_gui_py_common/3.0.2-1 + dependencies: + - ament_cmake + - ament_index_python + - ament_lint_auto + - ament_lint_common + - python_qt_binding + repository: https://github.com/ros-visualization/qt_gui_core + tag: release/rolling/qt_gui_py_common/3.0.3-1 url: https://github.com/ros2-gbp/qt_gui_core-release.git - version: 3.0.2 + version: 3.0.3 quality_of_service_demo_cpp: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - example_interfaces + - launch + - launch_ros + - launch_testing + - rclcpp + - rclcpp_components + - rcutils + - rmw + - rmw_implementation_cmake + - sensor_msgs + repository: https://github.com/ros2/demos tag: release/rolling/quality_of_service_demo_cpp/0.38.0-1 url: https://github.com/ros2-gbp/demos-release.git version: 0.38.0 quality_of_service_demo_py: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - example_interfaces + - rclpy + - sensor_msgs + repository: https://github.com/ros2/demos tag: release/rolling/quality_of_service_demo_py/0.38.0-1 url: https://github.com/ros2-gbp/demos-release.git version: 0.38.0 r2r_spl_7: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - rclpy + - splsm_7_conversion + repository: https://github.com/ros-sports/r2r_spl tag: release/rolling/r2r_spl_7/3.0.1-4 url: https://github.com/ros2-gbp/r2r_spl-release.git version: 3.0.1 radar_msgs: + dependencies: + - ament_cmake + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - std_msgs + - unique_identifier_msgs tag: release/rolling/radar_msgs/0.2.2-4 url: https://github.com/ros2-gbp/radar_msgs-release.git version: 0.2.2 random_numbers: + dependencies: + - ament_cmake + - ament_cmake_copyright + - ament_lint_auto + - ament_lint_cmake + repository: https://github.com/ros-planning/random_numbers tag: release/rolling/random_numbers/2.0.5-1 url: https://github.com/ros2-gbp/random_numbers-release.git version: 2.0.5 range_sensor_broadcaster: - tag: release/rolling/range_sensor_broadcaster/6.9.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - backward_ros + - controller_interface + - controller_manager + - generate_parameter_library + - hardware_interface + - hardware_interface_testing + - pluginlib + - rclcpp + - rclcpp_lifecycle + - realtime_tools + - ros2_control_cmake + - ros2_control_test_assets + - sensor_msgs + repository: https://github.com/ros-controls/ros2_controllers + tag: release/rolling/range_sensor_broadcaster/6.10.0-1 url: https://github.com/ros2-gbp/ros2_controllers-release.git - version: 6.9.0 + version: 6.10.0 raspimouse: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - geometry_msgs + - lifecycle_msgs + - nav_msgs + - raspimouse_msgs + - rclcpp + - rclcpp_components + - rclcpp_lifecycle + - std_msgs + - std_srvs + - tf2 + - tf2_ros + repository: https://github.com/rt-net/raspimouse2 tag: release/rolling/raspimouse/2.0.0-2 url: https://github.com/ros2-gbp/raspimouse2-release.git version: 2.0.0 raspimouse_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/rt-net/raspimouse2 tag: release/rolling/raspimouse_msgs/2.0.0-2 url: https://github.com/ros2-gbp/raspimouse2-release.git version: 2.0.0 rc_common_msgs: + dependencies: + - ament_cmake + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/roboception/rc_common_msgs_ros2 tag: release/rolling/rc_common_msgs/0.5.3-6 url: https://github.com/ros2-gbp/rc_common_msgs_ros2-release.git version: 0.5.3 rc_dynamics_api: - tag: release/rolling/rc_dynamics_api/0.10.5-2 + dependencies: [] + repository: https://github.com/roboception/rc_dynamics_api + tag: release/rolling/rc_dynamics_api/0.10.7-1 url: https://github.com/ros2-gbp/rc_dynamics_api-release.git - version: 0.10.5 + version: 0.10.7 rc_genicam_api: + dependencies: [] + repository: https://github.com/roboception/rc_genicam_api tag: release/rolling/rc_genicam_api/2.8.6-1 url: https://github.com/ros2-gbp/rc_genicam_api-release.git version: 2.8.6 rc_genicam_driver: - tag: release/rolling/rc_genicam_driver/0.4.0-2 + dependencies: + - ament_cmake + - ament_cmake_cppcheck + - ament_cmake_xmllint + - ament_lint_auto + - diagnostic_updater + - image_transport + - rc_common_msgs + - rc_genicam_api + - rclcpp + - rclcpp_components + - sensor_msgs + - stereo_msgs + repository: https://github.com/roboception/rc_genicam_driver_ros2 + tag: release/rolling/rc_genicam_driver/0.4.2-1 url: https://github.com/ros2-gbp/rc_genicam_driver_ros2-release.git - version: 0.4.0 + version: 0.4.2 rc_reason_clients: - tag: release/rolling/rc_reason_clients/0.5.0-2 + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - geometry_msgs + - rc_reason_msgs + - rclpy + - ros2pkg + - tf2_msgs + - visualization_msgs + repository: https://github.com/roboception/rc_reason_clients_ros2 + tag: release/rolling/rc_reason_clients/0.6.1-1 url: https://github.com/ros2-gbp/rc_reason_clients-release.git - version: 0.5.0 + version: 0.6.1 rc_reason_msgs: - tag: release/rolling/rc_reason_msgs/0.5.0-2 + dependencies: + - ament_cmake + - ament_lint_common + - geometry_msgs + - rc_common_msgs + - rosidl_default_generators + - rosidl_default_runtime + - shape_msgs + - std_msgs + repository: https://github.com/roboception/rc_reason_clients_ros2 + tag: release/rolling/rc_reason_msgs/0.6.1-1 url: https://github.com/ros2-gbp/rc_reason_clients-release.git - version: 0.5.0 + version: 0.6.1 rcdiscover: + dependencies: [] + repository: https://github.com/roboception/rcdiscover tag: release/rolling/rcdiscover/2.1.2-1 url: https://github.com/ros2-gbp/rcdiscover-release.git version: 2.1.2 rcl: - tag: release/rolling/rcl/10.5.1-1 + dependencies: + - ament_cmake_gen_version_h + - ament_cmake_ros + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - launch + - launch_testing + - launch_testing_ament_cmake + - libyaml_vendor + - mimick_vendor + - osrf_testing_tools_cpp + - rcl_interfaces + - rcl_logging_implementation + - rcl_logging_interface + - rcl_logging_spdlog + - rcl_yaml_param_parser + - rcutils + - rmw + - rmw_implementation + - rmw_implementation_cmake + - rosidl_runtime_c + - rosidl_runtime_cpp + - service_msgs + - test_msgs + - tracetools + - type_description_interfaces + repository: https://github.com/ros2/rcl + tag: release/rolling/rcl/10.5.2-1 url: https://github.com/ros2-gbp/rcl-release.git - version: 10.5.1 + version: 10.5.2 rcl_action: - tag: release/rolling/rcl_action/10.5.1-1 + dependencies: + - action_msgs + - ament_cmake_gen_version_h + - ament_cmake_gtest + - ament_cmake_ros + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - osrf_testing_tools_cpp + - rcl + - rcutils + - rmw + - rmw_implementation_cmake + - rosidl_runtime_c + - test_msgs + repository: https://github.com/ros2/rcl + tag: release/rolling/rcl_action/10.5.2-1 url: https://github.com/ros2-gbp/rcl-release.git - version: 10.5.1 + version: 10.5.2 rcl_interfaces: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/ros2/rcl_interfaces tag: release/rolling/rcl_interfaces/2.5.1-1 url: https://github.com/ros2-gbp/rcl_interfaces-release.git version: 2.5.1 rcl_lifecycle: - tag: release/rolling/rcl_lifecycle/10.5.1-1 + dependencies: + - ament_cmake_gen_version_h + - ament_cmake_gtest + - ament_cmake_ros + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - lifecycle_msgs + - osrf_testing_tools_cpp + - rcl + - rcutils + - rmw + - rosidl_runtime_c + - tracetools + repository: https://github.com/ros2/rcl + tag: release/rolling/rcl_lifecycle/10.5.2-1 url: https://github.com/ros2-gbp/rcl-release.git - version: 10.5.1 + version: 10.5.2 rcl_logging_implementation: + dependencies: + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - rcl_logging_interface + - rcl_logging_noop + - rcl_logging_spdlog + - rcpputils + - rcutils + repository: https://github.com/ros2/rcl_logging tag: release/rolling/rcl_logging_implementation/3.5.0-1 url: https://github.com/ros2-gbp/rcl_logging-release.git version: 3.5.0 rcl_logging_interface: + dependencies: + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - rcpputils + - rcutils + repository: https://github.com/ros2/rcl_logging tag: release/rolling/rcl_logging_interface/3.5.0-1 url: https://github.com/ros2-gbp/rcl_logging-release.git version: 3.5.0 rcl_logging_noop: + dependencies: + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - rcl_logging_interface + - rcutils + repository: https://github.com/ros2/rcl_logging tag: release/rolling/rcl_logging_noop/3.5.0-1 url: https://github.com/ros2-gbp/rcl_logging-release.git version: 3.5.0 rcl_logging_spdlog: + dependencies: + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - performance_test_fixture + - rcl_logging_interface + - rcpputils + - rcutils + - spdlog_vendor + repository: https://github.com/ros2/rcl_logging tag: release/rolling/rcl_logging_spdlog/3.5.0-1 url: https://github.com/ros2-gbp/rcl_logging-release.git version: 3.5.0 rcl_logging_syslog: - tag: release/rolling/rcl_logging_syslog/0.1.2-2 + dependencies: + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - performance_test_fixture + - rcl_logging_interface + - rcpputils + - rcutils + repository: https://github.com/fujitatomoya/rcl_logging_syslog + tag: release/rolling/rcl_logging_syslog/0.2.0-2 url: https://github.com/ros2-gbp/rcl_logging_syslog-release.git - version: 0.1.2 + version: 0.2.0 rcl_yaml_param_parser: - tag: release/rolling/rcl_yaml_param_parser/10.5.1-1 + dependencies: + - ament_cmake_gen_version_h + - ament_cmake_gtest + - ament_cmake_ros + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - libyaml_vendor + - mimick_vendor + - osrf_testing_tools_cpp + - performance_test_fixture + - rcutils + - rmw + repository: https://github.com/ros2/rcl + tag: release/rolling/rcl_yaml_param_parser/10.5.2-1 url: https://github.com/ros2-gbp/rcl-release.git - version: 10.5.1 + version: 10.5.2 rclc: + dependencies: + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - example_interfaces + - launch_testing + - osrf_testing_tools_cpp + - rcl + - rcl_action + - rclcpp + - rclcpp_action + - rcutils + - rosidl_generator_c + - rosidl_typesupport_c + - std_msgs + - test_msgs + repository: https://github.com/ros2/rclc tag: release/rolling/rclc/6.3.0-2 url: https://github.com/ros2-gbp/rclc-release.git version: 6.3.0 rclc_examples: + dependencies: + - ament_cmake_ros + - example_interfaces + - lifecycle_msgs + - rcl + - rclc + - rclc_lifecycle + - rclc_parameter + - std_msgs + repository: https://github.com/ros2/rclc tag: release/rolling/rclc_examples/6.3.0-2 url: https://github.com/ros2-gbp/rclc-release.git version: 6.3.0 rclc_lifecycle: + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - lifecycle_msgs + - osrf_testing_tools_cpp + - rcl_lifecycle + - rclc + - std_msgs + repository: https://github.com/ros2/rclc tag: release/rolling/rclc_lifecycle/6.3.0-2 url: https://github.com/ros2-gbp/rclc-release.git version: 6.3.0 rclc_parameter: + dependencies: + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - example_interfaces + - osrf_testing_tools_cpp + - rcl + - rcl_interfaces + - rclc + - rclcpp + - rcutils + - rosidl_runtime_c + - std_msgs + repository: https://github.com/ros2/rclc tag: release/rolling/rclc_parameter/6.3.0-2 url: https://github.com/ros2-gbp/rclc-release.git version: 6.3.0 rclcpp: - tag: release/rolling/rclcpp/33.0.4-1 + dependencies: + - ament_cmake_gen_version_h + - ament_cmake_google_benchmark + - ament_cmake_gtest + - ament_cmake_ros + - ament_cmake_ros_core + - ament_index_cpp + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - libstatistics_collector + - mimick_vendor + - performance_test_fixture + - rcl + - rcl_interfaces + - rcl_logging_interface + - rcl_yaml_param_parser + - rcpputils + - rcutils + - rmw + - rmw_implementation_cmake + - rosgraph_msgs + - rosidl_default_generators + - rosidl_dynamic_typesupport + - rosidl_runtime_c + - rosidl_runtime_cpp + - rosidl_typesupport_c + - rosidl_typesupport_cpp + - statistics_msgs + - test_msgs + - tracetools + repository: https://github.com/ros2/rclcpp + tag: release/rolling/rclcpp/33.1.0-1 url: https://github.com/ros2-gbp/rclcpp-release.git - version: 33.0.4 + version: 33.1.0 rclcpp_action: - tag: release/rolling/rclcpp_action/33.0.4-1 + dependencies: + - action_msgs + - ament_cmake_gtest + - ament_cmake_ros + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - mimick_vendor + - performance_test_fixture + - rcl + - rcl_action + - rclcpp + - rcpputils + - rosidl_runtime_c + - test_msgs + repository: https://github.com/ros2/rclcpp + tag: release/rolling/rclcpp_action/33.1.0-1 url: https://github.com/ros2-gbp/rclcpp-release.git - version: 33.0.4 + version: 33.1.0 rclcpp_cascade_lifecycle: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - cascade_lifecycle_msgs + - lifecycle_msgs + - rclcpp + - rclcpp_lifecycle + repository: https://github.com/fmrico/cascade_lifecycle tag: release/rolling/rclcpp_cascade_lifecycle/2.0.4-2 url: https://github.com/ros2-gbp/cascade_lifecycle-release.git version: 2.0.4 rclcpp_components: - tag: release/rolling/rclcpp_components/33.0.4-1 + dependencies: + - ament_cmake_google_benchmark + - ament_cmake_gtest + - ament_cmake_ros + - ament_cmake_ros_core + - ament_index_cpp + - ament_lint_auto + - ament_lint_common + - class_loader + - composition_interfaces + - rcl_interfaces + - rclcpp + - rcpputils + - rmw + repository: https://github.com/ros2/rclcpp + tag: release/rolling/rclcpp_components/33.1.0-1 url: https://github.com/ros2-gbp/rclcpp-release.git - version: 33.0.4 + version: 33.1.0 rclcpp_lifecycle: - tag: release/rolling/rclcpp_lifecycle/33.0.4-1 + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - lifecycle_msgs + - mimick_vendor + - performance_test_fixture + - rcl + - rcl_interfaces + - rcl_lifecycle + - rclcpp + - rcpputils + - rcutils + - rmw + - rosidl_typesupport_cpp + - test_msgs + repository: https://github.com/ros2/rclcpp + tag: release/rolling/rclcpp_lifecycle/33.1.0-1 url: https://github.com/ros2-gbp/rclcpp-release.git - version: 33.0.4 + version: 33.1.0 rclpy: - tag: release/rolling/rclpy/11.0.2-1 + dependencies: + - action_msgs + - ament_cmake + - ament_cmake_gtest + - ament_cmake_mypy + - ament_cmake_pytest + - ament_cmake_ros_core + - ament_index_python + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - lifecycle_msgs + - rcl + - rcl_action + - rcl_interfaces + - rcl_lifecycle + - rcl_logging_interface + - rcl_yaml_param_parser + - rcpputils + - rcutils + - rmw + - rmw_implementation + - rmw_implementation_cmake + - rosgraph_msgs + - rosidl_generator_py + - rosidl_pycommon + - rosidl_runtime_c + - rpyutils + - service_msgs + - test_msgs + - type_description_interfaces + - unique_identifier_msgs + repository: https://github.com/ros2/rclpy + tag: release/rolling/rclpy/11.0.3-1 url: https://github.com/ros2-gbp/rclpy-release.git - version: 11.0.2 + version: 11.0.3 rclpy_cascade_lifecycle: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - cascade_lifecycle_msgs + - lifecycle_msgs + - rclcpp + - rclcpp_lifecycle + repository: https://github.com/fmrico/cascade_lifecycle tag: release/rolling/rclpy_cascade_lifecycle/2.0.4-2 url: https://github.com/ros2-gbp/cascade_lifecycle-release.git version: 2.0.4 rclpy_message_converter: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - builtin_interfaces + - geometry_msgs + - rclpy + - rclpy_message_converter_msgs + - rosidl_default_generators + - rosidl_parser + - rosidl_runtime_py + - std_msgs + - std_srvs + - tf2_msgs + repository: https://github.com/DFKI-NI/rospy_message_converter tag: release/rolling/rclpy_message_converter/2.0.2-2 url: https://github.com/ros2-gbp/rospy_message_converter-release.git version: 2.0.2 rclpy_message_converter_msgs: + dependencies: + - ament_cmake + - builtin_interfaces + - rosidl_default_generators + repository: https://github.com/DFKI-NI/rospy_message_converter tag: release/rolling/rclpy_message_converter_msgs/2.0.2-2 url: https://github.com/ros2-gbp/rospy_message_converter-release.git version: 2.0.2 rcpputils: - tag: release/rolling/rcpputils/2.15.1-1 + dependencies: + - ament_cmake + - ament_cmake_copyright + - ament_cmake_cppcheck + - ament_cmake_cpplint + - ament_cmake_gen_version_h + - ament_cmake_gtest + - ament_cmake_lint_cmake + - ament_cmake_ros_core + - ament_cmake_uncrustify + - ament_cmake_xmllint + - rcutils + repository: https://github.com/ros2/rcpputils + tag: release/rolling/rcpputils/2.15.2-1 url: https://github.com/ros2-gbp/rcpputils-release.git - version: 2.15.1 + version: 2.15.2 rcss3d_agent: + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - rclcpp + - rcss3d_agent_msgs + repository: https://github.com/ros-sports/rcss3d_agent tag: release/rolling/rcss3d_agent/0.4.1-4 url: https://github.com/ros2-gbp/rcss3d_agent-release.git version: 0.4.1 rcss3d_agent_basic: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rclcpp_components + - rcss3d_agent + repository: https://github.com/ros-sports/rcss3d_agent tag: release/rolling/rcss3d_agent_basic/0.4.1-4 url: https://github.com/ros2-gbp/rcss3d_agent-release.git version: 0.4.1 rcss3d_agent_msgs: + dependencies: + - ament_cmake + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/ros-sports/rcss3d_agent tag: release/rolling/rcss3d_agent_msgs/0.4.1-4 url: https://github.com/ros2-gbp/rcss3d_agent-release.git version: 0.4.1 rcss3d_agent_msgs_to_soccer_interfaces: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rcss3d_agent_msgs + - soccer_vision_3d_msgs + repository: https://github.com/ros-sports/rcss3d_agent tag: release/rolling/rcss3d_agent_msgs_to_soccer_interfaces/0.4.1-4 url: https://github.com/ros2-gbp/rcss3d_agent-release.git version: 0.4.1 rcss3d_nao: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - geometry_msgs + - nao_lola_command_msgs + - nao_lola_sensor_msgs + - rclcpp_components + - rcss3d_agent + - rcss3d_agent_msgs_to_soccer_interfaces + - sensor_msgs + - soccer_vision_3d_msgs + repository: https://github.com/ros-sports/rcss3d_nao tag: release/rolling/rcss3d_nao/1.2.0-3 url: https://github.com/ros2-gbp/rcss3d_nao-release.git version: 1.2.0 rcutils: - tag: release/rolling/rcutils/7.2.1-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - ament_cmake_gtest + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - launch + - launch_testing + - launch_testing_ament_cmake + - mimick_vendor + - osrf_testing_tools_cpp + - performance_test_fixture + repository: https://github.com/ros2/rcutils + tag: release/rolling/rcutils/7.2.2-1 url: https://github.com/ros2-gbp/rcutils-release.git - version: 7.2.1 + version: 7.2.2 realsense2_camera: - tag: release/rolling/realsense2_camera/4.58.3-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_pytest + - builtin_interfaces + - cv_bridge + - diagnostic_updater + - geometry_msgs + - image_transport + - launch_pytest + - launch_ros + - launch_testing + - librealsense2 + - lifecycle_msgs + - nav_msgs + - rclcpp + - rclcpp_action + - rclcpp_components + - rclcpp_lifecycle + - realsense2_camera_msgs + - ros2bag + - ros2topic + - ros_environment + - rosbag2_py + - rosbag2_storage_default_plugins + - sensor_msgs + - sensor_msgs_py + - std_msgs + - std_srvs + - tf2 + - tf2_ros + - tf2_ros_py + repository: https://github.com/IntelRealSense/realsense-ros + tag: release/rolling/realsense2_camera/4.59.1-1 url: https://github.com/ros2-gbp/realsense-ros-release.git - version: 4.58.3 + version: 4.59.1 realsense2_camera_msgs: - tag: release/rolling/realsense2_camera_msgs/4.58.3-1 + dependencies: + - action_msgs + - ament_cmake + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + - std_msgs + repository: https://github.com/IntelRealSense/realsense-ros + tag: release/rolling/realsense2_camera_msgs/4.59.1-1 url: https://github.com/ros2-gbp/realsense-ros-release.git - version: 4.58.3 + version: 4.59.1 realsense2_description: - tag: release/rolling/realsense2_description/4.58.3-1 + dependencies: + - ament_cmake + - launch_ros + - rclcpp + - rclcpp_components + - realsense2_camera_msgs + - xacro + repository: https://github.com/IntelRealSense/realsense-ros + tag: release/rolling/realsense2_description/4.59.1-1 url: https://github.com/ros2-gbp/realsense-ros-release.git - version: 4.58.3 + version: 4.59.1 realtime_tools: - tag: release/rolling/realtime_tools/5.2.0-2 + dependencies: + - ament_cmake + - ament_cmake_gmock + - lifecycle_msgs + - rclcpp + - rclcpp_action + - rclcpp_lifecycle + - ros2_control_cmake + - test_msgs + repository: https://github.com/ros-controls/realtime_tools + tag: release/rolling/realtime_tools/5.4.0-1 url: https://github.com/ros2-gbp/realtime_tools-release.git - version: 5.2.0 + version: 5.4.0 reductstore_agent: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - rclpy + - std_msgs + - std_srvs + repository: https://github.com/reductstore/reductstore_agent tag: release/rolling/reductstore_agent/0.2.0-2 url: https://github.com/ros2-gbp/reductstore_agent-release.git version: 0.2.0 replay_testing: + dependencies: + - ament_cmake + - ament_cmake_pytest + - geometry_msgs + - launch + - rclpy + - ros2bag + - ros2run + - ros2topic + - rosbag2_py + - rosbag2_storage_mcap + repository: https://github.com/polymathrobotics/replay_testing tag: release/rolling/replay_testing/0.0.4-2 url: https://github.com/ros2-gbp/replay_testing-release.git version: 0.0.4 resource_retriever: + dependencies: + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_ros + - ament_cmake_ros_core + - ament_index_cpp + - ament_index_python + - ament_lint_auto + - ament_lint_common + repository: https://github.com/ros/resource_retriever tag: release/rolling/resource_retriever/3.10.1-1 url: https://github.com/ros2-gbp/resource_retriever-release.git version: 3.10.1 resource_retriever_interfaces: - tag: release/rolling/resource_retriever_interfaces/1.0.1-1 + dependencies: + - ament_cmake + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/ros2/resource_retriever_service + tag: release/rolling/resource_retriever_interfaces/1.0.3-1 url: https://github.com/ros2-gbp/resource_retriever_service-release.git - version: 1.0.1 + version: 1.0.3 resource_retriever_service: - tag: release/rolling/resource_retriever_service/1.0.1-1 + dependencies: + - ament_cmake_gmock + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - rclcpp + - resource_retriever_interfaces + repository: https://github.com/ros2/resource_retriever_service + tag: release/rolling/resource_retriever_service/1.0.3-1 url: https://github.com/ros2-gbp/resource_retriever_service-release.git - version: 1.0.1 + version: 1.0.3 resource_retriever_service_plugin: - tag: release/rolling/resource_retriever_service_plugin/1.0.1-1 + dependencies: + - ament_cmake_gmock + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - rcl_interfaces + - rclcpp + - resource_retriever + - resource_retriever_interfaces + repository: https://github.com/ros2/resource_retriever_service + tag: release/rolling/resource_retriever_service_plugin/1.0.3-1 url: https://github.com/ros2-gbp/resource_retriever_service-release.git - version: 1.0.1 + version: 1.0.3 rig_reconfigure: + dependencies: + - ament_cmake + - ament_index_cpp + - rclcpp + repository: https://github.com/teamspatzenhirn/rig_reconfigure tag: release/rolling/rig_reconfigure/1.6.1-1 url: https://github.com/ros2-gbp/rig_reconfigure-release.git version: 1.6.1 rko_lio: - tag: release/rolling/rko_lio/0.3.2-1 + dependencies: + - ament_cmake + - geometry_msgs + - nav_msgs + - point_cloud_interfaces + - point_cloud_transport + - rclcpp + - rclcpp_components + - rclpy + - rosbag2_cpp + - rosbag2_py + - rosbag2_storage + - rosidl_runtime_py + - sensor_msgs + - sophus + - std_msgs + - tf2 + - tf2_ros + - tf2_ros_py + repository: https://github.com/PRBonn/rko_lio + tag: release/rolling/rko_lio/0.4.2-1 url: https://github.com/ros2-gbp/rko_lio-release.git - version: 0.3.2 + version: 0.4.2 +rko_slam: + dependencies: + - ament_cmake + - builtin_interfaces + - geometry_msgs + - rclcpp + - rclcpp_components + - rko_lio + - rosbag2_storage + - sensor_msgs + - sophus + - std_msgs + - tf2 + - tf2_ros + - visualization_msgs + repository: https://github.com/PRBonn/rko_slam + tag: release/rolling/rko_slam/0.0.7-1 + url: https://github.com/ros2-gbp/rko_slam-release.git + version: 0.0.7 rmf_api_msgs: + dependencies: + - ament_cmake + repository: https://github.com/open-rmf/rmf_api_msgs tag: release/rolling/rmf_api_msgs/0.5.0-2 url: https://github.com/ros2-gbp/rmf_api_msgs-release.git version: 0.5.0 rmf_battery: + dependencies: + - ament_cmake_catch2 + - ament_cmake_uncrustify + - eigen3_cmake_module + - rmf_traffic + - rmf_utils + repository: https://github.com/open-rmf/rmf_battery tag: release/rolling/rmf_battery/0.4.0-2 url: https://github.com/ros2-gbp/rmf_battery-release.git version: 0.4.0 rmf_building_map_msgs: + dependencies: + - ament_cmake + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/open-rmf/rmf_building_map_msgs tag: release/rolling/rmf_building_map_msgs/1.5.0-2 url: https://github.com/ros2-gbp/rmf_building_map_msgs-release.git version: 1.5.0 rmf_building_map_tools: + dependencies: + - ament_index_python + - gz_fuel_tools_vendor + - rclpy + - rmf_building_map_msgs + - rmf_site_map_msgs + - std_msgs + repository: https://github.com/open-rmf/rmf_traffic_editor tag: release/rolling/rmf_building_map_tools/1.14.0-2 url: https://github.com/ros2-gbp/rmf_traffic_editor-release.git version: 1.14.0 rmf_building_sim_gz_plugins: + dependencies: + - ament_cmake + - gz_gui_vendor + - gz_msgs_vendor + - gz_plugin_vendor + - gz_rendering_vendor + - gz_sim_vendor + - gz_transport_vendor + - menge_vendor + - rclcpp + - rmf_door_msgs + - rmf_fleet_msgs + - rmf_lift_msgs + repository: https://github.com/open-rmf/rmf_simulation tag: release/rolling/rmf_building_sim_gz_plugins/2.6.1-2 url: https://github.com/ros2-gbp/rmf_simulation-release.git version: 2.6.1 rmf_charger_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/open-rmf/rmf_internal_msgs tag: release/rolling/rmf_charger_msgs/4.0.0-2 url: https://github.com/ros2-gbp/rmf_internal_msgs-release.git version: 4.0.0 rmf_charging_schedule: + dependencies: + - rclpy + - rmf_fleet_msgs + repository: https://github.com/open-rmf/rmf_ros2 tag: release/rolling/rmf_charging_schedule/2.12.0-2 url: https://github.com/ros2-gbp/rmf_ros2-release.git version: 2.12.0 rmf_cmake_uncrustify: + dependencies: + - ament_cmake_copyright + - ament_cmake_core + - ament_cmake_lint_cmake + - ament_cmake_test + - ament_uncrustify + repository: https://github.com/open-rmf/rmf_cmake_uncrustify tag: release/rolling/rmf_cmake_uncrustify/1.2.0-6 url: https://github.com/ros2-gbp/rmf_cmake_uncrustify-release.git version: 1.2.0 rmf_demos: + dependencies: + - ament_cmake + - launch_xml + - rmf_building_map_tools + - rmf_demos_assets + - rmf_demos_fleet_adapter + - rmf_demos_maps + - rmf_demos_tasks + - rmf_fleet_adapter + - rmf_reservation_node + - rmf_task_ros2 + - rmf_traffic_ros2 + - rmf_visualization + - rviz2 + repository: https://github.com/open-rmf/rmf_demos tag: release/rolling/rmf_demos/2.8.2-3 url: https://github.com/ros2-gbp/rmf_demos-release.git version: 2.8.2 rmf_demos_assets: + dependencies: + - ament_cmake + repository: https://github.com/open-rmf/rmf_demos tag: release/rolling/rmf_demos_assets/2.8.2-3 url: https://github.com/ros2-gbp/rmf_demos-release.git version: 2.8.2 rmf_demos_bridges: + dependencies: + - rmf_building_map_tools + - rmf_fleet_msgs + - rmf_site_map_msgs + - rmf_traffic_msgs + repository: https://github.com/open-rmf/rmf_demos tag: release/rolling/rmf_demos_bridges/2.8.2-3 url: https://github.com/ros2-gbp/rmf_demos-release.git version: 2.8.2 rmf_demos_fleet_adapter: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - launch_xml + - rclpy + - rmf_fleet_adapter_python + - rmf_fleet_msgs + - rmf_task_msgs + repository: https://github.com/open-rmf/rmf_demos tag: release/rolling/rmf_demos_fleet_adapter/2.8.2-3 url: https://github.com/ros2-gbp/rmf_demos-release.git version: 2.8.2 rmf_demos_gz: + dependencies: + - ament_cmake + - launch_xml + - rmf_building_sim_gz_plugins + - rmf_demos + - rmf_robot_sim_gz_plugins + - ros2launch + - ros_gz_bridge + - ros_gz_sim + - teleop_twist_keyboard + repository: https://github.com/open-rmf/rmf_demos tag: release/rolling/rmf_demos_gz/2.8.2-3 url: https://github.com/ros2-gbp/rmf_demos-release.git version: 2.8.2 rmf_demos_maps: + dependencies: + - ament_cmake + - rmf_building_map_tools + - ros2run + repository: https://github.com/open-rmf/rmf_demos tag: release/rolling/rmf_demos_maps/2.8.2-3 url: https://github.com/ros2-gbp/rmf_demos-release.git version: 2.8.2 rmf_demos_tasks: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - rmf_dispenser_msgs + - rmf_fleet_msgs + - rmf_lift_msgs + - rmf_task_msgs + repository: https://github.com/open-rmf/rmf_demos tag: release/rolling/rmf_demos_tasks/2.8.2-3 url: https://github.com/ros2-gbp/rmf_demos-release.git version: 2.8.2 rmf_dispenser_msgs: + dependencies: + - ament_cmake + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/open-rmf/rmf_internal_msgs tag: release/rolling/rmf_dispenser_msgs/4.0.0-2 url: https://github.com/ros2-gbp/rmf_internal_msgs-release.git version: 4.0.0 rmf_door_msgs: + dependencies: + - ament_cmake + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/open-rmf/rmf_internal_msgs tag: release/rolling/rmf_door_msgs/4.0.0-2 url: https://github.com/ros2-gbp/rmf_internal_msgs-release.git version: 4.0.0 rmf_fleet_adapter: + dependencies: + - ament_cmake + - ament_cmake_catch2 + - ament_cmake_uncrustify + - backward_ros + - nlohmann_json_schema_validator_vendor + - rclcpp + - rclcpp_action + - rclcpp_components + - rmf_api_msgs + - rmf_battery + - rmf_building_map_msgs + - rmf_dispenser_msgs + - rmf_door_msgs + - rmf_fleet_msgs + - rmf_ingestor_msgs + - rmf_lift_msgs + - rmf_reservation_msgs + - rmf_task + - rmf_task_msgs + - rmf_task_ros2 + - rmf_task_sequence + - rmf_traffic + - rmf_traffic_ros2 + - rmf_utils + - rmf_websocket + - std_msgs + repository: https://github.com/open-rmf/rmf_ros2 tag: release/rolling/rmf_fleet_adapter/2.12.0-2 url: https://github.com/ros2-gbp/rmf_ros2-release.git version: 2.12.0 rmf_fleet_adapter_python: + dependencies: + - ament_cmake_pytest + - rclpy + - rmf_fleet_adapter + repository: https://github.com/open-rmf/rmf_ros2 tag: release/rolling/rmf_fleet_adapter_python/2.12.0-2 url: https://github.com/ros2-gbp/rmf_ros2-release.git version: 2.12.0 rmf_fleet_msgs: + dependencies: + - ament_cmake + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/open-rmf/rmf_internal_msgs tag: release/rolling/rmf_fleet_msgs/4.0.0-2 url: https://github.com/ros2-gbp/rmf_internal_msgs-release.git version: 4.0.0 rmf_ingestor_msgs: + dependencies: + - ament_cmake + - ament_lint_common + - builtin_interfaces + - rmf_dispenser_msgs + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/open-rmf/rmf_internal_msgs tag: release/rolling/rmf_ingestor_msgs/4.0.0-2 url: https://github.com/ros2-gbp/rmf_internal_msgs-release.git version: 4.0.0 rmf_lift_msgs: + dependencies: + - ament_cmake + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/open-rmf/rmf_internal_msgs tag: release/rolling/rmf_lift_msgs/4.0.0-2 url: https://github.com/ros2-gbp/rmf_internal_msgs-release.git version: 4.0.0 rmf_obstacle_msgs: + dependencies: + - ament_cmake + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/open-rmf/rmf_internal_msgs tag: release/rolling/rmf_obstacle_msgs/4.0.0-2 url: https://github.com/ros2-gbp/rmf_internal_msgs-release.git version: 4.0.0 rmf_reservation_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/open-rmf/rmf_internal_msgs tag: release/rolling/rmf_reservation_msgs/4.0.0-2 url: https://github.com/ros2-gbp/rmf_internal_msgs-release.git version: 4.0.0 rmf_reservation_node: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rmf_building_map_msgs + - rmf_fleet_adapter + - rmf_reservation_msgs + repository: https://github.com/open-rmf/rmf_ros2 tag: release/rolling/rmf_reservation_node/2.12.0-2 url: https://github.com/ros2-gbp/rmf_ros2-release.git version: 2.12.0 rmf_robot_sim_common: + dependencies: + - ament_cmake + - eigen3_cmake_module + - geometry_msgs + - rclcpp + - rmf_building_map_msgs + - rmf_fleet_msgs + - tf2_ros + repository: https://github.com/open-rmf/rmf_simulation tag: release/rolling/rmf_robot_sim_common/2.6.1-2 url: https://github.com/ros2-gbp/rmf_simulation-release.git version: 2.6.1 rmf_robot_sim_gz_plugins: + dependencies: + - ament_cmake + - gz_msgs_vendor + - gz_plugin_vendor + - gz_rendering_vendor + - gz_sim_vendor + - gz_transport_vendor + - rclcpp + - rmf_building_map_msgs + - rmf_building_sim_gz_plugins + - rmf_dispenser_msgs + - rmf_fleet_msgs + - rmf_ingestor_msgs + - rmf_robot_sim_common + repository: https://github.com/open-rmf/rmf_simulation tag: release/rolling/rmf_robot_sim_gz_plugins/2.6.1-2 url: https://github.com/ros2-gbp/rmf_simulation-release.git version: 2.6.1 rmf_scheduler_msgs: + dependencies: + - ament_cmake + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/open-rmf/rmf_internal_msgs tag: release/rolling/rmf_scheduler_msgs/4.0.0-2 url: https://github.com/ros2-gbp/rmf_internal_msgs-release.git version: 4.0.0 rmf_site_map_msgs: + dependencies: + - ament_cmake + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/open-rmf/rmf_internal_msgs tag: release/rolling/rmf_site_map_msgs/4.0.0-2 url: https://github.com/ros2-gbp/rmf_internal_msgs-release.git version: 4.0.0 rmf_task: + dependencies: + - ament_cmake_catch2 + - ament_cmake_uncrustify + - rmf_battery + - rmf_utils + repository: https://github.com/open-rmf/rmf_task tag: release/rolling/rmf_task/2.9.0-2 url: https://github.com/ros2-gbp/rmf_task-release.git version: 2.9.0 rmf_task_msgs: + dependencies: + - ament_cmake + - ament_lint_common + - builtin_interfaces + - rmf_dispenser_msgs + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/open-rmf/rmf_internal_msgs tag: release/rolling/rmf_task_msgs/4.0.0-2 url: https://github.com/ros2-gbp/rmf_internal_msgs-release.git version: 4.0.0 rmf_task_ros2: + dependencies: + - ament_cmake + - ament_cmake_catch2 + - ament_cmake_uncrustify + - backward_ros + - nlohmann_json_schema_validator_vendor + - rclcpp + - rmf_api_msgs + - rmf_task_msgs + - rmf_traffic + - rmf_traffic_ros2 + - rmf_utils + - rmf_websocket + - std_msgs + repository: https://github.com/open-rmf/rmf_ros2 tag: release/rolling/rmf_task_ros2/2.12.0-2 url: https://github.com/ros2-gbp/rmf_ros2-release.git version: 2.12.0 rmf_task_sequence: + dependencies: + - ament_cmake_catch2 + - ament_cmake_uncrustify + - nlohmann_json_schema_validator_vendor + - rmf_api_msgs + - rmf_task + repository: https://github.com/open-rmf/rmf_task tag: release/rolling/rmf_task_sequence/2.9.0-2 url: https://github.com/ros2-gbp/rmf_task-release.git version: 2.9.0 rmf_traffic: + dependencies: + - ament_cmake_catch2 + - ament_cmake_uncrustify + - eigen3_cmake_module + - rmf_utils + repository: https://github.com/open-rmf/rmf_traffic tag: release/rolling/rmf_traffic/3.7.0-2 url: https://github.com/ros2-gbp/rmf_traffic-release.git version: 3.7.0 rmf_traffic_editor: + dependencies: + - ament_cmake + - ament_cmake_uncrustify + - ament_index_cpp + - rmf_utils + repository: https://github.com/open-rmf/rmf_traffic_editor tag: release/rolling/rmf_traffic_editor/1.14.0-2 url: https://github.com/ros2-gbp/rmf_traffic_editor-release.git version: 1.14.0 rmf_traffic_editor_assets: + dependencies: + - ament_cmake + repository: https://github.com/open-rmf/rmf_traffic_editor tag: release/rolling/rmf_traffic_editor_assets/1.14.0-2 url: https://github.com/ros2-gbp/rmf_traffic_editor-release.git version: 1.14.0 rmf_traffic_editor_test_maps: + dependencies: + - ament_cmake + - rmf_building_map_tools + - ros2run + repository: https://github.com/open-rmf/rmf_traffic_editor tag: release/rolling/rmf_traffic_editor_test_maps/1.14.0-2 url: https://github.com/ros2-gbp/rmf_traffic_editor-release.git version: 1.14.0 rmf_traffic_examples: + dependencies: + - rmf_traffic + repository: https://github.com/open-rmf/rmf_traffic tag: release/rolling/rmf_traffic_examples/3.7.0-2 url: https://github.com/ros2-gbp/rmf_traffic-release.git version: 3.7.0 rmf_traffic_msgs: + dependencies: + - ament_cmake + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/open-rmf/rmf_internal_msgs tag: release/rolling/rmf_traffic_msgs/4.0.0-2 url: https://github.com/ros2-gbp/rmf_internal_msgs-release.git version: 4.0.0 rmf_traffic_ros2: + dependencies: + - ament_cmake + - ament_cmake_catch2 + - ament_cmake_uncrustify + - backward_ros + - rclcpp + - rmf_building_map_msgs + - rmf_fleet_msgs + - rmf_reservation_msgs + - rmf_site_map_msgs + - rmf_traffic + - rmf_traffic_msgs + - rmf_utils + repository: https://github.com/open-rmf/rmf_ros2 tag: release/rolling/rmf_traffic_ros2/2.12.0-2 url: https://github.com/ros2-gbp/rmf_ros2-release.git version: 2.12.0 rmf_utils: + dependencies: + - ament_cmake_catch2 + - ament_cmake_uncrustify + repository: https://github.com/open-rmf/rmf_utils tag: release/rolling/rmf_utils/1.7.0-2 url: https://github.com/ros2-gbp/rmf_utils-release.git version: 1.7.0 rmf_visualization: + dependencies: + - ament_cmake + - launch_xml + - rmf_visualization_building_systems + - rmf_visualization_fleet_states + - rmf_visualization_floorplans + - rmf_visualization_navgraphs + - rmf_visualization_obstacles + - rmf_visualization_rviz2_plugins + - rmf_visualization_schedule + repository: https://github.com/open-rmf/rmf_visualization tag: release/rolling/rmf_visualization/2.5.1-2 url: https://github.com/ros2-gbp/rmf_visualization-release.git version: 2.5.1 rmf_visualization_building_systems: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - geometry_msgs + - rmf_building_map_msgs + - rmf_door_msgs + - rmf_lift_msgs + - rmf_visualization_msgs + repository: https://github.com/open-rmf/rmf_visualization tag: release/rolling/rmf_visualization_building_systems/2.5.1-2 url: https://github.com/ros2-gbp/rmf_visualization-release.git version: 2.5.1 rmf_visualization_fleet_states: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rclcpp + - rclcpp_components + - rmf_fleet_msgs + - rmf_utils + - rmf_visualization_msgs + - visualization_msgs + repository: https://github.com/open-rmf/rmf_visualization tag: release/rolling/rmf_visualization_fleet_states/2.5.1-2 url: https://github.com/ros2-gbp/rmf_visualization-release.git version: 2.5.1 rmf_visualization_floorplans: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - eigen3_cmake_module + - geometry_msgs + - nav_msgs + - rclcpp + - rclcpp_components + - rmf_building_map_msgs + - rmf_utils + - rmf_visualization_msgs + repository: https://github.com/open-rmf/rmf_visualization tag: release/rolling/rmf_visualization_floorplans/2.5.1-2 url: https://github.com/ros2-gbp/rmf_visualization-release.git version: 2.5.1 rmf_visualization_msgs: + dependencies: + - ament_cmake + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/open-rmf/rmf_visualization_msgs tag: release/rolling/rmf_visualization_msgs/1.5.0-2 url: https://github.com/ros2-gbp/rmf_visualization_msgs-release.git version: 1.5.0 rmf_visualization_navgraphs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - geometry_msgs + - rclcpp + - rclcpp_components + - rmf_building_map_msgs + - rmf_fleet_msgs + - rmf_traffic + - rmf_traffic_ros2 + - rmf_utils + - rmf_visualization_msgs + - visualization_msgs + repository: https://github.com/open-rmf/rmf_visualization tag: release/rolling/rmf_visualization_navgraphs/2.5.1-2 url: https://github.com/ros2-gbp/rmf_visualization-release.git version: 2.5.1 rmf_visualization_obstacles: + dependencies: + - ament_cmake + - ament_cmake_uncrustify + - geometry_msgs + - rclcpp + - rclcpp_components + - rmf_obstacle_msgs + - rmf_utils + - rmf_visualization_msgs + - vision_msgs + - visualization_msgs + repository: https://github.com/open-rmf/rmf_visualization tag: release/rolling/rmf_visualization_obstacles/2.5.1-2 url: https://github.com/ros2-gbp/rmf_visualization-release.git version: 2.5.1 rmf_visualization_rviz2_plugins: + dependencies: + - ament_cmake + - ament_cmake_uncrustify + - pluginlib + - rclcpp + - resource_retriever + - rmf_door_msgs + - rmf_lift_msgs + - rmf_traffic_ros2 + - rmf_utils + - rmf_visualization_msgs + - rviz_common + - rviz_default_plugins + - rviz_rendering + repository: https://github.com/open-rmf/rmf_visualization tag: release/rolling/rmf_visualization_rviz2_plugins/2.5.1-2 url: https://github.com/ros2-gbp/rmf_visualization-release.git version: 2.5.1 rmf_visualization_schedule: + dependencies: + - ament_cmake + - ament_cmake_uncrustify + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - rclcpp + - rclcpp_components + - rmf_traffic + - rmf_traffic_msgs + - rmf_traffic_ros2 + - rmf_utils + - rmf_visualization_msgs + - rosidl_default_generators + - visualization_msgs + repository: https://github.com/open-rmf/rmf_visualization tag: release/rolling/rmf_visualization_schedule/2.5.1-2 url: https://github.com/ros2-gbp/rmf_visualization-release.git version: 2.5.1 rmf_websocket: + dependencies: + - ament_cmake + - ament_cmake_catch2 + - ament_cmake_uncrustify + - nlohmann_json_schema_validator_vendor + - rclcpp + - rmf_utils + repository: https://github.com/open-rmf/rmf_ros2 tag: release/rolling/rmf_websocket/2.12.0-2 url: https://github.com/ros2-gbp/rmf_ros2-release.git version: 2.12.0 rmf_workcell_msgs: + dependencies: + - ament_cmake + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/open-rmf/rmf_internal_msgs tag: release/rolling/rmf_workcell_msgs/4.0.0-2 url: https://github.com/ros2-gbp/rmf_internal_msgs-release.git version: 4.0.0 rmw: - tag: release/rolling/rmw/7.11.1-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - ament_cmake_ros_core + - ament_cmake_version + - ament_lint_auto + - ament_lint_common + - osrf_testing_tools_cpp + - rcutils + - rosidl_dynamic_typesupport + - rosidl_runtime_c + repository: https://github.com/ros2/rmw + tag: release/rolling/rmw/7.11.2-1 url: https://github.com/ros2-gbp/rmw-release.git - version: 7.11.1 + version: 7.11.2 rmw_connextdds: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rmw_connextdds_common + repository: https://github.com/ros2/rmw_connextdds tag: release/rolling/rmw_connextdds/1.3.0-2 url: https://github.com/ros2-gbp/rmw_connextdds-release.git version: 1.3.0 rmw_connextdds_common: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - fastcdr + - rcpputils + - rcutils + - rmw + - rmw_dds_common + - rmw_security_common + - rosidl_runtime_c + - rosidl_runtime_cpp + - rosidl_typesupport_fastrtps_c + - rosidl_typesupport_fastrtps_cpp + - rosidl_typesupport_introspection_c + - rosidl_typesupport_introspection_cpp + - rti_connext_dds_cmake_module + - tracetools + repository: https://github.com/ros2/rmw_connextdds tag: release/rolling/rmw_connextdds_common/1.3.0-2 url: https://github.com/ros2-gbp/rmw_connextdds-release.git version: 1.3.0 rmw_cyclonedds_cpp: + dependencies: + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - cyclonedds + - iceoryx_binding_c + - rcpputils + - rcutils + - rmw + - rmw_dds_common + - rmw_security_common + - rosidl_runtime_c + - rosidl_typesupport_introspection_c + - rosidl_typesupport_introspection_cpp + - tracetools + repository: https://github.com/ros2/rmw_cyclonedds tag: release/rolling/rmw_cyclonedds_cpp/4.2.1-1 url: https://github.com/ros2-gbp/rmw_cyclonedds-release.git version: 4.2.1 rmw_dds_common: - tag: release/rolling/rmw_dds_common/6.1.1-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - osrf_testing_tools_cpp + - performance_test_fixture + - rcpputils + - rcutils + - rmw + - rmw_security_common + - rosidl_default_generators + - rosidl_default_runtime + - rosidl_runtime_c + - rosidl_runtime_cpp + repository: https://github.com/ros2/rmw_dds_common + tag: release/rolling/rmw_dds_common/6.1.2-1 url: https://github.com/ros2-gbp/rmw_dds_common-release.git - version: 6.1.1 + version: 6.1.2 rmw_desert: - tag: release/rolling/rmw_desert/4.0.2-1 + dependencies: + - ament_cmake + - ament_cmake_ros_core + - rcpputils + - rcutils + - rmw + - rmw_dds_common + - rosidl_cmake + - rosidl_runtime_c + - rosidl_typesupport_introspection_c + - rosidl_typesupport_introspection_cpp + repository: https://github.com/signetlabdei/rmw_desert + tag: release/rolling/rmw_desert/5.0.0-1 url: https://github.com/ros2-gbp/rmw_desert-release.git - version: 4.0.2 + version: 5.0.0 rmw_fastrtps_cpp: - tag: release/rolling/rmw_fastrtps_cpp/9.5.2-1 + dependencies: + - ament_cmake_gtest + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - fastcdr + - fastdds + - osrf_testing_tools_cpp + - rcpputils + - rcutils + - rmw + - rmw_dds_common + - rmw_fastrtps_shared_cpp + - rosidl_buffer_backend_registry + - rosidl_dynamic_typesupport + - rosidl_dynamic_typesupport_fastrtps + - rosidl_runtime_c + - rosidl_runtime_cpp + - rosidl_typesupport_fastrtps_c + - rosidl_typesupport_fastrtps_cpp + - test_msgs + - tracetools + repository: https://github.com/ros2/rmw_fastrtps + tag: release/rolling/rmw_fastrtps_cpp/9.6.0-1 url: https://github.com/ros2-gbp/rmw_fastrtps-release.git - version: 9.5.2 + version: 9.6.0 rmw_fastrtps_dynamic_cpp: - tag: release/rolling/rmw_fastrtps_dynamic_cpp/9.5.2-1 + dependencies: + - ament_cmake_gtest + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - fastcdr + - fastdds + - osrf_testing_tools_cpp + - rcpputils + - rcutils + - rmw + - rmw_dds_common + - rmw_fastrtps_shared_cpp + - rosidl_buffer + - rosidl_runtime_c + - rosidl_typesupport_introspection_c + - rosidl_typesupport_introspection_cpp + - test_msgs + - tracetools + repository: https://github.com/ros2/rmw_fastrtps + tag: release/rolling/rmw_fastrtps_dynamic_cpp/9.6.0-1 url: https://github.com/ros2-gbp/rmw_fastrtps-release.git - version: 9.5.2 + version: 9.6.0 rmw_fastrtps_shared_cpp: - tag: release/rolling/rmw_fastrtps_shared_cpp/9.5.2-1 + dependencies: + - ament_cmake_gmock + - ament_cmake_gtest + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - fastcdr + - fastdds + - osrf_testing_tools_cpp + - rcpputils + - rcutils + - rmw + - rmw_dds_common + - rmw_security_common + - rosidl_buffer_backend_registry + - rosidl_dynamic_typesupport + - rosidl_runtime_c + - rosidl_typesupport_introspection_c + - rosidl_typesupport_introspection_cpp + - tracetools + repository: https://github.com/ros2/rmw_fastrtps + tag: release/rolling/rmw_fastrtps_shared_cpp/9.6.0-1 url: https://github.com/ros2-gbp/rmw_fastrtps-release.git - version: 9.5.2 + version: 9.6.0 rmw_implementation: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_ros_core + - ament_index_cpp + - ament_lint_auto + - ament_lint_common + - performance_test_fixture + - rcpputils + - rcutils + - rmw + - rmw_connextdds + - rmw_cyclonedds_cpp + - rmw_fastrtps_cpp + - rmw_fastrtps_dynamic_cpp + - rmw_implementation_cmake + - rmw_zenoh_cpp + repository: https://github.com/ros2/rmw_implementation tag: release/rolling/rmw_implementation/3.2.1-1 url: https://github.com/ros2-gbp/rmw_implementation-release.git version: 3.2.1 rmw_implementation_cmake: - tag: release/rolling/rmw_implementation_cmake/7.11.1-1 + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + repository: https://github.com/ros2/rmw + tag: release/rolling/rmw_implementation_cmake/7.11.2-1 url: https://github.com/ros2-gbp/rmw-release.git - version: 7.11.1 + version: 7.11.2 +rmw_int2dds_cpp: + dependencies: + - ament_cmake + - ament_cmake_cpplint + - ament_cmake_flake8 + - ament_cmake_gtest + - ament_cmake_ros_core + - ament_cmake_test + - ament_lint_auto + - ament_lint_common + - int2dds_ffi_vendor + - rcutils + - rmw + - rmw_dds_common + - rosidl_dynamic_typesupport + - rosidl_runtime_c + - rosidl_runtime_cpp + - rosidl_typesupport_c + - rosidl_typesupport_cpp + - rosidl_typesupport_introspection_c + - rosidl_typesupport_introspection_cpp + - std_msgs + repository: https://github.com/IntellectusCorp/rmw_int2dds + tag: release/rolling/rmw_int2dds_cpp/0.1.8-1 + url: https://github.com/ros2-gbp/rmw_int2dds-release.git + version: 0.1.8 rmw_security_common: - tag: release/rolling/rmw_security_common/7.11.1-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - rcutils + - rmw + repository: https://github.com/ros2/rmw + tag: release/rolling/rmw_security_common/7.11.2-1 url: https://github.com/ros2-gbp/rmw-release.git - version: 7.11.1 + version: 7.11.2 rmw_stats_shim: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosgraph_monitor_msgs + - rosidl_runtime_cpp + - rosidl_typesupport_cpp + repository: https://github.com/ros-tooling/graph-monitor tag: release/rolling/rmw_stats_shim/0.2.3-2 url: https://github.com/ros2-gbp/graph_monitor-release.git version: 0.2.3 -rmw_swiftdds_cpp: - tag: release/rolling/rmw_swiftdds_cpp/1.0.1-1 - url: https://github.com/ros2-gbp/rmw_swiftdds-release.git - version: 1.0.1 rmw_test_fixture: + dependencies: + - ament_cmake + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - rmw + repository: https://github.com/ros2/ament_cmake_ros tag: release/rolling/rmw_test_fixture/0.16.0-1 url: https://github.com/ros2-gbp/ament_cmake_ros-release.git version: 0.16.0 rmw_test_fixture_implementation: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - rcpputils + - rcutils + - rmw + - rmw_implementation + - rmw_implementation_cmake + - rmw_test_fixture + - rpyutils + repository: https://github.com/ros2/ament_cmake_ros tag: release/rolling/rmw_test_fixture_implementation/0.16.0-1 url: https://github.com/ros2-gbp/ament_cmake_ros-release.git version: 0.16.0 rmw_zenoh_cpp: - tag: release/rolling/rmw_zenoh_cpp/0.12.0-1 + dependencies: + - ament_cmake + - ament_cmake_ros_core + - ament_index_cpp + - ament_lint_auto + - ament_lint_common + - fastcdr + - rcpputils + - rcutils + - rmw + - rmw_test_fixture + - rosidl_buffer_backend_registry + - rosidl_typesupport_fastrtps_c + - rosidl_typesupport_fastrtps_cpp + - tracetools + - zenoh_cpp_vendor + repository: https://github.com/ros2/rmw_zenoh + tag: release/rolling/rmw_zenoh_cpp/0.14.0-1 url: https://github.com/ros2-gbp/rmw_zenoh-release.git - version: 0.12.0 + version: 0.14.0 roboplan: + dependencies: + - ament_cmake + - roboplan_cartesian_planning + - roboplan_common + - roboplan_core + - roboplan_example_models + - roboplan_examples + - roboplan_oink + - roboplan_rrt + - roboplan_simple_ik + - roboplan_toppra + repository: https://github.com/open-planning/roboplan tag: release/rolling/roboplan/0.7.0-1 url: https://github.com/ros2-gbp/roboplan-release.git version: 0.7.0 roboplan_cartesian_planning: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_python + - roboplan_common + - roboplan_core + - roboplan_example_models + - roboplan_oink + - roboplan_toppra + repository: https://github.com/open-planning/roboplan tag: release/rolling/roboplan_cartesian_planning/0.7.0-1 url: https://github.com/ros2-gbp/roboplan-release.git version: 0.7.0 roboplan_common: + dependencies: + - ament_cmake + - ament_cmake_python + repository: https://github.com/open-planning/roboplan tag: release/rolling/roboplan_common/0.7.0-1 url: https://github.com/ros2-gbp/roboplan-release.git version: 0.7.0 roboplan_core: + dependencies: + - ament_cmake + - ament_cmake_gmock + - ament_cmake_pytest + - ament_cmake_python + - pinocchio + - roboplan_common + - roboplan_example_models + - yaml_cpp_vendor + repository: https://github.com/open-planning/roboplan tag: release/rolling/roboplan_core/0.7.0-1 url: https://github.com/ros2-gbp/roboplan-release.git version: 0.7.0 roboplan_example_models: + dependencies: + - ament_cmake + - ament_cmake_python + - roboplan_common + repository: https://github.com/open-planning/roboplan tag: release/rolling/roboplan_example_models/0.7.0-1 url: https://github.com/ros2-gbp/roboplan-release.git version: 0.7.0 roboplan_examples: + dependencies: + - ament_cmake + - ament_cmake_pytest + - roboplan_cartesian_planning + - roboplan_core + - roboplan_example_models + - roboplan_oink + - roboplan_rrt + - roboplan_simple_ik + - roboplan_toppra + - xacro + repository: https://github.com/open-planning/roboplan tag: release/rolling/roboplan_examples/0.7.0-1 url: https://github.com/ros2-gbp/roboplan-release.git version: 0.7.0 roboplan_oink: + dependencies: + - ament_cmake + - ament_cmake_gmock + - ament_cmake_python + - proxsuite + - roboplan_common + - roboplan_core + - roboplan_example_models + repository: https://github.com/open-planning/roboplan tag: release/rolling/roboplan_oink/0.7.0-1 url: https://github.com/ros2-gbp/roboplan-release.git version: 0.7.0 roboplan_ros_cpp: + dependencies: + - ament_cmake + - ament_index_cpp + - builtin_interfaces + - geometry_msgs + - pinocchio + - roboplan_core + - roboplan_example_models + - rosidl_generator_cpp + - sensor_msgs + - tf2_eigen + - trajectory_msgs + repository: https://github.com/open-planning/roboplan-ros tag: release/rolling/roboplan_ros_cpp/0.7.0-1 url: https://github.com/ros2-gbp/roboplan_ros-release.git version: 0.7.0 roboplan_ros_examples: + dependencies: + - ament_cmake + - ament_cmake_python + - control_msgs + - rclpy + - roboplan_core + - sensor_msgs + - std_msgs + - visualization_msgs + repository: https://github.com/open-planning/roboplan-ros tag: release/rolling/roboplan_ros_examples/0.7.0-1 url: https://github.com/ros2-gbp/roboplan_ros-release.git version: 0.7.0 roboplan_ros_franka: + dependencies: + - ament_cmake + - controller_manager + - joint_state_broadcaster + - joint_trajectory_controller + - parallel_gripper_controller + - roboplan_core + - roboplan_example_models + - roboplan_oink + - roboplan_ros_examples + - roboplan_rrt + - roboplan_simple_ik + - roboplan_toppra + - robot_state_publisher + - topic_tools + - xacro + repository: https://github.com/open-planning/roboplan-ros tag: release/rolling/roboplan_ros_franka/0.7.0-1 url: https://github.com/ros2-gbp/roboplan_ros-release.git version: 0.7.0 roboplan_ros_py: + dependencies: + - builtin_interfaces + - rclpy + - roboplan_core + - roboplan_ros_cpp + - roboplan_ros_visualization + - sensor_msgs + - trajectory_msgs + repository: https://github.com/open-planning/roboplan-ros tag: release/rolling/roboplan_ros_py/0.7.0-1 url: https://github.com/ros2-gbp/roboplan_ros-release.git version: 0.7.0 roboplan_ros_visualization: + dependencies: + - ament_cmake + - ament_cmake_python + - ament_index_cpp + - geometry_msgs + - interactive_markers + - rclcpp + - rclpy + - roboplan_core + - roboplan_ros_cpp + - roboplan_simple_ik + - rviz2 + - sensor_msgs + - visualization_msgs + repository: https://github.com/open-planning/roboplan-ros tag: release/rolling/roboplan_ros_visualization/0.7.0-1 url: https://github.com/ros2-gbp/roboplan_ros-release.git version: 0.7.0 roboplan_rrt: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_python + - roboplan_common + - roboplan_core + - roboplan_example_models + repository: https://github.com/open-planning/roboplan tag: release/rolling/roboplan_rrt/0.7.0-1 url: https://github.com/ros2-gbp/roboplan-release.git version: 0.7.0 roboplan_simple_ik: + dependencies: + - ament_cmake + - ament_cmake_python + - roboplan_common + - roboplan_core + repository: https://github.com/open-planning/roboplan tag: release/rolling/roboplan_simple_ik/0.7.0-1 url: https://github.com/ros2-gbp/roboplan-release.git version: 0.7.0 roboplan_toppra: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_python + - roboplan_common + - roboplan_core + - roboplan_example_models + - toppra + repository: https://github.com/open-planning/roboplan tag: release/rolling/roboplan_toppra/0.7.0-1 url: https://github.com/ros2-gbp/roboplan-release.git version: 0.7.0 robot_arm_demo: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - libtorch_vendor + - rclcpp + - rclcpp_components + - tensor_msgs + - torch_conversions + repository: https://github.com/ros2/rosidl_buffer_backends_tutorials tag: release/rolling/robot_arm_demo/0.1.0-1 url: https://github.com/ros2-gbp/rosidl_buffer_backends_tutorials-release.git version: 0.1.0 robot_calibration: + dependencies: + - ament_cmake + - ament_cmake_gtest + - camera_calibration_parsers + - control_msgs + - cv_bridge + - geometric_shapes + - geometry_msgs + - kdl_parser + - launch + - launch_ros + - launch_testing + - moveit_msgs + - nav_msgs + - pluginlib + - rclcpp + - rclcpp_action + - robot_calibration_msgs + - rosbag2_cpp + - sensor_msgs + - std_msgs + - tf2_geometry_msgs + - tf2_ros + - tinyxml2_vendor + - visualization_msgs + repository: https://github.com/mikeferguson/robot_calibration tag: release/rolling/robot_calibration/0.10.1-2 url: https://github.com/ros2-gbp/robot_calibration-release.git version: 0.10.1 robot_calibration_msgs: + dependencies: + - action_msgs + - ament_cmake + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + - std_msgs + repository: https://github.com/mikeferguson/robot_calibration tag: release/rolling/robot_calibration_msgs/0.10.1-2 url: https://github.com/ros2-gbp/robot_calibration-release.git version: 0.10.1 robot_localization: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - angles + - builtin_interfaces + - diagnostic_msgs + - diagnostic_updater + - geographic_msgs + - geometry_msgs + - launch_ros + - launch_testing_ament_cmake + - message_filters + - nav_msgs + - rclcpp + - rclcpp_lifecycle + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + - std_msgs + - std_srvs + - tf2 + - tf2_eigen + - tf2_geometry_msgs + - tf2_ros + - yaml_cpp_vendor + repository: https://github.com/cra-ros-pkg/robot_localization tag: release/rolling/robot_localization/3.10.1-1 url: https://github.com/ros2-gbp/robot_localization-release.git version: 3.10.1 robot_state_publisher: - tag: release/rolling/robot_state_publisher/3.6.1-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - kdl_parser + - launch_ros + - launch_testing_ament_cmake + - launch_testing_ros + - rcl_interfaces + - rclcpp + - rclcpp_components + - sensor_msgs + - std_msgs + - tf2_ros + - tf2_ros_py + - urdf + repository: https://github.com/ros/robot_state_publisher + tag: release/rolling/robot_state_publisher/3.6.2-1 url: https://github.com/ros2-gbp/robot_state_publisher-release.git - version: 3.6.1 + version: 3.6.2 robotiq_controllers: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - controller_interface + - std_srvs + repository: https://github.com/PickNikRobotics/ros2_robotiq_gripper tag: release/rolling/robotiq_controllers/0.0.1-3 url: https://github.com/ros2-gbp/ros2_robotiq_gripper-release.git version: 0.0.1 robotiq_description: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - joint_state_publisher_gui + - launch + - launch_ros + - robot_state_publisher + - rviz2 + - urdf + - xacro + repository: https://github.com/PickNikRobotics/ros2_robotiq_gripper tag: release/rolling/robotiq_description/0.0.1-3 url: https://github.com/ros2-gbp/ros2_robotiq_gripper-release.git version: 0.0.1 robotraconteur: + dependencies: [] + repository: https://github.com/robotraconteur/robotraconteur tag: release/rolling/robotraconteur/1.2.8-1 url: https://github.com/ros2-gbp/robotraconteur-release.git version: 1.2.8 robotraconteur_companion: + dependencies: + - robotraconteur + repository: https://github.com/robotraconteur/robotraconteur_companion tag: release/rolling/robotraconteur_companion/0.4.3-1 url: https://github.com/ros2-gbp/robotraconteur_companion-release.git version: 0.4.3 +robstride_driver: + dependencies: + - ament_cmake + - ament_cmake_gtest + - can_msgs + - diagnostic_msgs + - rclcpp + repository: https://github.com/s2015-turtle/robstride_ros2 + tag: release/rolling/robstride_driver/0.2.0-1 + url: https://github.com/ros2-gbp/robstride_ros2-release.git + version: 0.2.0 +robstride_examples: + dependencies: + - ament_cmake + - ament_cmake_pytest + - ament_index_python + - controller_manager + - forward_command_controller + - joint_state_broadcaster + - launch + - launch_ros + - robot_state_publisher + - robstride_ros2_control + - ros2_socketcan + - xacro + repository: https://github.com/s2015-turtle/robstride_ros2 + tag: release/rolling/robstride_examples/0.2.0-1 + url: https://github.com/ros2-gbp/robstride_ros2-release.git + version: 0.2.0 +robstride_ros2: + dependencies: + - ament_cmake + - robstride_driver + - robstride_examples + - robstride_ros2_control + repository: https://github.com/s2015-turtle/robstride_ros2 + tag: release/rolling/robstride_ros2/0.2.0-1 + url: https://github.com/ros2-gbp/robstride_ros2-release.git + version: 0.2.0 +robstride_ros2_control: + dependencies: + - ament_cmake + - ament_cmake_gtest + - hardware_interface + - pluginlib + - rclcpp + - rclcpp_lifecycle + - robstride_driver + - xacro + repository: https://github.com/s2015-turtle/robstride_ros2 + tag: release/rolling/robstride_ros2_control/0.2.0-1 + url: https://github.com/ros2-gbp/robstride_ros2-release.git + version: 0.2.0 ros2_control: - tag: release/rolling/ros2_control/6.9.0-1 + dependencies: + - ament_cmake + - controller_interface + - controller_manager + - controller_manager_msgs + - hardware_interface + - joint_limits + - ros2_control_test_assets + - ros2controlcli + - transmission_interface + repository: https://github.com/ros-controls/ros2_control + tag: release/rolling/ros2_control/6.12.0-1 url: https://github.com/ros2-gbp/ros2_control-release.git - version: 6.9.0 + version: 6.12.0 ros2_control_cmake: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + repository: https://github.com/ros-controls/ros2_control_cmake tag: release/rolling/ros2_control_cmake/1.0.0-2 url: https://github.com/ros2-gbp/ros2_control_cmake-release.git version: 1.0.0 ros2_control_test_assets: - tag: release/rolling/ros2_control_test_assets/6.9.0-1 + dependencies: + - ament_cmake + - ros2_control_cmake + repository: https://github.com/ros-controls/ros2_control + tag: release/rolling/ros2_control_test_assets/6.12.0-1 url: https://github.com/ros2-gbp/ros2_control-release.git - version: 6.9.0 + version: 6.12.0 ros2_controllers: - tag: release/rolling/ros2_controllers/6.9.0-1 + dependencies: + - ackermann_steering_controller + - admittance_controller + - ament_cmake + - battery_state_broadcaster + - bicycle_steering_controller + - chained_filter_controller + - diff_drive_controller + - force_torque_sensor_broadcaster + - forward_command_controller + - gpio_controllers + - gps_sensor_broadcaster + - imu_sensor_broadcaster + - joint_state_broadcaster + - joint_trajectory_controller + - magnetometer_broadcaster + - mecanum_drive_controller + - motion_primitives_controllers + - omni_wheel_drive_controller + - parallel_gripper_controller + - pid_controller + - pose_broadcaster + - range_sensor_broadcaster + - state_interfaces_broadcaster + - steering_controllers_library + - tricycle_controller + - tricycle_steering_controller + repository: https://github.com/ros-controls/ros2_controllers + tag: release/rolling/ros2_controllers/6.10.0-1 url: https://github.com/ros2-gbp/ros2_controllers-release.git - version: 6.9.0 + version: 6.10.0 ros2_controllers_test_nodes: - tag: release/rolling/ros2_controllers_test_nodes/6.9.0-1 + dependencies: + - launch_ros + - launch_testing_ros + - rclpy + - sensor_msgs + - std_msgs + - trajectory_msgs + repository: https://github.com/ros-controls/ros2_controllers + tag: release/rolling/ros2_controllers_test_nodes/6.10.0-1 url: https://github.com/ros2-gbp/ros2_controllers-release.git - version: 6.9.0 + version: 6.10.0 ros2_fmt_logger: + dependencies: + - ament_cmake_auto + - ament_cmake_gtest + - backward_ros + - rclcpp + - rcutils + repository: https://github.com/nobleo/ros2_fmt_logger tag: release/rolling/ros2_fmt_logger/1.1.0-2 url: https://github.com/ros2-gbp/ros2_fmt_logger-release.git version: 1.1.0 ros2_snapshot: + dependencies: + - ament_index_python + - demo_nodes_py + - rclpy + - ros2cli + - ros2component + - ros2node + - ros2param + - ros2pkg + - ros2service + - std_srvs + repository: https://github.com/cnurobotics/ros2_snapshot tag: release/rolling/ros2_snapshot/0.0.7-2 url: https://github.com/ros2-gbp/ros2_snapshot-release.git version: 0.0.7 ros2_socketcan: - tag: release/rolling/ros2_socketcan/1.3.0-2 + dependencies: + - ament_cmake_auto + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - can_msgs + - lifecycle_msgs + - rclcpp + - rclcpp_components + - rclcpp_lifecycle + - ros2_socketcan_msgs + repository: https://github.com/autowarefoundation/ros2_socketcan + tag: release/rolling/ros2_socketcan/1.4.0-1 url: https://github.com/ros2-gbp/ros2_socketcan-release.git - version: 1.3.0 + version: 1.4.0 ros2_socketcan_msgs: - tag: release/rolling/ros2_socketcan_msgs/1.3.0-2 + dependencies: + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/autowarefoundation/ros2_socketcan + tag: release/rolling/ros2_socketcan_msgs/1.4.0-1 url: https://github.com/ros2-gbp/ros2_socketcan-release.git - version: 1.3.0 + version: 1.4.0 ros2acceleration: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - rclpy + - ros2cli + - rosidl_runtime_py + - test_msgs + repository: https://github.com/ros-acceleration/ros2acceleration tag: release/rolling/ros2acceleration/0.5.1-4 url: https://github.com/ros2-gbp/ros2acceleration-release.git version: 0.5.1 ros2action: - tag: release/rolling/ros2action/0.41.1-1 + dependencies: + - action_msgs + - ament_copyright + - ament_flake8 + - ament_index_python + - ament_pep257 + - ament_xmllint + - launch + - launch_testing + - launch_testing_ros + - rclpy + - ros2cli + - rosidl_runtime_py + - test_msgs + repository: https://github.com/ros2/ros2cli + tag: release/rolling/ros2action/0.42.0-1 url: https://github.com/ros2-gbp/ros2cli-release.git - version: 0.41.1 + version: 0.42.0 ros2bag: - tag: release/rolling/ros2bag/0.34.0-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_index_python + - ament_pep257 + - ament_xmllint + - launch_testing + - launch_testing_ros + - rclpy + - ros2cli + - rosbag2_py + - rosbag2_storage_default_plugins + - rosbag2_test_common + repository: https://github.com/ros2/rosbag2 + tag: release/rolling/ros2bag/0.35.0-1 url: https://github.com/ros2-gbp/rosbag2-release.git - version: 0.34.0 + version: 0.35.0 ros2cli: - tag: release/rolling/ros2cli/0.41.1-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - rclpy + - rmw_test_fixture_implementation + - test_msgs + repository: https://github.com/ros2/ros2cli + tag: release/rolling/ros2cli/0.42.0-1 url: https://github.com/ros2-gbp/ros2cli-release.git - version: 0.41.1 + version: 0.42.0 ros2cli_common_extensions: - tag: release/rolling/ros2cli_common_extensions/0.6.0-1 + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - launch_xml + - launch_yaml + - ros2action + - ros2cli + - ros2component + - ros2doctor + - ros2interface + - ros2launch + - ros2lifecycle + - ros2log + - ros2multicast + - ros2node + - ros2param + - ros2pkg + - ros2plugin + - ros2run + - ros2service + - ros2topic + - sros2 + repository: https://github.com/ros2/ros2cli_common_extensions + tag: release/rolling/ros2cli_common_extensions/0.6.1-1 url: https://github.com/ros2-gbp/ros2cli_common_extensions-release.git - version: 0.6.0 + version: 0.6.1 ros2cli_test_interfaces: - tag: release/rolling/ros2cli_test_interfaces/0.41.1-1 + dependencies: + - ament_cmake + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/ros2/ros2cli + tag: release/rolling/ros2cli_test_interfaces/0.42.0-1 url: https://github.com/ros2-gbp/ros2cli-release.git - version: 0.41.1 + version: 0.42.0 ros2component: - tag: release/rolling/ros2component/0.41.1-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_index_python + - ament_pep257 + - ament_xmllint + - composition_interfaces + - rcl_interfaces + - rclcpp_components + - rclpy + - ros2cli + - ros2node + - ros2param + - ros2pkg + repository: https://github.com/ros2/ros2cli + tag: release/rolling/ros2component/0.42.0-1 url: https://github.com/ros2-gbp/ros2cli-release.git - version: 0.41.1 + version: 0.42.0 ros2controlcli: - tag: release/rolling/ros2controlcli/6.9.0-1 + dependencies: + - control_msgs + - controller_manager + - controller_manager_msgs + - rcl_interfaces + - rclpy + - ros2cli + - ros2node + - ros2param + - rosidl_runtime_py + repository: https://github.com/ros-controls/ros2_control + tag: release/rolling/ros2controlcli/6.12.0-1 url: https://github.com/ros2-gbp/ros2_control-release.git - version: 6.9.0 + version: 6.12.0 ros2doctor: - tag: release/rolling/ros2doctor/0.41.1-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_index_python + - ament_pep257 + - ament_xmllint + - launch + - launch_ros + - launch_testing + - launch_testing_ros + - rclpy + - ros2action + - ros2cli + - ros_environment + - std_msgs + - std_srvs + - test_msgs + repository: https://github.com/ros2/ros2cli + tag: release/rolling/ros2doctor/0.42.0-1 url: https://github.com/ros2-gbp/ros2cli-release.git - version: 0.41.1 + version: 0.42.0 ros2interface: - tag: release/rolling/ros2interface/0.41.1-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_index_python + - ament_pep257 + - ament_xmllint + - launch + - launch_testing + - launch_testing_ros + - ros2cli + - ros2cli_test_interfaces + - rosidl_adapter + - rosidl_runtime_py + - test_msgs + repository: https://github.com/ros2/ros2cli + tag: release/rolling/ros2interface/0.42.0-1 url: https://github.com/ros2-gbp/ros2cli-release.git - version: 0.41.1 + version: 0.42.0 ros2launch: - tag: release/rolling/ros2launch/0.30.1-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_index_python + - ament_pep257 + - ament_xmllint + - launch + - launch_ros + - launch_xml + - launch_yaml + - ros2cli + - ros2pkg + repository: https://github.com/ros2/launch_ros + tag: release/rolling/ros2launch/0.30.2-1 url: https://github.com/ros2-gbp/launch_ros-release.git - version: 0.30.1 + version: 0.30.2 ros2launch_security: - tag: release/rolling/ros2launch_security/1.0.0-5 + dependencies: + - ament_copyright + - ament_flake8 + - ament_index_python + - ament_pep257 + - demo_nodes_py + - launch_ros + - nodl + - ros2launch + - sros2 + repository: https://github.com/osrf/ros2launch_security + tag: release/rolling/ros2launch_security/1.0.2-1 url: https://github.com/ros2-gbp/ros2launch_security-release.git - version: 1.0.0 + version: 1.0.2 ros2launch_security_examples: - tag: release/rolling/ros2launch_security_examples/1.0.0-5 + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - ament_nodl + - example_interfaces + - launch_testing + - launch_testing_ament_cmake + - launch_testing_ros + - nodl + - nodl_to_policy + - rclcpp + - rclcpp_components + - rclpy + - ros2launch_security + - sensor_msgs + - sros2 + repository: https://github.com/osrf/ros2launch_security + tag: release/rolling/ros2launch_security_examples/1.0.2-1 url: https://github.com/ros2-gbp/ros2launch_security-release.git - version: 1.0.0 + version: 1.0.2 ros2lifecycle: - tag: release/rolling/ros2lifecycle/0.41.1-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - launch + - launch_ros + - launch_testing + - launch_testing_ros + - lifecycle_msgs + - rclpy + - ros2cli + - ros2lifecycle_test_fixtures + - ros2node + - ros2service + repository: https://github.com/ros2/ros2cli + tag: release/rolling/ros2lifecycle/0.42.0-1 url: https://github.com/ros2-gbp/ros2cli-release.git - version: 0.41.1 + version: 0.42.0 ros2lifecycle_test_fixtures: - tag: release/rolling/ros2lifecycle_test_fixtures/0.41.1-1 + dependencies: + - ament_cmake + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - rclcpp + - rclcpp_lifecycle + repository: https://github.com/ros2/ros2cli + tag: release/rolling/ros2lifecycle_test_fixtures/0.42.0-1 + url: https://github.com/ros2-gbp/ros2cli-release.git + version: 0.42.0 +ros2log: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - launch + - launch_ros + - launch_testing + - launch_testing_ros + - rcl_interfaces + - rclpy + - ros2cli + - ros2node + - rosgraph_msgs + - test_msgs + repository: https://github.com/ros2/ros2cli + tag: release/rolling/ros2log/0.42.0-1 url: https://github.com/ros2-gbp/ros2cli-release.git - version: 0.41.1 + version: 0.42.0 ros2multicast: - tag: release/rolling/ros2multicast/0.41.1-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - ros2cli + repository: https://github.com/ros2/ros2cli + tag: release/rolling/ros2multicast/0.42.0-1 url: https://github.com/ros2-gbp/ros2cli-release.git - version: 0.41.1 + version: 0.42.0 ros2node: - tag: release/rolling/ros2node/0.41.1-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - launch + - launch_ros + - launch_testing + - launch_testing_ros + - rclpy + - ros2cli + - test_msgs + repository: https://github.com/ros2/ros2cli + tag: release/rolling/ros2node/0.42.0-1 url: https://github.com/ros2-gbp/ros2cli-release.git - version: 0.41.1 + version: 0.42.0 ros2nodl: - tag: release/rolling/ros2nodl/0.3.1-5 + dependencies: + - ament_index_python + - builtin_interfaces + - nodl_conformance + - nodl_observe + - nodl_schema + - rcl_interfaces + - rclpy + - ros2cli + - rosgraph_msgs + - rosidl_runtime_py + - std_msgs + repository: https://github.com/ros-tooling/nodl + tag: release/rolling/ros2nodl/2.0.3-1 url: https://github.com/ros2-gbp/nodl-release.git - version: 0.3.1 + version: 2.0.3 ros2param: - tag: release/rolling/ros2param/0.41.1-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - launch + - launch_ros + - launch_testing + - launch_testing_ros + - rcl_interfaces + - rclpy + - ros2cli + - ros2node + - ros2service + repository: https://github.com/ros2/ros2cli + tag: release/rolling/ros2param/0.42.0-1 url: https://github.com/ros2-gbp/ros2cli-release.git - version: 0.41.1 + version: 0.42.0 ros2pkg: - tag: release/rolling/ros2pkg/0.41.1-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_index_python + - ament_pep257 + - ament_xmllint + - launch + - launch_testing + - launch_testing_ros + - ros2cli + repository: https://github.com/ros2/ros2cli + tag: release/rolling/ros2pkg/0.42.0-1 url: https://github.com/ros2-gbp/ros2cli-release.git - version: 0.41.1 + version: 0.42.0 ros2plugin: - tag: release/rolling/ros2plugin/6.0.1-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_index_python + - ament_pep257 + - ament_xmllint + - rclpy + - ros2cli + - ros2pkg + repository: https://github.com/ros/pluginlib + tag: release/rolling/ros2plugin/6.0.2-1 url: https://github.com/ros2-gbp/pluginlib-release.git - version: 6.0.1 + version: 6.0.2 ros2run: - tag: release/rolling/ros2run/0.41.1-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - ros2cli + - ros2pkg + repository: https://github.com/ros2/ros2cli + tag: release/rolling/ros2run/0.42.0-1 url: https://github.com/ros2-gbp/ros2cli-release.git - version: 0.41.1 + version: 0.42.0 ros2service: - tag: release/rolling/ros2service/0.41.1-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - launch + - launch_ros + - launch_testing + - launch_testing_ros + - rclpy + - ros2cli + - rosidl_runtime_py + - test_msgs + repository: https://github.com/ros2/ros2cli + tag: release/rolling/ros2service/0.42.0-1 url: https://github.com/ros2-gbp/ros2cli-release.git - version: 0.41.1 + version: 0.42.0 ros2test: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - domain_coordinator + - launch + - launch_ros + - launch_testing + - launch_testing_ros + - ros2cli + repository: https://github.com/ros2/ros_testing tag: release/rolling/ros2test/0.10.0-1 url: https://github.com/ros2-gbp/ros_testing-release.git version: 0.10.0 ros2topic: - tag: release/rolling/ros2topic/0.41.1-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - geometry_msgs + - launch + - launch_ros + - launch_testing + - launch_testing_ros + - rclpy + - ros2cli + - rosgraph_msgs + - rosidl_runtime_py + - std_msgs + - test_msgs + repository: https://github.com/ros2/ros2cli + tag: release/rolling/ros2topic/0.42.0-1 url: https://github.com/ros2-gbp/ros2cli-release.git - version: 0.41.1 + version: 0.42.0 ros2trace: + dependencies: + - ament_copyright + - ament_flake8 + - ament_mypy + - ament_pep257 + - ament_xmllint + - ros2cli + - tracetools_trace + repository: https://github.com/ros2/ros2_tracing tag: release/rolling/ros2trace/9.0.0-1 url: https://github.com/ros2-gbp/ros2_tracing-release.git version: 9.0.0 ros2trace_analysis: + dependencies: + - ament_copyright + - ament_flake8 + - ament_mypy + - ament_pep257 + - ament_xmllint + - ros2cli + - tracetools_analysis + repository: https://github.com/ros-tracing/tracetools_analysis tag: release/rolling/ros2trace_analysis/3.1.0-2 url: https://github.com/ros2-gbp/tracetools_analysis-release.git version: 3.1.0 ros_babel_fish: - tag: release/rolling/ros_babel_fish/4.26.43-2 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_index_cpp + - example_interfaces + - geometry_msgs + - rclcpp + - rclcpp_action + - rcpputils + - ros_babel_fish_test_msgs + - rosidl_runtime_cpp + - rosidl_typesupport_cpp + - rosidl_typesupport_introspection_cpp + - std_msgs + repository: https://github.com/LOEWE-emergenCITY/ros2_babel_fish + tag: release/rolling/ros_babel_fish/5.26.90-1 url: https://github.com/ros2-gbp/ros_babel_fish-release.git - version: 4.26.43 + version: 5.26.90 ros_babel_fish_test_msgs: - tag: release/rolling/ros_babel_fish_test_msgs/4.26.43-2 + dependencies: + - ament_cmake + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/LOEWE-emergenCITY/ros2_babel_fish + tag: release/rolling/ros_babel_fish_test_msgs/5.26.90-1 url: https://github.com/ros2-gbp/ros_babel_fish-release.git - version: 4.26.43 + version: 5.26.90 ros_babel_fish_tools: - tag: release/rolling/ros_babel_fish_tools/4.26.43-2 + dependencies: + - ament_cmake + - ament_cmake_gtest + - example_interfaces + - geometry_msgs + - rclcpp + - ros_babel_fish + - ros_babel_fish_test_msgs + - std_msgs + - yaml_cpp_vendor + repository: https://github.com/LOEWE-emergenCITY/ros2_babel_fish + tag: release/rolling/ros_babel_fish_tools/5.26.90-1 url: https://github.com/ros2-gbp/ros_babel_fish-release.git - version: 4.26.43 + version: 5.26.90 ros_base: + dependencies: + - ament_cmake + - geometry2 + - kdl_parser + - robot_state_publisher + - ros_core + - rosbag2 + - urdf + repository: https://github.com/ros2/variants tag: release/rolling/ros_base/0.13.0-2 url: https://github.com/ros2-gbp/variants-release.git version: 0.13.0 ros_core: + dependencies: + - ament_cmake + - ament_cmake_auto + - ament_cmake_gmock + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_ros + - ament_index_cpp + - ament_index_python + - ament_lint_auto + - ament_lint_common + - class_loader + - common_interfaces + - launch + - launch_ros + - launch_testing + - launch_testing_ament_cmake + - launch_testing_ros + - launch_xml + - launch_yaml + - pluginlib + - rcl_lifecycle + - rclcpp + - rclcpp_action + - rclcpp_lifecycle + - rclpy + - ros2cli_common_extensions + - ros2launch + - ros_environment + - rosidl_default_generators + - rosidl_default_runtime + - sros2 + - sros2_cmake + repository: https://github.com/ros2/variants tag: release/rolling/ros_core/0.13.0-2 url: https://github.com/ros2-gbp/variants-release.git version: 0.13.0 ros_environment: + dependencies: + - ament_cmake_core + repository: https://github.com/ros/ros_environment tag: release/rolling/ros_environment/5.0.0-1 url: https://github.com/ros2-gbp/ros_environment-release.git version: 5.0.0 ros_gz: - tag: release/rolling/ros_gz/4.0.0-1 + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - ros_gz_bridge + - ros_gz_image + - ros_gz_interfaces + - ros_gz_sim + - ros_gz_sim_demos + repository: https://github.com/gazebosim/ros_gz + tag: release/rolling/ros_gz/4.0.2-1 url: https://github.com/ros2-gbp/ros_ign-release.git - version: 4.0.0 + version: 4.0.2 ros_gz_bridge: - tag: release/rolling/ros_gz_bridge/4.0.0-1 + dependencies: + - actuator_msgs + - ament_cmake + - ament_cmake_gtest + - ament_cmake_python + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - gps_msgs + - gz_msgs_vendor + - gz_transport_vendor + - launch + - launch_ros + - launch_testing + - launch_testing_ament_cmake + - marine_acoustic_msgs + - nav_msgs + - rcl_interfaces + - rclcpp + - rclcpp_components + - ros_gz_interfaces + - rosgraph_msgs + - rosidl_pycommon + - sensor_msgs + - std_msgs + - tf2_msgs + - trajectory_msgs + - vision_msgs + - yaml_cpp_vendor + repository: https://github.com/gazebosim/ros_gz + tag: release/rolling/ros_gz_bridge/4.0.2-1 url: https://github.com/ros2-gbp/ros_ign-release.git - version: 4.0.0 + version: 4.0.2 ros_gz_image: - tag: release/rolling/ros_gz_image/4.0.0-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - gz_msgs_vendor + - gz_transport_vendor + - image_transport + - rclcpp + - ros_gz_bridge + - sensor_msgs + repository: https://github.com/gazebosim/ros_gz + tag: release/rolling/ros_gz_image/4.0.2-1 url: https://github.com/ros2-gbp/ros_ign-release.git - version: 4.0.0 + version: 4.0.2 ros_gz_interfaces: - tag: release/rolling/ros_gz_interfaces/4.0.0-1 + dependencies: + - ament_cmake + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - rcl_interfaces + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/gazebosim/ros_gz + tag: release/rolling/ros_gz_interfaces/4.0.2-1 url: https://github.com/ros2-gbp/ros_ign-release.git - version: 4.0.0 + version: 4.0.2 ros_gz_sim: - tag: release/rolling/ros_gz_sim/4.0.0-1 + dependencies: + - ament_cmake + - ament_cmake_python + - ament_index_python + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - gz_math_vendor + - gz_msgs_vendor + - gz_sim_vendor + - gz_transport_vendor + - launch + - launch_ros + - launch_testing + - launch_testing_ament_cmake + - rclcpp + - rclcpp_action + - rclcpp_components + - rclpy + - rcpputils + - ros2pkg + - ros_gz_bridge + - ros_gz_interfaces + - simulation_interfaces + - std_msgs + - tf2 + - tf2_ros + repository: https://github.com/gazebosim/ros_gz + tag: release/rolling/ros_gz_sim/4.0.2-1 url: https://github.com/ros2-gbp/ros_ign-release.git - version: 4.0.0 + version: 4.0.2 ros_gz_sim_demos: - tag: release/rolling/ros_gz_sim_demos/4.0.0-1 + dependencies: + - ament_cmake + - ament_index_python + - ament_lint_auto + - ament_lint_common + - gz_sim_vendor + - image_transport_plugins + - launch + - launch_ros + - marine_acoustic_msgs + - robot_state_publisher + - ros_gz_bridge + - ros_gz_image + - ros_gz_sim + - rqt_image_view + - rqt_plot + - rqt_topic + - rviz2 + - rviz_imu_plugin + - sdformat_urdf + - tf2_ros + - xacro + repository: https://github.com/gazebosim/ros_gz + tag: release/rolling/ros_gz_sim_demos/4.0.2-1 url: https://github.com/ros2-gbp/ros_ign-release.git - version: 4.0.0 + version: 4.0.2 ros_industrial_cmake_boilerplate: + dependencies: [] + repository: https://github.com/ros-industrial/ros_industrial_cmake_boilerplate tag: release/rolling/ros_industrial_cmake_boilerplate/0.7.5-1 url: https://github.com/ros2-gbp/ros_industrial_cmake_boilerplate-release.git version: 0.7.5 ros_snapd_interfaces: + dependencies: + - ament_cmake + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/canonical/ros_snapd_interfaces tag: release/rolling/ros_snapd_interfaces/0.0.1-1 url: https://github.com/ros2-gbp/ros_snapd_interfaces-release.git version: 0.0.1 ros_testing: + dependencies: + - ament_cmake + - ament_cmake_core + - ament_cmake_export_dependencies + - launch_testing + - launch_testing_ament_cmake + - launch_testing_ros + - ros2test + repository: https://github.com/ros2/ros_testing tag: release/rolling/ros_testing/0.10.0-1 url: https://github.com/ros2-gbp/ros_testing-release.git version: 0.10.0 ros_workspace: + dependencies: + - ament_cmake_core + - ament_package + repository: https://github.com/ros2/ros_workspace tag: release/rolling/ros_workspace/1.0.3-8 url: https://github.com/ros2-gbp/ros_workspace-release.git version: 1.0.3 rosapi: + dependencies: + - ament_cmake + - ament_cmake_mypy + - ament_cmake_pytest + - ament_cmake_python + - builtin_interfaces + - geometry_msgs + - rcl_interfaces + - rclpy + - rmw_dds_common + - ros2action + - ros2interface + - ros2node + - ros2service + - ros2topic + - rosapi_msgs + - rosbridge_library + - rosidl_adapter + - rosidl_runtime_py + - sensor_msgs + - shape_msgs + repository: https://github.com/RobotWebTools/rosbridge_suite tag: release/rolling/rosapi/4.2.1-1 url: https://github.com/ros2-gbp/rosbridge_suite-release.git version: 4.2.1 rosapi_msgs: + dependencies: + - ament_cmake + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/RobotWebTools/rosbridge_suite tag: release/rolling/rosapi_msgs/4.2.1-1 url: https://github.com/ros2-gbp/rosbridge_suite-release.git version: 4.2.1 rosbag2: - tag: release/rolling/rosbag2/0.34.0-1 + dependencies: + - ament_cmake + - ros2bag + - rosbag2_compression + - rosbag2_compression_zstd + - rosbag2_cpp + - rosbag2_py + - rosbag2_storage + - rosbag2_storage_default_plugins + - rosbag2_test_common + - rosbag2_tests + - rosbag2_transport + repository: https://github.com/ros2/rosbag2 + tag: release/rolling/rosbag2/0.35.0-1 url: https://github.com/ros2-gbp/rosbag2-release.git - version: 0.34.0 + version: 0.35.0 rosbag2_compression: - tag: release/rolling/rosbag2_compression/0.34.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - rclcpp + - rcpputils + - rcutils + - rosbag2_cpp + - rosbag2_storage + - rosbag2_test_common + - test_msgs + repository: https://github.com/ros2/rosbag2 + tag: release/rolling/rosbag2_compression/0.35.0-1 url: https://github.com/ros2-gbp/rosbag2-release.git - version: 0.34.0 + version: 0.35.0 rosbag2_compression_zstd: - tag: release/rolling/rosbag2_compression_zstd/0.34.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - pluginlib + - rclcpp + - rcutils + - rosbag2_compression + - rosbag2_test_common + - zstd_cmake_module + repository: https://github.com/ros2/rosbag2 + tag: release/rolling/rosbag2_compression_zstd/0.35.0-1 url: https://github.com/ros2-gbp/rosbag2-release.git - version: 0.34.0 + version: 0.35.0 rosbag2_cpp: - tag: release/rolling/rosbag2_cpp/0.34.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - ament_cmake_ros_core + - ament_index_cpp + - ament_lint_auto + - ament_lint_common + - pluginlib + - rclcpp + - rcpputils + - rcutils + - rmw + - rmw_implementation + - rmw_implementation_cmake + - rosbag2_storage + - rosbag2_storage_default_plugins + - rosbag2_test_common + - rosbag2_test_msgdefs + - rosidl_runtime_c + - rosidl_runtime_cpp + - rosidl_typesupport_cpp + - rosidl_typesupport_introspection_cpp + - std_msgs + - test_msgs + repository: https://github.com/ros2/rosbag2 + tag: release/rolling/rosbag2_cpp/0.35.0-1 url: https://github.com/ros2-gbp/rosbag2-release.git - version: 0.34.0 + version: 0.35.0 rosbag2_examples_cpp: - tag: release/rolling/rosbag2_examples_cpp/0.34.0-1 + dependencies: + - ament_cmake + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - example_interfaces + - rclcpp + - rosbag2_compression + - rosbag2_cpp + - rosbag2_transport + repository: https://github.com/ros2/rosbag2 + tag: release/rolling/rosbag2_examples_cpp/0.35.0-1 url: https://github.com/ros2-gbp/rosbag2-release.git - version: 0.34.0 + version: 0.35.0 rosbag2_examples_py: - tag: release/rolling/rosbag2_examples_py/0.34.0-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - example_interfaces + - rclpy + - rosbag2_compression + - rosbag2_py + - rosidl_runtime_py + - std_msgs + repository: https://github.com/ros2/rosbag2 + tag: release/rolling/rosbag2_examples_py/0.35.0-1 url: https://github.com/ros2-gbp/rosbag2-release.git - version: 0.34.0 + version: 0.35.0 rosbag2_interfaces: - tag: release/rolling/rosbag2_interfaces/0.34.0-1 + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/ros2/rosbag2 + tag: release/rolling/rosbag2_interfaces/0.35.0-1 url: https://github.com/ros2-gbp/rosbag2-release.git - version: 0.34.0 + version: 0.35.0 rosbag2_performance_benchmarking: - tag: release/rolling/rosbag2_performance_benchmarking/0.34.0-1 + dependencies: + - ament_cmake + - ament_cmake_ros_core + - ament_index_python + - ament_lint_auto + - ament_lint_common + - launch + - launch_ros + - rclcpp + - rmw + - ros2bag + - ros2launch + - ros_testing + - rosbag2_compression + - rosbag2_cpp + - rosbag2_performance_benchmarking_msgs + - rosbag2_py + - rosbag2_storage + - rosbag2_storage_default_plugins + - rosbag2_test_common + - sensor_msgs + repository: https://github.com/ros2/rosbag2 + tag: release/rolling/rosbag2_performance_benchmarking/0.35.0-1 url: https://github.com/ros2-gbp/rosbag2-release.git - version: 0.34.0 + version: 0.35.0 rosbag2_performance_benchmarking_msgs: - tag: release/rolling/rosbag2_performance_benchmarking_msgs/0.34.0-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - rosidl_cmake + - rosidl_default_generators + - rosidl_default_runtime + - rosidl_typesupport_cpp + repository: https://github.com/ros2/rosbag2 + tag: release/rolling/rosbag2_performance_benchmarking_msgs/0.35.0-1 url: https://github.com/ros2-gbp/rosbag2-release.git - version: 0.34.0 + version: 0.35.0 rosbag2_py: - tag: release/rolling/rosbag2_py/0.34.0-1 + dependencies: + - ament_cmake_python + - ament_cmake_ros + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - rcl_interfaces + - rclpy + - rosbag2_compression + - rosbag2_compression_zstd + - rosbag2_cpp + - rosbag2_storage + - rosbag2_storage_default_plugins + - rosbag2_test_common + - rosbag2_test_msgdefs + - rosbag2_transport + - rosidl_runtime_py + - rpyutils + - std_msgs + repository: https://github.com/ros2/rosbag2 + tag: release/rolling/rosbag2_py/0.35.0-1 url: https://github.com/ros2-gbp/rosbag2-release.git - version: 0.34.0 + version: 0.35.0 rosbag2_storage: - tag: release/rolling/rosbag2_storage/0.34.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - ament_cmake_gtest + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - pluginlib + - rclcpp + - rcutils + - rmw + - rosbag2_test_common + - yaml_cpp_vendor + repository: https://github.com/ros2/rosbag2 + tag: release/rolling/rosbag2_storage/0.35.0-1 url: https://github.com/ros2-gbp/rosbag2-release.git - version: 0.34.0 + version: 0.35.0 rosbag2_storage_broll: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - broll + - pluginlib + - rclcpp + - rosbag2_cpp + - rosbag2_storage + - rosbag2_transport + - sensor_msgs + repository: https://github.com/ros-tooling/rosbag2_broll tag: release/rolling/rosbag2_storage_broll/0.1.0-2 url: https://github.com/ros2-gbp/rosbag2_broll-release.git version: 0.1.0 rosbag2_storage_default_plugins: - tag: release/rolling/rosbag2_storage_default_plugins/0.34.0-1 + dependencies: + - ament_cmake + - rosbag2_storage_mcap + - rosbag2_storage_sqlite3 + repository: https://github.com/ros2/rosbag2 + tag: release/rolling/rosbag2_storage_default_plugins/0.35.0-1 url: https://github.com/ros2-gbp/rosbag2-release.git - version: 0.34.0 + version: 0.35.0 rosbag2_storage_mcap: - tag: release/rolling/rosbag2_storage_mcap/0.34.0-1 + dependencies: + - ament_cmake + - ament_cmake_clang_format + - ament_cmake_gmock + - ament_cmake_python + - ament_cmake_ros_core + - ament_index_cpp + - ament_lint_auto + - ament_lint_common + - mcap_vendor + - pluginlib + - rcutils + - rosbag2_storage + - rosbag2_test_common + - std_msgs + repository: https://github.com/ros2/rosbag2 + tag: release/rolling/rosbag2_storage_mcap/0.35.0-1 url: https://github.com/ros2-gbp/rosbag2-release.git - version: 0.34.0 + version: 0.35.0 rosbag2_storage_sqlite3: - tag: release/rolling/rosbag2_storage_sqlite3/0.34.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - ament_cmake_python + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - pluginlib + - rcpputils + - rcutils + - rosbag2_storage + - rosbag2_test_common + - std_msgs + repository: https://github.com/ros2/rosbag2 + tag: release/rolling/rosbag2_storage_sqlite3/0.35.0-1 url: https://github.com/ros2-gbp/rosbag2-release.git - version: 0.34.0 + version: 0.35.0 rosbag2_test_common: - tag: release/rolling/rosbag2_test_common/0.34.0-1 + dependencies: + - ament_cmake + - ament_cmake_python + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - rclcpp + - rclcpp_action + - rcpputils + - rcutils + - test_msgs + repository: https://github.com/ros2/rosbag2 + tag: release/rolling/rosbag2_test_common/0.35.0-1 url: https://github.com/ros2-gbp/rosbag2-release.git - version: 0.34.0 + version: 0.35.0 rosbag2_test_msgdefs: - tag: release/rolling/rosbag2_test_msgdefs/0.34.0-1 + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + repository: https://github.com/ros2/rosbag2 + tag: release/rolling/rosbag2_test_msgdefs/0.35.0-1 url: https://github.com/ros2-gbp/rosbag2-release.git - version: 0.34.0 + version: 0.35.0 rosbag2_tests: - tag: release/rolling/rosbag2_tests/0.34.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - ament_cmake_ros + - ament_cmake_ros_core + - ament_index_cpp + - ament_lint_auto + - ament_lint_common + - rclcpp + - rcpputils + - ros2bag + - rosbag2_compression + - rosbag2_compression_zstd + - rosbag2_cpp + - rosbag2_interfaces + - rosbag2_storage + - rosbag2_storage_default_plugins + - rosbag2_test_common + - rosbag2_transport + - std_msgs + - test_msgs + repository: https://github.com/ros2/rosbag2 + tag: release/rolling/rosbag2_tests/0.35.0-1 url: https://github.com/ros2-gbp/rosbag2-release.git - version: 0.34.0 + version: 0.35.0 rosbag2_to_video: + dependencies: + - ament_copyright + - ament_flake8 + - ament_mypy + - ament_pep257 + - cv_bridge + - rclpy + - ros2bag + - rosbag2_py + - rosidl_runtime_py + repository: https://github.com/fictionlab/rosbag2_to_video tag: release/rolling/rosbag2_to_video/1.0.1-2 url: https://github.com/ros2-gbp/rosbag2_to_video-release.git version: 1.0.1 rosbag2_transport: - tag: release/rolling/rosbag2_transport/0.34.0-1 + dependencies: + - ament_cmake_gmock + - ament_cmake_ros + - ament_cmake_ros_core + - ament_index_cpp + - ament_lint_auto + - ament_lint_common + - composition_interfaces + - keyboard_handler + - rclcpp + - rclcpp_action + - rclcpp_components + - rcpputils + - rcutils + - rmw + - rmw_implementation_cmake + - rosbag2_compression + - rosbag2_compression_zstd + - rosbag2_cpp + - rosbag2_interfaces + - rosbag2_storage + - rosbag2_storage_default_plugins + - rosbag2_test_common + - test_msgs + repository: https://github.com/ros2/rosbag2 + tag: release/rolling/rosbag2_transport/0.35.0-1 url: https://github.com/ros2-gbp/rosbag2-release.git - version: 0.34.0 + version: 0.35.0 rosbag2rawlog: - tag: release/rolling/rosbag2rawlog/3.5.3-1 + dependencies: + - ament_cmake + - ament_cmake_lint_cmake + - ament_cmake_xmllint + - ament_lint_auto + - cv_bridge + - mrpt_containers + - mrpt_libros_bridge + - mrpt_maps + - mrpt_msgs + - nav_msgs + - rosbag2_cpp + - sensor_msgs + - tf2_geometry_msgs + - tf2_msgs + - tf2_ros + repository: https://github.com/MRPT/mrpt_ros_bridge + tag: release/rolling/rosbag2rawlog/4.0.0-1 url: https://github.com/ros2-gbp/mrpt_ros_bridge-release.git - version: 3.5.3 + version: 4.0.0 rosbag_timing_inspector: + dependencies: + - ament_cmake + - rosbag2_cpp + - rosbag2_storage + repository: https://github.com/MOLAorg/rosbag_timing_inspector tag: release/rolling/rosbag_timing_inspector/1.0.2-1 url: https://github.com/ros2-gbp/rosbag_timing_inspector-release.git version: 1.0.2 rosbridge_library: + dependencies: + - action_msgs + - ament_cmake_mypy + - ament_cmake_python + - ament_cmake_ros + - builtin_interfaces + - control_msgs + - diagnostic_msgs + - example_interfaces + - geometry_msgs + - nav_msgs + - rcl_interfaces + - rclpy + - rosbridge_test_msgs + - rosidl_pycommon + - sensor_msgs + - std_msgs + - std_srvs + - stereo_msgs + - tf2_msgs + - trajectory_msgs + - visualization_msgs + repository: https://github.com/RobotWebTools/rosbridge_suite tag: release/rolling/rosbridge_library/4.2.1-1 url: https://github.com/ros2-gbp/rosbridge_suite-release.git version: 4.2.1 rosbridge_msgs: + dependencies: + - ament_cmake + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/RobotWebTools/rosbridge_suite tag: release/rolling/rosbridge_msgs/4.2.1-1 url: https://github.com/ros2-gbp/rosbridge_suite-release.git version: 4.2.1 rosbridge_server: + dependencies: + - action_msgs + - ament_cmake_mypy + - ament_cmake_python + - ament_cmake_ros + - example_interfaces + - launch + - launch_ros + - launch_testing_ament_cmake + - rcl_interfaces + - rclpy + - rosapi + - rosbridge_library + - rosbridge_msgs + - std_msgs + - std_srvs + repository: https://github.com/RobotWebTools/rosbridge_suite tag: release/rolling/rosbridge_server/4.2.1-1 url: https://github.com/ros2-gbp/rosbridge_suite-release.git version: 4.2.1 rosbridge_suite: + dependencies: + - ament_cmake + - rosapi + - rosbridge_library + - rosbridge_server + repository: https://github.com/RobotWebTools/rosbridge_suite tag: release/rolling/rosbridge_suite/4.2.1-1 url: https://github.com/ros2-gbp/rosbridge_suite-release.git version: 4.2.1 rosbridge_test_msgs: + dependencies: + - action_msgs + - ament_cmake + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/RobotWebTools/rosbridge_suite tag: release/rolling/rosbridge_test_msgs/4.2.1-1 url: https://github.com/ros2-gbp/rosbridge_suite-release.git version: 4.2.1 rosgraph_monitor: + dependencies: + - ament_cmake + - ament_cmake_gmock + - ament_lint_auto + - ament_lint_common + - diagnostic_aggregator + - diagnostic_msgs + - diagnostic_updater + - generate_parameter_library + - launch_ros + - launch_testing_ament_cmake + - rclcpp + - rclcpp_components + - rmw_implementation + - rmw_stats_shim + - rosgraph_monitor_msgs + repository: https://github.com/ros-tooling/graph-monitor tag: release/rolling/rosgraph_monitor/0.2.3-2 url: https://github.com/ros2-gbp/graph_monitor-release.git version: 0.2.3 rosgraph_monitor_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - rcl_interfaces + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/ros-tooling/graph-monitor tag: release/rolling/rosgraph_monitor_msgs/0.2.3-2 url: https://github.com/ros2-gbp/graph_monitor-release.git version: 0.2.3 rosgraph_msgs: + dependencies: + - ament_cmake + - ament_lint_common + - builtin_interfaces + - rcl_interfaces + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/ros2/rcl_interfaces tag: release/rolling/rosgraph_msgs/2.5.1-1 url: https://github.com/ros2-gbp/rcl_interfaces-release.git version: 2.5.1 rosidl_adapter: + dependencies: + - ament_cmake + - ament_cmake_core + - ament_cmake_mypy + - ament_cmake_pytest + - ament_lint_auto + - ament_lint_common + - rosidl_cli + repository: https://github.com/ros2/rosidl tag: release/rolling/rosidl_adapter/5.3.1-2 url: https://github.com/ros2-gbp/rosidl-release.git version: 5.3.1 rosidl_buffer: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + repository: https://github.com/ros2/rosidl tag: release/rolling/rosidl_buffer/5.3.1-2 url: https://github.com/ros2-gbp/rosidl-release.git version: 5.3.1 rosidl_buffer_backend: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rmw + repository: https://github.com/ros2/rosidl tag: release/rolling/rosidl_buffer_backend/5.3.1-2 url: https://github.com/ros2-gbp/rosidl-release.git version: 5.3.1 rosidl_buffer_backend_registry: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - pluginlib + - rmw + - rosidl_buffer + - rosidl_buffer_backend + - rosidl_runtime_cpp + repository: https://github.com/ros2/rosidl tag: release/rolling/rosidl_buffer_backend_registry/5.3.1-2 url: https://github.com/ros2-gbp/rosidl-release.git version: 5.3.1 rosidl_buffer_py: + dependencies: + - ament_cmake + - ament_cmake_python + - ament_lint_auto + - ament_lint_common + - rosidl_buffer + repository: https://github.com/ros2/rosidl tag: release/rolling/rosidl_buffer_py/5.3.1-2 url: https://github.com/ros2-gbp/rosidl-release.git version: 5.3.1 rosidl_cli: + dependencies: + - ament_copyright + - ament_flake8 + - ament_mypy + - ament_pep257 + - ament_xmllint + repository: https://github.com/ros2/rosidl tag: release/rolling/rosidl_cli/5.3.1-2 url: https://github.com/ros2-gbp/rosidl-release.git version: 5.3.1 rosidl_cmake: + dependencies: + - ament_cmake + - ament_cmake_python + - ament_lint_auto + - ament_lint_common + - rosidl_pycommon + repository: https://github.com/ros2/rosidl tag: release/rolling/rosidl_cmake/5.3.1-2 url: https://github.com/ros2-gbp/rosidl-release.git version: 5.3.1 rosidl_core_generators: + dependencies: + - ament_cmake + - ament_cmake_core + - ament_lint_auto + - ament_lint_common + - rosidl_cmake + - rosidl_generator_c + - rosidl_generator_cpp + - rosidl_generator_py + - rosidl_generator_rs + - rosidl_typesupport_c + - rosidl_typesupport_cpp + - rosidl_typesupport_fastrtps_c + - rosidl_typesupport_fastrtps_cpp + - rosidl_typesupport_introspection_c + - rosidl_typesupport_introspection_cpp + repository: https://github.com/ros2/rosidl_core tag: release/rolling/rosidl_core_generators/0.5.0-1 url: https://github.com/ros2-gbp/rosidl_core-release.git version: 0.5.0 rosidl_core_runtime: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_buffer_py + - rosidl_generator_py + - rosidl_runtime_c + - rosidl_runtime_cpp + - rosidl_typesupport_c + - rosidl_typesupport_cpp + - rosidl_typesupport_fastrtps_c + - rosidl_typesupport_fastrtps_cpp + - rosidl_typesupport_introspection_c + - rosidl_typesupport_introspection_cpp + repository: https://github.com/ros2/rosidl_core tag: release/rolling/rosidl_core_runtime/0.5.0-1 url: https://github.com/ros2-gbp/rosidl_core-release.git version: 0.5.0 rosidl_default_generators: + dependencies: + - action_msgs + - ament_cmake + - ament_cmake_core + - ament_lint_auto + - ament_lint_common + - rosidl_core_generators + - service_msgs + repository: https://github.com/ros2/rosidl_defaults tag: release/rolling/rosidl_default_generators/1.9.0-1 url: https://github.com/ros2-gbp/rosidl_defaults-release.git version: 1.9.0 rosidl_default_runtime: + dependencies: + - action_msgs + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_core_runtime + - service_msgs + repository: https://github.com/ros2/rosidl_defaults tag: release/rolling/rosidl_default_runtime/1.9.0-1 url: https://github.com/ros2-gbp/rosidl_defaults-release.git version: 1.9.0 rosidl_dynamic_typesupport: + dependencies: + - ament_cmake + - ament_cmake_ros_core + - rcutils + - rosidl_runtime_c + repository: https://github.com/ros2/rosidl_dynamic_typesupport tag: release/rolling/rosidl_dynamic_typesupport/0.5.0-1 url: https://github.com/ros2-gbp/rosidl_dynamic_typesupport-release.git version: 0.5.0 rosidl_dynamic_typesupport_fastrtps: + dependencies: + - ament_cmake_ros_core + - fastcdr + - fastdds + - rcpputils + - rcutils + - rosidl_dynamic_typesupport + repository: https://github.com/ros2/rosidl_dynamic_typesupport_fastrtps tag: release/rolling/rosidl_dynamic_typesupport_fastrtps/0.6.0-1 url: https://github.com/ros2-gbp/rosidl_dynamic_typesupport_fastrtps-release.git version: 0.6.0 rosidl_generator_c: + dependencies: + - ament_cmake + - ament_cmake_core + - ament_cmake_python + - ament_cmake_ros_core + - ament_index_python + - ament_lint_auto + - ament_lint_common + - rcutils + - rosidl_cli + - rosidl_cmake + - rosidl_generator_type_description + - rosidl_parser + - rosidl_pycommon + - rosidl_typesupport_interface + repository: https://github.com/ros2/rosidl tag: release/rolling/rosidl_generator_c/5.3.1-2 url: https://github.com/ros2-gbp/rosidl-release.git version: 5.3.1 rosidl_generator_cpp: + dependencies: + - ament_cmake + - ament_cmake_core + - ament_index_python + - ament_lint_auto + - ament_lint_common + - rosidl_cli + - rosidl_cmake + - rosidl_generator_c + - rosidl_generator_type_description + - rosidl_parser + - rosidl_pycommon + - rosidl_runtime_cpp + repository: https://github.com/ros2/rosidl tag: release/rolling/rosidl_generator_cpp/5.3.1-2 url: https://github.com/ros2-gbp/rosidl-release.git version: 5.3.1 rosidl_generator_dds_idl: + dependencies: + - ament_cmake + - ament_cmake_pytest + - ament_index_python + - ament_lint_auto + - ament_lint_common + - rosidl_cli + - rosidl_pycommon + repository: https://github.com/ros2/rosidl_dds tag: release/rolling/rosidl_generator_dds_idl/0.14.0-1 url: https://github.com/ros2-gbp/rosidl_dds-release.git version: 0.14.0 rosidl_generator_py: + dependencies: + - ament_cmake + - ament_cmake_cppcheck + - ament_cmake_cpplint + - ament_cmake_flake8 + - ament_cmake_mypy + - ament_cmake_pep257 + - ament_cmake_pytest + - ament_cmake_uncrustify + - ament_index_python + - ament_lint_auto + - ament_lint_common + - rmw + - rosidl_buffer_py + - rosidl_cli + - rosidl_cmake + - rosidl_generator_c + - rosidl_generator_cpp + - rosidl_parser + - rosidl_pycommon + - rosidl_runtime_c + - rosidl_typesupport_c + - rosidl_typesupport_fastrtps_c + - rosidl_typesupport_interface + - rosidl_typesupport_introspection_c + - rpyutils + - test_interface_files + repository: https://github.com/ros2/rosidl_python tag: release/rolling/rosidl_generator_py/0.28.0-1 url: https://github.com/ros2-gbp/rosidl_python-release.git version: 0.28.0 rosidl_generator_rs: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - ros_environment + - rosidl_generator_c + - rosidl_parser + - rosidl_pycommon + - rosidl_typesupport_c + - rosidl_typesupport_interface + repository: https://github.com/ros2-rust/rosidl_rust tag: release/rolling/rosidl_generator_rs/0.5.0-2 url: https://github.com/ros2-gbp/rosidl_rust-release.git version: 0.5.0 rosidl_generator_type_description: + dependencies: + - ament_cmake_core + - ament_cmake_pytest + - ament_cmake_python + - ament_cmake_ros_core + - ament_index_python + - ament_lint_auto + - ament_lint_common + - rosidl_cli + - rosidl_parser + repository: https://github.com/ros2/rosidl tag: release/rolling/rosidl_generator_type_description/5.3.1-2 url: https://github.com/ros2-gbp/rosidl-release.git version: 5.3.1 rosidl_parser: + dependencies: + - ament_cmake + - ament_cmake_mypy + - ament_cmake_pytest + - ament_lint_auto + - ament_lint_common + - rosidl_adapter + repository: https://github.com/ros2/rosidl tag: release/rolling/rosidl_parser/5.3.1-2 url: https://github.com/ros2-gbp/rosidl-release.git version: 5.3.1 rosidl_pycommon: + dependencies: + - ament_copyright + - ament_flake8 + - ament_mypy + - ament_pep257 + - ament_xmllint + - rosidl_parser + repository: https://github.com/ros2/rosidl tag: release/rolling/rosidl_pycommon/5.3.1-2 url: https://github.com/ros2-gbp/rosidl-release.git version: 5.3.1 rosidl_runtime_c: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - performance_test_fixture + - rcutils + - rosidl_buffer + - rosidl_typesupport_interface + repository: https://github.com/ros2/rosidl tag: release/rolling/rosidl_runtime_c/5.3.1-2 url: https://github.com/ros2-gbp/rosidl-release.git version: 5.3.1 rosidl_runtime_cpp: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - performance_test_fixture + - rosidl_buffer + - rosidl_runtime_c + repository: https://github.com/ros2/rosidl tag: release/rolling/rosidl_runtime_cpp/5.3.1-2 url: https://github.com/ros2-gbp/rosidl-release.git version: 5.3.1 rosidl_runtime_py: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - rosidl_buffer_py + - rosidl_parser + - std_msgs + - std_srvs + - test_msgs + repository: https://github.com/ros2/rosidl_runtime_py tag: release/rolling/rosidl_runtime_py/0.16.0-1 url: https://github.com/ros2-gbp/rosidl_runtime_py-release.git version: 0.16.0 rosidl_typesupport_c: + dependencies: + - ament_cmake_core + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_ros_core + - ament_index_python + - ament_lint_auto + - ament_lint_common + - mimick_vendor + - performance_test_fixture + - rcpputils + - rcutils + - rosidl_cli + - rosidl_generator_c + - rosidl_pycommon + - rosidl_runtime_c + - rosidl_typesupport_interface + - rosidl_typesupport_introspection_c + repository: https://github.com/ros2/rosidl_typesupport tag: release/rolling/rosidl_typesupport_c/3.5.0-1 url: https://github.com/ros2-gbp/rosidl_typesupport-release.git version: 3.5.0 rosidl_typesupport_cpp: + dependencies: + - ament_cmake_core + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_ros_core + - ament_index_python + - ament_lint_auto + - ament_lint_common + - performance_test_fixture + - rcpputils + - rcutils + - rosidl_cli + - rosidl_generator_c + - rosidl_generator_type_description + - rosidl_pycommon + - rosidl_runtime_c + - rosidl_runtime_cpp + - rosidl_typesupport_c + - rosidl_typesupport_interface + - rosidl_typesupport_introspection_cpp + repository: https://github.com/ros2/rosidl_typesupport tag: release/rolling/rosidl_typesupport_cpp/3.5.0-1 url: https://github.com/ros2-gbp/rosidl_typesupport-release.git version: 3.5.0 rosidl_typesupport_fastrtps_c: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_python + - ament_cmake_ros_core + - ament_index_python + - ament_lint_auto + - ament_lint_common + - fastcdr + - osrf_testing_tools_cpp + - performance_test_fixture + - rcutils + - rmw + - rosidl_cli + - rosidl_generator_c + - rosidl_pycommon + - rosidl_runtime_c + - rosidl_runtime_cpp + - rosidl_typesupport_fastrtps_cpp + - rosidl_typesupport_interface + repository: https://github.com/ros2/rosidl_typesupport_fastrtps tag: release/rolling/rosidl_typesupport_fastrtps_c/3.10.1-2 url: https://github.com/ros2-gbp/rosidl_typesupport_fastrtps-release.git version: 3.10.1 rosidl_typesupport_fastrtps_cpp: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_python + - ament_cmake_ros_core + - ament_index_python + - ament_lint_auto + - ament_lint_common + - fastcdr + - osrf_testing_tools_cpp + - performance_test_fixture + - rcutils + - rmw + - rosidl_buffer_backend + - rosidl_cli + - rosidl_generator_c + - rosidl_generator_cpp + - rosidl_pycommon + - rosidl_runtime_c + - rosidl_runtime_cpp + - rosidl_typesupport_interface + repository: https://github.com/ros2/rosidl_typesupport_fastrtps tag: release/rolling/rosidl_typesupport_fastrtps_cpp/3.10.1-2 url: https://github.com/ros2-gbp/rosidl_typesupport_fastrtps-release.git version: 3.10.1 rosidl_typesupport_interface: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + repository: https://github.com/ros2/rosidl tag: release/rolling/rosidl_typesupport_interface/5.3.1-2 url: https://github.com/ros2-gbp/rosidl-release.git version: 5.3.1 rosidl_typesupport_introspection_c: + dependencies: + - ament_cmake + - ament_cmake_ros_core + - ament_index_python + - ament_lint_auto + - ament_lint_common + - rosidl_buffer + - rosidl_cli + - rosidl_cmake + - rosidl_generator_c + - rosidl_parser + - rosidl_pycommon + - rosidl_runtime_c + - rosidl_typesupport_interface + repository: https://github.com/ros2/rosidl tag: release/rolling/rosidl_typesupport_introspection_c/5.3.1-2 url: https://github.com/ros2-gbp/rosidl-release.git version: 5.3.1 rosidl_typesupport_introspection_cpp: + dependencies: + - ament_cmake + - ament_cmake_ros_core + - ament_index_python + - ament_lint_auto + - ament_lint_common + - rosidl_buffer + - rosidl_cli + - rosidl_cmake + - rosidl_generator_c + - rosidl_generator_cpp + - rosidl_parser + - rosidl_pycommon + - rosidl_runtime_c + - rosidl_runtime_cpp + - rosidl_typesupport_interface + - rosidl_typesupport_introspection_c + repository: https://github.com/ros2/rosidl tag: release/rolling/rosidl_typesupport_introspection_cpp/5.3.1-2 url: https://github.com/ros2-gbp/rosidl-release.git version: 5.3.1 rosidlcpp: + dependencies: + - ament_cmake + - ament_cmake_core + - rosidlcpp_generator_c + - rosidlcpp_generator_cpp + - rosidlcpp_generator_py + - rosidlcpp_generator_type_description + - rosidlcpp_typesupport_c + - rosidlcpp_typesupport_cpp + - rosidlcpp_typesupport_fastrtps_c + - rosidlcpp_typesupport_fastrtps_cpp + - rosidlcpp_typesupport_introspection_c + - rosidlcpp_typesupport_introspection_cpp + repository: https://github.com/Tonywelte/rosidlcpp tag: release/rolling/rosidlcpp/0.6.0-1 url: https://github.com/ros2-gbp/rosidlcpp-release.git version: 0.6.0 rosidlcpp_generator_c: + dependencies: + - ament_cmake + - ament_cmake_core + - ament_cmake_ros_core + - rcutils + - ros_environment + - rosidl_cmake + - rosidl_generator_type_description + - rosidl_typesupport_interface + - rosidlcpp_generator_core + - rosidlcpp_parser + repository: https://github.com/Tonywelte/rosidlcpp tag: release/rolling/rosidlcpp_generator_c/0.6.0-1 url: https://github.com/ros2-gbp/rosidlcpp-release.git version: 0.6.0 rosidlcpp_generator_core: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidlcpp_parser + repository: https://github.com/Tonywelte/rosidlcpp tag: release/rolling/rosidlcpp_generator_core/0.6.0-1 url: https://github.com/ros2-gbp/rosidlcpp-release.git version: 0.6.0 rosidlcpp_generator_cpp: + dependencies: + - ament_cmake + - ament_cmake_core + - rcutils + - rosidl_cmake + - rosidl_generator_type_description + - rosidl_typesupport_interface + - rosidlcpp_generator_core + - rosidlcpp_parser + repository: https://github.com/Tonywelte/rosidlcpp tag: release/rolling/rosidlcpp_generator_cpp/0.6.0-1 url: https://github.com/ros2-gbp/rosidlcpp-release.git version: 0.6.0 rosidlcpp_generator_py: + dependencies: + - ament_cmake + - ament_index_python + - rmw + - rosidl_generator_c + - rosidl_pycommon + - rosidl_runtime_c + - rosidl_typesupport_c + - rosidl_typesupport_interface + - rosidlcpp_generator_core + - rosidlcpp_parser + repository: https://github.com/Tonywelte/rosidlcpp tag: release/rolling/rosidlcpp_generator_py/0.6.0-1 url: https://github.com/ros2-gbp/rosidlcpp-release.git version: 0.6.0 rosidlcpp_generator_type_description: + dependencies: + - ament_cmake + - ament_cmake_core + - rcutils + - rosidl_runtime_c + - rosidlcpp_generator_core + - rosidlcpp_parser + repository: https://github.com/Tonywelte/rosidlcpp tag: release/rolling/rosidlcpp_generator_type_description/0.6.0-1 url: https://github.com/ros2-gbp/rosidlcpp-release.git version: 0.6.0 rosidlcpp_parser: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_pycommon + repository: https://github.com/Tonywelte/rosidlcpp tag: release/rolling/rosidlcpp_parser/0.6.0-1 url: https://github.com/ros2-gbp/rosidlcpp-release.git version: 0.6.0 rosidlcpp_typesupport_c: + dependencies: + - ament_cmake_core + - ament_cmake_ros_core + - ament_index_python + - rcpputils + - rcutils + - ros_environment + - rosidl_cli + - rosidl_generator_c + - rosidl_pycommon + - rosidl_runtime_c + - rosidl_typesupport_interface + - rosidl_typesupport_introspection_c + - rosidlcpp_generator_core + - rosidlcpp_parser + repository: https://github.com/Tonywelte/rosidlcpp tag: release/rolling/rosidlcpp_typesupport_c/0.6.0-1 url: https://github.com/ros2-gbp/rosidlcpp-release.git version: 0.6.0 rosidlcpp_typesupport_cpp: + dependencies: + - ament_cmake_core + - ament_cmake_ros_core + - ament_index_python + - rcpputils + - rcutils + - ros_environment + - rosidl_cli + - rosidl_generator_c + - rosidl_generator_type_description + - rosidl_pycommon + - rosidl_runtime_c + - rosidl_runtime_cpp + - rosidl_typesupport_c + - rosidl_typesupport_interface + - rosidl_typesupport_introspection_cpp + - rosidlcpp_generator_core + - rosidlcpp_parser + repository: https://github.com/Tonywelte/rosidlcpp tag: release/rolling/rosidlcpp_typesupport_cpp/0.6.0-1 url: https://github.com/ros2-gbp/rosidlcpp-release.git version: 0.6.0 rosidlcpp_typesupport_fastrtps_c: + dependencies: + - ament_cmake + - ament_cmake_python + - ament_cmake_ros + - fastcdr + - rmw + - rosidl_generator_c + - rosidl_runtime_c + - rosidl_runtime_cpp + - rosidl_typesupport_fastrtps_cpp + - rosidl_typesupport_interface + - rosidlcpp_generator_core + - rosidlcpp_parser + repository: https://github.com/Tonywelte/rosidlcpp tag: release/rolling/rosidlcpp_typesupport_fastrtps_c/0.6.0-1 url: https://github.com/ros2-gbp/rosidlcpp-release.git version: 0.6.0 rosidlcpp_typesupport_fastrtps_cpp: + dependencies: + - ament_cmake + - ament_cmake_python + - ament_cmake_ros + - fastcdr + - rmw + - rosidl_generator_c + - rosidl_generator_cpp + - rosidl_runtime_c + - rosidl_runtime_cpp + - rosidl_typesupport_interface + - rosidlcpp_generator_core + - rosidlcpp_parser + repository: https://github.com/Tonywelte/rosidlcpp tag: release/rolling/rosidlcpp_typesupport_fastrtps_cpp/0.6.0-1 url: https://github.com/ros2-gbp/rosidlcpp-release.git version: 0.6.0 rosidlcpp_typesupport_introspection_c: + dependencies: + - ament_cmake + - ament_cmake_ros_core + - ament_index_python + - ros_environment + - rosidl_cli + - rosidl_cmake + - rosidl_generator_c + - rosidl_parser + - rosidl_pycommon + - rosidl_runtime_c + - rosidl_typesupport_interface + - rosidlcpp_generator_core + - rosidlcpp_parser + repository: https://github.com/Tonywelte/rosidlcpp tag: release/rolling/rosidlcpp_typesupport_introspection_c/0.6.0-1 url: https://github.com/ros2-gbp/rosidlcpp-release.git version: 0.6.0 rosidlcpp_typesupport_introspection_cpp: + dependencies: + - ament_cmake + - ament_cmake_ros_core + - ament_index_python + - ros_environment + - rosidl_cli + - rosidl_cmake + - rosidl_generator_c + - rosidl_generator_cpp + - rosidl_parser + - rosidl_pycommon + - rosidl_runtime_c + - rosidl_runtime_cpp + - rosidl_typesupport_interface + - rosidl_typesupport_introspection_c + - rosidlcpp_generator_core + - rosidlcpp_parser + repository: https://github.com/Tonywelte/rosidlcpp tag: release/rolling/rosidlcpp_typesupport_introspection_cpp/0.6.0-1 url: https://github.com/ros2-gbp/rosidlcpp-release.git version: 0.6.0 rosx_introspection: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_index_cpp + - geometry_msgs + - rclcpp + - rosbag2_cpp + - sensor_msgs + repository: https://github.com/facontidavide/rosx_introspection tag: release/rolling/rosx_introspection/2.3.0-2 url: https://github.com/ros2-gbp/rosx_introspection-release.git version: 2.3.0 rplidar_driver: - tag: release/rolling/rplidar_driver/1.4.1-1 + dependencies: + - ament_cmake + - ament_cmake_cppcheck + - ament_cmake_gtest + - ament_cmake_lint_cmake + - ament_cmake_xmllint + - ament_lint_auto + - diagnostic_updater + - geometry_msgs + - launch_ros + - lifecycle_msgs + - rclcpp + - rclcpp_components + - rclcpp_lifecycle + - sensor_msgs + - std_srvs + - tf2 + - tf2_geometry_msgs + - tf2_ros + repository: https://github.com/frozenreboot/rplidar_driver + tag: release/rolling/rplidar_driver/1.4.2-1 url: https://github.com/ros2-gbp/rplidar_driver-release.git - version: 1.4.1 + version: 1.4.2 rpyutils: + dependencies: + - ament_copyright + - ament_flake8 + - ament_mypy + - ament_pep257 + - ament_xmllint + repository: https://github.com/ros2/rpyutils tag: release/rolling/rpyutils/0.8.0-1 url: https://github.com/ros2-gbp/rpyutils-release.git version: 0.8.0 rqml: + dependencies: + - ament_cmake + - rqml_core + - rqml_default_plugins + repository: https://github.com/StefanFabian/rqml tag: release/rolling/rqml/3.26.42-2 url: https://github.com/ros2-gbp/rqml-release.git version: 3.26.42 rqml_core: + dependencies: + - ament_cmake + - ament_index_cpp + - ament_lint_auto + - qml6_ros2_plugin + - ros_babel_fish_test_msgs + - yaml_cpp_vendor + repository: https://github.com/StefanFabian/rqml tag: release/rolling/rqml_core/3.26.42-2 url: https://github.com/ros2-gbp/rqml-release.git version: 3.26.42 rqml_default_plugins: + dependencies: + - ament_cmake + - ament_lint_auto + - control_msgs + - controller_manager_msgs + - geometry_msgs + - moveit_msgs + - pal_statistics_msgs + - qml6_ros2_plugin + - rcl_interfaces + - ros_babel_fish_test_msgs + - rqml_core + - sensor_msgs + - tf2_msgs + repository: https://github.com/StefanFabian/rqml tag: release/rolling/rqml_default_plugins/3.26.42-2 url: https://github.com/ros2-gbp/rqml-release.git version: 3.26.42 rqml_plugin_example: + dependencies: + - ament_cmake + - qml6_ros2_plugin + - rqml_core + repository: https://github.com/StefanFabian/rqml tag: release/rolling/rqml_plugin_example/3.26.42-2 url: https://github.com/ros2-gbp/rqml-release.git version: 3.26.42 rqt: - tag: release/rolling/rqt/2.0.2-1 + dependencies: + - rqt_gui + - rqt_gui_cpp + - rqt_gui_py + - rqt_py_common + repository: https://github.com/ros-visualization/rqt + tag: release/rolling/rqt/2.0.4-1 url: https://github.com/ros2-gbp/rqt-release.git - version: 2.0.2 + version: 2.0.4 rqt_action: + dependencies: + - ament_flake8 + - ament_xmllint + - rqt_gui + - rqt_gui_py + - rqt_msg + - rqt_py_common + repository: https://github.com/ros-visualization/rqt_action tag: release/rolling/rqt_action/3.0.0-1 url: https://github.com/ros2-gbp/rqt_action-release.git version: 3.0.0 rqt_bag: - tag: release/rolling/rqt_bag/2.3.3-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_index_python + - ament_pep257 + - ament_xmllint + - builtin_interfaces + - python_qt_binding + - rclpy + - rosbag2_py + - rosidl_runtime_py + - rqt_gui + - rqt_gui_py + repository: https://github.com/ros-visualization/rqt_bag + tag: release/rolling/rqt_bag/2.3.5-1 url: https://github.com/ros2-gbp/rqt_bag-release.git - version: 2.3.3 + version: 2.3.5 rqt_bag_plugins: - tag: release/rolling/rqt_bag_plugins/2.3.3-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_index_python + - ament_pep257 + - ament_xmllint + - builtin_interfaces + - geometry_msgs + - rclpy + - rosbag2 + - rqt_bag + - rqt_gui + - rqt_gui_py + - rqt_plot + - sensor_msgs + - std_msgs + repository: https://github.com/ros-visualization/rqt_bag + tag: release/rolling/rqt_bag_plugins/2.3.5-1 url: https://github.com/ros2-gbp/rqt_bag-release.git - version: 2.3.3 + version: 2.3.5 rqt_common_plugins: + dependencies: + - ament_cmake + - rqt_action + - rqt_bag + - rqt_bag_plugins + - rqt_console + - rqt_graph + - rqt_image_view + - rqt_msg + - rqt_plot + - rqt_publisher + - rqt_py_common + - rqt_py_console + - rqt_reconfigure + - rqt_service_caller + - rqt_shell + - rqt_srv + - rqt_topic + repository: https://github.com/ros-visualization/rqt_common_plugins tag: release/rolling/rqt_common_plugins/1.2.0-4 url: https://github.com/ros2-gbp/rqt_common_plugins-release.git version: 1.2.0 rqt_console: - tag: release/rolling/rqt_console/3.0.1-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_index_python + - ament_pep257 + - ament_xmllint + - python_qt_binding + - rcl_interfaces + - rclpy + - rqt_gui + - rqt_gui_py + - rqt_py_common + repository: https://github.com/ros-visualization/rqt_console + tag: release/rolling/rqt_console/3.0.2-1 url: https://github.com/ros2-gbp/rqt_console-release.git - version: 3.0.1 + version: 3.0.2 rqt_controller_manager: - tag: release/rolling/rqt_controller_manager/6.9.0-1 + dependencies: + - controller_manager + - controller_manager_msgs + - launch_testing + - launch_testing_ros + - rclpy + - rqt_gui + - rqt_gui_py + repository: https://github.com/ros-controls/ros2_control + tag: release/rolling/rqt_controller_manager/6.12.0-1 url: https://github.com/ros2-gbp/ros2_control-release.git - version: 6.9.0 + version: 6.12.0 rqt_dotgraph: + dependencies: + - ament_copyright + - ament_flake8 + - ament_index_python + - ament_pep257 + - python_qt_binding + - qt_dotgraph + - qt_gui_py_common + - rqt_graph + - rqt_gui + - rqt_gui_py + - std_msgs + repository: https://github.com/niwcpac/rqt_dotgraph tag: release/rolling/rqt_dotgraph/0.0.5-2 url: https://github.com/ros2-gbp/rqt_dotgraph-release.git version: 0.0.5 rqt_gauges: + dependencies: + - ament_flake8 + - ament_index_python + - ament_xmllint + - qt_gui + - qt_gui_py_common + - rclpy + - rqt_gui + - rqt_gui_py + repository: https://github.com/ToyotaResearchInstitute/gauges2 tag: release/rolling/rqt_gauges/0.0.3-2 url: https://github.com/ros2-gbp/rqt_gauges-release.git version: 0.0.3 rqt_graph: - tag: release/rolling/rqt_graph/2.0.2-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_index_python + - ament_pep257 + - ament_xmllint + - python_qt_binding + - qt_dotgraph + - rclpy + - rqt_gui + - rqt_gui_py + repository: https://github.com/ros-visualization/rqt_graph + tag: release/rolling/rqt_graph/2.0.3-1 url: https://github.com/ros2-gbp/rqt_graph-release.git - version: 2.0.2 + version: 2.0.3 rqt_gui: - tag: release/rolling/rqt_gui/2.0.2-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_index_python + - ament_pep257 + - ament_xmllint + - python_qt_binding + - qt_gui + - rclpy + repository: https://github.com/ros-visualization/rqt + tag: release/rolling/rqt_gui/2.0.4-1 url: https://github.com/ros2-gbp/rqt-release.git - version: 2.0.2 + version: 2.0.4 rqt_gui_cpp: - tag: release/rolling/rqt_gui_cpp/2.0.2-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - pluginlib + - qt_gui_cpp + - rclcpp + repository: https://github.com/ros-visualization/rqt + tag: release/rolling/rqt_gui_cpp/2.0.4-1 url: https://github.com/ros2-gbp/rqt-release.git - version: 2.0.2 + version: 2.0.4 rqt_gui_py: - tag: release/rolling/rqt_gui_py/2.0.2-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - python_qt_binding + - qt_gui + - rclpy + - rqt_gui + repository: https://github.com/ros-visualization/rqt + tag: release/rolling/rqt_gui_py/2.0.4-1 url: https://github.com/ros2-gbp/rqt-release.git - version: 2.0.2 + version: 2.0.4 rqt_image_overlay: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - compressed_image_transport + - image_transport + - pluginlib + - rclcpp + - ros_image_to_qimage + - rqt_gui + - rqt_gui_cpp + - rqt_image_overlay_layer + - std_msgs + repository: https://github.com/ros-sports/rqt_image_overlay tag: release/rolling/rqt_image_overlay/0.5.0-2 url: https://github.com/ros2-gbp/rqt_image_overlay-release.git version: 0.5.0 rqt_image_overlay_layer: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - message_filters + - pluginlib + - rclcpp + - rcpputils + - rosidl_runtime_cpp + repository: https://github.com/ros-sports/rqt_image_overlay tag: release/rolling/rqt_image_overlay_layer/0.5.0-2 url: https://github.com/ros2-gbp/rqt_image_overlay-release.git version: 0.5.0 rqt_image_view: - tag: release/rolling/rqt_image_view/2.0.5-2 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - cv_bridge + - geometry_msgs + - image_transport + - qt_gui_cpp + - rclcpp + - rqt_gui + - rqt_gui_cpp + - sensor_msgs + repository: https://github.com/ros-visualization/rqt_image_view + tag: release/rolling/rqt_image_view/2.0.7-1 url: https://github.com/ros2-gbp/rqt_image_view-release.git - version: 2.0.5 + version: 2.0.7 rqt_joint_trajectory_controller: - tag: release/rolling/rqt_joint_trajectory_controller/6.9.0-1 + dependencies: + - control_msgs + - controller_manager_msgs + - launch_testing + - launch_testing_ros + - python_qt_binding + - qt_gui + - rclpy + - rqt_gui + - rqt_gui_py + - trajectory_msgs + - urdfdom_py + repository: https://github.com/ros-controls/ros2_controllers + tag: release/rolling/rqt_joint_trajectory_controller/6.10.0-1 url: https://github.com/ros2-gbp/ros2_controllers-release.git - version: 6.9.0 + version: 6.10.0 +rqt_lifecycle_manager: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - lifecycle_msgs + - python_qt_binding + - rclpy + - rqt_gui + - rqt_gui_py + repository: https://github.com/ajtudela/rqt_lifecycle_manager + tag: release/rolling/rqt_lifecycle_manager/0.2.0-1 + url: https://github.com/ros2-gbp/rqt_lifecycle_manager-release.git + version: 0.2.0 rqt_moveit: + dependencies: + - python_qt_binding + - rclpy + - rosidl_default_generators + - rqt_gui + - rqt_gui_py + - rqt_py_common + - rqt_topic + - sensor_msgs + repository: https://github.com/ros-visualization/rqt_moveit tag: release/rolling/rqt_moveit/1.0.1-5 url: https://github.com/ros2-gbp/rqt_moveit-release.git version: 1.0.1 rqt_msg: - tag: release/rolling/rqt_msg/2.0.2-1 + dependencies: + - ament_flake8 + - ament_index_python + - ament_xmllint + - python_qt_binding + - rclpy + - rosidl_runtime_py + - rqt_console + - rqt_gui + - rqt_gui_py + - rqt_py_common + repository: https://github.com/ros-visualization/rqt_msg + tag: release/rolling/rqt_msg/2.0.3-1 url: https://github.com/ros2-gbp/rqt_msg-release.git - version: 2.0.2 + version: 2.0.3 +rqt_multiplot: + dependencies: + - ament_cmake + - ament_cmake_clang_format + - ament_cmake_gtest + - ament_index_cpp + - builtin_interfaces + - diagnostic_msgs + - fastcdr + - geometry_msgs + - pluginlib + - qt_gui_cpp + - rcl + - rclcpp + - rclpy + - rmw_cyclonedds_cpp + - rmw_fastrtps_cpp + - rmw_zenoh_cpp + - ros_babel_fish + - rosbag2_cpp + - rosbag2_storage + - rosbag2_storage_default_plugins + - rosbag2_storage_mcap + - rosidl_buffer + - rosidl_runtime_c + - rosidl_runtime_cpp + - rosidl_typesupport_fastrtps_cpp + - rosidl_typesupport_introspection_cpp + - rqt_gui + - rqt_gui_cpp + - sensor_msgs + - std_msgs + - test_msgs + - type_description_interfaces + repository: https://github.com/samuelba/rqt_multiplot_plugin + tag: release/rolling/rqt_multiplot/0.1.0-1 + url: https://github.com/ros2-gbp/rqt_multiplot_plugin-release.git + version: 0.1.0 rqt_play_motion_builder: + dependencies: + - ament_cmake_auto + - class_loader + - play_motion2_msgs + - play_motion_builder + - play_motion_builder_msgs + - pluginlib + - rclcpp + - rclcpp_action + - rqt_gui + - rqt_gui_cpp + - sensor_msgs + - urdf + repository: https://github.com/pal-robotics/play_motion_builder tag: release/rolling/rqt_play_motion_builder/1.4.1-2 url: https://github.com/ros2-gbp/play_motion_builder-release.git version: 1.4.1 rqt_plot: - tag: release/rolling/rqt_plot/2.0.1-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_index_python + - ament_pep257 + - ament_xmllint + - python_qt_binding + - qt_gui_py_common + - rclpy + - rosidl_parser + - rosidl_runtime_py + - rqt_gui + - rqt_gui_py + - rqt_py_common + - std_msgs + - test_msgs + repository: https://github.com/ros-visualization/rqt_plot + tag: release/rolling/rqt_plot/2.0.2-1 url: https://github.com/ros2-gbp/rqt_plot-release.git - version: 2.0.1 + version: 2.0.2 rqt_publisher: - tag: release/rolling/rqt_publisher/2.0.1-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_index_python + - ament_pep257 + - ament_xmllint + - python_qt_binding + - qt_gui_py_common + - rclpy + - rosidl_runtime_py + - rqt_gui + - rqt_gui_py + - rqt_py_common + repository: https://github.com/ros-visualization/rqt_publisher + tag: release/rolling/rqt_publisher/2.0.2-1 url: https://github.com/ros2-gbp/rqt_publisher-release.git - version: 2.0.1 + version: 2.0.2 rqt_py_common: - tag: release/rolling/rqt_py_common/2.0.2-1 + dependencies: + - ament_cmake + - ament_cmake_pytest + - ament_cmake_python + - ament_lint_auto + - ament_lint_common + - python_qt_binding + - qt_gui + - rclpy + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/ros-visualization/rqt + tag: release/rolling/rqt_py_common/2.0.4-1 url: https://github.com/ros2-gbp/rqt-release.git - version: 2.0.2 + version: 2.0.4 rqt_py_console: + dependencies: + - ament_copyright + - ament_flake8 + - ament_index_python + - ament_pep257 + - ament_xmllint + - python_qt_binding + - qt_gui + - qt_gui_py_common + - rclpy + - rqt_gui + - rqt_gui_py + repository: https://github.com/ros-visualization/rqt_py_console tag: release/rolling/rqt_py_console/2.0.1-1 url: https://github.com/ros2-gbp/rqt_py_console-release.git version: 2.0.1 rqt_reconfigure: - tag: release/rolling/rqt_reconfigure/2.0.2-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_index_python + - ament_xmllint + - python_qt_binding + - qt_gui_py_common + - rclpy + - rqt_console + - rqt_gui + - rqt_gui_py + - rqt_py_common + repository: https://github.com/ros-visualization/rqt_reconfigure + tag: release/rolling/rqt_reconfigure/2.0.3-1 url: https://github.com/ros2-gbp/rqt_reconfigure-release.git - version: 2.0.2 + version: 2.0.3 rqt_robot_dashboard: + dependencies: + - diagnostic_msgs + - python_qt_binding + - qt_gui + - rclpy + - rqt_console + - rqt_gui + - rqt_gui_py + - rqt_robot_monitor + repository: https://github.com/ros-visualization/rqt_robot_dashboard tag: release/rolling/rqt_robot_dashboard/0.6.1-5 url: https://github.com/ros2-gbp/rqt_robot_dashboard-release.git version: 0.6.1 rqt_robot_monitor: + dependencies: + - diagnostic_msgs + - python_qt_binding + - qt_gui + - qt_gui_py_common + - rclpy + - rosidl_default_generators + - rqt_gui + - rqt_gui_py + - rqt_py_common + repository: https://github.com/ros-visualization/rqt_robot_monitor tag: release/rolling/rqt_robot_monitor/1.0.6-2 url: https://github.com/ros2-gbp/rqt_robot_monitor-release.git version: 1.0.6 rqt_robot_steering: + dependencies: + - ament_copyright + - ament_flake8 + - ament_index_python + - ament_pep257 + - ament_xmllint + - geometry_msgs + - python_qt_binding + - rclpy + - rqt_gui + - rqt_gui_py + repository: https://github.com/ros-visualization/rqt_robot_steering tag: release/rolling/rqt_robot_steering/5.0.0-1 url: https://github.com/ros2-gbp/rqt_robot_steering-release.git version: 5.0.0 rqt_runtime_monitor: + dependencies: + - ament_copyright + - ament_flake8 + - ament_index_python + - ament_pep257 + - diagnostic_msgs + - python_qt_binding + - qt_gui + - rclpy + - rqt_gui + - rqt_gui_py + repository: https://github.com/ros-visualization/rqt_runtime_monitor tag: release/rolling/rqt_runtime_monitor/1.0.0-5 url: https://github.com/ros2-gbp/rqt_runtime_monitor-release.git version: 1.0.0 rqt_service_caller: + dependencies: + - ament_copyright + - ament_flake8 + - ament_index_python + - ament_pep257 + - ament_xmllint + - python_qt_binding + - rqt_gui + - rqt_gui_py + - rqt_py_common + repository: https://github.com/ros-visualization/rqt_service_caller tag: release/rolling/rqt_service_caller/2.0.2-1 url: https://github.com/ros2-gbp/rqt_service_caller-release.git version: 2.0.2 rqt_shell: - tag: release/rolling/rqt_shell/2.0.1-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - python_qt_binding + - qt_gui + - qt_gui_py_common + - rqt_gui + - rqt_gui_py + repository: https://github.com/ros-visualization/rqt_shell + tag: release/rolling/rqt_shell/2.0.2-1 url: https://github.com/ros2-gbp/rqt_shell-release.git - version: 2.0.1 + version: 2.0.2 rqt_srv: + dependencies: + - ament_flake8 + - ament_xmllint + - rqt_gui + - rqt_gui_py + - rqt_msg + repository: https://github.com/ros-visualization/rqt_srv tag: release/rolling/rqt_srv/2.0.0-1 url: https://github.com/ros2-gbp/rqt_srv-release.git version: 2.0.0 rqt_tf_tree: + dependencies: + - ament_flake8 + - ament_pep257 + - python_qt_binding + - qt_dotgraph + - rclpy + - rqt_graph + - rqt_gui + - rqt_gui_py + - tf2_msgs + - tf2_ros + - tf2_ros_py + repository: https://github.com/ros-visualization/rqt_tf_tree tag: release/rolling/rqt_tf_tree/1.1.1-1 url: https://github.com/ros2-gbp/rqt_tf_tree-release.git version: 1.1.1 rqt_topic: - tag: release/rolling/rqt_topic/3.0.2-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_xmllint + - python_qt_binding + - rclpy + - ros2topic + - rqt_gui + - rqt_gui_py + - rqt_py_common + repository: https://github.com/ros-visualization/rqt_topic + tag: release/rolling/rqt_topic/3.0.3-1 url: https://github.com/ros2-gbp/rqt_topic-release.git - version: 3.0.2 + version: 3.0.3 rsl: + dependencies: + - ament_cmake_ros + - rclcpp + - tcb_span + repository: https://github.com/PickNikRobotics/RSL tag: release/rolling/rsl/1.3.0-2 url: https://github.com/ros2-gbp/RSL-release.git version: 1.3.0 rslidar_msg: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - rclcpp + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/RoboSense-LiDAR/rslidar_msg tag: release/rolling/rslidar_msg/0.0.0-2 url: https://github.com/ros2-gbp/rslidar_msg-release.git version: 0.0.0 rtabmap: - tag: release/rolling/rtabmap/0.22.1-2 + dependencies: + - cv_bridge + - gtsam + - libg2o + repository: https://github.com/introlab/rtabmap + tag: release/rolling/rtabmap/0.23.13-1 url: https://github.com/ros2-gbp/rtabmap-release.git - version: 0.22.1 + version: 0.23.13 rtcm_msgs: + dependencies: + - ament_cmake + - ament_lint_common + - builtin_interfaces + - ros_environment + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/tilk/rtcm_msgs tag: release/rolling/rtcm_msgs/1.1.6-4 url: https://github.com/ros2-gbp/rtcm_msgs-release.git version: 1.1.6 rtest: - tag: release/rolling/rtest/0.2.3-1 + dependencies: + - action_msgs + - ament_clang_tidy + - ament_cmake + - ament_cmake_copyright + - ament_cmake_gmock + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - example_interfaces + - rcl + - rcl_action + - rclcpp + - rclcpp_action + - ros_environment + - std_msgs + - std_srvs + repository: https://github.com/Beam-and-Spyrosoft/rtest + tag: release/rolling/rtest/0.2.5-1 url: https://github.com/ros2-gbp/rtest-release.git - version: 0.2.3 + version: 0.2.5 rti_connext_dds_cmake_module: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + repository: https://github.com/ros2/rmw_connextdds tag: release/rolling/rti_connext_dds_cmake_module/1.3.0-2 url: https://github.com/ros2-gbp/rmw_connextdds-release.git version: 1.3.0 rtsp_image_transport: + dependencies: + - ament_cmake + - cv_bridge + - image_transport + - live555_vendor + - pluginlib + - rclcpp + repository: https://github.com/fkie/rtsp_image_transport tag: release/rolling/rtsp_image_transport/2.0.2-1 url: https://github.com/ros2-gbp/rtsp_image_transport-release.git version: 2.0.2 rttest: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + repository: https://github.com/ros2/realtime_support tag: release/rolling/rttest/1.0.1-1 url: https://github.com/ros2-gbp/realtime_support-release.git version: 1.0.1 ruckig: + dependencies: [] + repository: https://github.com/pantor/ruckig tag: release/rolling/ruckig/0.9.2-5 url: https://github.com/ros2-gbp/ruckig-release.git version: 0.9.2 rviz2: - tag: release/rolling/rviz2/16.0.2-1 + dependencies: + - ament_cmake + - ament_cmake_lint_cmake + - ament_cmake_pytest + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - geometry_msgs + - rclcpp + - rviz_common + - rviz_default_plugins + - rviz_ogre_vendor + - sensor_msgs + repository: https://github.com/ros2/rviz + tag: release/rolling/rviz2/16.0.4-1 url: https://github.com/ros2-gbp/rviz-release.git - version: 16.0.2 + version: 16.0.4 rviz_2d_overlay_msgs: + dependencies: + - ament_cmake + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/teamspatzenhirn/rviz_2d_overlay_plugins tag: release/rolling/rviz_2d_overlay_msgs/1.4.2-1 url: https://github.com/ros2-gbp/rviz_2d_overlay_plugins-release.git version: 1.4.2 rviz_2d_overlay_plugins: + dependencies: + - ament_cmake + - rviz_2d_overlay_msgs + - rviz_common + - rviz_ogre_vendor + - rviz_rendering + - std_msgs + repository: https://github.com/teamspatzenhirn/rviz_2d_overlay_plugins tag: release/rolling/rviz_2d_overlay_plugins/1.4.2-1 url: https://github.com/ros2-gbp/rviz_2d_overlay_plugins-release.git version: 1.4.2 rviz_common: - tag: release/rolling/rviz_common/16.0.2-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - ament_cmake_gtest + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - geometry_msgs + - message_filters + - pluginlib + - rclcpp + - resource_retriever + - rviz_ogre_vendor + - rviz_rendering + - sensor_msgs + - std_msgs + - std_srvs + - tf2 + - tf2_ros + - yaml_cpp_vendor + repository: https://github.com/ros2/rviz + tag: release/rolling/rviz_common/16.0.4-1 url: https://github.com/ros2-gbp/rviz-release.git - version: 16.0.2 + version: 16.0.4 rviz_default_plugins: - tag: release/rolling/rviz_default_plugins/16.0.2-1 + dependencies: + - ament_cmake_gmock + - ament_cmake_gtest + - ament_cmake_lint_cmake + - ament_cmake_ros + - ament_cmake_ros_core + - ament_index_cpp + - ament_lint_auto + - ament_lint_common + - geometry_msgs + - gz_math_vendor + - image_transport + - interactive_markers + - laser_geometry + - map_msgs + - nav_msgs + - pluginlib + - point_cloud_transport + - rclcpp + - resource_retriever + - resource_retriever_service_plugin + - rviz_common + - rviz_ogre_vendor + - rviz_rendering + - rviz_rendering_tests + - rviz_visual_testing_framework + - tf2 + - tf2_geometry_msgs + - tf2_ros + - urdf + - visualization_msgs + repository: https://github.com/ros2/rviz + tag: release/rolling/rviz_default_plugins/16.0.4-1 url: https://github.com/ros2-gbp/rviz-release.git - version: 16.0.2 + version: 16.0.4 rviz_imu_plugin: - tag: release/rolling/rviz_imu_plugin/2.2.4-2 + dependencies: + - ament_cmake + - message_filters + - pluginlib + - rclcpp + - rviz_common + - rviz_ogre_vendor + - rviz_rendering + - sensor_msgs + - tf2 + - tf2_ros + repository: https://github.com/CCNYRoboticsLab/imu_tools + tag: release/rolling/rviz_imu_plugin/2.2.5-1 url: https://github.com/ros2-gbp/imu_tools-release.git - version: 2.2.4 + version: 2.2.5 rviz_marker_tools: - tag: release/rolling/rviz_marker_tools/0.1.6-1 + dependencies: + - ament_cmake + - eigen3_cmake_module + - geometry_msgs + - moveit_common + - rclcpp + - std_msgs + - tf2_eigen + - visualization_msgs + repository: https://github.com/moveit/moveit_task_constructor + tag: release/rolling/rviz_marker_tools/0.2.0-1 url: https://github.com/ros2-gbp/moveit_task_constructor-release.git - version: 0.1.6 + version: 0.2.0 rviz_ogre_vendor: - tag: release/rolling/rviz_ogre_vendor/16.0.2-1 + dependencies: + - ament_cmake + - ament_cmake_vendor_package + - ament_cmake_xmllint + - ament_lint_auto + repository: https://github.com/ros2/rviz + tag: release/rolling/rviz_ogre_vendor/16.0.4-1 url: https://github.com/ros2-gbp/rviz-release.git - version: 16.0.2 + version: 16.0.4 rviz_rendering: - tag: release/rolling/rviz_rendering/16.0.2-1 + dependencies: + - ament_cmake_gmock + - ament_cmake_gtest + - ament_cmake_ros + - ament_cmake_ros_core + - ament_index_cpp + - ament_lint_auto + - ament_lint_common + - eigen3_cmake_module + - resource_retriever + - rviz_ogre_vendor + repository: https://github.com/ros2/rviz + tag: release/rolling/rviz_rendering/16.0.4-1 url: https://github.com/ros2-gbp/rviz-release.git - version: 16.0.2 + version: 16.0.4 rviz_rendering_tests: - tag: release/rolling/rviz_rendering_tests/16.0.2-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - ament_cmake_gtest + - ament_cmake_ros_core + - ament_index_cpp + - ament_lint_auto + - ament_lint_common + - resource_retriever + - rviz_rendering + repository: https://github.com/ros2/rviz + tag: release/rolling/rviz_rendering_tests/16.0.4-1 url: https://github.com/ros2-gbp/rviz-release.git - version: 16.0.2 + version: 16.0.4 rviz_satellite: + dependencies: + - ament_cmake + - ament_cmake_gtest + - angles + - rclcpp + - rcpputils + - rviz_common + - rviz_default_plugins + - sensor_msgs + repository: https://github.com/nobleo/rviz_satellite tag: release/rolling/rviz_satellite/4.3.1-1 url: https://github.com/ros2-gbp/rviz_satellite-release.git version: 4.3.1 rviz_visual_testing_framework: - tag: release/rolling/rviz_visual_testing_framework/16.0.2-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - ament_cmake_gtest + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - geometry_msgs + - rclcpp + - rcutils + - rviz_common + - rviz_ogre_vendor + - rviz_rendering + - std_msgs + - tf2 + - tf2_ros + repository: https://github.com/ros2/rviz + tag: release/rolling/rviz_visual_testing_framework/16.0.4-1 url: https://github.com/ros2-gbp/rviz-release.git - version: 16.0.2 + version: 16.0.4 rviz_visual_tools: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_index_python + - ament_lint_auto + - ament_lint_common + - eigen3_cmake_module + - eigen_stl_containers + - geometry_msgs + - interactive_markers + - launch + - launch_ros + - pluginlib + - rclcpp + - rclcpp_components + - rviz2 + - rviz_common + - rviz_default_plugins + - rviz_ogre_vendor + - rviz_rendering + - sensor_msgs + - shape_msgs + - std_msgs + - tf2 + - tf2_eigen + - tf2_geometry_msgs + - trajectory_msgs + - visualization_msgs + repository: https://github.com/PickNikRobotics/rviz_visual_tools tag: release/rolling/rviz_visual_tools/4.2.0-1 url: https://github.com/ros2-gbp/rviz_visual_tools-release.git version: 4.2.0 +sbg_driver: + dependencies: + - ament_cmake + - geometry_msgs + - nav_msgs + - nmea_msgs + - rclcpp + - rosidl_default_generators + - rosidl_default_runtime + - rtcm_msgs + - sensor_msgs + - std_msgs + - std_srvs + - tf2_geometry_msgs + - tf2_msgs + - tf2_ros + - urdf + - xacro + repository: https://github.com/SBG-Systems/sbg_ros2 + tag: release/rolling/sbg_driver/3.4.0-1 + url: https://github.com/ros2-gbp/sbg_ros2-release.git + version: 3.4.0 sdformat_test_files: + dependencies: [] + repository: https://github.com/ros/sdformat_urdf tag: release/rolling/sdformat_test_files/3.0.0-1 url: https://github.com/ros2-gbp/sdformat_urdf-release.git version: 3.0.0 sdformat_urdf: + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - pluginlib + - rcutils + - sdformat_test_files + - sdformat_vendor + - urdf + - urdf_parser_plugin + repository: https://github.com/ros/sdformat_urdf tag: release/rolling/sdformat_urdf/3.0.0-1 url: https://github.com/ros2-gbp/sdformat_urdf-release.git version: 3.0.0 sdformat_vendor: - tag: release/rolling/sdformat_vendor/0.4.1-1 + dependencies: + - ament_cmake_copyright + - ament_cmake_core + - ament_cmake_lint_cmake + - ament_cmake_test + - ament_cmake_vendor_package + - ament_cmake_xmllint + - gz_cmake_vendor + - gz_math_vendor + - gz_tools_vendor + - gz_utils_vendor + - urdfdom + repository: https://github.com/gazebo-release/sdformat_vendor + tag: release/rolling/sdformat_vendor/0.4.3-1 url: https://github.com/ros2-gbp/sdformat_vendor-release.git - version: 0.4.1 + version: 0.4.3 sdl2_vendor: + dependencies: + - ament_cmake + repository: https://github.com/ros-drivers/joystick_drivers tag: release/rolling/sdl2_vendor/3.3.0-3 url: https://github.com/ros2-gbp/joystick_drivers-release.git version: 3.3.0 self_test: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - diagnostic_msgs + - diagnostic_updater + - rclcpp + - ros_environment + repository: https://github.com/ros/diagnostics tag: release/rolling/self_test/4.5.7-1 url: https://github.com/ros2-gbp/diagnostics-release.git version: 4.5.7 sensor_msgs: - tag: release/rolling/sensor_msgs/5.10.1-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - rosidl_cmake + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ros2/common_interfaces + tag: release/rolling/sensor_msgs/5.10.2-1 url: https://github.com/ros2-gbp/common_interfaces-release.git - version: 5.10.1 + version: 5.10.2 sensor_msgs_py: - tag: release/rolling/sensor_msgs_py/5.10.1-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - sensor_msgs + - std_msgs + repository: https://github.com/ros2/common_interfaces + tag: release/rolling/sensor_msgs_py/5.10.2-1 url: https://github.com/ros2-gbp/common_interfaces-release.git - version: 5.10.1 + version: 5.10.2 septentrio_gnss_driver: - tag: release/rolling/septentrio_gnss_driver/1.4.7-2 + dependencies: + - ament_cmake + - ament_cmake_ros + - diagnostic_msgs + - geometry_msgs + - gps_msgs + - gtest_vendor + - nav_msgs + - nmea_msgs + - rclcpp + - rclcpp_components + - ros_environment + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + - tf2 + - tf2_eigen + - tf2_geometry_msgs + - tf2_ros + repository: https://github.com/septentrio-gnss/septentrio_gnss_driver + tag: release/rolling/septentrio_gnss_driver/1.4.8-3 url: https://github.com/ros2-gbp/septentrio_gnss_driver_ros2-release.git - version: 1.4.7 + version: 1.4.8 serial_driver: + dependencies: + - ament_cmake_auto + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - asio_cmake_module + - io_context + - rclcpp + - rclcpp_components + - rclcpp_lifecycle + - std_msgs + repository: https://github.com/ros-drivers/transport_drivers tag: release/rolling/serial_driver/1.2.0-4 url: https://github.com/ros2-gbp/transport_drivers-release.git version: 1.2.0 service_load_balancing: + dependencies: + - ament_cmake + - ament_cmake_gtest + - example_interfaces + - rclcpp + - rosidl_default_runtime + - rosidl_typesupport_introspection_cpp + - std_msgs + - std_srvs + repository: https://github.com/Barry-Xu-2018/ros2_service_load_balancing tag: release/rolling/service_load_balancing/0.1.3-2 url: https://github.com/ros2-gbp/service_load_balancing-release.git version: 0.1.3 service_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - rosidl_core_generators + - rosidl_core_runtime + repository: https://github.com/ros2/rcl_interfaces tag: release/rolling/service_msgs/2.5.1-1 url: https://github.com/ros2-gbp/rcl_interfaces-release.git version: 2.5.1 shape_msgs: - tag: release/rolling/shape_msgs/5.10.1-1 + dependencies: + - ament_cmake + - ament_lint_common + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/ros2/common_interfaces + tag: release/rolling/shape_msgs/5.10.2-1 url: https://github.com/ros2-gbp/common_interfaces-release.git - version: 5.10.1 + version: 5.10.2 sick_safetyscanners2: + dependencies: + - ament_cmake + - ament_cmake_pytest + - ament_lint_auto + - ament_lint_common + - diagnostic_updater + - launch_testing_ament_cmake + - launch_testing_ros + - rclcpp + - rclcpp_lifecycle + - robot_state_publisher + - rviz2 + - sensor_msgs + - sick_safetyscanners2_interfaces + - sick_safetyscanners_base + - xacro + repository: https://github.com/SICKAG/sick_safetyscanners2 tag: release/rolling/sick_safetyscanners2/1.0.5-1 url: https://github.com/ros2-gbp/sick_safetyscanners2-release.git version: 1.0.5 sick_safetyscanners2_interfaces: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + repository: https://github.com/SICKAG/sick_safetyscanners2_interfaces tag: release/rolling/sick_safetyscanners2_interfaces/1.0.0-2 url: https://github.com/ros2-gbp/sick_safetyscanners2_interfaces-release.git version: 1.0.0 sick_safetyscanners_base: + dependencies: [] + repository: https://github.com/SICKAG/sick_safetyscanners_base tag: release/rolling/sick_safetyscanners_base/1.0.3-2 url: https://github.com/ros2-gbp/sick_safetyscanners_base-release.git version: 1.0.3 sick_safevisionary_base: + dependencies: [] + repository: https://github.com/SICKAG/sick_safevisionary_base tag: release/rolling/sick_safevisionary_base/1.0.1-3 url: https://github.com/ros2-gbp/sick_safevisionary_base-release.git version: 1.0.1 sick_safevisionary_driver: + dependencies: + - ament_cmake + - cv_bridge + - lifecycle_msgs + - rclcpp + - rclcpp_lifecycle + - sensor_msgs + - sick_safevisionary_base + - sick_safevisionary_interfaces + repository: https://github.com/SICKAG/sick_safevisionary_ros2 tag: release/rolling/sick_safevisionary_driver/1.0.5-1 url: https://github.com/ros2-gbp/sick_safevisionary_ros2-release.git version: 1.0.5 sick_safevisionary_interfaces: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/SICKAG/sick_safevisionary_ros2 tag: release/rolling/sick_safevisionary_interfaces/1.0.5-1 url: https://github.com/ros2-gbp/sick_safevisionary_ros2-release.git version: 1.0.5 sick_safevisionary_tests: + dependencies: + - ament_cmake + - launch + - launch_ros + - launch_testing_ament_cmake + - sick_safevisionary_driver + repository: https://github.com/SICKAG/sick_safevisionary_ros2 tag: release/rolling/sick_safevisionary_tests/1.0.5-1 url: https://github.com/ros2-gbp/sick_safevisionary_ros2-release.git version: 1.0.5 +sicks300_ros2: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - diagnostic_msgs + - diagnostic_updater + - laser_filters + - rclcpp + - rclcpp_components + - rclcpp_lifecycle + - rcutils + - sensor_msgs + repository: https://github.com/ajtudela/sicks300_ros2 + tag: release/rolling/sicks300_ros2/1.4.0-1 + url: https://github.com/ros2-gbp/sicks300_ros2-release.git + version: 1.4.0 simple_actions: + dependencies: + - action_msgs + - ament_cmake + - ament_cmake_gtest + - ament_cmake_python + - example_interfaces + - rclcpp + - rclcpp_action + - rclpy + repository: https://github.com/DLu/simple_actions tag: release/rolling/simple_actions/0.5.0-2 url: https://github.com/ros2-gbp/simple_actions-release.git version: 0.5.0 simple_grasping: + dependencies: + - ament_cmake + - ament_cmake_cpplint + - ament_cmake_gtest + - geometry_msgs + - grasping_msgs + - moveit_msgs + - pcl_conversions + - pcl_ros + - rclcpp + - rclcpp_action + - rclcpp_components + - sensor_msgs + - shape_msgs + - tf2_ros + repository: https://github.com/mikeferguson/simple_grasping tag: release/rolling/simple_grasping/0.6.0-2 url: https://github.com/ros2-gbp/simple_grasping-release.git version: 0.6.0 simple_launch: + dependencies: + - ament_cmake_python + - ament_index_python + - launch + - launch_ros + - xacro + repository: https://github.com/oKermorgant/simple_launch tag: release/rolling/simple_launch/1.11.4-2 url: https://github.com/ros2-gbp/simple_launch-release.git version: 1.11.4 simulation: + dependencies: + - ament_cmake + - ros_base + - ros_gz_bridge + - ros_gz_image + - ros_gz_interfaces + - ros_gz_sim + repository: https://github.com/ros2/variants tag: release/rolling/simulation/0.13.0-2 url: https://github.com/ros2-gbp/variants-release.git version: 0.13.0 simulation_interfaces: + dependencies: + - action_msgs + - ament_cmake + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ros-simulation/simulation_interfaces tag: release/rolling/simulation_interfaces/2.1.0-2 url: https://github.com/ros2-gbp/simulation_interfaces-release.git version: 2.1.0 slg_msgs: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ajtudela/slg_msgs tag: release/rolling/slg_msgs/3.9.1-2 url: https://github.com/ros2-gbp/slg_msgs-release.git version: 3.9.1 slider_publisher: + dependencies: + - ament_cmake + - rqt_gui_py + repository: https://github.com/oKermorgant/slider_publisher tag: release/rolling/slider_publisher/2.4.3-2 url: https://github.com/ros2-gbp/slider_publisher-release.git version: 2.4.3 smach: + dependencies: + - ament_cmake + - ament_cmake_python + repository: https://github.com/ros/executive_smach tag: release/rolling/smach/3.0.3-3 url: https://github.com/ros2-gbp/executive_smach-release.git version: 3.0.3 smach_msgs: + dependencies: + - ament_cmake + - ament_cmake_cppcheck + - ament_cmake_cpplint + - ament_cmake_flake8 + - ament_cmake_pep257 + - ament_cmake_uncrustify + - ament_lint + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ros/executive_smach tag: release/rolling/smach_msgs/3.0.3-3 url: https://github.com/ros2-gbp/executive_smach-release.git version: 3.0.3 smach_ros: + dependencies: + - ament_cmake + - ament_cmake_python + - rclpy + - smach + - smach_msgs + - std_msgs + - std_srvs + repository: https://github.com/ros/executive_smach tag: release/rolling/smach_ros/3.0.3-3 url: https://github.com/ros2-gbp/executive_smach-release.git version: 3.0.3 smclib: - tag: release/rolling/smclib/4.4.0-2 + dependencies: + - ament_cmake + - ament_cmake_python + - ament_lint_auto + - ament_lint_common + repository: https://github.com/ros/bond_core + tag: release/rolling/smclib/4.4.1-1 url: https://github.com/ros2-gbp/bond_core-release.git - version: 4.4.0 + version: 4.4.1 soccer_geometry_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/ros-sports/soccer_interfaces tag: release/rolling/soccer_geometry_msgs/1.0.0-2 url: https://github.com/ros2-gbp/soccer_interfaces-release.git version: 1.0.0 soccer_interfaces: + dependencies: + - ament_cmake + - soccer_vision_2d_msgs + - soccer_vision_3d_msgs + - soccer_vision_attribute_msgs + repository: https://github.com/ros-sports/soccer_interfaces tag: release/rolling/soccer_interfaces/1.0.0-2 url: https://github.com/ros2-gbp/soccer_interfaces-release.git version: 1.0.0 soccer_model_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - soccer_geometry_msgs + - soccer_vision_attribute_msgs + - std_msgs + repository: https://github.com/ros-sports/soccer_interfaces tag: release/rolling/soccer_model_msgs/1.0.0-2 url: https://github.com/ros2-gbp/soccer_interfaces-release.git version: 1.0.0 soccer_vision_2d_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + - soccer_vision_attribute_msgs + - vision_msgs + repository: https://github.com/ros-sports/soccer_interfaces tag: release/rolling/soccer_vision_2d_msgs/1.0.0-2 url: https://github.com/ros2-gbp/soccer_interfaces-release.git version: 1.0.0 soccer_vision_3d_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + - soccer_vision_attribute_msgs + - vision_msgs + repository: https://github.com/ros-sports/soccer_interfaces tag: release/rolling/soccer_vision_3d_msgs/1.0.0-2 url: https://github.com/ros2-gbp/soccer_interfaces-release.git version: 1.0.0 soccer_vision_3d_rviz_markers: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - rclpy + - soccer_vision_3d_msgs + - soccer_vision_attribute_msgs + - visualization_msgs + repository: https://github.com/ros-sports/soccer_vision_3d_rviz_markers tag: release/rolling/soccer_vision_3d_rviz_markers/1.0.0-2 url: https://github.com/ros2-gbp/soccer_vision_3d_rviz_markers-release.git version: 1.0.0 soccer_vision_attribute_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/ros-sports/soccer_interfaces tag: release/rolling/soccer_vision_attribute_msgs/1.0.0-2 url: https://github.com/ros2-gbp/soccer_interfaces-release.git version: 1.0.0 sol_vendor: + dependencies: + - ament_cmake + - ament_lint_auto + - ouxt_lint_common + repository: https://github.com/OUXT-Polaris/sol_vendor tag: release/rolling/sol_vendor/0.0.3-5 url: https://github.com/ros2-gbp/sol_vendor-release.git version: 0.0.3 sophus: + dependencies: [] + repository: https://github.com/clalancette/sophus tag: release/rolling/sophus/1.22.9102-3 url: https://github.com/ros2-gbp/sophus-release.git version: 1.22.9102 sound_play: - tag: release/rolling/sound_play/0.4.0-2 + dependencies: + - action_msgs + - ament_cmake + - ament_cmake_auto + - ament_cmake_gtest + - ament_cmake_python + - ament_index_python + - launch_xml + - rclcpp + - rclpy + - sound_play_msgs + repository: https://github.com/ros-drivers/audio_common + tag: release/rolling/sound_play/0.4.1-1 url: https://github.com/ros2-gbp/audio_common-release.git - version: 0.4.0 + version: 0.4.1 sound_play_msgs: - tag: release/rolling/sound_play_msgs/0.4.0-2 + dependencies: + - action_msgs + - ament_cmake + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/ros-drivers/audio_common + tag: release/rolling/sound_play_msgs/0.4.1-1 url: https://github.com/ros2-gbp/audio_common-release.git - version: 0.4.0 + version: 0.4.1 spacenav: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - geometry_msgs + - rclcpp + - rclcpp_components + - sensor_msgs + repository: https://github.com/ros-drivers/joystick_drivers tag: release/rolling/spacenav/3.3.0-3 url: https://github.com/ros2-gbp/joystick_drivers-release.git version: 3.3.0 spdlog_vendor: + dependencies: + - ament_cmake + - ament_cmake_vendor_package + - ament_lint_auto + - ament_lint_common + repository: https://github.com/ros2/spdlog_vendor tag: release/rolling/spdlog_vendor/1.9.0-1 url: https://github.com/ros2-gbp/spdlog_vendor-release.git version: 1.9.0 spinnaker_camera_driver: + dependencies: + - ament_cmake + - ament_cmake_clang_format + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - camera_info_manager + - diagnostic_updater + - flir_camera_msgs + - image_transport + - rclcpp + - rclcpp_components + - ros_environment + - sensor_msgs + - std_msgs + repository: https://github.com/ros-drivers/flir_camera_driver tag: release/rolling/spinnaker_camera_driver/3.0.5-1 url: https://github.com/ros2-gbp/flir_camera_driver-release.git version: 3.0.5 spinnaker_synchronized_camera_driver: + dependencies: + - ament_cmake + - ament_cmake_black + - ament_cmake_clang_format + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - rclcpp + - rclcpp_components + - spinnaker_camera_driver + repository: https://github.com/ros-drivers/flir_camera_driver tag: release/rolling/spinnaker_synchronized_camera_driver/3.0.5-1 url: https://github.com/ros2-gbp/flir_camera_driver-release.git version: 3.0.5 splsm_7: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/ros-sports/r2r_spl tag: release/rolling/splsm_7/3.0.1-4 url: https://github.com/ros2-gbp/r2r_spl-release.git version: 3.0.1 splsm_7_conversion: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - splsm_7 + repository: https://github.com/ros-sports/r2r_spl tag: release/rolling/splsm_7_conversion/3.0.1-4 url: https://github.com/ros2-gbp/r2r_spl-release.git version: 3.0.1 srdfdom: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_python + - ament_lint_auto + - ament_lint_cmake + - console_bridge_vendor + - urdf + - urdfdom_headers + - urdfdom_py + repository: https://github.com/ros-planning/srdfdom tag: release/rolling/srdfdom/2.0.9-2 url: https://github.com/ros2-gbp/srdfdom-release.git version: 2.0.9 sros2: + dependencies: + - ament_copyright + - ament_flake8 + - ament_index_python + - ament_mypy + - ament_pep257 + - rclpy + - ros2cli + - ros_testing + - test_msgs + repository: https://github.com/ros2/sros2 tag: release/rolling/sros2/0.17.0-1 url: https://github.com/ros2-gbp/sros2-release.git version: 0.17.0 sros2_cmake: + dependencies: + - ament_cmake + - ament_cmake_test + - ament_lint_auto + - ament_lint_common + - ros2cli + - sros2 + repository: https://github.com/ros2/sros2 tag: release/rolling/sros2_cmake/0.17.0-1 url: https://github.com/ros2-gbp/sros2-release.git version: 0.17.0 state_interfaces_broadcaster: - tag: release/rolling/state_interfaces_broadcaster/6.9.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - backward_ros + - control_msgs + - controller_interface + - controller_manager + - generate_parameter_library + - hardware_interface + - pluginlib + - rclcpp + - rclcpp_lifecycle + - realtime_tools + - ros2_control_cmake + - ros2_control_test_assets + repository: https://github.com/ros-controls/ros2_controllers + tag: release/rolling/state_interfaces_broadcaster/6.10.0-1 url: https://github.com/ros2-gbp/ros2_controllers-release.git - version: 6.9.0 + version: 6.10.0 statistics_msgs: + dependencies: + - ament_cmake + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/ros2/rcl_interfaces tag: release/rolling/statistics_msgs/2.5.1-1 url: https://github.com/ros2-gbp/rcl_interfaces-release.git version: 2.5.1 std_msgs: - tag: release/rolling/std_msgs/5.10.1-1 + dependencies: + - ament_cmake + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/ros2/common_interfaces + tag: release/rolling/std_msgs/5.10.2-1 url: https://github.com/ros2-gbp/common_interfaces-release.git - version: 5.10.1 + version: 5.10.2 std_srvs: - tag: release/rolling/std_srvs/5.10.1-1 + dependencies: + - ament_cmake + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/ros2/common_interfaces + tag: release/rolling/std_srvs/5.10.2-1 url: https://github.com/ros2-gbp/common_interfaces-release.git - version: 5.10.1 + version: 5.10.2 steering_controllers_library: - tag: release/rolling/steering_controllers_library/6.9.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - backward_ros + - control_msgs + - controller_interface + - controller_manager + - generate_parameter_library + - geometry_msgs + - hardware_interface + - nav_msgs + - pluginlib + - rclcpp + - rclcpp_lifecycle + - rcpputils + - realtime_tools + - ros2_control_cmake + - ros2_control_test_assets + - std_srvs + - tf2 + - tf2_geometry_msgs + - tf2_msgs + repository: https://github.com/ros-controls/ros2_controllers + tag: release/rolling/steering_controllers_library/6.10.0-1 url: https://github.com/ros2-gbp/ros2_controllers-release.git - version: 6.9.0 + version: 6.10.0 steering_functions: + dependencies: + - ros_environment + repository: https://github.com/hbanzhaf/steering_functions tag: release/rolling/steering_functions/0.3.0-2 url: https://github.com/ros2-gbp/steering_functions-release.git version: 0.3.0 stereo_image_proc: + dependencies: + - ament_cmake_auto + - ament_cmake_pytest + - ament_lint_auto + - ament_lint_common + - cv_bridge + - image_geometry + - image_proc + - image_transport + - launch + - launch_ros + - launch_testing + - launch_testing_ament_cmake + - message_filters + - python_cmake_module + - rclcpp + - rclcpp_components + - rclpy + - ros_testing + - sensor_msgs + - stereo_msgs + repository: https://github.com/ros-perception/image_pipeline tag: release/rolling/stereo_image_proc/8.0.1-1 url: https://github.com/ros2-gbp/image_pipeline-release.git version: 8.0.1 stereo_msgs: - tag: release/rolling/stereo_msgs/5.10.1-1 + dependencies: + - ament_cmake + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + - std_msgs + repository: https://github.com/ros2/common_interfaces + tag: release/rolling/stereo_msgs/5.10.2-1 url: https://github.com/ros2-gbp/common_interfaces-release.git - version: 5.10.1 + version: 5.10.2 stomp: + dependencies: + - ros_industrial_cmake_boilerplate + repository: https://github.com/ros-industrial/stomp tag: release/rolling/stomp/0.1.2-4 url: https://github.com/ros2-gbp/stomp-release.git version: 0.1.2 swri_cli_tools: - tag: release/rolling/swri_cli_tools/3.9.1-1 + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - marti_introspection_msgs + - rcl_interfaces + - rclpy + - ros2cli + - ros2node + - ros2param + - ros2topic + repository: https://github.com/swri-robotics/marti_common + tag: release/rolling/swri_cli_tools/3.12.0-1 url: https://github.com/ros2-gbp/marti_common-release.git - version: 3.9.1 + version: 3.12.0 swri_console: - tag: release/rolling/swri_console/2.3.0-1 + dependencies: + - ament_cmake + - rcl_interfaces + - rclcpp + - rcutils + - rmw + - rosbag2_storage + - rosbag2_storage_mcap + - rosbag2_transport + repository: https://github.com/swri-robotics/swri_console + tag: release/rolling/swri_console/2.4.0-1 url: https://github.com/ros2-gbp/swri_console-release.git - version: 2.3.0 + version: 2.4.0 swri_console_util: - tag: release/rolling/swri_console_util/3.9.1-1 + dependencies: + - ament_cmake + - rclcpp + repository: https://github.com/swri-robotics/marti_common + tag: release/rolling/swri_console_util/3.12.0-1 url: https://github.com/ros2-gbp/marti_common-release.git - version: 3.9.1 + version: 3.12.0 swri_dbw_interface: - tag: release/rolling/swri_dbw_interface/3.9.1-1 + dependencies: + - ament_cmake + repository: https://github.com/swri-robotics/marti_common + tag: release/rolling/swri_dbw_interface/3.12.0-1 url: https://github.com/ros2-gbp/marti_common-release.git - version: 3.9.1 + version: 3.12.0 swri_geometry_util: - tag: release/rolling/swri_geometry_util/3.9.1-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - tf2 + repository: https://github.com/swri-robotics/marti_common + tag: release/rolling/swri_geometry_util/3.12.0-1 url: https://github.com/ros2-gbp/marti_common-release.git - version: 3.9.1 + version: 3.12.0 swri_image_util: - tag: release/rolling/swri_image_util/3.9.1-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_index_cpp + - cv_bridge + - image_transport + - message_filters + - rcl_interfaces + - rclcpp + - rclcpp_components + - sensor_msgs + - swri_geometry_util + - swri_math_util + - swri_opencv_util + - tf2 + repository: https://github.com/swri-robotics/marti_common + tag: release/rolling/swri_image_util/3.12.0-1 url: https://github.com/ros2-gbp/marti_common-release.git - version: 3.9.1 + version: 3.12.0 swri_math_util: - tag: release/rolling/swri_math_util/3.9.1-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - rclcpp + repository: https://github.com/swri-robotics/marti_common + tag: release/rolling/swri_math_util/3.12.0-1 url: https://github.com/ros2-gbp/marti_common-release.git - version: 3.9.1 + version: 3.12.0 swri_opencv_util: - tag: release/rolling/swri_opencv_util/3.9.1-1 + dependencies: + - ament_cmake + - swri_math_util + repository: https://github.com/swri-robotics/marti_common + tag: release/rolling/swri_opencv_util/3.12.0-1 url: https://github.com/ros2-gbp/marti_common-release.git - version: 3.9.1 + version: 3.12.0 swri_route_util: - tag: release/rolling/swri_route_util/3.9.1-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - geometry_msgs + - marti_common_msgs + - marti_nav_msgs + - rclcpp + - rclcpp_components + - std_msgs + - swri_geometry_util + - swri_math_util + - swri_transform_util + - tf2_geometry_msgs + - visualization_msgs + repository: https://github.com/swri-robotics/marti_common + tag: release/rolling/swri_route_util/3.12.0-1 url: https://github.com/ros2-gbp/marti_common-release.git - version: 3.9.1 + version: 3.12.0 swri_serial_util: - tag: release/rolling/swri_serial_util/3.9.1-1 + dependencies: + - ament_cmake + repository: https://github.com/swri-robotics/marti_common + tag: release/rolling/swri_serial_util/3.12.0-1 url: https://github.com/ros2-gbp/marti_common-release.git - version: 3.9.1 + version: 3.12.0 swri_transform_util: - tag: release/rolling/swri_transform_util/3.9.1-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_python + - ament_index_cpp + - diagnostic_msgs + - geographic_msgs + - geometry_msgs + - gps_msgs + - launch_ros + - launch_testing + - launch_testing_ament_cmake + - marti_nav_msgs + - rcl_interfaces + - rclcpp + - rclcpp_components + - rclpy + - sensor_msgs + - swri_math_util + - tf2 + - tf2_geometry_msgs + - tf2_ros + - yaml_cpp_vendor + repository: https://github.com/swri-robotics/marti_common + tag: release/rolling/swri_transform_util/3.12.0-1 url: https://github.com/ros2-gbp/marti_common-release.git - version: 3.9.1 + version: 3.12.0 sync_tooling_msgs: + dependencies: + - ament_cmake + repository: https://github.com/tier4/sync_tooling_msgs tag: release/rolling/sync_tooling_msgs/0.2.11-1 url: https://github.com/ros2-gbp/sync_tooling_msgs-release.git version: 0.2.11 system_fingerprint: + dependencies: + - rcl_interfaces + - rclpy + - ros2action + - ros2cli + - ros2node + - ros2param + - ros2topic + repository: https://github.com/MetroRobots/ros_system_fingerprint tag: release/rolling/system_fingerprint/0.7.0-4 url: https://github.com/ros2-gbp/ros_system_fingerprint-release.git version: 0.7.0 -system_modes: - tag: release/rolling/system_modes/0.9.0-6 - url: https://github.com/ros2-gbp/system_modes-release.git - version: 0.9.0 -system_modes_examples: - tag: release/rolling/system_modes_examples/0.9.0-6 - url: https://github.com/ros2-gbp/system_modes-release.git - version: 0.9.0 -system_modes_msgs: - tag: release/rolling/system_modes_msgs/0.9.0-6 - url: https://github.com/ros2-gbp/system_modes-release.git - version: 0.9.0 system_webview: + dependencies: + - ament_cmake + - ament_index_cpp + - ament_lint_auto + - ament_lint_common + - rclcpp + - rosbridge_server + repository: https://github.com/namo-robotics/ros2_system_webview tag: release/rolling/system_webview/0.0.3-2 url: https://github.com/ros2-gbp/system_webview-release.git version: 0.0.3 tango_icons_vendor: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + repository: https://github.com/ros-visualization/tango_icons_vendor tag: release/rolling/tango_icons_vendor/0.6.0-1 url: https://github.com/ros2-gbp/tango_icons_vendor-release.git version: 0.6.0 tcb_span: + dependencies: + - ament_cmake + - ament_cmake_gtest + repository: https://github.com/PickNikRobotics/cpp_polyfills tag: release/rolling/tcb_span/2.0.3-1 url: https://github.com/ros2-gbp/cpp_polyfills-release.git version: 2.0.3 teleop_tools: + dependencies: + - ament_cmake + - joy_teleop + - key_teleop + - teleop_tools_msgs + repository: https://github.com/ros-teleop/teleop_tools tag: release/rolling/teleop_tools/2.0.0-2 url: https://github.com/ros2-gbp/teleop_tools-release.git version: 2.0.0 teleop_tools_msgs: + dependencies: + - action_msgs + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/ros-teleop/teleop_tools tag: release/rolling/teleop_tools_msgs/2.0.0-2 url: https://github.com/ros2-gbp/teleop_tools-release.git version: 2.0.0 teleop_twist_joy: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - geometry_msgs + - joy + - launch_ros + - launch_testing_ament_cmake + - launch_testing_ros + - rclcpp + - rclcpp_components + - sensor_msgs + repository: https://github.com/ros2/teleop_twist_joy tag: release/rolling/teleop_twist_joy/2.6.5-2 url: https://github.com/ros2-gbp/teleop_twist_joy-release.git version: 2.6.5 teleop_twist_keyboard: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - geometry_msgs + - rcl_interfaces + - rclpy + repository: https://github.com/ros2/teleop_twist_keyboard tag: release/rolling/teleop_twist_keyboard/2.4.1-2 url: https://github.com/ros2-gbp/teleop_twist_keyboard-release.git version: 2.4.1 tensor_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/ros2/rosidl_buffer_backends tag: release/rolling/tensor_msgs/0.1.2-1 url: https://github.com/ros2-gbp/rosidl_buffer_backends-release.git version: 0.1.2 tensorrt_cmake_module: + dependencies: + - ament_cmake + - ament_cmake_copyright + - ament_cmake_lint_cmake + - ament_cmake_xmllint + repository: https://github.com/tier4/tensorrt_cmake_module tag: release/rolling/tensorrt_cmake_module/0.0.5-2 url: https://github.com/ros2-gbp/tensorrt_cmake_module-release.git version: 0.0.5 test_apex_test_tools: + dependencies: + - ament_cmake_auto + - ament_lint_auto + - apex_test_tools + repository: https://gitlab.com/ApexAI/apex_test_tools tag: release/rolling/test_apex_test_tools/0.0.2-9 url: https://github.com/ros2-gbp/apex_test_tools-release.git version: 0.0.2 test_interface_files: + dependencies: + - ament_cmake_core + repository: https://github.com/ros2/test_interface_files tag: release/rolling/test_interface_files/0.15.0-1 url: https://github.com/ros2-gbp/test_interface_files-release.git version: 0.15.0 test_msgs: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_mypy + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + - test_interface_files + repository: https://github.com/ros2/rcl_interfaces tag: release/rolling/test_msgs/2.5.1-1 url: https://github.com/ros2-gbp/rcl_interfaces-release.git version: 2.5.1 tf2: + dependencies: + - ament_cmake + - ament_cmake_copyright + - ament_cmake_cppcheck + - ament_cmake_cpplint + - ament_cmake_google_benchmark + - ament_cmake_gtest + - ament_cmake_lint_cmake + - ament_cmake_ros + - ament_cmake_ros_core + - ament_cmake_uncrustify + - ament_cmake_xmllint + - builtin_interfaces + - geometry_msgs + - rcutils + - rosidl_runtime_cpp + repository: https://github.com/ros2/geometry2 tag: release/rolling/tf2/0.46.4-1 url: https://github.com/ros2-gbp/geometry2-release.git version: 0.46.4 tf2_2d: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - rclcpp + - tf2 + - tf2_geometry_msgs + - tf2_ros + repository: https://github.com/locusrobotics/tf2_2d tag: release/rolling/tf2_2d/1.6.2-1 url: https://github.com/ros2-gbp/tf2_2d-release.git version: 1.6.2 tf2_bullet: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - geometry_msgs + - tf2 + - tf2_ros + repository: https://github.com/ros2/geometry2 tag: release/rolling/tf2_bullet/0.46.4-1 url: https://github.com/ros2-gbp/geometry2-release.git version: 0.46.4 tf2_eigen: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - geometry_msgs + - tf2 + - tf2_ros + repository: https://github.com/ros2/geometry2 tag: release/rolling/tf2_eigen/0.46.4-1 url: https://github.com/ros2-gbp/geometry2-release.git version: 0.46.4 tf2_eigen_kdl: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - tf2 + repository: https://github.com/ros2/geometry2 tag: release/rolling/tf2_eigen_kdl/0.46.4-1 url: https://github.com/ros2-gbp/geometry2-release.git version: 0.46.4 tf2_geometry_msgs: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - geometry_msgs + - rclcpp + - tf2 + - tf2_ros + - tf2_ros_py + repository: https://github.com/ros2/geometry2 tag: release/rolling/tf2_geometry_msgs/0.46.4-1 url: https://github.com/ros2-gbp/geometry2-release.git version: 0.46.4 tf2_kdl: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_python + - ament_cmake_ros_core + - builtin_interfaces + - eigen3_cmake_module + - geometry_msgs + - rclcpp + - tf2 + - tf2_ros + - tf2_ros_py + repository: https://github.com/ros2/geometry2 tag: release/rolling/tf2_kdl/0.46.4-1 url: https://github.com/ros2-gbp/geometry2-release.git version: 0.46.4 tf2_msgs: + dependencies: + - ament_cmake + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/ros2/geometry2 tag: release/rolling/tf2_msgs/0.46.4-1 url: https://github.com/ros2-gbp/geometry2-release.git version: 0.46.4 tf2_py: + dependencies: + - ament_cmake + - ament_cmake_pytest + - ament_cmake_python + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - rclpy + - rpyutils + - tf2 + repository: https://github.com/ros2/geometry2 tag: release/rolling/tf2_py/0.46.4-1 url: https://github.com/ros2-gbp/geometry2-release.git version: 0.46.4 tf2_ros: + dependencies: + - ament_cmake + - ament_cmake_gen_version_h + - ament_cmake_ros + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - message_filters + - rcl_interfaces + - rclcpp + - rclcpp_action + - rclcpp_components + - rcpputils + - rcutils + - rosgraph_msgs + - tf2 + - tf2_msgs + repository: https://github.com/ros2/geometry2 tag: release/rolling/tf2_ros/0.46.4-1 url: https://github.com/ros2-gbp/geometry2-release.git version: 0.46.4 tf2_ros_py: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - geometry_msgs + - rclpy + - rmw_test_fixture_implementation + - sensor_msgs + - std_msgs + - tf2_msgs + - tf2_py + repository: https://github.com/ros2/geometry2 tag: release/rolling/tf2_ros_py/0.46.4-1 url: https://github.com/ros2-gbp/geometry2-release.git version: 0.46.4 tf2_sensor_msgs: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - eigen3_cmake_module + - geometry_msgs + - rclcpp + - sensor_msgs + - sensor_msgs_py + - std_msgs + - tf2 + - tf2_geometry_msgs + - tf2_ros + - tf2_ros_py + repository: https://github.com/ros2/geometry2 tag: release/rolling/tf2_sensor_msgs/0.46.4-1 url: https://github.com/ros2-gbp/geometry2-release.git version: 0.46.4 tf2_tools: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - ament_xmllint + - rclpy + - tf2_msgs + - tf2_py + - tf2_ros_py + repository: https://github.com/ros2/geometry2 tag: release/rolling/tf2_tools/0.46.4-1 url: https://github.com/ros2-gbp/geometry2-release.git version: 0.46.4 tf2_web_republisher: + dependencies: + - ament_cmake + - ament_cmake_gmock + - geometry_msgs + - rclcpp + - rclcpp_action + - rclcpp_components + - tf2 + - tf2_ros + - tf2_web_republisher_interfaces + repository: https://github.com/RobotWebTools/tf2_web_republisher tag: release/rolling/tf2_web_republisher/1.0.0-2 url: https://github.com/ros2-gbp/tf2_web_republisher-release.git version: 1.0.0 tf2_web_republisher_interfaces: + dependencies: + - action_msgs + - ament_cmake + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/RobotWebTools/tf2_web_republisher tag: release/rolling/tf2_web_republisher_interfaces/1.0.0-2 url: https://github.com/ros2-gbp/tf2_web_republisher-release.git version: 1.0.0 tf_transformations: + dependencies: + - ament_flake8 + - ament_pep257 + repository: https://github.com/DLu/tf_transformations tag: release/rolling/tf_transformations/1.1.1-2 url: https://github.com/ros2-gbp/tf_transformations_release.git version: 1.1.1 tf_tree_terminal: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - geometry_msgs + - rclpy + - tf2_ros + repository: https://github.com/Tanneguydv/tf_tree_terminal tag: release/rolling/tf_tree_terminal/2.0.0-3 url: https://github.com/ros2-gbp/tf_tree_terminal-release.git version: 2.0.0 theora_image_transport: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - cv_bridge + - image_transport + - pluginlib + - rclcpp + - rcutils + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + - std_msgs + repository: https://github.com/ros-perception/image_transport_plugins tag: release/rolling/theora_image_transport/7.0.1-1 url: https://github.com/ros2-gbp/image_transport_plugins-release.git version: 7.0.1 tile_map: - tag: release/rolling/tile_map/4.0.3-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - mapviz + - pluginlib + - rclcpp + - swri_math_util + - swri_transform_util + - tf2 + repository: https://github.com/swri-robotics/mapviz + tag: release/rolling/tile_map/4.1.2-1 url: https://github.com/ros2-gbp/mapviz-release.git - version: 4.0.3 + version: 4.1.2 tinyspline_vendor: + dependencies: + - ament_cmake + - ament_cmake_vendor_package + - ament_lint_auto + - ament_lint_common + repository: https://github.com/wep21/tinyspline_vendor tag: release/rolling/tinyspline_vendor/0.6.1-2 url: https://github.com/ros2-gbp/tinyspline_vendor-release.git version: 0.6.1 tinyxml2_vendor: + dependencies: + - ament_cmake + repository: https://github.com/ros2/tinyxml2_vendor tag: release/rolling/tinyxml2_vendor/0.11.3-2 url: https://github.com/ros2-gbp/tinyxml2_vendor-release.git version: 0.11.3 tinyxml_vendor: + dependencies: + - ament_cmake + repository: https://github.com/ros2/tinyxml_vendor tag: release/rolling/tinyxml_vendor/0.10.0-3 url: https://github.com/ros2-gbp/tinyxml_vendor-release.git version: 0.10.0 tlsf: - tag: release/rolling/tlsf/0.12.0-1 + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + repository: https://github.com/ros2/tlsf + tag: release/rolling/tlsf/0.12.1-1 url: https://github.com/ros2-gbp/tlsf-release.git - version: 0.12.0 + version: 0.12.1 tlsf_cpp: + dependencies: + - ament_cmake + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - rcl + - rclcpp + - rcpputils + - rmw + - rmw_implementation_cmake + - std_msgs + - tlsf + repository: https://github.com/ros2/realtime_support tag: release/rolling/tlsf_cpp/1.0.1-1 url: https://github.com/ros2-gbp/realtime_support-release.git version: 1.0.1 topic_monitor: + dependencies: + - ament_flake8 + - ament_mypy + - ament_pep257 + - ament_xmllint + - example_interfaces + - launch + - launch_ros + - rclpy + - std_msgs + repository: https://github.com/ros2/demos tag: release/rolling/topic_monitor/0.38.0-1 url: https://github.com/ros2-gbp/demos-release.git version: 0.38.0 topic_statistics_demo: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - example_interfaces + - rclcpp + - rcutils + - sensor_msgs + - statistics_msgs + repository: https://github.com/ros2/demos tag: release/rolling/topic_statistics_demo/0.38.0-1 url: https://github.com/ros2-gbp/demos-release.git version: 0.38.0 topic_tools: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_python + - ament_lint_auto + - ament_lint_common + - rclcpp + - rclcpp_components + - rclpy + - ros2cli + - ros2topic + - rosidl_default_generators + - rosidl_runtime_py + - std_msgs + - topic_tools_interfaces + repository: https://github.com/ros-tooling/topic_tools tag: release/rolling/topic_tools/1.6.0-1 url: https://github.com/ros2-gbp/topic_tools-release.git version: 1.6.0 topic_tools_interfaces: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/ros-tooling/topic_tools tag: release/rolling/topic_tools_interfaces/1.6.0-1 url: https://github.com/ros2-gbp/topic_tools-release.git version: 1.6.0 toppra: - tag: release/rolling/toppra/0.6.9-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_python + repository: https://github.com/hungpham2511/toppra + tag: release/rolling/toppra/0.6.10-1 url: https://github.com/ros2-gbp/toppra-release.git - version: 0.6.9 + version: 0.6.10 torch_conversions: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - launch_testing_ament_cmake + - libtorch_vendor + - rclcpp + - rclcpp_components + - rcutils + - rmw + - rosidl_buffer + - std_msgs + - tensor_msgs + repository: https://github.com/ros2/rosidl_buffer_backends tag: release/rolling/torch_conversions/0.1.2-1 url: https://github.com/ros2-gbp/rosidl_buffer_backends-release.git version: 0.1.2 trac_ik: + dependencies: + - ament_cmake + - trac_ik_kinematics_plugin + - trac_ik_lib + repository: https://github.com/traclabs/trac_ik tag: release/rolling/trac_ik/2.2.0-2 url: https://github.com/ros2-gbp/trac_ik-release.git version: 2.2.0 trac_ik_kinematics_plugin: + dependencies: + - ament_cmake + - class_loader + - generate_parameter_library + - moveit_core + - pluginlib + - rclcpp + - tf2_kdl + - trac_ik_lib + - urdf + repository: https://github.com/traclabs/trac_ik tag: release/rolling/trac_ik_kinematics_plugin/2.2.0-2 url: https://github.com/ros2-gbp/trac_ik-release.git version: 2.2.0 trac_ik_lib: + dependencies: + - ament_cmake + - eigen3_cmake_module + - geometry_msgs + - kdl_parser + - rclcpp + - urdf + repository: https://github.com/traclabs/trac_ik tag: release/rolling/trac_ik_lib/2.2.0-2 url: https://github.com/ros2-gbp/trac_ik-release.git version: 2.2.0 tracetools: + dependencies: + - ament_cmake + - ament_cmake_gen_version_h + - ament_cmake_gtest + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + repository: https://github.com/ros2/ros2_tracing tag: release/rolling/tracetools/9.0.0-1 url: https://github.com/ros2-gbp/ros2_tracing-release.git version: 9.0.0 tracetools_acceleration: + dependencies: + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + repository: https://github.com/ros-acceleration/tracetools_acceleration tag: release/rolling/tracetools_acceleration/0.4.1-4 url: https://github.com/ros2-gbp/tracetools_acceleration-release.git version: 0.4.1 tracetools_analysis: + dependencies: + - ament_copyright + - ament_flake8 + - ament_mypy + - ament_pep257 + - ament_xmllint + - tracetools_read + - tracetools_trace + repository: https://github.com/ros-tracing/tracetools_analysis tag: release/rolling/tracetools_analysis/3.1.0-2 url: https://github.com/ros2-gbp/tracetools_analysis-release.git version: 3.1.0 tracetools_image_pipeline: + dependencies: + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + repository: https://github.com/ros-perception/image_pipeline tag: release/rolling/tracetools_image_pipeline/8.0.1-1 url: https://github.com/ros2-gbp/image_pipeline-release.git version: 8.0.1 tracetools_launch: + dependencies: + - ament_copyright + - ament_flake8 + - ament_mypy + - ament_pep257 + - ament_xmllint + - launch + - launch_ros + - tracetools_trace + repository: https://github.com/ros2/ros2_tracing tag: release/rolling/tracetools_launch/9.0.0-1 url: https://github.com/ros2-gbp/ros2_tracing-release.git version: 9.0.0 tracetools_read: + dependencies: + - ament_copyright + - ament_flake8 + - ament_mypy + - ament_pep257 + - ament_xmllint + repository: https://github.com/ros2/ros2_tracing tag: release/rolling/tracetools_read/9.0.0-1 url: https://github.com/ros2-gbp/ros2_tracing-release.git version: 9.0.0 tracetools_test: + dependencies: + - ament_copyright + - ament_flake8 + - ament_mypy + - ament_pep257 + - ament_xmllint + - launch + - launch_ros + - tracetools_launch + - tracetools_read + - tracetools_trace + repository: https://github.com/ros2/ros2_tracing tag: release/rolling/tracetools_test/9.0.0-1 url: https://github.com/ros2-gbp/ros2_tracing-release.git version: 9.0.0 tracetools_trace: + dependencies: + - ament_copyright + - ament_flake8 + - ament_mypy + - ament_pep257 + - ament_xmllint + - lttngpy + repository: https://github.com/ros2/ros2_tracing tag: release/rolling/tracetools_trace/9.0.0-1 url: https://github.com/ros2-gbp/ros2_tracing-release.git version: 9.0.0 trajectory_msgs: - tag: release/rolling/trajectory_msgs/5.10.1-1 + dependencies: + - ament_cmake + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ros2/common_interfaces + tag: release/rolling/trajectory_msgs/5.10.2-1 url: https://github.com/ros2-gbp/common_interfaces-release.git - version: 5.10.1 + version: 5.10.2 transmission_interface: - tag: release/rolling/transmission_interface/6.9.0-1 + dependencies: + - ament_cmake + - ament_cmake_gen_version_h + - ament_cmake_gmock + - hardware_interface + - pluginlib + - ros2_control_cmake + - ros2_control_test_assets + repository: https://github.com/ros-controls/ros2_control + tag: release/rolling/transmission_interface/6.12.0-1 url: https://github.com/ros2-gbp/ros2_control-release.git - version: 6.9.0 + version: 6.12.0 tricycle_controller: - tag: release/rolling/tricycle_controller/6.9.0-1 + dependencies: + - ackermann_msgs + - ament_cmake + - ament_cmake_gmock + - backward_ros + - builtin_interfaces + - controller_interface + - controller_manager + - generate_parameter_library + - geometry_msgs + - hardware_interface + - hardware_interface_testing + - nav_msgs + - pluginlib + - rclcpp + - rclcpp_lifecycle + - rcpputils + - realtime_tools + - ros2_control_cmake + - ros2_control_test_assets + - std_srvs + - tf2 + - tf2_msgs + repository: https://github.com/ros-controls/ros2_controllers + tag: release/rolling/tricycle_controller/6.10.0-1 url: https://github.com/ros2-gbp/ros2_controllers-release.git - version: 6.9.0 + version: 6.10.0 tricycle_steering_controller: - tag: release/rolling/tricycle_steering_controller/6.9.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - backward_ros + - control_msgs + - controller_interface + - controller_manager + - generate_parameter_library + - hardware_interface + - hardware_interface_testing + - pluginlib + - rclcpp + - rclcpp_lifecycle + - ros2_control_cmake + - ros2_control_test_assets + - std_srvs + - steering_controllers_library + repository: https://github.com/ros-controls/ros2_controllers + tag: release/rolling/tricycle_steering_controller/6.10.0-1 url: https://github.com/ros2-gbp/ros2_controllers-release.git - version: 6.9.0 + version: 6.10.0 tsid: + dependencies: + - ament_cmake + - eigenpy + - eiquadprog + - jrl_cmakemodules + - pinocchio + repository: https://github.com/stack-of-tasks/tsid tag: release/rolling/tsid/1.10.0-1 url: https://github.com/ros2-gbp/tsid-release.git version: 1.10.0 turbojpeg_compressed_image_transport: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - cv_bridge + - image_transport + repository: https://github.com/wep21/turbojpeg_compressed_image_transport tag: release/rolling/turbojpeg_compressed_image_transport/0.3.0-2 url: https://github.com/ros2-gbp/turbojpeg_compressed_image_transport-release.git version: 0.3.0 turtle_nest: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - tinyxml2_vendor + repository: https://github.com/Jannkar/turtle_nest tag: release/rolling/turtle_nest/1.2.1-2 url: https://github.com/ros2-gbp/turtle_nest-release.git version: 1.2.1 turtle_tf2_cpp: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - geometry_msgs + - launch + - launch_ros + - message_filters + - rclcpp + - tf2 + - tf2_geometry_msgs + - tf2_ros + - turtlesim_msgs + repository: https://github.com/ros/geometry_tutorials tag: release/rolling/turtle_tf2_cpp/0.7.0-2 url: https://github.com/ros2-gbp/geometry_tutorials-release.git version: 0.7.0 turtle_tf2_py: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - geometry_msgs + - launch + - launch_ros + - rclpy + - tf2_ros + - turtlesim_msgs + repository: https://github.com/ros/geometry_tutorials tag: release/rolling/turtle_tf2_py/0.7.0-2 url: https://github.com/ros2-gbp/geometry_tutorials-release.git version: 0.7.0 turtlebot3_applications_msgs: + dependencies: + - ament_cmake + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + - std_msgs + repository: https://github.com/ROBOTIS-GIT/turtlebot3_applications_msgs tag: release/rolling/turtlebot3_applications_msgs/1.0.1-2 url: https://github.com/ros2-gbp/turtlebot3_applications_msgs-release.git version: 1.0.1 turtlebot3_autorace: + dependencies: + - ament_cmake + - turtlebot3_autorace_camera + - turtlebot3_autorace_detect + - turtlebot3_autorace_mission + repository: https://github.com/ROBOTIS-GIT/turtlebot3_autorace tag: release/rolling/turtlebot3_autorace/1.2.2-2 url: https://github.com/ros2-gbp/turtlebot3_autorace-release.git version: 1.2.2 turtlebot3_autorace_camera: + dependencies: + - cv_bridge + - rclpy + - sensor_msgs + - std_msgs + repository: https://github.com/ROBOTIS-GIT/turtlebot3_autorace tag: release/rolling/turtlebot3_autorace_camera/1.2.2-2 url: https://github.com/ros2-gbp/turtlebot3_autorace-release.git version: 1.2.2 turtlebot3_autorace_detect: + dependencies: + - rclpy + - sensor_msgs + - std_msgs + repository: https://github.com/ROBOTIS-GIT/turtlebot3_autorace tag: release/rolling/turtlebot3_autorace_detect/1.2.2-2 url: https://github.com/ros2-gbp/turtlebot3_autorace-release.git version: 1.2.2 turtlebot3_autorace_mission: + dependencies: + - rclpy + - sensor_msgs + - std_msgs + repository: https://github.com/ROBOTIS-GIT/turtlebot3_autorace tag: release/rolling/turtlebot3_autorace_mission/1.2.2-2 url: https://github.com/ros2-gbp/turtlebot3_autorace-release.git version: 1.2.2 turtlebot3_fake_node: + dependencies: + - ament_cmake + - geometry_msgs + - nav_msgs + - rclcpp + - robot_state_publisher + - sensor_msgs + - tf2 + - tf2_msgs + - turtlebot3_msgs + repository: https://github.com/ROBOTIS-GIT/turtlebot3_simulations tag: release/rolling/turtlebot3_fake_node/2.3.7-2 url: https://github.com/ros2-gbp/turtlebot3_simulations-release.git version: 2.3.7 turtlebot3_gazebo: + dependencies: + - ament_cmake + - geometry_msgs + - gz_math_vendor + - gz_plugin_vendor + - gz_sim_vendor + - nav_msgs + - rclcpp + - ros_gz_bridge + - ros_gz_image + - ros_gz_sim + - sensor_msgs + - tf2 + repository: https://github.com/ROBOTIS-GIT/turtlebot3_simulations tag: release/rolling/turtlebot3_gazebo/2.3.7-2 url: https://github.com/ros2-gbp/turtlebot3_simulations-release.git version: 2.3.7 turtlebot3_msgs: + dependencies: + - action_msgs + - ament_cmake + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ROBOTIS-GIT/turtlebot3_msgs tag: release/rolling/turtlebot3_msgs/2.4.0-2 url: https://github.com/ros2-gbp/turtlebot3_msgs-release.git version: 2.4.0 turtlebot3_simulations: + dependencies: + - ament_cmake + - turtlebot3_fake_node + - turtlebot3_gazebo + repository: https://github.com/ROBOTIS-GIT/turtlebot3_simulations tag: release/rolling/turtlebot3_simulations/2.3.7-2 url: https://github.com/ros2-gbp/turtlebot3_simulations-release.git version: 2.3.7 turtlesim: - tag: release/rolling/turtlesim/1.11.2-1 + dependencies: + - ament_cmake + - ament_index_cpp + - ament_lint_auto + - ament_lint_common + - geometry_msgs + - rclcpp + - rclcpp_action + - std_msgs + - std_srvs + - turtlesim_msgs + repository: https://github.com/ros/ros_tutorials + tag: release/rolling/turtlesim/1.11.3-1 url: https://github.com/ros2-gbp/ros_tutorials-release.git - version: 1.11.2 + version: 1.11.3 turtlesim_msgs: - tag: release/rolling/turtlesim_msgs/1.11.2-1 + dependencies: + - ament_cmake + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/ros/ros_tutorials + tag: release/rolling/turtlesim_msgs/1.11.3-1 url: https://github.com/ros2-gbp/ros_tutorials-release.git - version: 1.11.2 + version: 1.11.3 tuw_airskin_msgs: + dependencies: + - ament_cmake + - ament_cmake_cppcheck + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/tuw-robotics/tuw_msgs tag: release/rolling/tuw_airskin_msgs/0.2.6-2 url: https://github.com/ros2-gbp/tuw_msgs-release.git version: 0.2.6 tuw_geo_msgs: + dependencies: + - ament_cmake + - ament_cmake_cppcheck + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - geographic_msgs + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/tuw-robotics/tuw_msgs tag: release/rolling/tuw_geo_msgs/0.2.6-2 url: https://github.com/ros2-gbp/tuw_msgs-release.git version: 0.2.6 tuw_geometry: + dependencies: + - ament_cmake + - ament_cmake_cppcheck + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - gtest_vendor + - rclcpp + - rclcpp_components + - sensor_msgs + - std_msgs + repository: https://github.com/tuw-robotics/tuw_geometry tag: release/rolling/tuw_geometry/0.1.4-2 url: https://github.com/ros2-gbp/tuw_geometry-release.git version: 0.1.4 tuw_geometry_msgs: + dependencies: + - ament_cmake + - ament_cmake_cppcheck + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/tuw-robotics/tuw_msgs tag: release/rolling/tuw_geometry_msgs/0.2.6-2 url: https://github.com/ros2-gbp/tuw_msgs-release.git version: 0.2.6 tuw_graph_msgs: + dependencies: + - ament_cmake + - ament_cmake_cppcheck + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/tuw-robotics/tuw_msgs tag: release/rolling/tuw_graph_msgs/0.2.6-2 url: https://github.com/ros2-gbp/tuw_msgs-release.git version: 0.2.6 tuw_msgs: + dependencies: + - ament_cmake + - ament_cmake_cppcheck + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - rclcpp + - rclcpp_components + - tuw_airskin_msgs + - tuw_geometry_msgs + - tuw_graph_msgs + - tuw_multi_robot_msgs + - tuw_nav_msgs + - tuw_object_map_msgs + - tuw_object_msgs + - tuw_std_msgs + repository: https://github.com/tuw-robotics/tuw_msgs tag: release/rolling/tuw_msgs/0.2.6-2 url: https://github.com/ros2-gbp/tuw_msgs-release.git version: 0.2.6 tuw_multi_robot_msgs: + dependencies: + - ament_cmake + - ament_cmake_cppcheck + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/tuw-robotics/tuw_msgs tag: release/rolling/tuw_multi_robot_msgs/0.2.6-2 url: https://github.com/ros2-gbp/tuw_msgs-release.git version: 0.2.6 tuw_nav_msgs: + dependencies: + - ament_cmake + - ament_cmake_cppcheck + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - nav_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/tuw-robotics/tuw_msgs tag: release/rolling/tuw_nav_msgs/0.2.6-2 url: https://github.com/ros2-gbp/tuw_msgs-release.git version: 0.2.6 tuw_object_map_msgs: + dependencies: + - ament_cmake + - ament_cmake_cppcheck + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - geographic_msgs + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/tuw-robotics/tuw_msgs tag: release/rolling/tuw_object_map_msgs/0.2.6-2 url: https://github.com/ros2-gbp/tuw_msgs-release.git version: 0.2.6 tuw_object_msgs: + dependencies: + - ament_cmake + - ament_cmake_cppcheck + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + - tuw_geo_msgs + - tuw_geometry_msgs + - tuw_std_msgs + repository: https://github.com/tuw-robotics/tuw_msgs tag: release/rolling/tuw_object_msgs/0.2.6-2 url: https://github.com/ros2-gbp/tuw_msgs-release.git version: 0.2.6 tuw_std_msgs: + dependencies: + - ament_cmake + - ament_cmake_cppcheck + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/tuw-robotics/tuw_msgs tag: release/rolling/tuw_std_msgs/0.2.6-2 url: https://github.com/ros2-gbp/tuw_msgs-release.git version: 0.2.6 tvm_vendor: + dependencies: + - ament_cmake + - ros_environment + repository: https://github.com/autowarefoundation/tvm_vendor tag: release/rolling/tvm_vendor/0.9.1-4 url: https://github.com/ros2-gbp/tvm_vendor-release.git version: 0.9.1 twist_mux: + dependencies: + - ament_cmake + - ament_cmake_xmllint + - ament_lint_auto + - ament_lint_common + - diagnostic_updater + - geometry_msgs + - launch + - launch_testing + - launch_testing_ament_cmake + - launch_testing_ros + - rclcpp + - std_msgs + - twist_mux_msgs + - visualization_msgs + repository: https://github.com/ros-teleop/twist_mux tag: release/rolling/twist_mux/4.5.1-2 url: https://github.com/ros2-gbp/twist_mux-release.git version: 4.5.1 twist_mux_msgs: + dependencies: + - action_msgs + - ament_cmake + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/ros-teleop/twist_mux_msgs tag: release/rolling/twist_mux_msgs/3.0.1-3 url: https://github.com/ros2-gbp/twist_mux_msgs-release.git version: 3.0.1 twist_stamper: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - geometry_msgs + - rclpy + - std_msgs + repository: https://github.com/joshnewans/twist_stamper tag: release/rolling/twist_stamper/0.0.5-2 url: https://github.com/ros2-gbp/twist_stamper-release.git version: 0.0.5 type_description_interfaces: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_core_generators + - rosidl_core_runtime + - service_msgs + repository: https://github.com/ros2/rcl_interfaces tag: release/rolling/type_description_interfaces/2.5.1-1 url: https://github.com/ros2-gbp/rcl_interfaces-release.git version: 2.5.1 ublox: + dependencies: + - ament_cmake + - ublox_gps + - ublox_msgs + - ublox_serialization + repository: https://github.com/KumarRobotics/ublox tag: release/rolling/ublox/3.0.0-2 url: https://github.com/ros2-gbp/ublox-release.git version: 3.0.0 ublox_dgnss: + dependencies: + - ament_cmake + - ntrip_client_node + - ublox_dgnss_node + - ublox_nav_sat_fix_hp_node + - ublox_ubx_interfaces + - ublox_ubx_msgs + repository: https://github.com/aussierobots/ublox_dgnss tag: release/rolling/ublox_dgnss/0.7.6-1 url: https://github.com/ros2-gbp/ublox_dgnss-release.git version: 0.7.6 ublox_dgnss_node: + dependencies: + - ament_cmake + - ament_cmake_copyright + - ament_cmake_cppcheck + - ament_cmake_uncrustify + - ament_index_cpp + - ament_lint_auto + - ament_lint_common + - rclcpp + - rclcpp_components + - rtcm_msgs + - std_msgs + - ublox_ubx_interfaces + - ublox_ubx_msgs + repository: https://github.com/aussierobots/ublox_dgnss tag: release/rolling/ublox_dgnss_node/0.7.6-1 url: https://github.com/ros2-gbp/ublox_dgnss-release.git version: 0.7.6 ublox_gps: + dependencies: + - ament_cmake_ros + - diagnostic_msgs + - diagnostic_updater + - geometry_msgs + - nmea_msgs + - rcl_interfaces + - rclcpp + - rclcpp_components + - rtcm_msgs + - sensor_msgs + - std_msgs + - tf2 + - ublox_msgs + - ublox_serialization + repository: https://github.com/KumarRobotics/ublox tag: release/rolling/ublox_gps/3.0.0-2 url: https://github.com/ros2-gbp/ublox-release.git version: 3.0.0 ublox_msgs: + dependencies: + - ament_cmake_ros + - rosidl_default_generators + - sensor_msgs + - std_msgs + - ublox_serialization + repository: https://github.com/KumarRobotics/ublox tag: release/rolling/ublox_msgs/3.0.0-2 url: https://github.com/ros2-gbp/ublox-release.git version: 3.0.0 ublox_nav_sat_fix_hp_node: + dependencies: + - ament_cmake + - ament_cmake_copyright + - ament_cmake_cppcheck + - ament_cmake_uncrustify + - ament_lint_auto + - ament_lint_common + - rclcpp + - rclcpp_components + - sensor_msgs + - std_msgs + - ublox_ubx_interfaces + - ublox_ubx_msgs + repository: https://github.com/aussierobots/ublox_dgnss tag: release/rolling/ublox_nav_sat_fix_hp_node/0.7.6-1 url: https://github.com/ros2-gbp/ublox_dgnss-release.git version: 0.7.6 ublox_serialization: + dependencies: + - ament_cmake + repository: https://github.com/KumarRobotics/ublox tag: release/rolling/ublox_serialization/3.0.0-2 url: https://github.com/ros2-gbp/ublox-release.git version: 3.0.0 ublox_ubx_interfaces: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + repository: https://github.com/aussierobots/ublox_dgnss tag: release/rolling/ublox_ubx_interfaces/0.7.6-1 url: https://github.com/ros2-gbp/ublox_dgnss-release.git version: 0.7.6 ublox_ubx_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - std_msgs + repository: https://github.com/aussierobots/ublox_dgnss tag: release/rolling/ublox_ubx_msgs/0.7.6-1 url: https://github.com/ros2-gbp/ublox_dgnss-release.git version: 0.7.6 udp_driver: + dependencies: + - ament_cmake_auto + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - asio_cmake_module + - io_context + - lifecycle_msgs + - rclcpp + - rclcpp_components + - rclcpp_lifecycle + - std_msgs + - udp_msgs + repository: https://github.com/ros-drivers/transport_drivers tag: release/rolling/udp_driver/1.2.0-4 url: https://github.com/ros2-gbp/transport_drivers-release.git version: 1.2.0 udp_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - ros_environment + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/flynneva/udp_msgs tag: release/rolling/udp_msgs/0.0.5-2 url: https://github.com/ros2-gbp/udp_msgs-release.git version: 0.0.5 unbag: + dependencies: + - ament_cmake + - ament_cmake_pytest + - ament_cmake_python + - ament_index_python + - ament_lint_auto + - ament_lint_common + - rclpy + - ros2cli + - rosbag2_py + - rosidl_runtime_py + - sensor_msgs + - tf2_msgs + repository: https://github.com/ika-rwth-aachen/ros2_unbag tag: release/rolling/unbag/1.3.1-2 url: https://github.com/ros2-gbp/unbag-release.git version: 1.3.1 uncrustify_vendor: + dependencies: + - ament_cmake + - ament_cmake_vendor_package + repository: https://github.com/ament/uncrustify_vendor tag: release/rolling/uncrustify_vendor/3.3.0-1 url: https://github.com/ros2-gbp/uncrustify_vendor-release.git version: 3.3.0 unique_identifier_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_core_generators + - rosidl_core_runtime + repository: https://github.com/ros2/unique_identifier_msgs tag: release/rolling/unique_identifier_msgs/2.9.0-1 url: https://github.com/ros2-gbp/unique_identifier_msgs-release.git version: 2.9.0 ur: - tag: release/rolling/ur/7.0.0-1 + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - ur_calibration + - ur_controllers + - ur_dashboard_msgs + - ur_moveit_config + - ur_robot_driver + repository: https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver + tag: release/rolling/ur/7.1.0-1 url: https://github.com/ros2-gbp/Universal_Robots_ROS2_Driver-release.git - version: 7.0.0 + version: 7.1.0 ur10_inverse_dynamics_solver: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - inverse_dynamics_solver + - pluginlib + - rclcpp + - ros_testing + - rosbag2_cpp + - rosbag2_storage + - rosbag2_storage_default_plugins + - trajectory_msgs + - ur_description + repository: https://github.com/unisa-acg/inverse-dynamics-solver tag: release/rolling/ur10_inverse_dynamics_solver/6.0.1-4 url: https://github.com/ros2-gbp/inverse_dynamics_solver-release.git version: 6.0.1 ur_calibration: - tag: release/rolling/ur_calibration/7.0.0-1 + dependencies: + - ament_cmake + - ament_cmake_gmock + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - rclcpp + - ur_client_library + - ur_robot_driver + - yaml_cpp_vendor + repository: https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver + tag: release/rolling/ur_calibration/7.1.0-1 url: https://github.com/ros2-gbp/Universal_Robots_ROS2_Driver-release.git - version: 7.0.0 + version: 7.1.0 ur_client_library: - tag: release/rolling/ur_client_library/2.14.1-1 + dependencies: + - ament_cmake + repository: https://github.com/UniversalRobots/Universal_Robots_Client_Library + tag: release/rolling/ur_client_library/2.15.2-1 url: https://github.com/ros2-gbp/Universal_Robots_Client_Library-release.git - version: 2.14.1 + version: 2.15.2 ur_controllers: - tag: release/rolling/ur_controllers/7.0.0-1 + dependencies: + - action_msgs + - ament_cmake + - angles + - control_msgs + - controller_interface + - controller_manager + - generate_parameter_library + - geometry_msgs + - hardware_interface + - joint_trajectory_controller + - lifecycle_msgs + - pluginlib + - rclcpp_lifecycle + - rcutils + - realtime_tools + - ros2_control_test_assets + - std_msgs + - std_srvs + - tf2_geometry_msgs + - tf2_ros + - trajectory_msgs + - ur_dashboard_msgs + - ur_msgs + repository: https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver + tag: release/rolling/ur_controllers/7.1.0-1 url: https://github.com/ros2-gbp/Universal_Robots_ROS2_Driver-release.git - version: 7.0.0 + version: 7.1.0 ur_dashboard_msgs: - tag: release/rolling/ur_dashboard_msgs/7.0.0-1 + dependencies: + - action_msgs + - ament_cmake + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver + tag: release/rolling/ur_dashboard_msgs/7.1.0-1 url: https://github.com/ros2-gbp/Universal_Robots_ROS2_Driver-release.git - version: 7.0.0 + version: 7.1.0 ur_description: + dependencies: + - ament_cmake + - ament_cmake_pytest + - joint_state_publisher_gui + - launch + - launch_ros + - launch_testing_ament_cmake + - launch_testing_ros + - robot_state_publisher + - rviz2 + - urdf + - xacro + repository: https://github.com/UniversalRobots/Universal_Robots_ROS2_Description tag: release/rolling/ur_description/4.3.1-1 url: https://github.com/ros2-gbp/ur_description-release.git version: 4.3.1 ur_moveit_config: - tag: release/rolling/ur_moveit_config/7.0.0-1 + dependencies: + - ament_cmake + - moveit_configs_utils + - moveit_kinematics + - moveit_planners + - moveit_planners_chomp + - moveit_ros_move_group + - moveit_ros_visualization + - moveit_servo + - moveit_simple_controller_manager + - ur_description + - warehouse_ros_sqlite + - xacro + repository: https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver + tag: release/rolling/ur_moveit_config/7.1.0-1 url: https://github.com/ros2-gbp/Universal_Robots_ROS2_Driver-release.git - version: 7.0.0 + version: 7.1.0 ur_msgs: + dependencies: + - action_msgs + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - control_msgs + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + - trajectory_msgs + repository: https://github.com/ros-industrial/ur_msgs tag: release/rolling/ur_msgs/3.0.0-1 url: https://github.com/ros2-gbp/ur_msgs-release.git version: 3.0.0 ur_robot_driver: - tag: release/rolling/ur_robot_driver/7.0.0-1 + dependencies: + - ament_cmake + - ament_cmake_python + - backward_ros + - control_msgs + - controller_manager + - controller_manager_msgs + - force_torque_sensor_broadcaster + - forward_command_controller + - geometry_msgs + - hardware_interface + - joint_state_broadcaster + - joint_state_publisher + - joint_trajectory_controller + - launch + - launch_ros + - launch_testing_ament_cmake + - motion_primitives_controllers + - pluginlib + - pose_broadcaster + - rclcpp + - rclcpp_action + - rclcpp_lifecycle + - rclpy + - robot_state_publisher + - ros2_controllers_test_nodes + - ros2run + - rviz2 + - std_msgs + - std_srvs + - tf2_geometry_msgs + - ur_client_library + - ur_controllers + - ur_dashboard_msgs + - ur_description + - ur_msgs + - urdf + - xacro + repository: https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver + tag: release/rolling/ur_robot_driver/7.1.0-1 url: https://github.com/ros2-gbp/Universal_Robots_ROS2_Driver-release.git - version: 7.0.0 + version: 7.1.0 ur_simulation_gz: + dependencies: + - ament_cmake + - ament_cmake_pytest + - gz_ros2_control + - joint_state_publisher + - launch + - launch_ros + - launch_testing_ament_cmake + - launch_testing_ros + - ros_gz_bridge + - ros_gz_sim + - rviz2 + - ur_controllers + - ur_description + - ur_moveit_config + - urdf + - xacro + repository: https://github.com/UniversalRobots/Universal_Robots_ROS2_GZ_Simulation tag: release/rolling/ur_simulation_gz/2.5.0-2 url: https://github.com/ros2-gbp/ur_simulation_gz-release.git version: 2.5.0 urdf: - tag: release/rolling/urdf/2.14.0-1 + dependencies: + - ament_cmake_google_benchmark + - ament_cmake_ros + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - pluginlib + - rcutils + - urdf_parser_plugin + - urdfdom + - urdfdom_headers + repository: https://github.com/ros2/urdf + tag: release/rolling/urdf/2.14.1-1 url: https://github.com/ros2-gbp/urdf-release.git - version: 2.14.0 + version: 2.14.1 urdf_launch: + dependencies: + - ament_cmake + - joint_state_publisher + - joint_state_publisher_gui + - launch_ros + - robot_state_publisher + - rviz2 + - rviz_common + - rviz_default_plugins + - xacro + repository: https://github.com/ros/urdf_launch tag: release/rolling/urdf_launch/0.1.2-2 url: https://github.com/ros2-gbp/urdf_launch-release.git version: 0.1.2 urdf_parser_plugin: - tag: release/rolling/urdf_parser_plugin/2.14.0-1 + dependencies: + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - urdfdom_headers + repository: https://github.com/ros2/urdf + tag: release/rolling/urdf_parser_plugin/2.14.1-1 url: https://github.com/ros2-gbp/urdf-release.git - version: 2.14.0 + version: 2.14.1 urdf_test: - tag: release/rolling/urdf_test/2.1.2-1 + dependencies: + - ament_cmake_auto + - ament_cmake_pytest + - ament_lint_auto + - ament_lint_common + - launch + - rclpy + - urdfdom + - xacro + repository: https://github.com/pal-robotics/urdf_test + tag: release/rolling/urdf_test/2.1.3-1 url: https://github.com/ros2-gbp/urdf_test-release.git - version: 2.1.2 + version: 2.1.3 urdf_tutorial: + dependencies: + - ament_cmake + - ament_lint_auto + - urdf_launch + repository: https://github.com/ros/urdf_tutorial tag: release/rolling/urdf_tutorial/1.1.0-3 url: https://github.com/ros2-gbp/urdf_tutorial-release.git version: 1.1.0 urdfdom: + dependencies: + - console_bridge_vendor + - urdfdom_headers + repository: https://github.com/ros/urdfdom tag: release/rolling/urdfdom/6.0.1-1 url: https://github.com/ros2-gbp/urdfdom-release.git version: 6.0.1 urdfdom_headers: + dependencies: [] + repository: https://github.com/ros/urdfdom_headers tag: release/rolling/urdfdom_headers/3.0.1-1 url: https://github.com/ros2-gbp/urdfdom_headers-release.git version: 3.0.1 urdfdom_py: + dependencies: + - rclpy + repository: https://github.com/ros/urdf_parser_py tag: release/rolling/urdfdom_py/1.2.1-3 url: https://github.com/ros2-gbp/urdfdom_py-release.git version: 1.2.1 urg_c: + dependencies: + - ament_cmake + repository: https://github.com/ros-drivers/urg_c tag: release/rolling/urg_c/1.0.4001-6 url: https://github.com/ros2-gbp/urg_c-release.git version: 1.0.4001 urg_node: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - diagnostic_updater + - laser_proc + - rclcpp + - rclcpp_components + - rosidl_default_generators + - sensor_msgs + - std_srvs + - urdf + - urg_c + - urg_node_msgs + repository: https://github.com/ros-drivers/urg_node tag: release/rolling/urg_node/1.2.0-2 url: https://github.com/ros2-gbp/urg_node-release.git version: 1.2.0 urg_node_msgs: + dependencies: + - ament_cmake + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - std_msgs + repository: https://github.com/ros-drivers/urg_node_msgs tag: release/rolling/urg_node_msgs/1.0.1-9 url: https://github.com/ros2-gbp/urg_node_msgs-release.git version: 1.0.1 usb_cam: + dependencies: + - ament_cmake_auto + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - camera_info_manager + - cv_bridge + - image_transport + - image_transport_plugins + - rclcpp + - rclcpp_components + - ros_environment + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + - std_msgs + - std_srvs + repository: https://github.com/ros-drivers/usb_cam tag: release/rolling/usb_cam/0.8.1-2 url: https://github.com/ros2-gbp/usb_cam-release.git version: 0.8.1 v4l2_camera: + dependencies: + - ament_cmake_clang_format + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - camera_info_manager + - cv_bridge + - image_transport + - rclcpp + - rclcpp_components + - sensor_msgs + repository: https://gitlab.com/boldhearts/ros2_v4l2_camera tag: release/rolling/v4l2_camera/0.8.1-1 url: https://github.com/ros2-gbp/ros2_v4l2_camera-release.git version: 0.8.1 velodyne: + dependencies: + - ament_cmake + - velodyne_driver + - velodyne_laserscan + - velodyne_msgs + - velodyne_pointcloud + repository: https://github.com/ros-drivers/velodyne tag: release/rolling/velodyne/2.5.1-2 url: https://github.com/ros2-gbp/velodyne-release.git version: 2.5.1 velodyne_driver: + dependencies: + - ament_cmake_gtest + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - diagnostic_updater + - rclcpp + - rclcpp_components + - tf2_ros + - velodyne_msgs + repository: https://github.com/ros-drivers/velodyne tag: release/rolling/velodyne_driver/2.5.1-2 url: https://github.com/ros2-gbp/velodyne-release.git version: 2.5.1 velodyne_laserscan: + dependencies: + - ament_cmake_ros + - ament_lint_auto + - ament_lint_common + - rclcpp + - rclcpp_components + - sensor_msgs + repository: https://github.com/ros-drivers/velodyne tag: release/rolling/velodyne_laserscan/2.5.1-2 url: https://github.com/ros2-gbp/velodyne-release.git version: 2.5.1 velodyne_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ros-drivers/velodyne tag: release/rolling/velodyne_msgs/2.5.1-2 url: https://github.com/ros2-gbp/velodyne-release.git version: 2.5.1 velodyne_pointcloud: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_index_cpp + - ament_lint_auto + - ament_lint_common + - angles + - diagnostic_updater + - geometry_msgs + - message_filters + - rclcpp + - rclcpp_components + - sensor_msgs + - tf2 + - tf2_ros + - velodyne_msgs + repository: https://github.com/ros-drivers/velodyne tag: release/rolling/velodyne_pointcloud/2.5.1-2 url: https://github.com/ros2-gbp/velodyne-release.git version: 2.5.1 video_to_image_msg_publisher: + dependencies: + - ament_cmake + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + - cv_bridge + - rclcpp + - sensor_msgs + repository: https://github.com/gstavrinos/video_to_image_msg_publisher tag: release/rolling/video_to_image_msg_publisher/0.9.5-2 url: https://github.com/ros2-gbp/video_to_image_msg_publisher-release.git version: 0.9.5 vision_msgs: + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ros-perception/vision_msgs tag: release/rolling/vision_msgs/4.2.0-2 url: https://github.com/ros2-gbp/vision_msgs-release.git version: 4.2.0 vision_msgs_rviz_plugins: + dependencies: + - ament_cmake + - ament_cmake_python + - ament_lint_auto + - ament_lint_common + - pluginlib + - rclcpp + - rclpy + - rviz2 + - rviz_common + - rviz_default_plugins + - rviz_rendering + - vision_msgs + - yaml_cpp_vendor + repository: https://github.com/ros-perception/vision_msgs tag: release/rolling/vision_msgs_rviz_plugins/4.2.0-2 url: https://github.com/ros2-gbp/vision_msgs-release.git version: 4.2.0 vision_opencv: + dependencies: + - ament_cmake + - cv_bridge + - image_geometry + repository: https://github.com/ros-perception/vision_opencv tag: release/rolling/vision_opencv/4.1.0-2 url: https://github.com/ros2-gbp/vision_opencv-release.git version: 4.1.0 visp: + dependencies: [] + repository: https://github.com/lagadic/visp tag: release/rolling/visp/3.7.0-7 url: https://github.com/ros2-gbp/visp-release.git version: 3.7.0 visualization_msgs: - tag: release/rolling/visualization_msgs/5.10.1-1 + dependencies: + - ament_cmake + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - sensor_msgs + - std_msgs + repository: https://github.com/ros2/common_interfaces + tag: release/rolling/visualization_msgs/5.10.2-1 url: https://github.com/ros2-gbp/common_interfaces-release.git - version: 5.10.1 + version: 5.10.2 vitis_common: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - ament_vitis + repository: https://github.com/ros-acceleration/vitis_common tag: release/rolling/vitis_common/0.4.2-4 url: https://github.com/ros2-gbp/vitis_common-release.git version: 0.4.2 vrpn: - tag: release/rolling/vrpn/7.35.0-21 + dependencies: + - ament_cmake + repository: https://github.com/vrpn/vrpn + tag: release/rolling/vrpn/7.36.0-1 url: https://github.com/ros2-gbp/vrpn-release.git - version: 7.35.0 + version: 7.36.0 vrpn_mocap: - tag: release/rolling/vrpn_mocap/1.1.0-4 + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - eigen3_cmake_module + - geometry_msgs + - rclcpp + - std_msgs + - tf2 + - vrpn + repository: https://github.com/alvinsunyixiao/vrpn_mocap + tag: release/rolling/vrpn_mocap/1.2.0-1 url: https://github.com/ros2-gbp/vrpn_mocap-release.git - version: 1.1.0 + version: 1.2.0 warehouse_ros: - tag: release/rolling/warehouse_ros/2.0.8-1 + dependencies: + - ament_cmake + - ament_cmake_copyright + - ament_lint_auto + - geometry_msgs + - pluginlib + - rclcpp + - std_msgs + - tf2 + - tf2_geometry_msgs + - tf2_ros + repository: https://github.com/ros-planning/warehouse_ros + tag: release/rolling/warehouse_ros/2.0.9-1 url: https://github.com/ros2-gbp/warehouse_ros-release.git - version: 2.0.8 + version: 2.0.9 warehouse_ros_sqlite: + dependencies: + - ament_cmake + - ament_cmake_copyright + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - class_loader + - geometry_msgs + - rclcpp + - warehouse_ros + repository: https://github.com/ros-planning/warehouse_ros_sqlite tag: release/rolling/warehouse_ros_sqlite/1.0.9-1 url: https://github.com/ros2-gbp/warehouse_ros_sqlite-release.git version: 1.0.9 web_video_server: + dependencies: + - ament_cmake_clang_tidy + - ament_cmake_copyright + - ament_cmake_lint_cmake + - ament_cmake_ros + - ament_cmake_uncrustify + - ament_cmake_xmllint + - ament_lint_auto + - async_web_server_cpp + - cv_bridge + - image_transport + - pluginlib + - rclcpp + - rclcpp_components + - rmw + - ros_environment + - sensor_msgs + repository: https://github.com/RobotWebTools/web_video_server tag: release/rolling/web_video_server/3.1.1-1 url: https://github.com/ros2-gbp/web_video_server-release.git version: 3.1.1 webots_ros2: + dependencies: + - ament_copyright + - builtin_interfaces + - rclpy + - std_msgs + - webots_ros2_control + - webots_ros2_crazyflie + - webots_ros2_driver + - webots_ros2_epuck + - webots_ros2_husarion + - webots_ros2_importer + - webots_ros2_mavic + - webots_ros2_msgs + - webots_ros2_tesla + - webots_ros2_tests + - webots_ros2_tiago + - webots_ros2_turtlebot + - webots_ros2_universal_robot + repository: https://github.com/cyberbotics/webots_ros2 tag: release/rolling/webots_ros2/2025.0.1-2 url: https://github.com/ros2-gbp/webots_ros2-release.git version: 2025.0.1 webots_ros2_control: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - controller_manager + - hardware_interface + - pluginlib + - rclcpp + - rclcpp_lifecycle + - ros_environment + - webots_ros2_driver + repository: https://github.com/cyberbotics/webots_ros2 tag: release/rolling/webots_ros2_control/2025.0.1-2 url: https://github.com/ros2-gbp/webots_ros2-release.git version: 2025.0.1 webots_ros2_crazyflie: + dependencies: + - ament_copyright + - ament_flake8 + - ament_pep257 + - builtin_interfaces + - rclpy + - tf_transformations + - webots_ros2_driver + repository: https://github.com/cyberbotics/webots_ros2 tag: release/rolling/webots_ros2_crazyflie/2025.0.1-2 url: https://github.com/ros2-gbp/webots_ros2-release.git version: 2025.0.1 webots_ros2_driver: + dependencies: + - ament_cmake + - ament_cmake_python + - ament_lint_auto + - ament_lint_common + - geometry_msgs + - pluginlib + - python_cmake_module + - rclcpp + - rclpy + - ros_environment + - sensor_msgs + - std_msgs + - tf2_geometry_msgs + - tf2_ros + - tinyxml2_vendor + - vision_msgs + - webots_ros2_importer + - webots_ros2_msgs + repository: https://github.com/cyberbotics/webots_ros2 tag: release/rolling/webots_ros2_driver/2025.0.1-2 url: https://github.com/ros2-gbp/webots_ros2-release.git version: 2025.0.1 webots_ros2_epuck: + dependencies: + - ament_copyright + - builtin_interfaces + - controller_manager + - diff_drive_controller + - geometry_msgs + - joint_state_broadcaster + - nav_msgs + - rclpy + - robot_state_publisher + - rviz2 + - sensor_msgs + - std_msgs + - tf2_ros + - webots_ros2_control + - webots_ros2_driver + - webots_ros2_msgs + repository: https://github.com/cyberbotics/webots_ros2 tag: release/rolling/webots_ros2_epuck/2025.0.1-2 url: https://github.com/ros2-gbp/webots_ros2-release.git version: 2025.0.1 webots_ros2_husarion: + dependencies: + - controller_manager + - diff_drive_controller + - joint_state_broadcaster + - laser_filters + - robot_localization + - robot_state_publisher + - webots_ros2_control + - webots_ros2_driver + repository: https://github.com/cyberbotics/webots_ros2 tag: release/rolling/webots_ros2_husarion/2025.0.1-2 url: https://github.com/ros2-gbp/webots_ros2-release.git version: 2025.0.1 webots_ros2_importer: + dependencies: + - ament_copyright + - builtin_interfaces + - xacro + repository: https://github.com/cyberbotics/webots_ros2 tag: release/rolling/webots_ros2_importer/2025.0.1-2 url: https://github.com/ros2-gbp/webots_ros2-release.git version: 2025.0.1 webots_ros2_mavic: + dependencies: + - ament_copyright + - builtin_interfaces + - rclpy + - webots_ros2_driver + repository: https://github.com/cyberbotics/webots_ros2 tag: release/rolling/webots_ros2_mavic/2025.0.1-2 url: https://github.com/ros2-gbp/webots_ros2-release.git version: 2025.0.1 webots_ros2_msgs: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + - vision_msgs + repository: https://github.com/cyberbotics/webots_ros2 tag: release/rolling/webots_ros2_msgs/2025.0.1-2 url: https://github.com/ros2-gbp/webots_ros2-release.git version: 2025.0.1 webots_ros2_tesla: + dependencies: + - ackermann_msgs + - ament_copyright + - builtin_interfaces + - rclpy + - webots_ros2_driver + repository: https://github.com/cyberbotics/webots_ros2 tag: release/rolling/webots_ros2_tesla/2025.0.1-2 url: https://github.com/ros2-gbp/webots_ros2-release.git version: 2025.0.1 webots_ros2_tests: + dependencies: + - ament_copyright + - geometry_msgs + - launch + - launch_testing + - launch_testing_ament_cmake + - launch_testing_ros + - rclpy + - ros2bag + - rosbag2_storage_default_plugins + - sensor_msgs + - std_msgs + - std_srvs + - tf2_ros + - webots_ros2_driver + - webots_ros2_epuck + - webots_ros2_husarion + - webots_ros2_mavic + - webots_ros2_tesla + - webots_ros2_tiago + - webots_ros2_turtlebot + - webots_ros2_universal_robot + repository: https://github.com/cyberbotics/webots_ros2 tag: release/rolling/webots_ros2_tests/2025.0.1-2 url: https://github.com/ros2-gbp/webots_ros2-release.git version: 2025.0.1 webots_ros2_tiago: + dependencies: + - ament_copyright + - builtin_interfaces + - controller_manager + - diff_drive_controller + - geometry_msgs + - joint_state_broadcaster + - rclpy + - robot_state_publisher + - rviz2 + - tf2_ros + - webots_ros2_control + - webots_ros2_driver + repository: https://github.com/cyberbotics/webots_ros2 tag: release/rolling/webots_ros2_tiago/2025.0.1-2 url: https://github.com/ros2-gbp/webots_ros2-release.git version: 2025.0.1 webots_ros2_turtlebot: + dependencies: + - ament_copyright + - builtin_interfaces + - controller_manager + - diff_drive_controller + - joint_state_broadcaster + - rclpy + - robot_state_publisher + - rviz2 + - tf2_ros + - webots_ros2_control + - webots_ros2_driver + repository: https://github.com/cyberbotics/webots_ros2 tag: release/rolling/webots_ros2_turtlebot/2025.0.1-2 url: https://github.com/ros2-gbp/webots_ros2-release.git version: 2025.0.1 webots_ros2_universal_robot: + dependencies: + - ament_copyright + - builtin_interfaces + - control_msgs + - controller_manager + - joint_state_broadcaster + - joint_trajectory_controller + - rclpy + - robot_state_publisher + - rviz2 + - trajectory_msgs + - webots_ros2_control + - webots_ros2_driver + - xacro + repository: https://github.com/cyberbotics/webots_ros2 tag: release/rolling/webots_ros2_universal_robot/2025.0.1-2 url: https://github.com/ros2-gbp/webots_ros2-release.git version: 2025.0.1 wiimote: + dependencies: + - ament_cmake + - ament_cmake_auto + - ament_cmake_gtest + - ament_lint_auto + - ament_lint_common + - geometry_msgs + - rclcpp + - rclcpp_components + - rclcpp_lifecycle + - sensor_msgs + - std_msgs + - std_srvs + - wiimote_msgs + repository: https://github.com/ros-drivers/joystick_drivers tag: release/rolling/wiimote/3.3.0-3 url: https://github.com/ros2-gbp/joystick_drivers-release.git version: 3.3.0 wiimote_msgs: + dependencies: + - ament_cmake + - ament_cmake_auto + - ament_lint_auto + - ament_lint_common + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - std_msgs + repository: https://github.com/ros-drivers/joystick_drivers tag: release/rolling/wiimote_msgs/3.3.0-3 url: https://github.com/ros2-gbp/joystick_drivers-release.git version: 3.3.0 xacro: + dependencies: + - ament_cmake + - ament_cmake_pytest + - ament_cmake_python + - ament_index_python + - ament_lint_auto + repository: https://github.com/ros/xacro tag: release/rolling/xacro/2.1.1-2 url: https://github.com/ros2-gbp/xacro-release.git version: 2.1.1 yaml_cpp_vendor: + dependencies: + - ament_cmake + - ament_cmake_vendor_package + repository: https://github.com/ros2/yaml_cpp_vendor tag: release/rolling/yaml_cpp_vendor/9.3.0-1 url: https://github.com/ros2-gbp/yaml_cpp_vendor-release.git version: 9.3.0 yasmin: - tag: release/rolling/yasmin/6.1.1-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_python + repository: https://github.com/uleroboticsgroup/yasmin + tag: release/rolling/yasmin/6.1.2-1 url: https://github.com/ros2-gbp/yasmin-release.git - version: 6.1.1 + version: 6.1.2 yasmin_cli: - tag: release/rolling/yasmin_cli/6.1.1-1 + dependencies: + - ament_index_python + - rclpy + - ros2cli + - yasmin + - yasmin_editor + - yasmin_factory + - yasmin_plugins_manager + - yasmin_viewer + repository: https://github.com/uleroboticsgroup/yasmin + tag: release/rolling/yasmin_cli/6.1.2-1 url: https://github.com/ros2-gbp/yasmin-release.git - version: 6.1.1 + version: 6.1.2 yasmin_demos: - tag: release/rolling/yasmin_demos/6.1.1-1 + dependencies: + - ament_cmake + - ament_cmake_python + - ament_index_cpp + - example_interfaces + - geometry_msgs + - nav_msgs + - pluginlib + - rclcpp + - rclcpp_action + - rclpy + - ros_environment + - yasmin + - yasmin_factory + - yasmin_ros + - yasmin_viewer + repository: https://github.com/uleroboticsgroup/yasmin + tag: release/rolling/yasmin_demos/6.1.2-1 url: https://github.com/ros2-gbp/yasmin-release.git - version: 6.1.1 + version: 6.1.2 yasmin_editor: - tag: release/rolling/yasmin_editor/6.1.1-1 + dependencies: + - ament_cmake + - ament_cmake_pytest + - ament_cmake_python + - rclpy + - ros_environment + - yasmin + - yasmin_factory + - yasmin_plugins_manager + - yasmin_ros + repository: https://github.com/uleroboticsgroup/yasmin + tag: release/rolling/yasmin_editor/6.1.2-1 url: https://github.com/ros2-gbp/yasmin-release.git - version: 6.1.1 + version: 6.1.2 yasmin_factory: - tag: release/rolling/yasmin_factory/6.1.1-1 + dependencies: + - action_msgs + - ament_cmake + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_python + - ament_index_cpp + - ament_index_python + - class_loader + - pluginlib + - rclcpp + - rclcpp_action + - rclpy + - tinyxml2_vendor + - yasmin + - yasmin_msgs + - yasmin_ros + - yasmin_viewer + repository: https://github.com/uleroboticsgroup/yasmin + tag: release/rolling/yasmin_factory/6.1.2-1 url: https://github.com/ros2-gbp/yasmin-release.git - version: 6.1.1 + version: 6.1.2 yasmin_msgs: - tag: release/rolling/yasmin_msgs/6.1.1-1 + dependencies: + - action_msgs + - ament_cmake + - rosidl_default_generators + - rosidl_default_runtime + repository: https://github.com/uleroboticsgroup/yasmin + tag: release/rolling/yasmin_msgs/6.1.2-1 url: https://github.com/ros2-gbp/yasmin-release.git - version: 6.1.1 + version: 6.1.2 yasmin_pcl: - tag: release/rolling/yasmin_pcl/6.1.1-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - pcl_conversions + - pluginlib + - sensor_msgs + - yasmin + repository: https://github.com/uleroboticsgroup/yasmin + tag: release/rolling/yasmin_pcl/6.1.2-1 url: https://github.com/ros2-gbp/yasmin-release.git - version: 6.1.1 + version: 6.1.2 yasmin_plugins_manager: - tag: release/rolling/yasmin_plugins_manager/6.1.1-1 + dependencies: + - ament_index_python + - rclpy + - yasmin + - yasmin_factory + repository: https://github.com/uleroboticsgroup/yasmin + tag: release/rolling/yasmin_plugins_manager/6.1.2-1 url: https://github.com/ros2-gbp/yasmin-release.git - version: 6.1.1 + version: 6.1.2 yasmin_ros: - tag: release/rolling/yasmin_ros/6.1.1-1 + dependencies: + - ament_cmake + - ament_cmake_gtest + - ament_cmake_pytest + - ament_cmake_python + - example_interfaces + - geometry_msgs + - pluginlib + - rclcpp + - rclcpp_action + - rclpy + - ros_environment + - rosidl_runtime_py + - std_msgs + - std_srvs + - tf2 + - tf2_msgs + - tf2_py + - tf2_ros + - tf2_ros_py + - yasmin + repository: https://github.com/uleroboticsgroup/yasmin + tag: release/rolling/yasmin_ros/6.1.2-1 url: https://github.com/ros2-gbp/yasmin-release.git - version: 6.1.1 + version: 6.1.2 yasmin_viewer: - tag: release/rolling/yasmin_viewer/6.1.1-1 + dependencies: + - ament_cmake + - ament_cmake_python + - ament_index_cpp + - rclcpp + - rclpy + - yasmin + - yasmin_msgs + - yasmin_ros + repository: https://github.com/uleroboticsgroup/yasmin + tag: release/rolling/yasmin_viewer/6.1.2-1 url: https://github.com/ros2-gbp/yasmin-release.git - version: 6.1.1 + version: 6.1.2 zbar_ros: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - cv_bridge + - rclcpp + - sensor_msgs + - std_msgs + - zbar_ros_interfaces + repository: https://github.com/ros-drivers/zbar_ros tag: release/rolling/zbar_ros/0.7.0-2 url: https://github.com/ros2-gbp/zbar_ros-release.git version: 0.7.0 zbar_ros_interfaces: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - rosidl_default_generators + - rosidl_default_runtime + - vision_msgs + repository: https://github.com/ros-drivers/zbar_ros tag: release/rolling/zbar_ros_interfaces/0.7.0-2 url: https://github.com/ros2-gbp/zbar_ros-release.git version: 0.7.0 zed_description: - tag: release/rolling/zed_description/0.1.5-1 + dependencies: + - ament_cmake + - ament_cmake_auto + - ament_cmake_copyright + - ament_cmake_cppcheck + - ament_cmake_lint_cmake + - ament_cmake_pep257 + - ament_cmake_uncrustify + - ament_cmake_xmllint + - ament_lint_auto + - rviz2 + - xacro + repository: https://github.com/stereolabs/zed-ros2-description + tag: release/rolling/zed_description/0.2.0-1 url: https://github.com/ros2-gbp/zed-ros2-description-release.git - version: 0.1.5 + version: 0.2.0 zed_msgs: - tag: release/rolling/zed_msgs/5.3.0-2 + dependencies: + - ament_cmake + - ament_cmake_auto + - ament_cmake_copyright + - ament_cmake_cppcheck + - ament_cmake_lint_cmake + - ament_cmake_pep257 + - ament_cmake_uncrustify + - ament_cmake_xmllint + - ament_lint_auto + - builtin_interfaces + - geometry_msgs + - rosidl_default_generators + - rosidl_default_runtime + - shape_msgs + - std_msgs + repository: https://github.com/stereolabs/zed-ros2-interfaces + tag: release/rolling/zed_msgs/5.5.0-1 url: https://github.com/ros2-gbp/zed-ros2-interfaces-release.git - version: 5.3.0 + version: 5.5.0 zenoh_bridge_dds: + dependencies: + - ament_cmake + repository: https://github.com/eclipse-zenoh/zenoh-plugin-dds tag: release/rolling/zenoh_bridge_dds/0.5.0-5 url: https://github.com/ros2-gbp/zenoh_bridge_dds-release.git version: 0.5.0 zenoh_cpp_vendor: - tag: release/rolling/zenoh_cpp_vendor/0.12.0-1 + dependencies: + - ament_cmake + - ament_cmake_vendor_package + repository: https://github.com/ros2/rmw_zenoh + tag: release/rolling/zenoh_cpp_vendor/0.14.0-1 url: https://github.com/ros2-gbp/rmw_zenoh-release.git - version: 0.12.0 + version: 0.14.0 zenoh_security_tools: - tag: release/rolling/zenoh_security_tools/0.12.0-1 + dependencies: + - ament_cmake_ros_core + - ament_lint_auto + - ament_lint_common + - rcpputils + - rcutils + - rmw + - rmw_security_common + - zenoh_cpp_vendor + repository: https://github.com/ros2/rmw_zenoh + tag: release/rolling/zenoh_security_tools/0.14.0-1 url: https://github.com/ros2-gbp/rmw_zenoh-release.git - version: 0.12.0 + version: 0.14.0 zlib_point_cloud_transport: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - pluginlib + - point_cloud_interfaces + - point_cloud_transport + - rclcpp + repository: https://github.com/ros-perception/point_cloud_transport_plugins tag: release/rolling/zlib_point_cloud_transport/7.0.0-1 url: https://github.com/ros2-gbp/point_cloud_transport_plugins-release.git version: 7.0.0 zmqpp_vendor: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + repository: https://github.com/autowarefoundation/zmqpp_vendor tag: release/rolling/zmqpp_vendor/0.0.2-4 url: https://github.com/ros2-gbp/zmqpp_vendor-release.git version: 0.0.2 zstd_cmake_module: - tag: release/rolling/zstd_cmake_module/0.34.0-1 + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + repository: https://github.com/ros2/rosbag2 + tag: release/rolling/zstd_cmake_module/0.35.0-1 url: https://github.com/ros2-gbp/rosbag2-release.git - version: 0.34.0 + version: 0.35.0 zstd_image_transport: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - image_transport + repository: https://github.com/ros-perception/image_transport_plugins tag: release/rolling/zstd_image_transport/7.0.1-1 url: https://github.com/ros2-gbp/image_transport_plugins-release.git version: 7.0.1 zstd_point_cloud_transport: + dependencies: + - ament_cmake + - ament_lint_auto + - ament_lint_common + - pluginlib + - point_cloud_interfaces + - point_cloud_transport + - rclcpp + - zstd_cmake_module + repository: https://github.com/ros-perception/point_cloud_transport_plugins tag: release/rolling/zstd_point_cloud_transport/7.0.0-1 url: https://github.com/ros2-gbp/point_cloud_transport_plugins-release.git version: 7.0.0 diff --git a/distros/rolling/vinca.yaml b/distros/rolling/vinca.yaml index bc43347c..106a5e4b 100644 --- a/distros/rolling/vinca.yaml +++ b/distros/rolling/vinca.yaml @@ -4,12 +4,12 @@ patch_dir: patch rosdistro_snapshot: rosdistro_snapshot.yaml rosdistro_additional_recipes: rosdistro_additional_recipes.yaml -build_number: 29 +build_number: 32 mutex_package: # new build without run_constraints (same version as the published ones) build_number: 30 - version: "0.22.0" + version: "0.23.0" packages_skip: From 41c614d1340fb0348b6629e377415f339e48bb30 Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Fri, 16 Oct 2026 20:55:29 +1000 Subject: [PATCH 03/21] rolling: patches for the new snapshot's sources Found by a local full rebuild (osx-arm64) and check-patches (all platforms): - upstream now, dropped: rcutils (Threads, fault-injection initializer), rviz_rendering (macOS resize loop), laser_filters (CreateTimerROS), gz_ros2_control (format strings), moveit_ros_control_interface (), ros_gz_bridge (Windows export macros) - lyrical's patches for the same sources: foxglove_bridge (Windows), microstrain_inertial_driver, mujoco_3d_lidar, moveit_ros_perception - foxglove_bridge 3.6.1: Foxglove SDK 0.29.2 checksums for macOS and Windows - rviz_ogre_vendor 16.0.4: its own 0007 patch now switches xcodebuild to xcrun; ours (0008, applied after it) still drops the sysroot override, so OGRE uses conda's SDK - rqt_image_view, urdf_parser_plugin (Windows): refreshed context - py_trees_js 0.7 builds with hatchling (as in humble/jazzy) Co-Authored-By: Claude Opus 5.5 --- distros/rolling/patch/dependencies.yaml | 2 +- .../rolling/patch/ros2-foxglove-bridge.patch | 18 +- .../patch/ros2-foxglove-bridge.win.patch | 107 +- .../patch/ros2-gz-ros2-control.osx.patch | 22 - .../rolling/patch/ros2-laser-filters.patch | 15 - .../ros2-microstrain-inertial-driver.patch | 94 +- .../ros2-moveit-ros-control-interface.patch | 12 - .../patch/ros2-moveit-ros-perception.patch | 13 - .../rolling/patch/ros2-mujoco-3d-lidar.patch | 32 +- distros/rolling/patch/ros2-rcutils.patch | 37 - .../patch/ros2-ros-gz-bridge.win.patch | 1365 ----------------- .../rolling/patch/ros2-rqt-image-view.patch | 8 +- .../rolling/patch/ros2-rviz-ogre-vendor.patch | 10 +- .../patch/ros2-rviz-rendering.osx.patch | 46 - .../patch/ros2-urdf-parser-plugin.win.patch | 11 +- 15 files changed, 34 insertions(+), 1758 deletions(-) delete mode 100644 distros/rolling/patch/ros2-gz-ros2-control.osx.patch delete mode 100644 distros/rolling/patch/ros2-laser-filters.patch delete mode 100644 distros/rolling/patch/ros2-moveit-ros-control-interface.patch delete mode 100644 distros/rolling/patch/ros2-rcutils.patch delete mode 100644 distros/rolling/patch/ros2-ros-gz-bridge.win.patch delete mode 100644 distros/rolling/patch/ros2-rviz-rendering.osx.patch diff --git a/distros/rolling/patch/dependencies.yaml b/distros/rolling/patch/dependencies.yaml index 561701dc..026a1bec 100644 --- a/distros/rolling/patch/dependencies.yaml +++ b/distros/rolling/patch/dependencies.yaml @@ -127,7 +127,7 @@ plotjuggler_ros: py_trees: add_host: ["hatchling"] py_trees_js: - add_host: ["poetry-core"] + add_host: ["hatchling"] # 0.7 builds with hatchling (as in humble/jazzy) py_trees_ros: add_host: ["poetry-core"] py_trees_ros_tutorials: diff --git a/distros/rolling/patch/ros2-foxglove-bridge.patch b/distros/rolling/patch/ros2-foxglove-bridge.patch index aa403825..9374cdb8 100644 --- a/distros/rolling/patch/ros2-foxglove-bridge.patch +++ b/distros/rolling/patch/ros2-foxglove-bridge.patch @@ -1,27 +1,27 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index 8ee07c2..7426013 100644 +index fed8c1e..c405bf4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -98,6 +98,18 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc +@@ -97,6 +97,18 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") set(FOXGLOVE_SDK_PLATFORM "x86_64-unknown-linux-gnu") - set(FOXGLOVE_SDK_SHA "8fb03b061127788ad708918d186d74d4fdb58718b11cff97c9d605513ab57cc6") + set(FOXGLOVE_SDK_SHA "fcb725e24cf5af2f38de536f3d848788ac41956467c569d77f38a21a2a9a4e2e") +elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + set(FOXGLOVE_SDK_PLATFORM "aarch64-apple-darwin") -+ set(FOXGLOVE_SDK_SHA "aae2ccfebcce4b6ff72e366912a92d6576f6100e79cdf71d79e4288977add0f0") ++ set(FOXGLOVE_SDK_SHA "088ed6110b93d749d87320f690cc9ef5d2df14a02d83bcf847cca4268a6297b9") +elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") + set(FOXGLOVE_SDK_PLATFORM "x86_64-apple-darwin") -+ set(FOXGLOVE_SDK_SHA "4e592b4fe447b9fab912706f863a75833cf6bedc5c17d3ea474d4531eec722ae") ++ set(FOXGLOVE_SDK_SHA "b8176129102308f8ed1474f2f2d6f9c17b49d6645d80ad1c0572756e6a6ae9ee") +elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM64") + set(FOXGLOVE_SDK_PLATFORM "aarch64-pc-windows-msvc") -+ set(FOXGLOVE_SDK_SHA "aaafd94b67ce9de06eea616f247e49c0b11a2f78cf26b7cb1e1ae45f264a4067") ++ set(FOXGLOVE_SDK_SHA "cd03109b8514be5f98cb55d1adca5b721de2fe07b6dcc545da08ec97309a758c") +elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64") + set(FOXGLOVE_SDK_PLATFORM "x86_64-pc-windows-msvc") -+ set(FOXGLOVE_SDK_SHA "335fcaa4d2637a529d6a47739feb944defcd393b9ccdb8a2fe2901747dbff863") ++ set(FOXGLOVE_SDK_SHA "04652d7820690109b924b59a1542ec238a9891b430d829df5788432242d10062") else() message(FATAL_ERROR "Unsupported platform/architecture combination: ${CMAKE_SYSTEM_PROCESSOR}-${CMAKE_SYSTEM_NAME}") endif() -@@ -202,6 +214,12 @@ target_link_libraries(foxglove_bridge_component +@@ -201,6 +213,12 @@ target_link_libraries(foxglove_bridge_component rosx_introspection::rosx_introspection ) @@ -35,7 +35,7 @@ index 8ee07c2..7426013 100644 enable_strict_compiler_warnings(foxglove_bridge_component) set_target_properties(foxglove_bridge_component PROPERTIES diff --git a/src/message_definition_cache.cpp b/src/message_definition_cache.cpp -index ef72c9c..ed85745 100644 +index cf2864e..9124c80 100644 --- a/src/message_definition_cache.cpp +++ b/src/message_definition_cache.cpp @@ -3,6 +3,7 @@ diff --git a/distros/rolling/patch/ros2-foxglove-bridge.win.patch b/distros/rolling/patch/ros2-foxglove-bridge.win.patch index d9c0c1ef..feaf5dfb 100644 --- a/distros/rolling/patch/ros2-foxglove-bridge.win.patch +++ b/distros/rolling/patch/ros2-foxglove-bridge.win.patch @@ -1,9 +1,8 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index 7426013..72e281d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -61,7 +61,7 @@ endif() - +@@ -62,7 +62,7 @@ endif() + macro(enable_strict_compiler_warnings target) if (MSVC) - target_compile_options(${target} PRIVATE /WX /W4) @@ -11,105 +10,3 @@ index 7426013..72e281d 100644 elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang") target_compile_options(${target} PRIVATE -Wall -Wextra -Wpedantic -Werror -Wold-style-cast -Wfloat-equal -Wmost -Wunused-exception-parameter) else() -@@ -122,6 +122,75 @@ FetchContent_Declare( - URL_HASH SHA256=${FOXGLOVE_SDK_SHA} - ) - FetchContent_MakeAvailable(foxglove_sdk) -+if(MSVC) -+ file(READ -+ "${foxglove_sdk_SOURCE_DIR}/include/foxglove/parameter.hpp" -+ _foxglove_parameter_hpp -+ ) -+ string(REPLACE "\r\n" "\n" _foxglove_parameter_hpp "${_foxglove_parameter_hpp}") -+ string(REPLACE -+[=[ -+ [[nodiscard]] bool isArray() const noexcept { -+ if (!this->isArray()) { -+ return false; -+ } -+ try { -+ const auto& arr = this->get(); -+ return std::all_of(arr.begin(), arr.end(), [](const ParameterValueView& elem) noexcept { -+ return elem.is(); -+ }); -+ } catch (...) { -+ return false; -+ } -+ } -+]=] -+[=[ -+ [[nodiscard]] bool isArray() const noexcept { -+ auto value = this->value(); -+ if (!value.has_value() || !value->is()) { -+ return false; -+ } -+ try { -+ const auto& arr = value->get(); -+ return std::all_of(arr.begin(), arr.end(), [](const ParameterValueView& elem) noexcept { -+ return elem.is(); -+ }); -+ } catch (...) { -+ return false; -+ } -+ } -+]=] -+ _foxglove_parameter_hpp -+ "${_foxglove_parameter_hpp}" -+ ) -+ string(REPLACE -+[=[ -+ [[nodiscard]] bool isDict() const noexcept { -+ if (!this->isDict()) { -+ return false; -+ } -+ try { -+ const auto& dict = this->get(); -+ return std::all_of( -+]=] -+[=[ -+ [[nodiscard]] bool isDict() const noexcept { -+ auto value = this->value(); -+ if (!value.has_value() || !value->is()) { -+ return false; -+ } -+ try { -+ const auto& dict = value->get(); -+ return std::all_of( -+]=] -+ _foxglove_parameter_hpp -+ "${_foxglove_parameter_hpp}" -+ ) -+ file(WRITE -+ "${foxglove_sdk_SOURCE_DIR}/include/foxglove/parameter.hpp" -+ "${_foxglove_parameter_hpp}" -+ ) -+endif() - - # The dist's CMake package config defines IMPORTED targets for the prebuilt C libraries - # (foxglove-static, foxglove-shared) and the foxglove_sdk_add_cpp_library() helper, which -@@ -136,6 +205,16 @@ if (FOXGLOVE_BRIDGE_REMOTE_ACCESS) - else() - foxglove_sdk_add_cpp_library(foxglove_cpp_shared TYPE SHARED REMOTE_ACCESS OFF) - endif() -+if(WIN32) -+ target_link_libraries(foxglove_cpp_shared PRIVATE -+ Ws2_32.lib -+ Userenv.lib -+ Ntdll.lib -+ Crypt32.lib -+ Secur32.lib -+ Ncrypt.lib -+ ) -+endif() - set_target_properties(foxglove_cpp_shared PROPERTIES - BUILD_WITH_INSTALL_RPATH TRUE - ) -diff --git a/src/ros2_foxglove_bridge.cpp b/src/ros2_foxglove_bridge.cpp -index 601db6c..cc4e4f5 100644 ---- a/src/ros2_foxglove_bridge.cpp -+++ b/src/ros2_foxglove_bridge.cpp -@@ -1,3 +1,4 @@ -+#define _CRT_SECURE_NO_WARNINGS - #include - #include - #include diff --git a/distros/rolling/patch/ros2-gz-ros2-control.osx.patch b/distros/rolling/patch/ros2-gz-ros2-control.osx.patch deleted file mode 100644 index 44b175e3..00000000 --- a/distros/rolling/patch/ros2-gz-ros2-control.osx.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/src/gz_ros2_control_plugin.cpp b/src/gz_ros2_control_plugin.cpp -index 236be25c..bdbc85da 100644 ---- a/src/gz_ros2_control_plugin.cpp -+++ b/src/gz_ros2_control_plugin.cpp -@@ -214,7 +214,7 @@ GazeboSimROS2ControlPluginPrivate::GetEnabledJoints( - case sdf::JointType::FIXED: - { - RCLCPP_INFO( -- node_->get_logger(), "[gz_ros2_control] Fixed joint ['%s'] (Entity='%lu') is skipped.", -+ node_->get_logger(), "[gz_ros2_control] Fixed joint ['%s'] (Entity='%llu') is skipped.", - jointName.c_str(), jointEntity); - continue; - } -@@ -225,7 +225,7 @@ GazeboSimROS2ControlPluginPrivate::GetEnabledJoints( - { - RCLCPP_WARN( - node_->get_logger(), -- "[gz_ros2_control] Joint ['%s'] (Entity='%lu') is of unsupported type." -+ "[gz_ros2_control] Joint ['%s'] (Entity='%llu') is of unsupported type." - " Only joints with a single axis are supported.", - jointName.c_str(), jointEntity); - continue; diff --git a/distros/rolling/patch/ros2-laser-filters.patch b/distros/rolling/patch/ros2-laser-filters.patch deleted file mode 100644 index 7a412d90..00000000 --- a/distros/rolling/patch/ros2-laser-filters.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/src/scan_to_cloud_filter_chain.cpp b/src/scan_to_cloud_filter_chain.cpp -index 859f775..c76b56a 100644 ---- a/src/scan_to_cloud_filter_chain.cpp -+++ b/src/scan_to_cloud_filter_chain.cpp -@@ -83,9 +83,7 @@ ScanToCloudFilterChain::ScanToCloudFilterChain( - std::placeholders::_1)); - filter_.setTolerance(std::chrono::duration(tf_tolerance_)); - -- auto timer_interface = std::make_shared( -- this->get_node_base_interface(), -- this->get_node_timers_interface()); -+ auto timer_interface = std::make_shared(*this); - buffer_.setCreateTimerInterface(timer_interface); - - #ifdef RCLCPP_SUPPORTS_MATCHED_CALLBACKS diff --git a/distros/rolling/patch/ros2-microstrain-inertial-driver.patch b/distros/rolling/patch/ros2-microstrain-inertial-driver.patch index cb5214c3..6da1ef58 100644 --- a/distros/rolling/patch/ros2-microstrain-inertial-driver.patch +++ b/distros/rolling/patch/ros2-microstrain-inertial-driver.patch @@ -1,5 +1,5 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index 35e036fa..db513f68 100644 +index a98cb77..4d92e1b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,14 @@ @@ -17,40 +17,8 @@ index 35e036fa..db513f68 100644 # C++ 14 required set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) -@@ -187,6 +195,14 @@ set(COMMON_INC_FILES +@@ -236,7 +244,10 @@ target_link_libraries(${LIFECYCLE_NAME} PUBLIC ) - set(COMMON_FILES ${COMMON_SRC_FILES} ${COMMON_INC_FILES}) - -+# ament_target_dependencies() was removed from ament_cmake_target_dependencies; -+# link against each dependency's exported _TARGETS instead. -+macro(link_ament_dependencies target) -+ foreach(_ament_dep ${ARGN}) -+ target_link_libraries(${target} ${${_ament_dep}_TARGETS}) -+ endforeach() -+endmacro() -+ - set(AMENT_COMMON_DEPENDENCIES - rclcpp - rclcpp_lifecycle -@@ -215,9 +231,7 @@ set(NODE_INC_FILES - ) - set(NODE_FILES ${NODE_SRC_FILES} ${NODE_INC_FILES}) - add_executable(${NODE_NAME} ${NODE_FILES} ${COMMON_FILES}) --ament_target_dependencies(${NODE_NAME} -- ${AMENT_COMMON_DEPENDENCIES} --) -+link_ament_dependencies(${NODE_NAME} ${AMENT_COMMON_DEPENDENCIES}) - - # Lifecycle node - set(LIFECYCLE_NAME ${PROJECT_NAME}_lifecycle_node) -@@ -231,12 +245,13 @@ set(LIFECYCLE_INC_FILES - set(LIFECYCLE_FILES ${LIFECYCLE_SRC_FILES} ${LIFECYCLE_INC_FILES}) - add_executable(${LIFECYCLE_NAME} ${LIFECYCLE_FILES} ${COMMON_FILES}) - target_compile_definitions(${LIFECYCLE_NAME} PUBLIC MICROSTRAIN_LIFECYCLE) --ament_target_dependencies(${LIFECYCLE_NAME} -- ${AMENT_COMMON_DEPENDENCIES} --) -+link_ament_dependencies(${LIFECYCLE_NAME} ${AMENT_COMMON_DEPENDENCIES}) # Annoying, but the ROS types don't match up with the MIP types for floats and doubles, so ignore those warnings for now -set_source_files_properties(${COMMON_SRC_DIR}/services.cpp PROPERTIES COMPILE_OPTIONS "-Wno-narrowing") @@ -61,57 +29,8 @@ index 35e036fa..db513f68 100644 # Tell the code the version of the driver that is being build add_definitions(-DMICROSTRAIN_DRIVER_VERSION="${DRIVER_GIT_VERSION}") - -diff --git a/microstrain_inertial_driver_common/include/microstrain_inertial_driver_common/utils/ros_compat.h b/microstrain_inertial_driver_common/include/microstrain_inertial_driver_common/utils/ros_compat.h -index f1fe0879..5b866134 100644 ---- a/microstrain_inertial_driver_common/include/microstrain_inertial_driver_common/utils/ros_compat.h -+++ b/microstrain_inertial_driver_common/include/microstrain_inertial_driver_common/utils/ros_compat.h -@@ -779,7 +779,7 @@ inline TransformListenerType createTransformListener(TransformBufferType buffer) - */ - inline StaticTransformBroadcasterType createStaticTransformBroadcaster(RosNodeType* node) - { -- return std::make_shared(node); -+ return std::make_shared(*node); - } - - /** -@@ -789,7 +789,7 @@ inline StaticTransformBroadcasterType createStaticTransformBroadcaster(RosNodeTy - */ - inline TransformBroadcasterType createTransformBroadcaster(RosNodeType* node) - { -- return std::make_shared(node); -+ return std::make_shared(*node); - } - - /** -diff --git a/src/microstrain_inertial_driver.cpp b/src/microstrain_inertial_driver.cpp -index e679866b..eaea4f15 100644 ---- a/src/microstrain_inertial_driver.cpp -+++ b/src/microstrain_inertial_driver.cpp -@@ -18,7 +18,7 @@ - #include - #include - --#include -+#include - - #include "lifecycle_msgs/msg/transition.hpp" - -diff --git a/src/microstrain_inertial_driver_lifecycle.cpp b/src/microstrain_inertial_driver_lifecycle.cpp -index 1e2a6757..f77bb1d9 100644 ---- a/src/microstrain_inertial_driver_lifecycle.cpp -+++ b/src/microstrain_inertial_driver_lifecycle.cpp -@@ -18,7 +18,7 @@ - #include - #include - --#include -+#include - - #include "lifecycle_msgs/msg/transition.hpp" - diff --git a/include/microstrain_inertial_driver/microstrain_inertial_driver.h b/include/microstrain_inertial_driver/microstrain_inertial_driver.h -index 8e9c2f0e..63edec08 100644 +index 8e9c2f0..63edec0 100644 --- a/include/microstrain_inertial_driver/microstrain_inertial_driver.h +++ b/include/microstrain_inertial_driver/microstrain_inertial_driver.h @@ -14,7 +14,9 @@ @@ -124,9 +43,8 @@ index 8e9c2f0e..63edec08 100644 #include #include #include - diff --git a/include/microstrain_inertial_driver/microstrain_inertial_driver_lifecycle.h b/include/microstrain_inertial_driver/microstrain_inertial_driver_lifecycle.h -index c8ef84e9..931163c2 100644 +index c8ef84e..931163c 100644 --- a/include/microstrain_inertial_driver/microstrain_inertial_driver_lifecycle.h +++ b/include/microstrain_inertial_driver/microstrain_inertial_driver_lifecycle.h @@ -14,7 +14,9 @@ @@ -139,9 +57,8 @@ index c8ef84e9..931163c2 100644 #include #include #include - diff --git a/microstrain_inertial_driver_common/src/utils/mip/ros_connection.cpp b/microstrain_inertial_driver_common/src/utils/mip/ros_connection.cpp -index e2eae441..826b8c24 100644 +index e2eae44..826b8c2 100644 --- a/microstrain_inertial_driver_common/src/utils/mip/ros_connection.cpp +++ b/microstrain_inertial_driver_common/src/utils/mip/ros_connection.cpp @@ -10,6 +10,14 @@ @@ -159,4 +76,3 @@ index e2eae441..826b8c24 100644 #include #include #include - diff --git a/distros/rolling/patch/ros2-moveit-ros-control-interface.patch b/distros/rolling/patch/ros2-moveit-ros-control-interface.patch deleted file mode 100644 index 784d5688..00000000 --- a/distros/rolling/patch/ros2-moveit-ros-control-interface.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/src/controller_manager_plugin.cpp b/src/controller_manager_plugin.cpp -index 4f24024725..3fc2cee2e0 100644 ---- a/src/controller_manager_plugin.cpp -+++ b/src/controller_manager_plugin.cpp -@@ -54,6 +54,7 @@ - #include - #include - #include -+#include - #include - - static const rclcpp::Duration CONTROLLER_INFORMATION_VALIDITY_AGE = rclcpp::Duration::from_seconds(1.0); diff --git a/distros/rolling/patch/ros2-moveit-ros-perception.patch b/distros/rolling/patch/ros2-moveit-ros-perception.patch index 8a26756a..3edfb2a1 100644 --- a/distros/rolling/patch/ros2-moveit-ros-perception.patch +++ b/distros/rolling/patch/ros2-moveit-ros-perception.patch @@ -1,16 +1,3 @@ -diff --git a/pointcloud_octomap_updater/src/pointcloud_octomap_updater.cpp b/pointcloud_octomap_updater/src/pointcloud_octomap_updater.cpp -index 7ab437a75a..0f28d369a0 100644 ---- a/pointcloud_octomap_updater/src/pointcloud_octomap_updater.cpp -+++ b/pointcloud_octomap_updater/src/pointcloud_octomap_updater.cpp -@@ -120,7 +120,7 @@ bool PointCloudOctomapUpdater::initialize(const rclcpp::Node::SharedPtr& node) - node_ = node; - tf_buffer_ = std::make_shared(node_->get_clock()); - auto create_timer_interface = -- std::make_shared(node->get_node_base_interface(), node->get_node_timers_interface()); -+ std::make_shared(tf2_ros::CreateTimerROS::RequiredInterfaces(*node)); - tf_buffer_->setCreateTimerInterface(create_timer_interface); - tf_listener_ = std::make_shared(*tf_buffer_); - shape_mask_ = std::make_unique(); diff --git a/CMakeLists.txt b/CMakeLists.txt index 761d53c8..0467358e 100644 --- a/CMakeLists.txt diff --git a/distros/rolling/patch/ros2-mujoco-3d-lidar.patch b/distros/rolling/patch/ros2-mujoco-3d-lidar.patch index 90473fe0..4503ee81 100644 --- a/distros/rolling/patch/ros2-mujoco-3d-lidar.patch +++ b/distros/rolling/patch/ros2-mujoco-3d-lidar.patch @@ -1,34 +1,8 @@ -diff --git a/include/mujoco_3d_lidar/3dlidar.h b/include/mujoco_3d_lidar/3dlidar.h -index e6f4810..64cceca 100644 ---- a/include/mujoco_3d_lidar/3dlidar.h -+++ b/include/mujoco_3d_lidar/3dlidar.h -@@ -29,7 +29,7 @@ - - #include - #include --#include -+#include - #include - - namespace mujoco::plugin::lidar -diff --git a/src/3dlidar.cpp b/src/3dlidar.cpp -index c5e30d3..4a99208 100644 ---- a/src/3dlidar.cpp -+++ b/src/3dlidar.cpp -@@ -30,7 +30,7 @@ - #include - #include - #include --#include -+#include - #include - #include - diff --git a/CMakeLists.txt b/CMakeLists.txt -index 1fe40b85..86d04647 100644 +index 1fe40b8..0094819 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -1,6 +1,18 @@ +@@ -1,6 +1,19 @@ cmake_minimum_required(VERSION 3.22) project(mujoco_3d_lidar) @@ -43,8 +17,8 @@ index 1fe40b85..86d04647 100644 + # 3dlidar.cpp uses bare M_PI, only defined by when this is set. + add_compile_definitions(_USE_MATH_DEFINES) +endif() ++ + find_package(ament_cmake QUIET) # Link MuJoCo via the vendor package find_package(mujoco_vendor REQUIRED) - diff --git a/distros/rolling/patch/ros2-rcutils.patch b/distros/rolling/patch/ros2-rcutils.patch deleted file mode 100644 index fb234543..00000000 --- a/distros/rolling/patch/ros2-rcutils.patch +++ /dev/null @@ -1,37 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 95b504e..3ef2c1b 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -6,6 +6,7 @@ include(CheckLibraryExists) - - find_package(ament_cmake REQUIRED) - find_package(ament_cmake_ros_core REQUIRED) -+find_package(Threads REQUIRED) - - if(UNIX AND NOT APPLE) - include(cmake/check_c_compiler_uses_glibc.cmake) -@@ -90,6 +91,8 @@ target_link_libraries(${PROJECT_NAME} - ${CMAKE_DL_LIBS} - ament_cmake_ros_core::ament_ros_defaults - ) -+target_link_libraries(${PROJECT_NAME} Threads::Threads) -+ament_export_dependencies(Threads) - - check_library_exists(atomic __atomic_load_8 "" HAVE_LIBATOMICS) - -diff --git a/src/testing/fault_injection.c b/src/testing/fault_injection.c -index a8b69d6..45fd5ae 100644 ---- a/src/testing/fault_injection.c -+++ b/src/testing/fault_injection.c -@@ -16,7 +16,11 @@ - - #include "rcutils/stdatomic_helper.h" - -+#if defined(_WIN32) && !defined(__MINGW64__) - static atomic_int_least64_t g_rcutils_fault_injection_count = {-1}; -+#else -+static atomic_int_least64_t g_rcutils_fault_injection_count = -1; -+#endif - - void rcutils_fault_injection_set_count(int_least64_t count) - { diff --git a/distros/rolling/patch/ros2-ros-gz-bridge.win.patch b/distros/rolling/patch/ros2-ros-gz-bridge.win.patch deleted file mode 100644 index 8e72ef1e..00000000 --- a/distros/rolling/patch/ros2-ros-gz-bridge.win.patch +++ /dev/null @@ -1,1365 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index b949389..9709c7b 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -9,8 +9,6 @@ endif() - if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wpedantic") - endif() --set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) -- - find_package(ament_cmake REQUIRED) - find_package(rclcpp REQUIRED) - find_package(rclcpp_components REQUIRED) -@@ -99,6 +97,13 @@ add_library(${bridge_lib} - ${generated_files} - ) - -+include(GenerateExportHeader) -+generate_export_header(${bridge_lib} -+ EXPORT_FILE_NAME -+ "${CMAKE_CURRENT_BINARY_DIR}/include/${PROJECT_NAME}/visibility_control.hpp" -+ EXPORT_MACRO_NAME ROS_GZ_BRIDGE_VISIBLE -+) -+ - target_link_libraries(${bridge_lib} - PUBLIC - gz-msgs::core -@@ -126,14 +131,24 @@ target_link_libraries(${bridge_lib} - target_include_directories(${bridge_lib} - PUBLIC - "$" -+ "$" - "$" - PRIVATE - "$" - "$" - ) - -+# Many tests do not link ${bridge_lib} even if they include its headers, -+# ensure that ${CMAKE_CURRENT_BINARY_DIR}/include that includes the visibility_control.hpp header -+# is properly visible -+include_directories(${CMAKE_CURRENT_BINARY_DIR}/include) -+ - if(MSVC) - target_compile_options(${bridge_lib} PRIVATE "/bigobj") -+ # This is used to ensure that all the heavy-templated tests -+ # defined in this directory use /bigobj, -+ # without the need to manually specify if for each test -+ add_compile_options("/bigobj") - endif() - - rclcpp_components_register_node( -@@ -151,6 +166,11 @@ install( - DESTINATION include/${PROJECT_NAME} - ) - -+install( -+ FILES "${CMAKE_CURRENT_BINARY_DIR}/include/${PROJECT_NAME}/visibility_control.hpp" -+ DESTINATION include/${PROJECT_NAME}/${PROJECT_NAME} -+) -+ - install( - DIRECTORY launch/ - DESTINATION share/${PROJECT_NAME}/launch -diff --git a/include/ros_gz_bridge/bridge_config.hpp b/include/ros_gz_bridge/bridge_config.hpp -index 2687e5c..1e63873 100644 ---- a/include/ros_gz_bridge/bridge_config.hpp -+++ b/include/ros_gz_bridge/bridge_config.hpp -@@ -21,6 +21,8 @@ - - #include - -+#include "ros_gz_bridge/visibility_control.hpp" -+ - namespace ros_gz_bridge - { - -@@ -49,9 +51,9 @@ static constexpr BridgeDirection kDefaultDirection = BridgeDirection::BIDIRECTIO - /// \param[in] qos_profile Uppercase string, e.g. "SENSOR_DATA". - /// \return The corresponding QoS profile. - /// \throws std::invalid_argument if the profile cannot be parsed. --rclcpp::QoS parseQoS(const std::string & qos_profile); -+ROS_GZ_BRIDGE_VISIBLE rclcpp::QoS parseQoS(const std::string & qos_profile); - --struct BridgeConfig -+struct ROS_GZ_BRIDGE_VISIBLE BridgeConfig - { - /// \brief The ROS message type (eg std_msgs/msg/String) - std::string ros_type_name; -@@ -105,12 +107,12 @@ struct BridgeConfig - /// \brief Generate a group of BridgeConfigs from a YAML String - /// \param[in] data string containing YAML of bridge configurations - /// \return Vector of bridge configurations --std::vector readFromYamlString(const std::string & data); -+ROS_GZ_BRIDGE_VISIBLE std::vector readFromYamlString(const std::string & data); - - /// \brief Generate a group of BridgeConfigs from a YAML File - /// \param[in] filename name of file containing YAML of bridge configurations - /// \return Vector of bridge configurations --std::vector readFromYamlFile(const std::string & filename); -+ROS_GZ_BRIDGE_VISIBLE std::vector readFromYamlFile(const std::string & filename); - - } // namespace ros_gz_bridge - -diff --git a/include/ros_gz_bridge/convert/actuator_msgs.hpp b/include/ros_gz_bridge/convert/actuator_msgs.hpp -index ea4055b..14d27d6 100644 ---- a/include/ros_gz_bridge/convert/actuator_msgs.hpp -+++ b/include/ros_gz_bridge/convert/actuator_msgs.hpp -@@ -27,13 +27,13 @@ namespace ros_gz_bridge - { - // actuator_msgs - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const actuator_msgs::msg::Actuators & ros_msg, - gz::msgs::Actuators & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Actuators & gz_msg, - actuator_msgs::msg::Actuators & ros_msg); -diff --git a/include/ros_gz_bridge/convert/builtin_interfaces.hpp b/include/ros_gz_bridge/convert/builtin_interfaces.hpp -index 04c47ba..c2c06ca 100644 ---- a/include/ros_gz_bridge/convert/builtin_interfaces.hpp -+++ b/include/ros_gz_bridge/convert/builtin_interfaces.hpp -@@ -25,13 +25,13 @@ namespace ros_gz_bridge - { - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const builtin_interfaces::msg::Time & ros_msg, - gz::msgs::Time & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Time & gz_msg, - builtin_interfaces::msg::Time & ros_msg); -diff --git a/include/ros_gz_bridge/convert/geometry_msgs.hpp b/include/ros_gz_bridge/convert/geometry_msgs.hpp -index 6416fa3..960cb20 100644 ---- a/include/ros_gz_bridge/convert/geometry_msgs.hpp -+++ b/include/ros_gz_bridge/convert/geometry_msgs.hpp -@@ -48,193 +48,193 @@ namespace ros_gz_bridge - - // geometry_msgs - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const geometry_msgs::msg::Quaternion & ros_msg, - gz::msgs::Quaternion & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Quaternion & gz_msg, - geometry_msgs::msg::Quaternion & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const geometry_msgs::msg::Vector3 & ros_msg, - gz::msgs::Vector3d & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Vector3d & gz_msg, - geometry_msgs::msg::Vector3 & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const geometry_msgs::msg::Point & ros_msg, - gz::msgs::Vector3d & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Vector3d & gz_msg, - geometry_msgs::msg::Point & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const geometry_msgs::msg::Pose & ros_msg, - gz::msgs::Pose & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Pose & gz_msg, - geometry_msgs::msg::Pose & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const geometry_msgs::msg::PoseArray & ros_msg, - gz::msgs::Pose_V & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Pose_V & gz_msg, - geometry_msgs::msg::PoseArray & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const geometry_msgs::msg::PoseWithCovariance & ros_msg, - gz::msgs::PoseWithCovariance & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::PoseWithCovariance & gz_msg, - geometry_msgs::msg::PoseWithCovarianceStamped & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const geometry_msgs::msg::PoseWithCovarianceStamped & ros_msg, - gz::msgs::PoseWithCovariance & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::PoseWithCovariance & gz_msg, - geometry_msgs::msg::PoseWithCovariance & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const geometry_msgs::msg::PoseStamped & ros_msg, - gz::msgs::Pose & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Pose & gz_msg, - geometry_msgs::msg::PoseStamped & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const geometry_msgs::msg::Transform & ros_msg, - gz::msgs::Pose & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Pose & gz_msg, - geometry_msgs::msg::Transform & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const geometry_msgs::msg::TransformStamped & ros_msg, - gz::msgs::Pose & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Pose & gz_msg, - geometry_msgs::msg::TransformStamped & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const geometry_msgs::msg::Twist & ros_msg, - gz::msgs::Twist & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Twist & gz_msg, - geometry_msgs::msg::Twist & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const geometry_msgs::msg::TwistStamped & ros_msg, - gz::msgs::Twist & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Twist & gz_msg, - geometry_msgs::msg::TwistStamped & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const geometry_msgs::msg::TwistWithCovariance & ros_msg, - gz::msgs::TwistWithCovariance & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::TwistWithCovariance & gz_msg, - geometry_msgs::msg::TwistWithCovariance & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const geometry_msgs::msg::TwistWithCovarianceStamped & ros_msg, - gz::msgs::TwistWithCovariance & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::TwistWithCovariance & gz_msg, - geometry_msgs::msg::TwistWithCovarianceStamped & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const geometry_msgs::msg::Wrench & ros_msg, - gz::msgs::Wrench & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Wrench & gz_msg, - geometry_msgs::msg::Wrench & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const geometry_msgs::msg::WrenchStamped & ros_msg, - gz::msgs::Wrench & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Wrench & gz_msg, - geometry_msgs::msg::WrenchStamped & ros_msg); -diff --git a/include/ros_gz_bridge/convert/gps_msgs.hpp b/include/ros_gz_bridge/convert/gps_msgs.hpp -index d6cf194..fda4568 100644 ---- a/include/ros_gz_bridge/convert/gps_msgs.hpp -+++ b/include/ros_gz_bridge/convert/gps_msgs.hpp -@@ -26,13 +26,13 @@ - namespace ros_gz_bridge - { - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const gps_msgs::msg::GPSFix & ros_msg, - gz::msgs::NavSat & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::NavSat & gz_msg, - gps_msgs::msg::GPSFix & ros_msg); -diff --git a/include/ros_gz_bridge/convert/marine_acoustic_msgs.hpp b/include/ros_gz_bridge/convert/marine_acoustic_msgs.hpp -index ed46e87..f796435 100644 ---- a/include/ros_gz_bridge/convert/marine_acoustic_msgs.hpp -+++ b/include/ros_gz_bridge/convert/marine_acoustic_msgs.hpp -@@ -27,13 +27,13 @@ namespace ros_gz_bridge - { - // marine_acoustic_msgs - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const marine_acoustic_msgs::msg::Dvl & ros_msg, - gz::msgs::DVLVelocityTracking & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::DVLVelocityTracking & gz_msg, - marine_acoustic_msgs::msg::Dvl & ros_msg); -diff --git a/include/ros_gz_bridge/convert/nav_msgs.hpp b/include/ros_gz_bridge/convert/nav_msgs.hpp -index 91c0f1a..fad3eb3 100644 ---- a/include/ros_gz_bridge/convert/nav_msgs.hpp -+++ b/include/ros_gz_bridge/convert/nav_msgs.hpp -@@ -28,25 +28,25 @@ namespace ros_gz_bridge - { - // nav_msgs - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const nav_msgs::msg::Odometry & ros_msg, - gz::msgs::Odometry & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Odometry & gz_msg, - nav_msgs::msg::Odometry & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const nav_msgs::msg::Odometry & ros_msg, - gz::msgs::OdometryWithCovariance & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::OdometryWithCovariance & gz_msg, - nav_msgs::msg::Odometry & ros_msg); -diff --git a/include/ros_gz_bridge/convert/rcl_interfaces.hpp b/include/ros_gz_bridge/convert/rcl_interfaces.hpp -index a81e35a..b7c359d 100644 ---- a/include/ros_gz_bridge/convert/rcl_interfaces.hpp -+++ b/include/ros_gz_bridge/convert/rcl_interfaces.hpp -@@ -29,13 +29,13 @@ namespace ros_gz_bridge - { - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const rcl_interfaces::msg::ParameterValue & ros_msg, - gz::msgs::Any & ign_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Any & ign_msg, - rcl_interfaces::msg::ParameterValue & ros_msg); -diff --git a/include/ros_gz_bridge/convert/ros_gz_interfaces.hpp b/include/ros_gz_bridge/convert/ros_gz_interfaces.hpp -index 65f58fa..654f013 100644 ---- a/include/ros_gz_bridge/convert/ros_gz_interfaces.hpp -+++ b/include/ros_gz_bridge/convert/ros_gz_interfaces.hpp -@@ -70,284 +70,284 @@ namespace ros_gz_bridge - { - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const ros_gz_interfaces::msg::JointWrench & ros_msg, - gz::msgs::JointWrench & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::JointWrench & gz_msg, - ros_gz_interfaces::msg::JointWrench & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const ros_gz_interfaces::msg::Altimeter & ros_msg, - gz::msgs::Altimeter & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Altimeter & gz_msg, - ros_gz_interfaces::msg::Altimeter & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const ros_gz_interfaces::msg::Entity & ros_msg, - gz::msgs::Entity & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const ros_gz_interfaces::msg::Entity & ros_msg, - gz::msgs::Pose & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Entity & gz_msg, - ros_gz_interfaces::msg::Entity & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const ros_gz_interfaces::msg::EntityFactory & ros_msg, - gz::msgs::EntityFactory & gz_msg); - - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::EntityFactory & gz_msg, - ros_gz_interfaces::msg::EntityFactory & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const ros_gz_interfaces::msg::EntityWrench & ros_msg, - gz::msgs::EntityWrench & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::EntityWrench & gz_msg, - ros_gz_interfaces::msg::EntityWrench & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const ros_gz_interfaces::msg::Contact & ros_msg, - gz::msgs::Contact & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Contact & gz_msg, - ros_gz_interfaces::msg::Contact & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const ros_gz_interfaces::msg::Contacts & ros_msg, - gz::msgs::Contacts & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Contacts & gz_msg, - ros_gz_interfaces::msg::Contacts & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const ros_gz_interfaces::msg::Dataframe & ros_msg, - gz::msgs::Dataframe & ign_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Dataframe & ign_msg, - ros_gz_interfaces::msg::Dataframe & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const ros_gz_interfaces::msg::GuiCamera & ros_msg, - gz::msgs::GUICamera & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::GUICamera & gz_msg, - ros_gz_interfaces::msg::GuiCamera & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const ros_gz_interfaces::msg::Light & ros_msg, - gz::msgs::Light & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Light & gz_msg, - ros_gz_interfaces::msg::Light & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const ros_gz_interfaces::msg::MaterialColor & ros_msg, - gz::msgs::MaterialColor & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::MaterialColor & gz_msg, - ros_gz_interfaces::msg::MaterialColor & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const ros_gz_interfaces::msg::SensorNoise & ros_msg, - gz::msgs::SensorNoise & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::SensorNoise & gz_msg, - ros_gz_interfaces::msg::SensorNoise & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const ros_gz_interfaces::msg::StringVec & ros_msg, - gz::msgs::StringMsg_V & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::StringMsg_V & gz_msg, - ros_gz_interfaces::msg::StringVec & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const ros_gz_interfaces::msg::ParamVec & ros_msg, - gz::msgs::Param & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Param & gz_msg, - ros_gz_interfaces::msg::ParamVec & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const ros_gz_interfaces::msg::ParamVec & ros_msg, - gz::msgs::Param_V & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Param_V & gz_msg, - ros_gz_interfaces::msg::ParamVec & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const ros_gz_interfaces::msg::TrackVisual & ros_msg, - gz::msgs::TrackVisual & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::TrackVisual & gz_msg, - ros_gz_interfaces::msg::TrackVisual & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const ros_gz_interfaces::msg::VideoRecord & ros_msg, - gz::msgs::VideoRecord & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::VideoRecord & gz_msg, - ros_gz_interfaces::msg::VideoRecord & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const ros_gz_interfaces::msg::WorldControl & ros_msg, - gz::msgs::WorldControl & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::WorldControl & gz_msg, - ros_gz_interfaces::msg::WorldControl & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const ros_gz_interfaces::msg::WorldReset & ros_msg, - gz::msgs::WorldReset & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::WorldReset & gz_msg, - ros_gz_interfaces::msg::WorldReset & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::WorldStatistics & gz_msg, - ros_gz_interfaces::msg::WorldStatistics & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const ros_gz_interfaces::msg::WorldStatistics & ros_msg, - gz::msgs::WorldStatistics & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const ros_gz_interfaces::msg::Float32Array & ros_msg, - gz::msgs::Float_V & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Float_V & gz_msg, - ros_gz_interfaces::msg::Float32Array & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const ros_gz_interfaces::msg::LogicalCameraImage & ros_msg, - gz::msgs::LogicalCameraImage & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::LogicalCameraImage & gz_msg, - ros_gz_interfaces::msg::LogicalCameraImage & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const ros_gz_interfaces::msg::LogPlaybackStatistics & ros_msg, - gz::msgs::LogPlaybackStatistics & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::LogPlaybackStatistics & gz_msg, - ros_gz_interfaces::msg::LogPlaybackStatistics & ros_msg); -diff --git a/include/ros_gz_bridge/convert/rosgraph_msgs.hpp b/include/ros_gz_bridge/convert/rosgraph_msgs.hpp -index d4d7d51..e8f6af8 100644 ---- a/include/ros_gz_bridge/convert/rosgraph_msgs.hpp -+++ b/include/ros_gz_bridge/convert/rosgraph_msgs.hpp -@@ -27,13 +27,13 @@ namespace ros_gz_bridge - { - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Clock & gz_msg, - rosgraph_msgs::msg::Clock & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const rosgraph_msgs::msg::Clock & ros_msg, - gz::msgs::Clock & gz_msg); -diff --git a/include/ros_gz_bridge/convert/sensor_msgs.hpp b/include/ros_gz_bridge/convert/sensor_msgs.hpp -index 53fc1bc..a1410f7 100644 ---- a/include/ros_gz_bridge/convert/sensor_msgs.hpp -+++ b/include/ros_gz_bridge/convert/sensor_msgs.hpp -@@ -49,133 +49,133 @@ namespace ros_gz_bridge - - // sensor_msgs - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const sensor_msgs::msg::Joy & ros_msg, - gz::msgs::Joy & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Joy & gz_msg, - sensor_msgs::msg::Joy & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const sensor_msgs::msg::FluidPressure & ros_msg, - gz::msgs::FluidPressure & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::FluidPressure & gz_msg, - sensor_msgs::msg::FluidPressure & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const sensor_msgs::msg::Image & ros_msg, - gz::msgs::Image & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Image & gz_msg, - sensor_msgs::msg::Image & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const sensor_msgs::msg::CameraInfo & ros_msg, - gz::msgs::CameraInfo & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::CameraInfo & gz_msg, - sensor_msgs::msg::CameraInfo & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const sensor_msgs::msg::Imu & ros_msg, - gz::msgs::IMU & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::IMU & gz_msg, - sensor_msgs::msg::Imu & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const sensor_msgs::msg::JointState & ros_msg, - gz::msgs::Model & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Model & gz_msg, - sensor_msgs::msg::JointState & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const sensor_msgs::msg::LaserScan & ros_msg, - gz::msgs::LaserScan & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::LaserScan & gz_msg, - sensor_msgs::msg::LaserScan & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const sensor_msgs::msg::MagneticField & ros_msg, - gz::msgs::Magnetometer & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Magnetometer & gz_msg, - sensor_msgs::msg::MagneticField & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const sensor_msgs::msg::NavSatFix & ros_msg, - gz::msgs::NavSat & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::NavSat & gz_msg, - sensor_msgs::msg::NavSatFix & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const sensor_msgs::msg::PointCloud2 & ros_msg, - gz::msgs::PointCloudPacked & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::PointCloudPacked & gz_msg, - sensor_msgs::msg::PointCloud2 & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const sensor_msgs::msg::BatteryState & ros_msg, - gz::msgs::BatteryState & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::BatteryState & gz_msg, - sensor_msgs::msg::BatteryState & ros_msg); -diff --git a/include/ros_gz_bridge/convert/std_msgs.hpp b/include/ros_gz_bridge/convert/std_msgs.hpp -index 78d3f11..652c4f9 100644 ---- a/include/ros_gz_bridge/convert/std_msgs.hpp -+++ b/include/ros_gz_bridge/convert/std_msgs.hpp -@@ -43,109 +43,109 @@ namespace ros_gz_bridge - { - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const std_msgs::msg::Bool & ros_msg, - gz::msgs::Boolean & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Boolean & gz_msg, - std_msgs::msg::Bool & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const std_msgs::msg::ColorRGBA & ros_msg, - gz::msgs::Color & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Color & gz_msg, - std_msgs::msg::ColorRGBA & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const std_msgs::msg::Empty & ros_msg, - gz::msgs::Empty & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Empty & gz_msg, - std_msgs::msg::Empty & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const std_msgs::msg::UInt32 & ros_msg, - gz::msgs::UInt32 & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::UInt32 & gz_msg, - std_msgs::msg::UInt32 & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const std_msgs::msg::Float32 & ros_msg, - gz::msgs::Float & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Float & gz_msg, - std_msgs::msg::Float32 & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const std_msgs::msg::Float64 & ros_msg, - gz::msgs::Double & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Double & gz_msg, - std_msgs::msg::Float64 & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const std_msgs::msg::Header & ros_msg, - gz::msgs::Header & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Header & gz_msg, - std_msgs::msg::Header & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const std_msgs::msg::Int32 & ros_msg, - gz::msgs::Int32 & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Int32 & gz_msg, - std_msgs::msg::Int32 & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const std_msgs::msg::String & ros_msg, - gz::msgs::StringMsg & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::StringMsg & gz_msg, - std_msgs::msg::String & ros_msg); -diff --git a/include/ros_gz_bridge/convert/tf2_msgs.hpp b/include/ros_gz_bridge/convert/tf2_msgs.hpp -index a7df9e0..64f852e 100644 ---- a/include/ros_gz_bridge/convert/tf2_msgs.hpp -+++ b/include/ros_gz_bridge/convert/tf2_msgs.hpp -@@ -27,13 +27,13 @@ namespace ros_gz_bridge - { - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const tf2_msgs::msg::TFMessage & ros_msg, - gz::msgs::Pose_V & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::Pose_V & gz_msg, - tf2_msgs::msg::TFMessage & ros_msg); -diff --git a/include/ros_gz_bridge/convert/trajectory_msgs.hpp b/include/ros_gz_bridge/convert/trajectory_msgs.hpp -index d2120db..4d575d6 100644 ---- a/include/ros_gz_bridge/convert/trajectory_msgs.hpp -+++ b/include/ros_gz_bridge/convert/trajectory_msgs.hpp -@@ -27,25 +27,25 @@ namespace ros_gz_bridge - { - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const trajectory_msgs::msg::JointTrajectoryPoint & ros_msg, - gz::msgs::JointTrajectoryPoint & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::JointTrajectoryPoint & gz_msg, - trajectory_msgs::msg::JointTrajectoryPoint & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const trajectory_msgs::msg::JointTrajectory & ros_msg, - gz::msgs::JointTrajectory & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::JointTrajectory & gz_msg, - trajectory_msgs::msg::JointTrajectory & ros_msg); -diff --git a/include/ros_gz_bridge/convert/vision_msgs.hpp b/include/ros_gz_bridge/convert/vision_msgs.hpp -index b1556f6..4e0c8a2 100644 ---- a/include/ros_gz_bridge/convert/vision_msgs.hpp -+++ b/include/ros_gz_bridge/convert/vision_msgs.hpp -@@ -27,49 +27,49 @@ - namespace ros_gz_bridge - { - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const vision_msgs::msg::Detection2D & ros_msg, - gz::msgs::AnnotatedAxisAligned2DBox & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::AnnotatedAxisAligned2DBox & gz_msg, - vision_msgs::msg::Detection2D & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const vision_msgs::msg::Detection2DArray & ros_msg, - gz::msgs::AnnotatedAxisAligned2DBox_V & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::AnnotatedAxisAligned2DBox_V & gz_msg, - vision_msgs::msg::Detection2DArray & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const vision_msgs::msg::Detection3D & ros_msg, - gz::msgs::AnnotatedOriented3DBox & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::AnnotatedOriented3DBox & gz_msg, - vision_msgs::msg::Detection3D & ros_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const vision_msgs::msg::Detection3DArray & ros_msg, - gz::msgs::AnnotatedOriented3DBox_V & gz_msg); - - template<> --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const gz::msgs::AnnotatedOriented3DBox_V & gz_msg, - vision_msgs::msg::Detection3DArray & ros_msg); -diff --git a/include/ros_gz_bridge/convert_decl.hpp b/include/ros_gz_bridge/convert_decl.hpp -index 3141997..5d2ca98 100644 ---- a/include/ros_gz_bridge/convert_decl.hpp -+++ b/include/ros_gz_bridge/convert_decl.hpp -@@ -15,17 +15,19 @@ - #ifndef ROS_GZ_BRIDGE__CONVERT_DECL_HPP_ - #define ROS_GZ_BRIDGE__CONVERT_DECL_HPP_ - -+#include "ros_gz_bridge/visibility_control.hpp" -+ - namespace ros_gz_bridge - { - - template --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_ros_to_gz( - const ROS_T & ros_msg, - GZ_T & gz_msg); - - template --void -+ROS_GZ_BRIDGE_VISIBLE void - convert_gz_to_ros( - const GZ_T & gz_msg, - ROS_T & ros_msg); -diff --git a/include/ros_gz_bridge/ros_gz_bridge.hpp b/include/ros_gz_bridge/ros_gz_bridge.hpp -index b1ef76d..24bfaac 100644 ---- a/include/ros_gz_bridge/ros_gz_bridge.hpp -+++ b/include/ros_gz_bridge/ros_gz_bridge.hpp -@@ -23,6 +23,7 @@ - #include - #include - #include "ros_gz_bridge/bridge_config.hpp" -+#include "ros_gz_bridge/visibility_control.hpp" - - namespace ros_gz_bridge - { -@@ -30,7 +31,7 @@ namespace ros_gz_bridge - class BridgeHandle; - - /// \brief Component container for the ROS-GZ Bridge --class RosGzBridge : public rclcpp::Node -+class ROS_GZ_BRIDGE_VISIBLE RosGzBridge : public rclcpp::Node - { - public: - /// \brief Constructor -diff --git a/src/factory_interface.hpp b/src/factory_interface.hpp -index d1797df..fd6c4f6 100644 ---- a/src/factory_interface.hpp -+++ b/src/factory_interface.hpp -@@ -25,11 +25,12 @@ - #include - - #include "bridge_handle_gz_to_ros_parameters.hpp" -+#include "ros_gz_bridge/visibility_control.hpp" - - namespace ros_gz_bridge - { - --class FactoryInterface -+class ROS_GZ_BRIDGE_VISIBLE FactoryInterface - { - public: - virtual ~FactoryInterface() = 0; -diff --git a/src/get_factory.hpp b/src/get_factory.hpp -index 6215a02..495b65d 100644 ---- a/src/get_factory.hpp -+++ b/src/get_factory.hpp -@@ -20,16 +20,17 @@ - - #include "factory_interface.hpp" - #include "service_factory_interface.hpp" -+#include "ros_gz_bridge/visibility_control.hpp" - - namespace ros_gz_bridge - { - --std::shared_ptr -+ROS_GZ_BRIDGE_VISIBLE std::shared_ptr - get_factory( - const std::string & ros_type_name, - const std::string & gz_type_name); - --std::shared_ptr -+ROS_GZ_BRIDGE_VISIBLE std::shared_ptr - get_service_factory( - const std::string & ros_type_name, - const std::string & gz_req_type_name, -diff --git a/src/get_mappings.hpp b/src/get_mappings.hpp -index f26ae20..1c699cf 100644 ---- a/src/get_mappings.hpp -+++ b/src/get_mappings.hpp -@@ -18,16 +18,18 @@ - #include - #include - -+#include "ros_gz_bridge/visibility_control.hpp" -+ - namespace ros_gz_bridge - { - --bool -+ROS_GZ_BRIDGE_VISIBLE bool - get_gz_to_ros_mapping(const std::string & gz_type_name, std::string & ros_type_name); - --bool -+ROS_GZ_BRIDGE_VISIBLE bool - get_ros_to_gz_mapping(const std::string & ros_type_name, std::string & gz_type_name); - --std::multimap -+ROS_GZ_BRIDGE_VISIBLE std::multimap - get_all_message_mappings_ros_to_gz(); - - } // namespace ros_gz_bridge -diff --git a/src/service_factory_interface.hpp b/src/service_factory_interface.hpp -index 766ce51..afa06e6 100644 ---- a/src/service_factory_interface.hpp -+++ b/src/service_factory_interface.hpp -@@ -23,10 +23,12 @@ - #include - #include - -+#include "ros_gz_bridge/visibility_control.hpp" -+ - namespace ros_gz_bridge - { - --class ServiceFactoryInterface -+class ROS_GZ_BRIDGE_VISIBLE ServiceFactoryInterface - { - public: - virtual ~ServiceFactoryInterface() = 0; diff --git a/distros/rolling/patch/ros2-rqt-image-view.patch b/distros/rolling/patch/ros2-rqt-image-view.patch index e320383c..97b9cc7e 100644 --- a/distros/rolling/patch/ros2-rqt-image-view.patch +++ b/distros/rolling/patch/ros2-rqt-image-view.patch @@ -1,8 +1,8 @@ diff --git a/src/rqt_image_view/image_view.cpp b/src/rqt_image_view/image_view.cpp -index f25f516..03f86d3 100644 +index 39850bd..642d1f8 100644 --- a/src/rqt_image_view/image_view.cpp +++ b/src/rqt_image_view/image_view.cpp -@@ -601,7 +601,7 @@ void ImageView::callbackImage(const sensor_msgs::msg::Image::ConstSharedPtr & ms +@@ -868,7 +868,7 @@ void ImageView::callbackImage(const sensor_msgs::msg::Image::ConstSharedPtr & ms conversion_mat_ = cv_ptr->image; } else if (msg->encoding == "8UC1") { // convert gray to rgb @@ -11,7 +11,7 @@ index f25f516..03f86d3 100644 } else if (msg->encoding == "16UC1" || msg->encoding == "32FC1") { // scale / quantify double min = 0; -@@ -625,11 +625,11 @@ void ImageView::callbackImage(const sensor_msgs::msg::Image::ConstSharedPtr & ms +@@ -892,11 +892,11 @@ void ImageView::callbackImage(const sensor_msgs::msg::Image::ConstSharedPtr & ms // convert the scaled image to the selected color scheme; // "Gray" (color scheme = -1) being a special case if (color_scheme == -1) { @@ -22,6 +22,6 @@ index f25f516..03f86d3 100644 cv::applyColorMap(img_scaled_8u, img_color_scheme, color_scheme); - cv::cvtColor(img_color_scheme, conversion_mat_, CV_BGR2RGB); + cv::cvtColor(img_color_scheme, conversion_mat_, cv::COLOR_BGR2RGB); + colormap_applied = true; } } else { - qWarning("ImageView.callback_image() could not convert image from '%s' to 'rgb8' (%s)", diff --git a/distros/rolling/patch/ros2-rviz-ogre-vendor.patch b/distros/rolling/patch/ros2-rviz-ogre-vendor.patch index fce0b1dc..b846846b 100644 --- a/distros/rolling/patch/ros2-rviz-ogre-vendor.patch +++ b/distros/rolling/patch/ros2-rviz-ogre-vendor.patch @@ -15,14 +15,12 @@ index 8d23a299a..f58c62831 100644 endif() ament_vendor(ogre_vendor -diff --git a/patches/0005-fix-macos-arm64.patch b/patches/0005-fix-macos-arm64.patch +diff --git a/patches/0008-fix-macos-sysroot.patch b/patches/0008-fix-macos-sysroot.patch new file mode 100644 -index 000000000..9494cc9ae --- /dev/null -+++ b/patches/0005-fix-macos-arm64.patch -@@ -0,0 +1,19 @@ ++++ b/patches/0008-fix-macos-sysroot.patch +@@ -0,0 +1,18 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt -+index f4d8fd4..ffae9c8 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -270,14 +270,6 @@ elseif(EMSCRIPTEN) @@ -31,7 +29,7 @@ index 000000000..9494cc9ae + +- set(XCODE_ATTRIBUTE_SDKROOT macosx) +- if(CMAKE_GENERATOR STREQUAL "Unix Makefiles") -+- execute_process(COMMAND xcodebuild -version -sdk "${XCODE_ATTRIBUTE_SDKROOT}" Path | head -n 1 OUTPUT_VARIABLE CMAKE_OSX_SYSROOT) ++- execute_process(COMMAND xcrun --sdk macosx --show-sdk-path OUTPUT_VARIABLE CMAKE_OSX_SYSROOT) +- string(REGEX REPLACE "(\r?\n)+$" "" CMAKE_OSX_SYSROOT "${CMAKE_OSX_SYSROOT}") +- else() +- set(CMAKE_OSX_SYSROOT macosx) diff --git a/distros/rolling/patch/ros2-rviz-rendering.osx.patch b/distros/rolling/patch/ros2-rviz-rendering.osx.patch deleted file mode 100644 index b7a8ede3..00000000 --- a/distros/rolling/patch/ros2-rviz-rendering.osx.patch +++ /dev/null @@ -1,46 +0,0 @@ -diff --git a/src/rviz_rendering/ogre_render_window_impl.cpp b/src/rviz_rendering/ogre_render_window_impl.cpp -index 466e1d1e4..8fcd56d57 100644 ---- a/src/rviz_rendering/ogre_render_window_impl.cpp -+++ b/src/rviz_rendering/ogre_render_window_impl.cpp -@@ -235,12 +235,21 @@ void - RenderWindowImpl::resize(size_t width, size_t height) - { - if (ogre_render_window_) { -- this->setCameraAspectRatio(); -- ogre_render_window_->resize( -- static_cast(width), // NOLINT -- static_cast(height) // NOLINT -- ); -- ogre_render_window_->windowMovedOrResized(); -+ // Skip the costly Ogre resize / windowMovedOrResized when the size has -+ // not actually changed. On macOS Sonoma+, windowMovedOrResized triggers -+ // [NSOpenGLContext update] -> CGLSetVirtualScreen, which is hundreds of -+ // ms per call under the OpenGL-on-Metal compatibility path; each call -+ // also re-fires an expose event, so calling it on every expose creates -+ // a positive-feedback loop that makes the splash screen never progress. -+ const auto w = static_cast(width); -+ const auto h = static_cast(height); -+ if (w != last_resize_width_ || h != last_resize_height_) { -+ last_resize_width_ = w; -+ last_resize_height_ = h; -+ this->setCameraAspectRatio(); -+ ogre_render_window_->resize(w, h); -+ ogre_render_window_->windowMovedOrResized(); -+ } - } - this->renderLater(); - } -diff --git a/src/rviz_rendering/ogre_render_window_impl.hpp b/src/rviz_rendering/ogre_render_window_impl.hpp -index 7bd7b2238..8391498fe 100644 ---- a/src/rviz_rendering/ogre_render_window_impl.hpp -+++ b/src/rviz_rendering/ogre_render_window_impl.hpp -@@ -150,6 +150,9 @@ protected: - - bool animating_; - -+ unsigned int last_resize_width_{0}; -+ unsigned int last_resize_height_{0}; -+ - Ogre::Viewport * ogre_viewport_; - - // std::function pre_render_callback_; ///< Functor which is called before each render diff --git a/distros/rolling/patch/ros2-urdf-parser-plugin.win.patch b/distros/rolling/patch/ros2-urdf-parser-plugin.win.patch index a0865d19..d809c809 100644 --- a/distros/rolling/patch/ros2-urdf-parser-plugin.win.patch +++ b/distros/rolling/patch/ros2-urdf-parser-plugin.win.patch @@ -1,17 +1,18 @@ diff --git a/include/urdf_parser_plugin/parser.h b/include/urdf_parser_plugin/parser.h -index 2d9922d..d68abaf 100644 +index b62735b..c0ab36f 100644 --- a/include/urdf_parser_plugin/parser.h +++ b/include/urdf_parser_plugin/parser.h -@@ -31,9 +31,13 @@ - #ifndef URDF_PARSER_PLUGIN__PARSER_H_ - #define URDF_PARSER_PLUGIN__PARSER_H_ - +@@ -34,10 +34,14 @@ + #ifdef _MSC_VER + #pragma message("This header is obsolete, please include urdf_parser_plugin/parser.hpp instead") + #else +#ifdef _MSC_VER +#pragma message ("This header is obsolete, please include urdf_parser_plugin/parser.hpp instead") +#else #warning \ This header is obsolete, please include \ urdf_parser_plugin/parser.hpp instead + #endif +#endif #include From 6853f08369c6209ecd78bf6a5f0557bf1aeb0066 Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Sat, 17 Oct 2026 02:55:41 +1000 Subject: [PATCH 04/21] std_msgs test: CMake uses the environment's Python On macOS, FindPython3 prefers a framework Python (Xcode's 3.9), and rolling's ament_package needs 3.11+ (importlib.resources.abc): the C++ consumer test failed, std_msgs was dropped, and the 321 packages depending on it couldn't resolve. Co-Authored-By: Claude Opus 5.5 --- shared/tests/ros2-std-msgs.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/shared/tests/ros2-std-msgs.yaml b/shared/tests/ros2-std-msgs.yaml index 2088cfaf..c4ea436c 100644 --- a/shared/tests/ros2-std-msgs.yaml +++ b/shared/tests/ros2-std-msgs.yaml @@ -11,7 +11,9 @@ tests: - if: unix then: script: - - cmake -S cpp_consumer -B build -G Ninja -DCMAKE_PREFIX_PATH="$PREFIX" + # the environment's Python for ament's CMake scripts: on macOS, FindPython3 prefers + # a framework Python (Xcode's 3.9), which the current ament_package doesn't support + - cmake -S cpp_consumer -B build -G Ninja -DCMAKE_PREFIX_PATH="$PREFIX" -DPython3_EXECUTABLE="$PREFIX/bin/python" - cmake --build build - ./build/std_msgs_cpp_consumer requirements: From 2f11a01ec8e4e3e912dd91332ff8b7a0c0b8e4ea Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Sat, 17 Oct 2026 06:46:29 +1000 Subject: [PATCH 05/21] std_msgs test: pass Python to CMake like vinca's build scripts PYTHON_EXECUTABLE, Python_EXECUTABLE, Python3_EXECUTABLE and Python3_FIND_STRATEGY=LOCATION, as build_ament_cmake.sh does, instead of only Python3_EXECUTABLE. Co-Authored-By: Claude Opus 5.5 --- shared/tests/ros2-std-msgs.yaml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/shared/tests/ros2-std-msgs.yaml b/shared/tests/ros2-std-msgs.yaml index c4ea436c..18b6779e 100644 --- a/shared/tests/ros2-std-msgs.yaml +++ b/shared/tests/ros2-std-msgs.yaml @@ -11,9 +11,13 @@ tests: - if: unix then: script: - # the environment's Python for ament's CMake scripts: on macOS, FindPython3 prefers - # a framework Python (Xcode's 3.9), which the current ament_package doesn't support - - cmake -S cpp_consumer -B build -G Ninja -DCMAKE_PREFIX_PATH="$PREFIX" -DPython3_EXECUTABLE="$PREFIX/bin/python" + # the environment's Python for ament's CMake scripts, as vinca's build scripts pass + # it: otherwise FindPython3 prefers a framework Python on macOS (Xcode's 3.9), which + # the current ament_package doesn't support + - >- + cmake -S cpp_consumer -B build -G Ninja -DCMAKE_PREFIX_PATH="$PREFIX" + -DPYTHON_EXECUTABLE="$PREFIX/bin/python" -DPython_EXECUTABLE="$PREFIX/bin/python" + -DPython3_EXECUTABLE="$PREFIX/bin/python" -DPython3_FIND_STRATEGY=LOCATION - cmake --build build - ./build/std_msgs_cpp_consumer requirements: From 77c1be7599dab4a0f31107df3f218f43a5d0dffe Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Sat, 17 Oct 2026 07:33:58 +1000 Subject: [PATCH 06/21] tf2_ros smoke test: more time for the Zenoh router and the node During a full rebuild the machine is loaded: the router started late, the test's 10 s ran out and shut the context down while static_transform_publisher was still starting ("could not create publisher: context_impl is shutdown"), so tf2_ros and everything depending on it was dropped. 60 s and 30 router checks; on its own the test passes in about 6 s. Co-Authored-By: Claude Opus 5.5 --- .../static_transform_publisher_smoke_test_launch.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/shared/tests/ros2-tf2-ros/static_transform_publisher_smoke_test_launch.py b/shared/tests/ros2-tf2-ros/static_transform_publisher_smoke_test_launch.py index cd7ed884..3768031a 100644 --- a/shared/tests/ros2-tf2-ros/static_transform_publisher_smoke_test_launch.py +++ b/shared/tests/ros2-tf2-ros/static_transform_publisher_smoke_test_launch.py @@ -30,7 +30,9 @@ def static_transform_publisher(): additional_env={ "RMW_IMPLEMENTATION": "rmw_zenoh_cpp", "RCUTILS_LOGGING_USE_STDOUT": "1", - "ZENOH_ROUTER_CHECK_ATTEMPTS": "10", + # the router can take a while on a loaded machine (a full rebuild runs the + # tests next to the builds) + "ZENOH_ROUTER_CHECK_ATTEMPTS": "30", }, ) @@ -54,5 +56,7 @@ def validate_output(output): launch_context, static_transform_publisher, validate_output, - timeout=10, + # on timeout the test shuts the context down, and the still-starting node then + # aborts ("could not create publisher: context_impl is shutdown") + timeout=60, ) From c8dd9dbc4559e2a70ecce57c29931aec67f79981 Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Sat, 17 Oct 2026 11:47:23 +1000 Subject: [PATCH 07/21] rolling: rviz 16 / tf2_ros 0.46 fixes; robot_state_publisher test timeouts - rviz_satellite, vision_msgs_rviz_plugins: include frame_manager_iface.hpp / logging.hpp themselves (rviz_common 16 no longer pulls them in) - sbg_driver: the tf2_ros broadcasters take the node by reference (NodeInterfaces) - robot_state_publisher smoke test: 60 s instead of 10 s ("Robot initialized" came after 11 s during the full rebuild) Co-Authored-By: Claude Opus 5.5 --- .../rolling/patch/ros2-rviz-satellite.patch | 29 ++++++++++--------- distros/rolling/patch/ros2-sbg-driver.patch | 15 ++++++++++ .../patch/ros2-vision-msgs-rviz-plugins.patch | 24 +++++++++++++++ ...robot_state_publisher_smoke_test_launch.py | 7 +++-- 4 files changed, 59 insertions(+), 16 deletions(-) create mode 100644 distros/rolling/patch/ros2-sbg-driver.patch diff --git a/distros/rolling/patch/ros2-rviz-satellite.patch b/distros/rolling/patch/ros2-rviz-satellite.patch index f15e572c..5bf796f2 100644 --- a/distros/rolling/patch/ros2-rviz-satellite.patch +++ b/distros/rolling/patch/ros2-rviz-satellite.patch @@ -1,28 +1,31 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index 6efce00..b1d19f1 100644 +index 83eaa7d..5d8c793 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -19,12 +19,12 @@ find_package(angles REQUIRED) +@@ -18,8 +18,8 @@ find_package(pluginlib REQUIRED) + find_package(angles REQUIRED) # rviz switched to Qt6: https://github.com/ros2/rviz/pull/1635 -if(rviz_common_VERSION_MAJOR GREATER_EQUAL 15 AND rviz_common_VERSION_MINOR GREATER_EQUAL 1) - find_package(Qt6 COMPONENTS Network REQUIRED) -- set(QT_VERSION_MAJOR 6) +find_package(Qt6 COMPONENTS Network QUIET) +if(Qt6_FOUND) -+ set(QT_VERSION_MAJOR 6) + set(QT_VERSION_MAJOR 6) else() find_package(Qt5 COMPONENTS Network REQUIRED) - set(QT_VERSION_MAJOR 5) - endif() - - add_library(${PROJECT_NAME} SHARED - src/aerialmap_display.cpp diff --git a/src/aerialmap_display.cpp b/src/aerialmap_display.cpp -index 671121a..6728788 100644 +index 2f8e0ae..037fd56 100644 --- a/src/aerialmap_display.cpp +++ b/src/aerialmap_display.cpp -@@ -443,7 +443,7 @@ void AerialMapDisplay::transformMapTileToFixedFrame( +@@ -28,6 +28,7 @@ limitations under the License. */ + + #include "field.hpp" + #include "rviz_common/display_context.hpp" ++#include "rviz_common/frame_manager_iface.hpp" + #include "rviz_common/logging.hpp" + #include "rviz_common/msg_conversions.hpp" + #include "rviz_common/validate_floats.hpp" +@@ -443,7 +444,7 @@ static void get_fixed_frame_transform_fallback_to_latest( orientation = rviz_common::quaternionMsgToOgre(pose_out.pose.orientation); } @@ -32,10 +35,10 @@ index 671121a..6728788 100644 std::unique_lock lock(tiles_mutex_, std::try_to_lock); if (!lock.owns_lock()) { diff --git a/src/aerialmap_display.hpp b/src/aerialmap_display.hpp -index bd90e05..fcecc94 100644 +index 60e3177..32f6c1a 100644 --- a/src/aerialmap_display.hpp +++ b/src/aerialmap_display.hpp -@@ -16,6 +16,7 @@ limitations under the License. */ +@@ -14,6 +14,7 @@ limitations under the License. */ #pragma once diff --git a/distros/rolling/patch/ros2-sbg-driver.patch b/distros/rolling/patch/ros2-sbg-driver.patch new file mode 100644 index 00000000..56307c76 --- /dev/null +++ b/distros/rolling/patch/ros2-sbg-driver.patch @@ -0,0 +1,15 @@ +diff --git a/src/message_wrapper.cpp b/src/message_wrapper.cpp +index e343bdb..d692838 100644 +--- a/src/message_wrapper.cpp ++++ b/src/message_wrapper.cpp +@@ -56,8 +56,8 @@ MessageWrapper::MessageWrapper(): + Node("tf_broadcaster") + { + first_valid_utc_ = false; +- tf_broadcaster_ = std::make_shared(this); +- static_tf_broadcaster_ = std::make_shared(this); ++ tf_broadcaster_ = std::make_shared(*this); ++ static_tf_broadcaster_ = std::make_shared(*this); + } + + //---------------------------------------------------------------------// diff --git a/distros/rolling/patch/ros2-vision-msgs-rviz-plugins.patch b/distros/rolling/patch/ros2-vision-msgs-rviz-plugins.patch index b14e4bf0..192ab4ff 100644 --- a/distros/rolling/patch/ros2-vision-msgs-rviz-plugins.patch +++ b/distros/rolling/patch/ros2-vision-msgs-rviz-plugins.patch @@ -79,6 +79,18 @@ index cd2b84c..5c5ffd0 100644 BOUNDING_BOX_3D_ARRAY_DISPLAY_HPP_PUBLIC void reset() override; +diff --git a/include/vision_msgs_rviz_plugins/bounding_box_3d_common.hpp b/include/vision_msgs_rviz_plugins/bounding_box_3d_common.hpp +index d75aec0..77ffea3 100644 +--- a/include/vision_msgs_rviz_plugins/bounding_box_3d_common.hpp ++++ b/include/vision_msgs_rviz_plugins/bounding_box_3d_common.hpp +@@ -25,6 +25,7 @@ + #include + #include + #include ++#include + #include + #include + diff --git a/include/vision_msgs_rviz_plugins/detection_3d.hpp b/include/vision_msgs_rviz_plugins/detection_3d.hpp index bc6ad9b..0975e09 100644 --- a/include/vision_msgs_rviz_plugins/detection_3d.hpp @@ -121,6 +133,18 @@ index d2b2b50..9ba0e8e 100644 DETECTION_3D_ARRAY_DISPLAY_HPP_PUBLIC void reset() override; +diff --git a/include/vision_msgs_rviz_plugins/detection_3d_common.hpp b/include/vision_msgs_rviz_plugins/detection_3d_common.hpp +index fe31b2d..ad40c2f 100644 +--- a/include/vision_msgs_rviz_plugins/detection_3d_common.hpp ++++ b/include/vision_msgs_rviz_plugins/detection_3d_common.hpp +@@ -27,6 +27,7 @@ + #include + + #include ++#include + #include + #include + #include diff --git a/src/bounding_box_3d.cpp b/src/bounding_box_3d.cpp index daf52a5..286bcec 100644 --- a/src/bounding_box_3d.cpp diff --git a/shared/tests/ros2-robot-state-publisher/robot_state_publisher_smoke_test_launch.py b/shared/tests/ros2-robot-state-publisher/robot_state_publisher_smoke_test_launch.py index 66d41cef..50b1b7d0 100644 --- a/shared/tests/ros2-robot-state-publisher/robot_state_publisher_smoke_test_launch.py +++ b/shared/tests/ros2-robot-state-publisher/robot_state_publisher_smoke_test_launch.py @@ -48,8 +48,9 @@ class TestRobotStatePublisher(unittest.TestCase): def test_node_output(self, proc_output): # robot_state_publisher logs "Robot initialized" once the URDF is loaded # (older releases, e.g. humble, log "got segment ..." for each link instead). + # generous timeouts: a full rebuild runs the tests next to the builds proc_output.assertWaitFor( - expected_output=re.compile("Robot initialized|got segment"), timeout=10, stream='stderr' + expected_output=re.compile("Robot initialized|got segment"), timeout=60, stream='stderr' ) def test_parameter_service(self): @@ -64,7 +65,7 @@ def test_parameter_service(self): GetParameters, '/robot_state_publisher/get_parameters' ) self.assertTrue( - client.wait_for_service(timeout_sec=10.0), + client.wait_for_service(timeout_sec=60.0), 'robot_state_publisher parameter service was not ready' ) @@ -72,7 +73,7 @@ def test_parameter_service(self): request.names = ['robot_description'] future = client.call_async(request) rclpy.spin_until_future_complete( - node, future, executor=executor, timeout_sec=10.0 + node, future, executor=executor, timeout_sec=60.0 ) self.assertTrue(future.done(), 'parameter request timed out') From 72b3683ddfb0a7c8d6dd4f54f1dddfe4a2d4c162 Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Sat, 17 Oct 2026 12:09:08 +1000 Subject: [PATCH 08/21] rolling: lyrical's Windows fixes for cartographer_ros and rmf_utils Both apply to rolling's sources (cartographer_ros is the same 2.0.9003): the cartographer nodes pass the node by reference to the exported NodeInterfaces constructor (LNK2019 on MSVC), and rmf_utils exports its symbols on Windows (as in lyrical and jazzy). Co-Authored-By: Claude Opus 5.5 --- .../patch/ros2-cartographer-ros.win.patch | 26 +++++++++++++++++++ distros/rolling/patch/ros2-rmf-utils.patch | 14 ++++++++++ 2 files changed, 40 insertions(+) create mode 100644 distros/rolling/patch/ros2-cartographer-ros.win.patch create mode 100644 distros/rolling/patch/ros2-rmf-utils.patch diff --git a/distros/rolling/patch/ros2-cartographer-ros.win.patch b/distros/rolling/patch/ros2-cartographer-ros.win.patch new file mode 100644 index 00000000..998fec79 --- /dev/null +++ b/distros/rolling/patch/ros2-cartographer-ros.win.patch @@ -0,0 +1,26 @@ +diff --git a/src/node_main.cpp b/src/node_main.cpp +index bdf33b8..c678fd3 100644 +--- a/src/node_main.cpp ++++ b/src/node_main.cpp +@@ -56,7 +56,7 @@ void Run() { + std::make_shared( + cartographer_node->get_clock(), + tf2::durationFromSec(kTfBufferCacheTimeInSeconds), +- cartographer_node); ++ *cartographer_node); // the exported NodeInterfaces constructor, not the inline template (LNK2019 on MSVC) + + std::shared_ptr tf_listener = + std::make_shared(*tf_buffer); +diff --git a/src/offline_node.cpp b/src/offline_node.cpp +index 4b3f60e..cc4902b 100644 +--- a/src/offline_node.cpp ++++ b/src/offline_node.cpp +@@ -152,7 +152,7 @@ void RunOfflineNode(const MapBuilderFactory& map_builder_factory, + std::make_shared( + cartographer_offline_node->get_clock(), + tf2::durationFromSec(10), +- cartographer_offline_node); ++ *cartographer_offline_node); // the exported NodeInterfaces constructor, not the inline template (LNK2019 on MSVC) + + std::vector urdf_transforms; + diff --git a/distros/rolling/patch/ros2-rmf-utils.patch b/distros/rolling/patch/ros2-rmf-utils.patch new file mode 100644 index 00000000..2d804cc2 --- /dev/null +++ b/distros/rolling/patch/ros2-rmf-utils.patch @@ -0,0 +1,14 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 125a926..59fa385 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -14,6 +14,9 @@ include(GNUInstallDirs) + + file(GLOB_RECURSE lib_srcs "src/rmf_utils/*.cpp") + add_library(rmf_utils SHARED ${lib_srcs}) ++if(WIN32) ++ set_target_properties(rmf_utils PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) ++endif() + + target_include_directories(rmf_utils + PUBLIC From 4e10fec409c278bf8e54756364ffbcfe2bf52684 Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Sat, 17 Oct 2026 12:09:52 +1000 Subject: [PATCH 09/21] rolling: drop the cartographer_ros Windows patch again rolling's own cartographer_ros patch already passes the nodes by reference (the MSVC LNK2019 fix), so lyrical's Windows patch only conflicted with it. Co-Authored-By: Claude Opus 5.5 --- .../patch/ros2-cartographer-ros.win.patch | 26 ------------------- 1 file changed, 26 deletions(-) delete mode 100644 distros/rolling/patch/ros2-cartographer-ros.win.patch diff --git a/distros/rolling/patch/ros2-cartographer-ros.win.patch b/distros/rolling/patch/ros2-cartographer-ros.win.patch deleted file mode 100644 index 998fec79..00000000 --- a/distros/rolling/patch/ros2-cartographer-ros.win.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/src/node_main.cpp b/src/node_main.cpp -index bdf33b8..c678fd3 100644 ---- a/src/node_main.cpp -+++ b/src/node_main.cpp -@@ -56,7 +56,7 @@ void Run() { - std::make_shared( - cartographer_node->get_clock(), - tf2::durationFromSec(kTfBufferCacheTimeInSeconds), -- cartographer_node); -+ *cartographer_node); // the exported NodeInterfaces constructor, not the inline template (LNK2019 on MSVC) - - std::shared_ptr tf_listener = - std::make_shared(*tf_buffer); -diff --git a/src/offline_node.cpp b/src/offline_node.cpp -index 4b3f60e..cc4902b 100644 ---- a/src/offline_node.cpp -+++ b/src/offline_node.cpp -@@ -152,7 +152,7 @@ void RunOfflineNode(const MapBuilderFactory& map_builder_factory, - std::make_shared( - cartographer_offline_node->get_clock(), - tf2::durationFromSec(10), -- cartographer_offline_node); -+ *cartographer_offline_node); // the exported NodeInterfaces constructor, not the inline template (LNK2019 on MSVC) - - std::vector urdf_transforms; - From b4c17f6c8c6695de05ef36be0a5fee595aca98d4 Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Sat, 17 Oct 2026 12:30:54 +1000 Subject: [PATCH 10/21] vision_msgs_rviz_plugins: include frame_manager_iface.hpp too (rviz_common 16) Co-Authored-By: Claude Opus 5.5 --- .../rolling/patch/ros2-vision-msgs-rviz-plugins.patch | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/distros/rolling/patch/ros2-vision-msgs-rviz-plugins.patch b/distros/rolling/patch/ros2-vision-msgs-rviz-plugins.patch index 192ab4ff..46f2818a 100644 --- a/distros/rolling/patch/ros2-vision-msgs-rviz-plugins.patch +++ b/distros/rolling/patch/ros2-vision-msgs-rviz-plugins.patch @@ -80,14 +80,15 @@ index cd2b84c..5c5ffd0 100644 void reset() override; diff --git a/include/vision_msgs_rviz_plugins/bounding_box_3d_common.hpp b/include/vision_msgs_rviz_plugins/bounding_box_3d_common.hpp -index d75aec0..77ffea3 100644 +index d75aec0..e8c9ea5 100644 --- a/include/vision_msgs_rviz_plugins/bounding_box_3d_common.hpp +++ b/include/vision_msgs_rviz_plugins/bounding_box_3d_common.hpp -@@ -25,6 +25,7 @@ +@@ -25,6 +25,8 @@ #include #include #include +#include ++#include #include #include @@ -134,14 +135,15 @@ index d2b2b50..9ba0e8e 100644 void reset() override; diff --git a/include/vision_msgs_rviz_plugins/detection_3d_common.hpp b/include/vision_msgs_rviz_plugins/detection_3d_common.hpp -index fe31b2d..ad40c2f 100644 +index fe31b2d..f8f5618 100644 --- a/include/vision_msgs_rviz_plugins/detection_3d_common.hpp +++ b/include/vision_msgs_rviz_plugins/detection_3d_common.hpp -@@ -27,6 +27,7 @@ +@@ -27,6 +27,8 @@ #include #include +#include ++#include #include #include #include From c8de6d8c209bc42977f815deea6992d66cfea599 Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Sat, 17 Oct 2026 16:21:50 +1000 Subject: [PATCH 11/21] rolling: ur_robot_driver on ros2_control 6.12; MoveIt visualization and librealsense2 - ur_robot_driver 7.1.0 still exports its interfaces with value pointers, which ros2_control 6.12 removed (upstream hasn't ported it yet): it now exports handles (on_export_*_interfaces) that mirror the same members, copied around read() and write(); its read/write logic is unchanged - moveit_ros_visualization: include rviz_common's logging.hpp and frame_manager_iface.hpp itself (rviz_common 16 no longer pulls them in) - librealsense2 2.58.3 like humble/jazzy/lyrical: conda-forge has no 2.59.1 yet Co-Authored-By: Claude Opus 5.5 --- .../patch/ros2-moveit-ros-visualization.patch | 50 ++ .../rolling/patch/ros2-ur-robot-driver.patch | 651 ++++++++++++++++++ distros/rolling/pkg_additional_info.yaml | 1 + 3 files changed, 702 insertions(+) create mode 100644 distros/rolling/patch/ros2-moveit-ros-visualization.patch create mode 100644 distros/rolling/patch/ros2-ur-robot-driver.patch diff --git a/distros/rolling/patch/ros2-moveit-ros-visualization.patch b/distros/rolling/patch/ros2-moveit-ros-visualization.patch new file mode 100644 index 00000000..4685cbfa --- /dev/null +++ b/distros/rolling/patch/ros2-moveit-ros-visualization.patch @@ -0,0 +1,50 @@ +diff --git a/motion_planning_rviz_plugin/src/interactive_marker_display.cpp b/motion_planning_rviz_plugin/src/interactive_marker_display.cpp +index d0a4e0c..0064e39 100644 +--- a/motion_planning_rviz_plugin/src/interactive_marker_display.cpp ++++ b/motion_planning_rviz_plugin/src/interactive_marker_display.cpp +@@ -34,6 +34,8 @@ + #include + + #include ++#include ++#include + #include + #include + +diff --git a/planning_scene_rviz_plugin/src/planning_scene_display.cpp b/planning_scene_rviz_plugin/src/planning_scene_display.cpp +index 903854a..1ad4553 100644 +--- a/planning_scene_rviz_plugin/src/planning_scene_display.cpp ++++ b/planning_scene_rviz_plugin/src/planning_scene_display.cpp +@@ -41,6 +41,8 @@ + #include + + #include ++#include ++#include + #include + #include + +diff --git a/robot_state_rviz_plugin/src/robot_state_display.cpp b/robot_state_rviz_plugin/src/robot_state_display.cpp +index e8c9134..07d6514 100644 +--- a/robot_state_rviz_plugin/src/robot_state_display.cpp ++++ b/robot_state_rviz_plugin/src/robot_state_display.cpp +@@ -45,6 +45,7 @@ + #include + + #include ++#include + #include + #include + #include +diff --git a/rviz_plugin_render_tools/src/trajectory_visualization.cpp b/rviz_plugin_render_tools/src/trajectory_visualization.cpp +index 05fabc6..a5b1cdc 100644 +--- a/rviz_plugin_render_tools/src/trajectory_visualization.cpp ++++ b/rviz_plugin_render_tools/src/trajectory_visualization.cpp +@@ -45,6 +45,7 @@ + #include + #include + #include ++#include + #include + #include + #include diff --git a/distros/rolling/patch/ros2-ur-robot-driver.patch b/distros/rolling/patch/ros2-ur-robot-driver.patch new file mode 100644 index 00000000..f2a9f12d --- /dev/null +++ b/distros/rolling/patch/ros2-ur-robot-driver.patch @@ -0,0 +1,651 @@ +diff --git a/include/ur_robot_driver/hardware_interface.hpp b/include/ur_robot_driver/hardware_interface.hpp +index 4ca463f..495e1f5 100644 +--- a/include/ur_robot_driver/hardware_interface.hpp ++++ b/include/ur_robot_driver/hardware_interface.hpp +@@ -144,9 +144,11 @@ public: + + hardware_interface::CallbackReturn on_init(const hardware_interface::HardwareComponentInterfaceParams& params) final; + +- std::vector export_state_interfaces() final; ++ // ros2_control 6.12 has no pointer-based interfaces anymore: the exported handles mirror ++ // the members the driver works on, copied around read() and write() (RoboStack patch) ++ std::vector on_export_state_interfaces() final; + +- std::vector export_command_interfaces() final; ++ std::vector on_export_command_interfaces() final; + + hardware_interface::CallbackReturn on_configure(const rclcpp_lifecycle::State& previous_state) final; + hardware_interface::CallbackReturn on_activate(const rclcpp_lifecycle::State& previous_state) final; +@@ -175,6 +177,25 @@ public: + void asyncThread(); + + protected: ++ struct LinkedInterface ++ { ++ LinkedInterface(const std::string& prefix, const std::string& name, double* value) ++ : prefix(prefix), name(name), value(value) ++ { ++ } ++ std::string prefix; ++ std::string name; ++ double* value; ++ }; ++ std::vector export_state_links(); ++ std::vector export_command_links(); ++ hardware_interface::return_type read_impl(const rclcpp::Time& time, const rclcpp::Duration& period); ++ hardware_interface::return_type write_impl(const rclcpp::Time& time, const rclcpp::Duration& period); ++ void pull_commands(); ++ void push_states_and_commands(); ++ std::vector> state_links_; ++ std::vector> command_links_; ++ + template + void readData(const std::unique_ptr& data_pkg, const std::string& var_name, + T& data); +diff --git a/src/hardware_interface.cpp b/src/hardware_interface.cpp +index 0edcf90..0d87cf0 100644 +--- a/src/hardware_interface.cpp ++++ b/src/hardware_interface.cpp +@@ -39,6 +39,7 @@ + * + */ + //---------------------------------------------------------------------- ++#include + #include + #include + #include +@@ -226,17 +227,88 @@ URPositionHardwareInterface::on_init(const hardware_interface::HardwareComponent + return hardware_interface::CallbackReturn::SUCCESS; + } + +-std::vector URPositionHardwareInterface::export_state_interfaces() ++std::vector URPositionHardwareInterface::on_export_state_interfaces() + { +- std::vector state_interfaces; ++ std::vector state_interfaces; ++ state_links_.clear(); ++ for (const auto& link : export_state_links()) { ++ hardware_interface::InterfaceInfo info; ++ info.name = link.name; ++ auto handle = std::make_shared( ++ hardware_interface::InterfaceDescription(link.prefix, info)); ++ std::ignore = handle->set_value(*link.value); ++ state_links_.emplace_back(handle, link.value); ++ state_interfaces.push_back(handle); ++ } ++ return state_interfaces; ++} ++ ++std::vector URPositionHardwareInterface::on_export_command_interfaces() ++{ ++ std::vector command_interfaces; ++ command_links_.clear(); ++ for (const auto& link : export_command_links()) { ++ hardware_interface::InterfaceInfo info; ++ info.name = link.name; ++ auto handle = std::make_shared( ++ hardware_interface::InterfaceDescription(link.prefix, info)); ++ std::ignore = handle->set_value(*link.value); ++ command_links_.emplace_back(handle, link.value); ++ command_interfaces.push_back(handle); ++ } ++ return command_interfaces; ++} ++ ++// the controllers' commands into the members, and the driver's values back out ++void URPositionHardwareInterface::pull_commands() ++{ ++ for (auto& [handle, value] : command_links_) { ++ double command; ++ if (handle->get_value(command, true)) { ++ *value = command; ++ } ++ } ++} ++ ++void URPositionHardwareInterface::push_states_and_commands() ++{ ++ for (auto& [handle, value] : state_links_) { ++ std::ignore = handle->set_value(*value); ++ } ++ for (auto& [handle, value] : command_links_) { ++ std::ignore = handle->set_value(*value); ++ } ++} ++ ++hardware_interface::return_type URPositionHardwareInterface::read(const rclcpp::Time& time, ++ const rclcpp::Duration& period) ++{ ++ pull_commands(); ++ const auto result = read_impl(time, period); ++ push_states_and_commands(); ++ return result; ++} ++ ++hardware_interface::return_type URPositionHardwareInterface::write(const rclcpp::Time& time, ++ const rclcpp::Duration& period) ++{ ++ pull_commands(); ++ const auto result = write_impl(time, period); ++ push_states_and_commands(); ++ return result; ++} ++ ++std::vector URPositionHardwareInterface::export_state_links() ++{ ++ std::vector state_interfaces; + for (size_t i = 0; i < info_.joints.size(); ++i) { +- state_interfaces.emplace_back(hardware_interface::StateInterface( ++ state_interfaces.emplace_back(LinkedInterface( + info_.joints[i].name, hardware_interface::HW_IF_POSITION, &urcl_joint_positions_[i])); + +- state_interfaces.emplace_back(hardware_interface::StateInterface( ++ state_interfaces.emplace_back(LinkedInterface( + info_.joints[i].name, hardware_interface::HW_IF_VELOCITY, &urcl_joint_velocities_[i])); + +- state_interfaces.emplace_back(hardware_interface::StateInterface( ++ state_interfaces.emplace_back(LinkedInterface( + info_.joints[i].name, hardware_interface::HW_IF_EFFORT, &urcl_joint_efforts_[i])); + } + +@@ -244,7 +316,7 @@ std::vector URPositionHardwareInterface::exp + // NOTE using the tf_prefix at this point is some kind of workaround. One should actually go through the list of gpio + // state interface in info_ and match them accordingly + const std::string tf_prefix = info_.hardware_parameters.at("tf_prefix"); +- state_interfaces.emplace_back(hardware_interface::StateInterface(tf_prefix + "speed_scaling", "speed_scaling_factor", ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "speed_scaling", "speed_scaling_factor", + &speed_scaling_combined_)); + + for (auto& sensor : info_.sensors) { +@@ -254,129 +326,129 @@ std::vector URPositionHardwareInterface::exp + }; + for (uint32_t j = 0; j < 6; ++j) { + state_interfaces.emplace_back( +- hardware_interface::StateInterface(sensor.name, fts_names[j], &urcl_ft_sensor_measurements_[j])); ++ LinkedInterface(sensor.name, fts_names[j], &urcl_ft_sensor_measurements_[j])); + } + } + } + + for (size_t i = 0; i < 18; ++i) { +- state_interfaces.emplace_back(hardware_interface::StateInterface( ++ state_interfaces.emplace_back(LinkedInterface( + tf_prefix + "gpio", "digital_output_" + std::to_string(i), &actual_dig_out_bits_copy_[i])); +- state_interfaces.emplace_back(hardware_interface::StateInterface( ++ state_interfaces.emplace_back(LinkedInterface( + tf_prefix + "gpio", "digital_input_" + std::to_string(i), &actual_dig_in_bits_copy_[i])); + } + + for (size_t i = 0; i < 11; ++i) { +- state_interfaces.emplace_back(hardware_interface::StateInterface( ++ state_interfaces.emplace_back(LinkedInterface( + tf_prefix + "gpio", "safety_status_bit_" + std::to_string(i), &safety_status_bits_copy_[i])); + } + + for (size_t i = 0; i < 4; ++i) { +- state_interfaces.emplace_back(hardware_interface::StateInterface( ++ state_interfaces.emplace_back(LinkedInterface( + tf_prefix + "gpio", "analog_io_type_" + std::to_string(i), &analog_io_types_copy_[i])); +- state_interfaces.emplace_back(hardware_interface::StateInterface( ++ state_interfaces.emplace_back(LinkedInterface( + tf_prefix + "gpio", "robot_status_bit_" + std::to_string(i), &robot_status_bits_copy_[i])); + } + + for (size_t i = 0; i < 2; ++i) { +- state_interfaces.emplace_back(hardware_interface::StateInterface( ++ state_interfaces.emplace_back(LinkedInterface( + tf_prefix + "gpio", "tool_analog_input_type_" + std::to_string(i), &tool_analog_input_types_copy_[i])); + +- state_interfaces.emplace_back(hardware_interface::StateInterface( ++ state_interfaces.emplace_back(LinkedInterface( + tf_prefix + "gpio", "tool_analog_input_" + std::to_string(i), &tool_analog_input_[i])); + +- state_interfaces.emplace_back(hardware_interface::StateInterface( ++ state_interfaces.emplace_back(LinkedInterface( + tf_prefix + "gpio", "standard_analog_input_" + std::to_string(i), &standard_analog_input_[i])); + +- state_interfaces.emplace_back(hardware_interface::StateInterface( ++ state_interfaces.emplace_back(LinkedInterface( + tf_prefix + "gpio", "standard_analog_output_" + std::to_string(i), &standard_analog_output_[i])); + } + + state_interfaces.emplace_back( +- hardware_interface::StateInterface(tf_prefix + "gpio", "tool_output_voltage", &tool_output_voltage_copy_)); ++ LinkedInterface(tf_prefix + "gpio", "tool_output_voltage", &tool_output_voltage_copy_)); + + state_interfaces.emplace_back( +- hardware_interface::StateInterface(tf_prefix + "gpio", "robot_mode", &robot_mode_copy_)); ++ LinkedInterface(tf_prefix + "gpio", "robot_mode", &robot_mode_copy_)); + + state_interfaces.emplace_back( +- hardware_interface::StateInterface(tf_prefix + "gpio", "safety_mode", &safety_mode_copy_)); ++ LinkedInterface(tf_prefix + "gpio", "safety_mode", &safety_mode_copy_)); + +- state_interfaces.emplace_back(hardware_interface::StateInterface(tf_prefix + "gpio", "tool_mode", &tool_mode_copy_)); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "tool_mode", &tool_mode_copy_)); + + state_interfaces.emplace_back( +- hardware_interface::StateInterface(tf_prefix + "gpio", "tool_output_current", &tool_output_current_)); ++ LinkedInterface(tf_prefix + "gpio", "tool_output_current", &tool_output_current_)); + + state_interfaces.emplace_back( +- hardware_interface::StateInterface(tf_prefix + "gpio", "tool_temperature", &tool_temperature_)); ++ LinkedInterface(tf_prefix + "gpio", "tool_temperature", &tool_temperature_)); + +- state_interfaces.emplace_back(hardware_interface::StateInterface(tf_prefix + "system_interface", "initialized", ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "system_interface", "initialized", + &system_interface_initialized_)); + + state_interfaces.emplace_back( +- hardware_interface::StateInterface(tf_prefix + "gpio", "program_running", &robot_program_running_copy_)); ++ LinkedInterface(tf_prefix + "gpio", "program_running", &robot_program_running_copy_)); + + state_interfaces.emplace_back( +- hardware_interface::StateInterface(tf_prefix + "tcp_pose", "position.x", &urcl_tcp_pose_[0])); ++ LinkedInterface(tf_prefix + "tcp_pose", "position.x", &urcl_tcp_pose_[0])); + state_interfaces.emplace_back( +- hardware_interface::StateInterface(tf_prefix + "tcp_pose", "position.y", &urcl_tcp_pose_[1])); ++ LinkedInterface(tf_prefix + "tcp_pose", "position.y", &urcl_tcp_pose_[1])); + state_interfaces.emplace_back( +- hardware_interface::StateInterface(tf_prefix + "tcp_pose", "position.z", &urcl_tcp_pose_[2])); ++ LinkedInterface(tf_prefix + "tcp_pose", "position.z", &urcl_tcp_pose_[2])); + state_interfaces.emplace_back( +- hardware_interface::StateInterface(tf_prefix + "tcp_pose", "orientation.x", &tcp_rotation_buffer.x)); ++ LinkedInterface(tf_prefix + "tcp_pose", "orientation.x", &tcp_rotation_buffer.x)); + state_interfaces.emplace_back( +- hardware_interface::StateInterface(tf_prefix + "tcp_pose", "orientation.y", &tcp_rotation_buffer.y)); ++ LinkedInterface(tf_prefix + "tcp_pose", "orientation.y", &tcp_rotation_buffer.y)); + state_interfaces.emplace_back( +- hardware_interface::StateInterface(tf_prefix + "tcp_pose", "orientation.z", &tcp_rotation_buffer.z)); ++ LinkedInterface(tf_prefix + "tcp_pose", "orientation.z", &tcp_rotation_buffer.z)); + state_interfaces.emplace_back( +- hardware_interface::StateInterface(tf_prefix + "tcp_pose", "orientation.w", &tcp_rotation_buffer.w)); ++ LinkedInterface(tf_prefix + "tcp_pose", "orientation.w", &tcp_rotation_buffer.w)); + +- state_interfaces.emplace_back(hardware_interface::StateInterface( ++ state_interfaces.emplace_back(LinkedInterface( + tf_prefix + "get_robot_software_version", "get_version_major", &get_robot_software_version_major_)); + +- state_interfaces.emplace_back(hardware_interface::StateInterface( ++ state_interfaces.emplace_back(LinkedInterface( + tf_prefix + "get_robot_software_version", "get_version_minor", &get_robot_software_version_minor_)); + +- state_interfaces.emplace_back(hardware_interface::StateInterface( ++ state_interfaces.emplace_back(LinkedInterface( + tf_prefix + "get_robot_software_version", "get_version_bugfix", &get_robot_software_version_bugfix_)); + +- state_interfaces.emplace_back(hardware_interface::StateInterface( ++ state_interfaces.emplace_back(LinkedInterface( + tf_prefix + "get_robot_software_version", "get_version_build", &get_robot_software_version_build_)); + + state_interfaces.emplace_back( +- hardware_interface::StateInterface(tf_prefix + TOOL_CONTACT_GPIO, "tool_contact_result", &tool_contact_result_)); ++ LinkedInterface(tf_prefix + TOOL_CONTACT_GPIO, "tool_contact_result", &tool_contact_result_)); + + state_interfaces.emplace_back( +- hardware_interface::StateInterface(tf_prefix + TOOL_CONTACT_GPIO, "tool_contact_state", &tool_contact_state_)); ++ LinkedInterface(tf_prefix + TOOL_CONTACT_GPIO, "tool_contact_state", &tool_contact_state_)); + +- state_interfaces.emplace_back(hardware_interface::StateInterface(tf_prefix + "payload", "mass", &rtde_payload_mass_)); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "mass", &rtde_payload_mass_)); + state_interfaces.emplace_back( +- hardware_interface::StateInterface(tf_prefix + "payload", "cog.x", &rtde_payload_cog_[0])); ++ LinkedInterface(tf_prefix + "payload", "cog.x", &rtde_payload_cog_[0])); + state_interfaces.emplace_back( +- hardware_interface::StateInterface(tf_prefix + "payload", "cog.y", &rtde_payload_cog_[1])); ++ LinkedInterface(tf_prefix + "payload", "cog.y", &rtde_payload_cog_[1])); + state_interfaces.emplace_back( +- hardware_interface::StateInterface(tf_prefix + "payload", "cog.z", &rtde_payload_cog_[2])); ++ LinkedInterface(tf_prefix + "payload", "cog.z", &rtde_payload_cog_[2])); + state_interfaces.emplace_back( +- hardware_interface::StateInterface(tf_prefix + "payload", "inertia.ixx", &rtde_payload_inertia_[0])); ++ LinkedInterface(tf_prefix + "payload", "inertia.ixx", &rtde_payload_inertia_[0])); + state_interfaces.emplace_back( +- hardware_interface::StateInterface(tf_prefix + "payload", "inertia.iyy", &rtde_payload_inertia_[1])); ++ LinkedInterface(tf_prefix + "payload", "inertia.iyy", &rtde_payload_inertia_[1])); + state_interfaces.emplace_back( +- hardware_interface::StateInterface(tf_prefix + "payload", "inertia.izz", &rtde_payload_inertia_[2])); ++ LinkedInterface(tf_prefix + "payload", "inertia.izz", &rtde_payload_inertia_[2])); + state_interfaces.emplace_back( +- hardware_interface::StateInterface(tf_prefix + "payload", "inertia.ixy", &rtde_payload_inertia_[3])); ++ LinkedInterface(tf_prefix + "payload", "inertia.ixy", &rtde_payload_inertia_[3])); + state_interfaces.emplace_back( +- hardware_interface::StateInterface(tf_prefix + "payload", "inertia.ixz", &rtde_payload_inertia_[4])); ++ LinkedInterface(tf_prefix + "payload", "inertia.ixz", &rtde_payload_inertia_[4])); + state_interfaces.emplace_back( +- hardware_interface::StateInterface(tf_prefix + "payload", "inertia.iyz", &rtde_payload_inertia_[5])); ++ LinkedInterface(tf_prefix + "payload", "inertia.iyz", &rtde_payload_inertia_[5])); + // Motion primitives stuff +- state_interfaces.emplace_back(hardware_interface::StateInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, + "execution_status", &hw_moprim_states_[0])); +- state_interfaces.emplace_back(hardware_interface::StateInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, + "ready_for_new_primitive", &hw_moprim_states_[1])); + + return state_interfaces; + } + +-std::vector URPositionHardwareInterface::export_command_interfaces() ++std::vector URPositionHardwareInterface::export_command_links() + { + auto has_cmd_interface = [](const hardware_interface::ComponentInfo& joint, const std::string& interface_name) { + auto it = +@@ -384,16 +456,16 @@ std::vector URPositionHardwareInterface::e + [&interface_name](const hardware_interface::InterfaceInfo& obj) { return obj.name == interface_name; }); + return it != joint.command_interfaces.end(); + }; +- std::vector command_interfaces; ++ std::vector command_interfaces; + for (size_t i = 0; i < info_.joints.size(); ++i) { +- command_interfaces.emplace_back(hardware_interface::CommandInterface( ++ command_interfaces.emplace_back(LinkedInterface( + info_.joints[i].name, hardware_interface::HW_IF_POSITION, &urcl_position_commands_[i])); + +- command_interfaces.emplace_back(hardware_interface::CommandInterface( ++ command_interfaces.emplace_back(LinkedInterface( + info_.joints[i].name, hardware_interface::HW_IF_VELOCITY, &urcl_velocity_commands_[i])); + + if (has_cmd_interface(info_.joints[i], hardware_interface::HW_IF_EFFORT)) { +- command_interfaces.emplace_back(hardware_interface::CommandInterface( ++ command_interfaces.emplace_back(LinkedInterface( + info_.joints[i].name, hardware_interface::HW_IF_EFFORT, &urcl_torque_commands_[i])); + } + } +@@ -403,58 +475,58 @@ std::vector URPositionHardwareInterface::e + const std::string tf_prefix = info_.hardware_parameters.at("tf_prefix"); + + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + "gpio", "io_async_success", &io_async_success_)); ++ LinkedInterface(tf_prefix + "gpio", "io_async_success", &io_async_success_)); + +- command_interfaces.emplace_back(hardware_interface::CommandInterface( ++ command_interfaces.emplace_back(LinkedInterface( + tf_prefix + "speed_scaling", "target_speed_fraction_cmd", &target_speed_fraction_cmd_)); + +- command_interfaces.emplace_back(hardware_interface::CommandInterface( ++ command_interfaces.emplace_back(LinkedInterface( + tf_prefix + "speed_scaling", "target_speed_fraction_async_success", &scaling_async_success_)); + +- command_interfaces.emplace_back(hardware_interface::CommandInterface( ++ command_interfaces.emplace_back(LinkedInterface( + tf_prefix + "resend_robot_program", "resend_robot_program_cmd", &resend_robot_program_cmd_)); + +- command_interfaces.emplace_back(hardware_interface::CommandInterface( ++ command_interfaces.emplace_back(LinkedInterface( + tf_prefix + "resend_robot_program", "resend_robot_program_async_success", &resend_robot_program_async_success_)); +- command_interfaces.emplace_back(hardware_interface::CommandInterface( ++ command_interfaces.emplace_back(LinkedInterface( + tf_prefix + "hand_back_control", "hand_back_control_cmd", &hand_back_control_cmd_)); + +- command_interfaces.emplace_back(hardware_interface::CommandInterface( ++ command_interfaces.emplace_back(LinkedInterface( + tf_prefix + "hand_back_control", "hand_back_control_async_success", &hand_back_control_async_success_)); + +- command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + "payload", "mass", &payload_mass_)); ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "mass", &payload_mass_)); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + "payload", "cog.x", &payload_center_of_gravity_[0])); ++ LinkedInterface(tf_prefix + "payload", "cog.x", &payload_center_of_gravity_[0])); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + "payload", "cog.y", &payload_center_of_gravity_[1])); ++ LinkedInterface(tf_prefix + "payload", "cog.y", &payload_center_of_gravity_[1])); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + "payload", "cog.z", &payload_center_of_gravity_[2])); ++ LinkedInterface(tf_prefix + "payload", "cog.z", &payload_center_of_gravity_[2])); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.ixx", &payload_inertia_[0])); ++ LinkedInterface(tf_prefix + "payload", "inertia.ixx", &payload_inertia_[0])); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.iyy", &payload_inertia_[1])); ++ LinkedInterface(tf_prefix + "payload", "inertia.iyy", &payload_inertia_[1])); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.izz", &payload_inertia_[2])); ++ LinkedInterface(tf_prefix + "payload", "inertia.izz", &payload_inertia_[2])); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.ixy", &payload_inertia_[3])); ++ LinkedInterface(tf_prefix + "payload", "inertia.ixy", &payload_inertia_[3])); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.ixz", &payload_inertia_[4])); ++ LinkedInterface(tf_prefix + "payload", "inertia.ixz", &payload_inertia_[4])); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.iyz", &payload_inertia_[5])); ++ LinkedInterface(tf_prefix + "payload", "inertia.iyz", &payload_inertia_[5])); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + "payload", "transition_time", &payload_transition_time_)); ++ LinkedInterface(tf_prefix + "payload", "transition_time", &payload_transition_time_)); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + "payload", "payload_async_success", &payload_async_success_)); ++ LinkedInterface(tf_prefix + "payload", "payload_async_success", &payload_async_success_)); + + for (size_t i = 0; i < friction_model_viscous_.size(); ++i) { +- command_interfaces.emplace_back(hardware_interface::CommandInterface( ++ command_interfaces.emplace_back(LinkedInterface( + tf_prefix + "friction_model", "viscous_" + std::to_string(i), &friction_model_viscous_[i])); + } + for (size_t i = 0; i < friction_model_coulomb_.size(); ++i) { +- command_interfaces.emplace_back(hardware_interface::CommandInterface( ++ command_interfaces.emplace_back(LinkedInterface( + tf_prefix + "friction_model", "coulomb_" + std::to_string(i), &friction_model_coulomb_[i])); + } +- command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + "friction_model", "async_success", ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "friction_model", "async_success", + &friction_model_async_success_)); + + command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "task_frame_x", &force_mode_task_frame_[0]); +@@ -488,145 +560,145 @@ std::vector URPositionHardwareInterface::e + command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "gain_scaling", &force_mode_gain_scaling_); + + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + "gravity", "x", &gravity_vector_[0])); ++ LinkedInterface(tf_prefix + "gravity", "x", &gravity_vector_[0])); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + "gravity", "y", &gravity_vector_[1])); ++ LinkedInterface(tf_prefix + "gravity", "y", &gravity_vector_[1])); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + "gravity", "z", &gravity_vector_[2])); ++ LinkedInterface(tf_prefix + "gravity", "z", &gravity_vector_[2])); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + "gravity", "gravity_async_success", &gravity_async_success_)); ++ LinkedInterface(tf_prefix + "gravity", "gravity_async_success", &gravity_async_success_)); + + for (size_t i = 0; i < 18; ++i) { +- command_interfaces.emplace_back(hardware_interface::CommandInterface( ++ command_interfaces.emplace_back(LinkedInterface( + tf_prefix + "gpio", "standard_digital_output_cmd_" + std::to_string(i), &standard_dig_out_bits_cmd_[i])); + } + + for (size_t i = 0; i < 2; ++i) { +- command_interfaces.emplace_back(hardware_interface::CommandInterface( ++ command_interfaces.emplace_back(LinkedInterface( + tf_prefix + "gpio", "standard_analog_output_cmd_" + std::to_string(i), &standard_analog_output_cmd_[i])); + } + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + "gpio", "analog_output_domain_cmd", &analog_output_domain_cmd_)); ++ LinkedInterface(tf_prefix + "gpio", "analog_output_domain_cmd", &analog_output_domain_cmd_)); + + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + "gpio", "tool_voltage_cmd", &tool_voltage_cmd_)); ++ LinkedInterface(tf_prefix + "gpio", "tool_voltage_cmd", &tool_voltage_cmd_)); + + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + "zero_ftsensor", "zero_ftsensor_cmd", &zero_ftsensor_cmd_)); ++ LinkedInterface(tf_prefix + "zero_ftsensor", "zero_ftsensor_cmd", &zero_ftsensor_cmd_)); + +- command_interfaces.emplace_back(hardware_interface::CommandInterface( ++ command_interfaces.emplace_back(LinkedInterface( + tf_prefix + "zero_ftsensor", "zero_ftsensor_async_success", &zero_ftsensor_async_success_)); + +- command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "async_success", ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "async_success", + &freedrive_mode_async_success_)); + + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "enable", &freedrive_mode_enable_)); ++ LinkedInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "enable", &freedrive_mode_enable_)); + + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "abort", &freedrive_mode_abort_)); ++ LinkedInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "abort", &freedrive_mode_abort_)); + +- command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + PASSTHROUGH_GPIO, "transfer_state", ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, "transfer_state", + &passthrough_trajectory_transfer_state_)); + +- command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + PASSTHROUGH_GPIO, "time_from_start", ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, "time_from_start", + &passthrough_trajectory_time_from_start_)); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + PASSTHROUGH_GPIO, "abort", &passthrough_trajectory_abort_)); ++ LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, "abort", &passthrough_trajectory_abort_)); + +- command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + PASSTHROUGH_GPIO, "trajectory_size", ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, "trajectory_size", + &passthrough_trajectory_size_)); + + for (size_t i = 0; i < 6; ++i) { +- command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + PASSTHROUGH_GPIO, ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, + "setpoint_positions_" + std::to_string(i), + &passthrough_trajectory_positions_[i])); + } + + for (size_t i = 0; i < 6; ++i) { +- command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + PASSTHROUGH_GPIO, ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, + "setpoint_velocities_" + std::to_string(i), + &passthrough_trajectory_velocities_[i])); + } + + for (size_t i = 0; i < 6; ++i) { +- command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + PASSTHROUGH_GPIO, ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, + "setpoint_accelerations_" + std::to_string(i), + &passthrough_trajectory_accelerations_[i])); + } + + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + TWIST_GPIO, "linear_velocity_x", &urcl_twist_commands_[0])); ++ LinkedInterface(tf_prefix + TWIST_GPIO, "linear_velocity_x", &urcl_twist_commands_[0])); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + TWIST_GPIO, "linear_velocity_y", &urcl_twist_commands_[1])); ++ LinkedInterface(tf_prefix + TWIST_GPIO, "linear_velocity_y", &urcl_twist_commands_[1])); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + TWIST_GPIO, "linear_velocity_z", &urcl_twist_commands_[2])); ++ LinkedInterface(tf_prefix + TWIST_GPIO, "linear_velocity_z", &urcl_twist_commands_[2])); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + TWIST_GPIO, "angular_velocity_x", &urcl_twist_commands_[3])); ++ LinkedInterface(tf_prefix + TWIST_GPIO, "angular_velocity_x", &urcl_twist_commands_[3])); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + TWIST_GPIO, "angular_velocity_y", &urcl_twist_commands_[4])); ++ LinkedInterface(tf_prefix + TWIST_GPIO, "angular_velocity_y", &urcl_twist_commands_[4])); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + TWIST_GPIO, "angular_velocity_z", &urcl_twist_commands_[5])); ++ LinkedInterface(tf_prefix + TWIST_GPIO, "angular_velocity_z", &urcl_twist_commands_[5])); + +- command_interfaces.emplace_back(hardware_interface::CommandInterface( ++ command_interfaces.emplace_back(LinkedInterface( + tf_prefix + TOOL_CONTACT_GPIO, "tool_contact_set_state", &tool_contact_set_state_)); + + // Motion primitives stuff + // Command for motion type (motion_type) +- command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, + "motion_type", &hw_moprim_commands_[0])); + // Joint position commands (q1, q2, ..., q6) + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q1", &hw_moprim_commands_[1])); ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q1", &hw_moprim_commands_[1])); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q2", &hw_moprim_commands_[2])); ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q2", &hw_moprim_commands_[2])); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q3", &hw_moprim_commands_[3])); ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q3", &hw_moprim_commands_[3])); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q4", &hw_moprim_commands_[4])); ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q4", &hw_moprim_commands_[4])); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q5", &hw_moprim_commands_[5])); ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q5", &hw_moprim_commands_[5])); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q6", &hw_moprim_commands_[6])); ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q6", &hw_moprim_commands_[6])); + // Position commands (pos_x, pos_y, pos_z, pos_qx, pos_qy, pos_qz, pos_qz) + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_x", &hw_moprim_commands_[7])); ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_x", &hw_moprim_commands_[7])); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_y", &hw_moprim_commands_[8])); ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_y", &hw_moprim_commands_[8])); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_z", &hw_moprim_commands_[9])); ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_z", &hw_moprim_commands_[9])); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_qx", &hw_moprim_commands_[10])); ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_qx", &hw_moprim_commands_[10])); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_qy", &hw_moprim_commands_[11])); ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_qy", &hw_moprim_commands_[11])); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_qz", &hw_moprim_commands_[12])); ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_qz", &hw_moprim_commands_[12])); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_qw", &hw_moprim_commands_[13])); ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_qw", &hw_moprim_commands_[13])); + // Via Position commands for circula motion + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_via_x", &hw_moprim_commands_[14])); ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_via_x", &hw_moprim_commands_[14])); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_via_y", &hw_moprim_commands_[15])); ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_via_y", &hw_moprim_commands_[15])); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_via_z", &hw_moprim_commands_[16])); +- command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_via_z", &hw_moprim_commands_[16])); ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, + "pos_via_qx", &hw_moprim_commands_[17])); +- command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, + "pos_via_qy", &hw_moprim_commands_[18])); +- command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, + "pos_via_qz", &hw_moprim_commands_[19])); +- command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, + "pos_via_qw", &hw_moprim_commands_[20])); + // Other command parameters (blend_radius, velocity, acceleration, move_time) +- command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, + "blend_radius", &hw_moprim_commands_[21])); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "velocity", &hw_moprim_commands_[22])); +- command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "velocity", &hw_moprim_commands_[22])); ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, + "acceleration", &hw_moprim_commands_[23])); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "move_time", &hw_moprim_commands_[24])); ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "move_time", &hw_moprim_commands_[24])); + + return command_interfaces; + } +@@ -935,7 +1007,7 @@ void URPositionHardwareInterface::asyncThread() + } + } + +-hardware_interface::return_type URPositionHardwareInterface::read(const rclcpp::Time& time, ++hardware_interface::return_type URPositionHardwareInterface::read_impl(const rclcpp::Time& time, + const rclcpp::Duration& period) + { + // We want to start the rtde comm the latest point possible due to the delay times arising from setting up the +@@ -1041,7 +1113,7 @@ hardware_interface::return_type URPositionHardwareInterface::read(const rclcpp:: + return hardware_interface::return_type::OK; + } + +-hardware_interface::return_type URPositionHardwareInterface::write(const rclcpp::Time& time, ++hardware_interface::return_type URPositionHardwareInterface::write_impl(const rclcpp::Time& time, + const rclcpp::Duration& period) + { + // If there is no interpreting program running on the robot, we do not want to send anything. diff --git a/distros/rolling/pkg_additional_info.yaml b/distros/rolling/pkg_additional_info.yaml index 5374e197..101cbba8 100644 --- a/distros/rolling/pkg_additional_info.yaml +++ b/distros/rolling/pkg_additional_info.yaml @@ -47,6 +47,7 @@ librealsense2: generate_dummy_package_with_run_deps: dep_name: librealsense max_pin: 'x.x' + override_version: 2.58.3 # Until: https://github.com/conda-forge/librealsense-feedstock/pull/91 magic_enum: generate_dummy_package_with_run_deps: dep_name: magic_enum From 165eb2d77e94d954928bcd94d02d81ab369893e3 Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Sat, 17 Oct 2026 17:55:08 +1000 Subject: [PATCH 12/21] rolling: realsense2_camera with librealsense 2.58.3; MTC visualization on rviz 16 - realsense2_camera 4.59.1 asks for librealsense 2.59.0, conda-forge has 2.58.3 (as the other distributions use, librealsense-feedstock#91): accept 2.58.3; it builds - moveit_task_constructor_visualization: include OgreSceneManager.h itself (rviz 16 headers no longer pull it in) Co-Authored-By: Claude Opus 5.5 --- ...oveit-task-constructor-visualization.patch | 66 ++++++++++--------- .../patch/ros2-realsense2-camera.patch | 14 +++- 2 files changed, 48 insertions(+), 32 deletions(-) diff --git a/distros/rolling/patch/ros2-moveit-task-constructor-visualization.patch b/distros/rolling/patch/ros2-moveit-task-constructor-visualization.patch index 936d64ff..5fd0c3cd 100644 --- a/distros/rolling/patch/ros2-moveit-task-constructor-visualization.patch +++ b/distros/rolling/patch/ros2-moveit-task-constructor-visualization.patch @@ -1,5 +1,22 @@ +diff --git a/motion_planning_tasks/properties/CMakeLists.txt b/motion_planning_tasks/properties/CMakeLists.txt +index 8296b9e..98c81c3 100644 +--- a/motion_planning_tasks/properties/CMakeLists.txt ++++ b/motion_planning_tasks/properties/CMakeLists.txt +@@ -9,6 +9,12 @@ find_package(libyaml_vendor REQUIRED) + find_package(yaml REQUIRED) + + add_library(${MOVEIT_LIB_NAME} SHARED ${SOURCES}) ++if(WIN32) ++ # Linked directly by motion_planning_tasks_rviz_plugin, so it needs ++ # an import .lib on Windows -- same missing-dllexport-symbols issue ++ # already fixed for motion_planning_tasks_utils. ++ set_target_properties(${MOVEIT_LIB_NAME} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) ++endif() + + target_link_libraries(${MOVEIT_LIB_NAME} + ${QT_LIBRARIES} yaml diff --git a/motion_planning_tasks/utils/CMakeLists.txt b/motion_planning_tasks/utils/CMakeLists.txt -index 436145dc..82ad0bfd 100644 +index 436145d..82ad0bf 100644 --- a/motion_planning_tasks/utils/CMakeLists.txt +++ b/motion_planning_tasks/utils/CMakeLists.txt @@ -6,6 +6,16 @@ set(SOURCES @@ -19,9 +36,8 @@ index 436145dc..82ad0bfd 100644 target_link_libraries(${MOVEIT_LIB_NAME} ${QT_LIBRARIES} - diff --git a/motion_planning_tasks/utils/flat_merge_proxy_model.h b/motion_planning_tasks/utils/flat_merge_proxy_model.h -index feced7e4..ba7a0e19 100644 +index feced7e..ba7a0e1 100644 --- a/motion_planning_tasks/utils/flat_merge_proxy_model.h +++ b/motion_planning_tasks/utils/flat_merge_proxy_model.h @@ -39,6 +39,21 @@ @@ -55,9 +71,8 @@ index feced7e4..ba7a0e19 100644 { Q_OBJECT Q_DECLARE_PRIVATE(FlatMergeProxyModel) - diff --git a/motion_planning_tasks/utils/tree_merge_proxy_model.h b/motion_planning_tasks/utils/tree_merge_proxy_model.h -index df43128b..72087ea0 100644 +index df43128..72087ea 100644 --- a/motion_planning_tasks/utils/tree_merge_proxy_model.h +++ b/motion_planning_tasks/utils/tree_merge_proxy_model.h @@ -39,6 +39,21 @@ @@ -91,27 +106,8 @@ index df43128b..72087ea0 100644 { Q_OBJECT Q_DECLARE_PRIVATE(TreeMergeProxyModel) - -diff --git a/motion_planning_tasks/properties/CMakeLists.txt b/motion_planning_tasks/properties/CMakeLists.txt -index 8296b9ea..98c81c39 100644 ---- a/motion_planning_tasks/properties/CMakeLists.txt -+++ b/motion_planning_tasks/properties/CMakeLists.txt -@@ -9,6 +9,12 @@ find_package(libyaml_vendor REQUIRED) - find_package(yaml REQUIRED) - - add_library(${MOVEIT_LIB_NAME} SHARED ${SOURCES}) -+if(WIN32) -+ # Linked directly by motion_planning_tasks_rviz_plugin, so it needs -+ # an import .lib on Windows -- same missing-dllexport-symbols issue -+ # already fixed for motion_planning_tasks_utils. -+ set_target_properties(${MOVEIT_LIB_NAME} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) -+endif() - - target_link_libraries(${MOVEIT_LIB_NAME} - ${QT_LIBRARIES} yaml - diff --git a/visualization_tools/CMakeLists.txt b/visualization_tools/CMakeLists.txt -index bde4d614..a1971ed4 100644 +index bde4d61..a1971ed 100644 --- a/visualization_tools/CMakeLists.txt +++ b/visualization_tools/CMakeLists.txt @@ -18,6 +18,16 @@ add_library(${MOVEIT_LIB_NAME} SHARED @@ -131,9 +127,8 @@ index bde4d614..a1971ed4 100644 target_link_libraries(${MOVEIT_LIB_NAME} ${QT_LIBRARIES} rviz_ogre_vendor::OgreMain - diff --git a/visualization_tools/include/moveit/visualization_tools/marker_visualization.h b/visualization_tools/include/moveit/visualization_tools/marker_visualization.h -index 1b3fcebe..e2da81f1 100644 +index 1b3fceb..e2da81f 100644 --- a/visualization_tools/include/moveit/visualization_tools/marker_visualization.h +++ b/visualization_tools/include/moveit/visualization_tools/marker_visualization.h @@ -95,7 +95,22 @@ private: @@ -160,9 +155,8 @@ index 1b3fcebe..e2da81f1 100644 { Q_OBJECT - diff --git a/visualization_tools/include/moveit/visualization_tools/task_solution_panel.h b/visualization_tools/include/moveit/visualization_tools/task_solution_panel.h -index 4e6e31ee..db7b77a5 100644 +index 4e6e31e..db7b77a 100644 --- a/visualization_tools/include/moveit/visualization_tools/task_solution_panel.h +++ b/visualization_tools/include/moveit/visualization_tools/task_solution_panel.h @@ -47,7 +47,22 @@ @@ -189,9 +183,8 @@ index 4e6e31ee..db7b77a5 100644 { Q_OBJECT - diff --git a/visualization_tools/include/moveit/visualization_tools/task_solution_visualization.h b/visualization_tools/include/moveit/visualization_tools/task_solution_visualization.h -index c1a666b7..5265f27f 100644 +index c1a666b..5265f27 100644 --- a/visualization_tools/include/moveit/visualization_tools/task_solution_visualization.h +++ b/visualization_tools/include/moveit/visualization_tools/task_solution_visualization.h @@ -90,7 +90,22 @@ MOVEIT_CLASS_FORWARD(DisplaySolution); @@ -218,4 +211,15 @@ index c1a666b7..5265f27f 100644 { Q_OBJECT +diff --git a/visualization_tools/src/task_solution_visualization.cpp b/visualization_tools/src/task_solution_visualization.cpp +index c65dab9..61a5cc1 100644 +--- a/visualization_tools/src/task_solution_visualization.cpp ++++ b/visualization_tools/src/task_solution_visualization.cpp +@@ -63,6 +63,7 @@ + #include + #include + ++#include + #include + #include diff --git a/distros/rolling/patch/ros2-realsense2-camera.patch b/distros/rolling/patch/ros2-realsense2-camera.patch index 146e0e24..87c93c9c 100644 --- a/distros/rolling/patch/ros2-realsense2-camera.patch +++ b/distros/rolling/patch/ros2-realsense2-camera.patch @@ -1,5 +1,5 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index 470f8c3c..01fbff80 100644 +index c30e112..0893ff9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,11 +36,14 @@ option(USE_LIFECYCLE_NODE "Enable lifecycle nodes (ON/OFF)" OFF) @@ -19,3 +19,15 @@ index 470f8c3c..01fbff80 100644 # In Clang, -z flags are not compatible, they need to be passed to linker via -Wl. set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now") +@@ -152,9 +155,9 @@ else() + set(SENSOR_MSGS_TARGET ${sensor_msgs_LIBRARIES}) + endif() + +-find_package(realsense2 2.59.0) ++find_package(realsense2 2.58.3) # conda-forge has no 2.59 yet (librealsense-feedstock#91) + if (BUILD_ACCELERATE_GPU_WITH_GLSL) +- find_package(realsense2-gl 2.59.0) ++ find_package(realsense2-gl 2.58.3) + endif() + if(NOT realsense2_FOUND) + message(FATAL_ERROR "\n\n RealSense SDK 2.0 is missing, please install it from https://github.com/realsenseai/librealsense/releases\n\n") From 8f25de0cad0e9ee710eae369f95825df140ff1c4 Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Sat, 17 Oct 2026 18:13:47 +1000 Subject: [PATCH 13/21] ur_robot_driver: only sync the side of a command that changed Plain copies both ways lost the driver's own command writes (async success flags and NO_NEW_CMD_ resets from the async thread, mode-switch resets) and service writes to the handles; keep the last agreed value and copy only what changed (review on UniversalRobots/Universal_Robots_ROS2_Driver#2032). Co-Authored-By: Claude Opus 5.5 --- .../rolling/patch/ros2-ur-robot-driver.patch | 67 +++++++++++++------ 1 file changed, 45 insertions(+), 22 deletions(-) diff --git a/distros/rolling/patch/ros2-ur-robot-driver.patch b/distros/rolling/patch/ros2-ur-robot-driver.patch index f2a9f12d..72324b92 100644 --- a/distros/rolling/patch/ros2-ur-robot-driver.patch +++ b/distros/rolling/patch/ros2-ur-robot-driver.patch @@ -1,5 +1,5 @@ diff --git a/include/ur_robot_driver/hardware_interface.hpp b/include/ur_robot_driver/hardware_interface.hpp -index 4ca463f..495e1f5 100644 +index 6232980..d018f27 100644 --- a/include/ur_robot_driver/hardware_interface.hpp +++ b/include/ur_robot_driver/hardware_interface.hpp @@ -144,9 +144,11 @@ public: @@ -16,7 +16,7 @@ index 4ca463f..495e1f5 100644 hardware_interface::CallbackReturn on_configure(const rclcpp_lifecycle::State& previous_state) final; hardware_interface::CallbackReturn on_activate(const rclcpp_lifecycle::State& previous_state) final; -@@ -175,6 +177,25 @@ public: +@@ -175,6 +177,34 @@ public: void asyncThread(); protected: @@ -37,24 +37,34 @@ index 4ca463f..495e1f5 100644 + void pull_commands(); + void push_states_and_commands(); + std::vector> state_links_; -+ std::vector> command_links_; ++ // a command interface, the member it mirrors, and the value both last agreed on: only the ++ // side that changed since is copied, so that neither the controllers' commands nor the ++ // driver's own writes (async thread, mode switches) overwrite each other ++ struct CommandLink ++ { ++ hardware_interface::CommandInterface::SharedPtr handle; ++ double* value; ++ double synced; ++ }; ++ std::vector command_links_; + template void readData(const std::unique_ptr& data_pkg, const std::string& var_name, T& data); diff --git a/src/hardware_interface.cpp b/src/hardware_interface.cpp -index 0edcf90..0d87cf0 100644 +index b9d3649..76c56de 100644 --- a/src/hardware_interface.cpp +++ b/src/hardware_interface.cpp -@@ -39,6 +39,7 @@ +@@ -39,6 +39,8 @@ * */ //---------------------------------------------------------------------- ++#include +#include #include #include #include -@@ -226,17 +227,88 @@ URPositionHardwareInterface::on_init(const hardware_interface::HardwareComponent +@@ -226,17 +228,101 @@ URPositionHardwareInterface::on_init(const hardware_interface::HardwareComponent return hardware_interface::CallbackReturn::SUCCESS; } @@ -69,7 +79,6 @@ index 0edcf90..0d87cf0 100644 + info.name = link.name; + auto handle = std::make_shared( + hardware_interface::InterfaceDescription(link.prefix, info)); -+ std::ignore = handle->set_value(*link.value); + state_links_.emplace_back(handle, link.value); + state_interfaces.push_back(handle); + } @@ -83,33 +92,47 @@ index 0edcf90..0d87cf0 100644 + for (const auto& link : export_command_links()) { + hardware_interface::InterfaceInfo info; + info.name = link.name; ++ // starts as NaN, like the members are only set in on_activate() / read() + auto handle = std::make_shared( + hardware_interface::InterfaceDescription(link.prefix, info)); -+ std::ignore = handle->set_value(*link.value); -+ command_links_.emplace_back(handle, link.value); ++ command_links_.push_back({ handle, link.value, std::numeric_limits::quiet_NaN() }); + command_interfaces.push_back(handle); + } + return command_interfaces; +} + -+// the controllers' commands into the members, and the driver's values back out ++namespace ++{ ++// NO_NEW_CMD_ is NaN, which never compares equal to itself ++bool same(double a, double b) ++{ ++ return std::memcmp(&a, &b, sizeof(double)) == 0; ++} ++} // namespace ++ ++// a command a controller wrote to its handle since the last sync goes to the member +void URPositionHardwareInterface::pull_commands() +{ -+ for (auto& [handle, value] : command_links_) { ++ for (auto& link : command_links_) { + double command; -+ if (handle->get_value(command, true)) { -+ *value = command; ++ if (link.handle->get_value(command, true) && !same(command, link.synced) && same(*link.value, link.synced)) { ++ *link.value = command; ++ link.synced = command; + } + } +} + ++// the states, and the commands the driver itself changed since the last sync, go to the handles +void URPositionHardwareInterface::push_states_and_commands() +{ + for (auto& [handle, value] : state_links_) { + std::ignore = handle->set_value(*value); + } -+ for (auto& [handle, value] : command_links_) { -+ std::ignore = handle->set_value(*value); ++ for (auto& link : command_links_) { ++ if (!same(*link.value, link.synced)) { ++ link.synced = *link.value; ++ std::ignore = link.handle->set_value(link.synced); ++ } + } +} + @@ -148,7 +171,7 @@ index 0edcf90..0d87cf0 100644 info_.joints[i].name, hardware_interface::HW_IF_EFFORT, &urcl_joint_efforts_[i])); } -@@ -244,7 +316,7 @@ std::vector URPositionHardwareInterface::exp +@@ -244,7 +330,7 @@ std::vector URPositionHardwareInterface::exp // NOTE using the tf_prefix at this point is some kind of workaround. One should actually go through the list of gpio // state interface in info_ and match them accordingly const std::string tf_prefix = info_.hardware_parameters.at("tf_prefix"); @@ -157,7 +180,7 @@ index 0edcf90..0d87cf0 100644 &speed_scaling_combined_)); for (auto& sensor : info_.sensors) { -@@ -254,129 +326,129 @@ std::vector URPositionHardwareInterface::exp +@@ -254,129 +340,129 @@ std::vector URPositionHardwareInterface::exp }; for (uint32_t j = 0; j < 6; ++j) { state_interfaces.emplace_back( @@ -331,7 +354,7 @@ index 0edcf90..0d87cf0 100644 { auto has_cmd_interface = [](const hardware_interface::ComponentInfo& joint, const std::string& interface_name) { auto it = -@@ -384,16 +456,16 @@ std::vector URPositionHardwareInterface::e +@@ -384,16 +470,16 @@ std::vector URPositionHardwareInterface::e [&interface_name](const hardware_interface::InterfaceInfo& obj) { return obj.name == interface_name; }); return it != joint.command_interfaces.end(); }; @@ -352,7 +375,7 @@ index 0edcf90..0d87cf0 100644 info_.joints[i].name, hardware_interface::HW_IF_EFFORT, &urcl_torque_commands_[i])); } } -@@ -403,58 +475,58 @@ std::vector URPositionHardwareInterface::e +@@ -403,58 +489,58 @@ std::vector URPositionHardwareInterface::e const std::string tf_prefix = info_.hardware_parameters.at("tf_prefix"); command_interfaces.emplace_back( @@ -433,7 +456,7 @@ index 0edcf90..0d87cf0 100644 &friction_model_async_success_)); command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "task_frame_x", &force_mode_task_frame_[0]); -@@ -488,145 +560,145 @@ std::vector URPositionHardwareInterface::e +@@ -488,145 +574,145 @@ std::vector URPositionHardwareInterface::e command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "gain_scaling", &force_mode_gain_scaling_); command_interfaces.emplace_back( @@ -631,7 +654,7 @@ index 0edcf90..0d87cf0 100644 return command_interfaces; } -@@ -935,7 +1007,7 @@ void URPositionHardwareInterface::asyncThread() +@@ -981,7 +1067,7 @@ void URPositionHardwareInterface::asyncThread() } } @@ -640,7 +663,7 @@ index 0edcf90..0d87cf0 100644 const rclcpp::Duration& period) { // We want to start the rtde comm the latest point possible due to the delay times arising from setting up the -@@ -1041,7 +1113,7 @@ hardware_interface::return_type URPositionHardwareInterface::read(const rclcpp:: +@@ -1091,7 +1177,7 @@ hardware_interface::return_type URPositionHardwareInterface::read(const rclcpp:: return hardware_interface::return_type::OK; } From e1f894d600f37a00ab35569820650fe4130a4c31 Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Sat, 17 Oct 2026 19:14:03 +1000 Subject: [PATCH 14/21] [skip ci] rolling: hold CI until there is cache space The full rolling rebuild needs about 3 GB of PR build cache, which the jazzy and lyrical sync builds still use. The next push without [skip ci] starts the build. Co-Authored-By: Claude Opus 5.5 From 90776937b92a25915c699e7da155c44bfbd95d38 Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Sun, 18 Oct 2026 05:24:44 +1000 Subject: [PATCH 15/21] [skip ci] ur_robot_driver: the async interfaces' handles are the storage As upstream (UniversalRobots/Universal_Robots_ROS2_Driver#2032, 062a97e): the interfaces checkAsyncIO() works on, which service callbacks write too, aren't mirrored anymore; checkAsyncIO() reads their handles and publishes its resets before the success flags. The mirrored ones use non-blocking locks and stay unsynced until published; uninitialized members behind interfaces get defaults. CI stays held ([skip ci]) until the cache has room. Co-Authored-By: Claude Opus 5.5 --- .../rolling/patch/ros2-ur-robot-driver.patch | 713 ++++++++++++------ 1 file changed, 493 insertions(+), 220 deletions(-) diff --git a/distros/rolling/patch/ros2-ur-robot-driver.patch b/distros/rolling/patch/ros2-ur-robot-driver.patch index 72324b92..f8b955f1 100644 --- a/distros/rolling/patch/ros2-ur-robot-driver.patch +++ b/distros/rolling/patch/ros2-ur-robot-driver.patch @@ -1,5 +1,5 @@ diff --git a/include/ur_robot_driver/hardware_interface.hpp b/include/ur_robot_driver/hardware_interface.hpp -index 6232980..d018f27 100644 +index 6232980..4e12332 100644 --- a/include/ur_robot_driver/hardware_interface.hpp +++ b/include/ur_robot_driver/hardware_interface.hpp @@ -144,9 +144,11 @@ public: @@ -16,7 +16,7 @@ index 6232980..d018f27 100644 hardware_interface::CallbackReturn on_configure(const rclcpp_lifecycle::State& previous_state) final; hardware_interface::CallbackReturn on_activate(const rclcpp_lifecycle::State& previous_state) final; -@@ -175,6 +177,34 @@ public: +@@ -175,6 +177,52 @@ public: void asyncThread(); protected: @@ -37,9 +37,9 @@ index 6232980..d018f27 100644 + void pull_commands(); + void push_states_and_commands(); + std::vector> state_links_; -+ // a command interface, the member it mirrors, and the value both last agreed on: only the -+ // side that changed since is copied, so that neither the controllers' commands nor the -+ // driver's own writes (async thread, mode switches) overwrite each other ++ // A command interface, the member it mirrors, and the value both last agreed on. Interfaces ++ // only the control loop touches are mirrored around read()/write(), copying only the side that ++ // changed since (a value whose publication failed stays unsynced and is retried). + struct CommandLink + { + hardware_interface::CommandInterface::SharedPtr handle; @@ -47,12 +47,30 @@ index 6232980..d018f27 100644 + double synced; + }; + std::vector command_links_; ++ // Interfaces the async thread works on (checkAsyncIO(): IO, payload, gravity, friction model, ++ // freedrive, ... requests and their *_async_success flags), which service callbacks write too: ++ // never mirrored. checkAsyncIO() reads their handles first and publishes only its own changes ++ // afterwards, the request resets before the success flags, so that a service waiting for a flag ++ // can't have its next request overwritten. Other writers go to the handle (set_async()). ++ struct AsyncLink ++ { ++ hardware_interface::CommandInterface::SharedPtr handle; ++ double* value; ++ double pulled; ++ bool success_flag; ++ bool pending; ++ }; ++ std::vector async_links_; ++ bool is_async_member(const double* value) const; ++ void pull_async(); ++ void push_async(); ++ void set_async(const double& member, double value); + template void readData(const std::unique_ptr& data_pkg, const std::string& var_name, T& data); diff --git a/src/hardware_interface.cpp b/src/hardware_interface.cpp -index b9d3649..76c56de 100644 +index b9d3649..c9bf7fd 100644 --- a/src/hardware_interface.cpp +++ b/src/hardware_interface.cpp @@ -39,6 +39,8 @@ @@ -64,12 +82,48 @@ index b9d3649..76c56de 100644 #include #include #include -@@ -226,17 +228,101 @@ URPositionHardwareInterface::on_init(const hardware_interface::HardwareComponent +@@ -99,6 +101,34 @@ RobotTypeWithSeries robotTypeFromString(const std::string& robot_type_str) + URPositionHardwareInterface::URPositionHardwareInterface() + { + mode_compatibility_ = createModeCompatibilityMatrix(); ++ // members behind exported interfaces that nothing sets before the first read()/write() (the ++ // handles are synced from them): states start at 0, commands without a new command ++ for (double* v : { &speed_scaling_combined_, &tool_output_current_, &tool_temperature_, &tool_mode_copy_, ++ &tool_output_voltage_copy_, &robot_mode_copy_, &safety_mode_copy_, &robot_program_running_copy_, ++ &get_robot_software_version_major_, &get_robot_software_version_minor_, ++ &get_robot_software_version_bugfix_, &get_robot_software_version_build_ }) { ++ *v = 0.0; ++ } ++ standard_analog_input_.fill(0.0); ++ standard_analog_output_.fill(0.0); ++ tool_analog_input_.fill(0.0); ++ actual_dig_out_bits_copy_.fill(0.0); ++ actual_dig_in_bits_copy_.fill(0.0); ++ analog_io_types_copy_.fill(0.0); ++ tool_analog_input_types_copy_.fill(0.0); ++ robot_status_bits_copy_.fill(0.0); ++ safety_status_bits_copy_.fill(0.0); ++ hw_moprim_states_.fill(0.0); ++ for (double* v : { &force_mode_async_success_, &force_mode_damping_, &force_mode_disable_cmd_, ++ &force_mode_gain_scaling_, &passthrough_trajectory_time_from_start_ }) { ++ *v = NO_NEW_CMD_; ++ } ++ for (auto* a : { &force_mode_limits_, &force_mode_selection_vector_, &force_mode_task_frame_, &force_mode_wrench_, ++ &passthrough_trajectory_positions_, &passthrough_trajectory_velocities_, ++ &passthrough_trajectory_accelerations_, &urcl_torque_commands_ }) { ++ a->fill(NO_NEW_CMD_); ++ } ++ hw_moprim_commands_.fill(NO_NEW_CMD_); + } + + URPositionHardwareInterface::~URPositionHardwareInterface() +@@ -226,26 +256,179 @@ URPositionHardwareInterface::on_init(const hardware_interface::HardwareComponent return hardware_interface::CallbackReturn::SUCCESS; } -std::vector URPositionHardwareInterface::export_state_interfaces() -+std::vector URPositionHardwareInterface::on_export_state_interfaces() ++std::vector ++URPositionHardwareInterface::on_export_state_interfaces() { - std::vector state_interfaces; + std::vector state_interfaces; @@ -89,15 +143,26 @@ index b9d3649..76c56de 100644 +{ + std::vector command_interfaces; + command_links_.clear(); ++ async_links_.clear(); + for (const auto& link : export_command_links()) { + hardware_interface::InterfaceInfo info; + info.name = link.name; -+ // starts as NaN, like the members are only set in on_activate() / read() + auto handle = std::make_shared( + hardware_interface::InterfaceDescription(link.prefix, info)); -+ command_links_.push_back({ handle, link.value, std::numeric_limits::quiet_NaN() }); ++ if (is_async_member(link.value)) { ++ // the handle is the storage: no new command until a controller writes one ++ std::ignore = handle->set_value(NO_NEW_CMD_); ++ const bool success_flag = link.name.size() >= 13 && link.name.rfind("async_success") == link.name.size() - 13; ++ async_links_.push_back({ handle, link.value, NO_NEW_CMD_, success_flag, false }); ++ } else { ++ std::ignore = handle->set_value(*link.value); ++ command_links_.push_back({ handle, link.value, *link.value }); ++ } + command_interfaces.push_back(handle); + } ++ // the request resets are published before the success flags (push_async()) ++ std::stable_partition(async_links_.begin(), async_links_.end(), ++ [](const AsyncLink& link) { return !link.success_flag; }); + return command_interfaces; +} + @@ -115,7 +180,7 @@ index b9d3649..76c56de 100644 +{ + for (auto& link : command_links_) { + double command; -+ if (link.handle->get_value(command, true) && !same(command, link.synced) && same(*link.value, link.synced)) { ++ if (link.handle->get_value(command, false) && !same(command, link.synced) && same(*link.value, link.synced)) { + *link.value = command; + link.synced = command; + } @@ -129,9 +194,66 @@ index b9d3649..76c56de 100644 + std::ignore = handle->set_value(*value); + } + for (auto& link : command_links_) { -+ if (!same(*link.value, link.synced)) { ++ if (!same(*link.value, link.synced) && link.handle->set_value(*link.value)) { + link.synced = *link.value; -+ std::ignore = link.handle->set_value(link.synced); ++ } ++ } ++} ++ ++bool URPositionHardwareInterface::is_async_member(const double* value) const ++{ ++ auto in = [value](const auto& member) { ++ const double* begin = reinterpret_cast(&member); ++ return value >= begin && value < begin + sizeof(member) / sizeof(double); ++ }; ++ return in(standard_dig_out_bits_cmd_) || in(standard_analog_output_cmd_) || in(analog_output_domain_cmd_) || ++ in(tool_voltage_cmd_) || in(io_async_success_) || in(target_speed_fraction_cmd_) || ++ in(scaling_async_success_) || in(resend_robot_program_cmd_) || in(resend_robot_program_async_success_) || ++ in(hand_back_control_cmd_) || in(hand_back_control_async_success_) || in(payload_mass_) || ++ in(payload_center_of_gravity_) || in(payload_inertia_) || in(payload_transition_time_) || ++ in(payload_async_success_) || in(gravity_vector_) || in(gravity_async_success_) || ++ in(friction_model_viscous_) || in(friction_model_coulomb_) || in(friction_model_async_success_) || ++ in(zero_ftsensor_cmd_) || in(zero_ftsensor_async_success_) || in(freedrive_mode_enable_) || ++ in(freedrive_mode_abort_) || in(freedrive_mode_async_success_); ++} ++ ++// the requests (and flags) as the controllers and services left them, into the async thread's members ++void URPositionHardwareInterface::pull_async() ++{ ++ for (auto& link : async_links_) { ++ double value; ++ if (!link.pending && link.handle->get_value(value, false)) { ++ *link.value = value; ++ link.pulled = value; ++ } ++ } ++} ++ ++// what checkAsyncIO() changed, back to the handles: the resets first, the success flags only once ++// those are all published; anything that couldn't be published is retried next time ++void URPositionHardwareInterface::push_async() ++{ ++ bool resets_published = true; ++ for (auto& link : async_links_) { ++ if (!link.pending && same(*link.value, link.pulled)) { ++ continue; ++ } ++ link.pending = !((resets_published || !link.success_flag) && link.handle->set_value(*link.value)); ++ if (!link.pending) { ++ link.pulled = *link.value; ++ } else if (!link.success_flag) { ++ resets_published = false; ++ } ++ } ++} ++ ++// a reset from the control loop thread (initialisation, mode switch) straight to the handle ++void URPositionHardwareInterface::set_async(const double& member, double value) ++{ ++ for (auto& link : async_links_) { ++ if (link.value == &member) { ++ std::ignore = link.handle->set_value(value, true); ++ return; + } + } +} @@ -159,192 +281,213 @@ index b9d3649..76c56de 100644 + std::vector state_interfaces; for (size_t i = 0; i < info_.joints.size(); ++i) { - state_interfaces.emplace_back(hardware_interface::StateInterface( -+ state_interfaces.emplace_back(LinkedInterface( - info_.joints[i].name, hardware_interface::HW_IF_POSITION, &urcl_joint_positions_[i])); +- info_.joints[i].name, hardware_interface::HW_IF_POSITION, &urcl_joint_positions_[i])); ++ state_interfaces.emplace_back( ++ LinkedInterface(info_.joints[i].name, hardware_interface::HW_IF_POSITION, &urcl_joint_positions_[i])); - state_interfaces.emplace_back(hardware_interface::StateInterface( -+ state_interfaces.emplace_back(LinkedInterface( - info_.joints[i].name, hardware_interface::HW_IF_VELOCITY, &urcl_joint_velocities_[i])); +- info_.joints[i].name, hardware_interface::HW_IF_VELOCITY, &urcl_joint_velocities_[i])); ++ state_interfaces.emplace_back( ++ LinkedInterface(info_.joints[i].name, hardware_interface::HW_IF_VELOCITY, &urcl_joint_velocities_[i])); - state_interfaces.emplace_back(hardware_interface::StateInterface( -+ state_interfaces.emplace_back(LinkedInterface( - info_.joints[i].name, hardware_interface::HW_IF_EFFORT, &urcl_joint_efforts_[i])); +- info_.joints[i].name, hardware_interface::HW_IF_EFFORT, &urcl_joint_efforts_[i])); ++ state_interfaces.emplace_back( ++ LinkedInterface(info_.joints[i].name, hardware_interface::HW_IF_EFFORT, &urcl_joint_efforts_[i])); } -@@ -244,7 +330,7 @@ std::vector URPositionHardwareInterface::exp + // Obtain the tf_prefix from the urdf so that we can have the general interface multiple times // NOTE using the tf_prefix at this point is some kind of workaround. One should actually go through the list of gpio // state interface in info_ and match them accordingly const std::string tf_prefix = info_.hardware_parameters.at("tf_prefix"); - state_interfaces.emplace_back(hardware_interface::StateInterface(tf_prefix + "speed_scaling", "speed_scaling_factor", -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "speed_scaling", "speed_scaling_factor", - &speed_scaling_combined_)); +- &speed_scaling_combined_)); ++ state_interfaces.emplace_back( ++ LinkedInterface(tf_prefix + "speed_scaling", "speed_scaling_factor", &speed_scaling_combined_)); for (auto& sensor : info_.sensors) { -@@ -254,129 +340,129 @@ std::vector URPositionHardwareInterface::exp + if (sensor.name == tf_prefix + "tcp_fts_sensor") { +@@ -253,130 +436,107 @@ std::vector URPositionHardwareInterface::exp + "force.x", "force.y", "force.z", "torque.x", "torque.y", "torque.z" }; for (uint32_t j = 0; j < 6; ++j) { - state_interfaces.emplace_back( +- state_interfaces.emplace_back( - hardware_interface::StateInterface(sensor.name, fts_names[j], &urcl_ft_sensor_measurements_[j])); -+ LinkedInterface(sensor.name, fts_names[j], &urcl_ft_sensor_measurements_[j])); ++ state_interfaces.emplace_back(LinkedInterface(sensor.name, fts_names[j], &urcl_ft_sensor_measurements_[j])); } } } for (size_t i = 0; i < 18; ++i) { - state_interfaces.emplace_back(hardware_interface::StateInterface( -+ state_interfaces.emplace_back(LinkedInterface( - tf_prefix + "gpio", "digital_output_" + std::to_string(i), &actual_dig_out_bits_copy_[i])); +- tf_prefix + "gpio", "digital_output_" + std::to_string(i), &actual_dig_out_bits_copy_[i])); - state_interfaces.emplace_back(hardware_interface::StateInterface( -+ state_interfaces.emplace_back(LinkedInterface( - tf_prefix + "gpio", "digital_input_" + std::to_string(i), &actual_dig_in_bits_copy_[i])); +- tf_prefix + "gpio", "digital_input_" + std::to_string(i), &actual_dig_in_bits_copy_[i])); ++ state_interfaces.emplace_back( ++ LinkedInterface(tf_prefix + "gpio", "digital_output_" + std::to_string(i), &actual_dig_out_bits_copy_[i])); ++ state_interfaces.emplace_back( ++ LinkedInterface(tf_prefix + "gpio", "digital_input_" + std::to_string(i), &actual_dig_in_bits_copy_[i])); } for (size_t i = 0; i < 11; ++i) { - state_interfaces.emplace_back(hardware_interface::StateInterface( -+ state_interfaces.emplace_back(LinkedInterface( - tf_prefix + "gpio", "safety_status_bit_" + std::to_string(i), &safety_status_bits_copy_[i])); +- tf_prefix + "gpio", "safety_status_bit_" + std::to_string(i), &safety_status_bits_copy_[i])); ++ state_interfaces.emplace_back( ++ LinkedInterface(tf_prefix + "gpio", "safety_status_bit_" + std::to_string(i), &safety_status_bits_copy_[i])); } for (size_t i = 0; i < 4; ++i) { - state_interfaces.emplace_back(hardware_interface::StateInterface( -+ state_interfaces.emplace_back(LinkedInterface( - tf_prefix + "gpio", "analog_io_type_" + std::to_string(i), &analog_io_types_copy_[i])); +- tf_prefix + "gpio", "analog_io_type_" + std::to_string(i), &analog_io_types_copy_[i])); - state_interfaces.emplace_back(hardware_interface::StateInterface( -+ state_interfaces.emplace_back(LinkedInterface( - tf_prefix + "gpio", "robot_status_bit_" + std::to_string(i), &robot_status_bits_copy_[i])); +- tf_prefix + "gpio", "robot_status_bit_" + std::to_string(i), &robot_status_bits_copy_[i])); ++ state_interfaces.emplace_back( ++ LinkedInterface(tf_prefix + "gpio", "analog_io_type_" + std::to_string(i), &analog_io_types_copy_[i])); ++ state_interfaces.emplace_back( ++ LinkedInterface(tf_prefix + "gpio", "robot_status_bit_" + std::to_string(i), &robot_status_bits_copy_[i])); } for (size_t i = 0; i < 2; ++i) { - state_interfaces.emplace_back(hardware_interface::StateInterface( -+ state_interfaces.emplace_back(LinkedInterface( - tf_prefix + "gpio", "tool_analog_input_type_" + std::to_string(i), &tool_analog_input_types_copy_[i])); +- tf_prefix + "gpio", "tool_analog_input_type_" + std::to_string(i), &tool_analog_input_types_copy_[i])); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "tool_analog_input_type_" + std::to_string(i), ++ &tool_analog_input_types_copy_[i])); - state_interfaces.emplace_back(hardware_interface::StateInterface( -+ state_interfaces.emplace_back(LinkedInterface( - tf_prefix + "gpio", "tool_analog_input_" + std::to_string(i), &tool_analog_input_[i])); +- tf_prefix + "gpio", "tool_analog_input_" + std::to_string(i), &tool_analog_input_[i])); ++ state_interfaces.emplace_back( ++ LinkedInterface(tf_prefix + "gpio", "tool_analog_input_" + std::to_string(i), &tool_analog_input_[i])); - state_interfaces.emplace_back(hardware_interface::StateInterface( -+ state_interfaces.emplace_back(LinkedInterface( - tf_prefix + "gpio", "standard_analog_input_" + std::to_string(i), &standard_analog_input_[i])); +- tf_prefix + "gpio", "standard_analog_input_" + std::to_string(i), &standard_analog_input_[i])); ++ state_interfaces.emplace_back( ++ LinkedInterface(tf_prefix + "gpio", "standard_analog_input_" + std::to_string(i), &standard_analog_input_[i])); - state_interfaces.emplace_back(hardware_interface::StateInterface( -+ state_interfaces.emplace_back(LinkedInterface( - tf_prefix + "gpio", "standard_analog_output_" + std::to_string(i), &standard_analog_output_[i])); +- tf_prefix + "gpio", "standard_analog_output_" + std::to_string(i), &standard_analog_output_[i])); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "standard_analog_output_" + std::to_string(i), ++ &standard_analog_output_[i])); } - state_interfaces.emplace_back( +- state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "gpio", "tool_output_voltage", &tool_output_voltage_copy_)); -+ LinkedInterface(tf_prefix + "gpio", "tool_output_voltage", &tool_output_voltage_copy_)); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "tool_output_voltage", &tool_output_voltage_copy_)); - state_interfaces.emplace_back( +- state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "gpio", "robot_mode", &robot_mode_copy_)); -+ LinkedInterface(tf_prefix + "gpio", "robot_mode", &robot_mode_copy_)); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "robot_mode", &robot_mode_copy_)); - state_interfaces.emplace_back( +- state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "gpio", "safety_mode", &safety_mode_copy_)); -+ LinkedInterface(tf_prefix + "gpio", "safety_mode", &safety_mode_copy_)); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "safety_mode", &safety_mode_copy_)); - state_interfaces.emplace_back(hardware_interface::StateInterface(tf_prefix + "gpio", "tool_mode", &tool_mode_copy_)); + state_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "tool_mode", &tool_mode_copy_)); - state_interfaces.emplace_back( +- state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "gpio", "tool_output_current", &tool_output_current_)); -+ LinkedInterface(tf_prefix + "gpio", "tool_output_current", &tool_output_current_)); - - state_interfaces.emplace_back( +- +- state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "gpio", "tool_temperature", &tool_temperature_)); -+ LinkedInterface(tf_prefix + "gpio", "tool_temperature", &tool_temperature_)); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "tool_output_current", &tool_output_current_)); - state_interfaces.emplace_back(hardware_interface::StateInterface(tf_prefix + "system_interface", "initialized", -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "system_interface", "initialized", - &system_interface_initialized_)); +- &system_interface_initialized_)); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "tool_temperature", &tool_temperature_)); state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "gpio", "program_running", &robot_program_running_copy_)); -+ LinkedInterface(tf_prefix + "gpio", "program_running", &robot_program_running_copy_)); ++ LinkedInterface(tf_prefix + "system_interface", "initialized", &system_interface_initialized_)); - state_interfaces.emplace_back( +- state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "tcp_pose", "position.x", &urcl_tcp_pose_[0])); -+ LinkedInterface(tf_prefix + "tcp_pose", "position.x", &urcl_tcp_pose_[0])); - state_interfaces.emplace_back( +- state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "tcp_pose", "position.y", &urcl_tcp_pose_[1])); -+ LinkedInterface(tf_prefix + "tcp_pose", "position.y", &urcl_tcp_pose_[1])); - state_interfaces.emplace_back( +- state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "tcp_pose", "position.z", &urcl_tcp_pose_[2])); -+ LinkedInterface(tf_prefix + "tcp_pose", "position.z", &urcl_tcp_pose_[2])); - state_interfaces.emplace_back( +- state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "tcp_pose", "orientation.x", &tcp_rotation_buffer.x)); -+ LinkedInterface(tf_prefix + "tcp_pose", "orientation.x", &tcp_rotation_buffer.x)); - state_interfaces.emplace_back( +- state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "tcp_pose", "orientation.y", &tcp_rotation_buffer.y)); -+ LinkedInterface(tf_prefix + "tcp_pose", "orientation.y", &tcp_rotation_buffer.y)); - state_interfaces.emplace_back( +- state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "tcp_pose", "orientation.z", &tcp_rotation_buffer.z)); -+ LinkedInterface(tf_prefix + "tcp_pose", "orientation.z", &tcp_rotation_buffer.z)); - state_interfaces.emplace_back( +- state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "tcp_pose", "orientation.w", &tcp_rotation_buffer.w)); -+ LinkedInterface(tf_prefix + "tcp_pose", "orientation.w", &tcp_rotation_buffer.w)); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "program_running", &robot_program_running_copy_)); - state_interfaces.emplace_back(hardware_interface::StateInterface( -+ state_interfaces.emplace_back(LinkedInterface( - tf_prefix + "get_robot_software_version", "get_version_major", &get_robot_software_version_major_)); +- tf_prefix + "get_robot_software_version", "get_version_major", &get_robot_software_version_major_)); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "tcp_pose", "position.x", &urcl_tcp_pose_[0])); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "tcp_pose", "position.y", &urcl_tcp_pose_[1])); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "tcp_pose", "position.z", &urcl_tcp_pose_[2])); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "tcp_pose", "orientation.x", &tcp_rotation_buffer.x)); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "tcp_pose", "orientation.y", &tcp_rotation_buffer.y)); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "tcp_pose", "orientation.z", &tcp_rotation_buffer.z)); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "tcp_pose", "orientation.w", &tcp_rotation_buffer.w)); - state_interfaces.emplace_back(hardware_interface::StateInterface( -+ state_interfaces.emplace_back(LinkedInterface( - tf_prefix + "get_robot_software_version", "get_version_minor", &get_robot_software_version_minor_)); +- tf_prefix + "get_robot_software_version", "get_version_minor", &get_robot_software_version_minor_)); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "get_robot_software_version", "get_version_major", ++ &get_robot_software_version_major_)); - state_interfaces.emplace_back(hardware_interface::StateInterface( -+ state_interfaces.emplace_back(LinkedInterface( - tf_prefix + "get_robot_software_version", "get_version_bugfix", &get_robot_software_version_bugfix_)); +- tf_prefix + "get_robot_software_version", "get_version_bugfix", &get_robot_software_version_bugfix_)); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "get_robot_software_version", "get_version_minor", ++ &get_robot_software_version_minor_)); - state_interfaces.emplace_back(hardware_interface::StateInterface( -+ state_interfaces.emplace_back(LinkedInterface( - tf_prefix + "get_robot_software_version", "get_version_build", &get_robot_software_version_build_)); +- tf_prefix + "get_robot_software_version", "get_version_build", &get_robot_software_version_build_)); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "get_robot_software_version", "get_version_bugfix", ++ &get_robot_software_version_bugfix_)); - state_interfaces.emplace_back( +- state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + TOOL_CONTACT_GPIO, "tool_contact_result", &tool_contact_result_)); -+ LinkedInterface(tf_prefix + TOOL_CONTACT_GPIO, "tool_contact_result", &tool_contact_result_)); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "get_robot_software_version", "get_version_build", ++ &get_robot_software_version_build_)); state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + TOOL_CONTACT_GPIO, "tool_contact_state", &tool_contact_state_)); -+ LinkedInterface(tf_prefix + TOOL_CONTACT_GPIO, "tool_contact_state", &tool_contact_state_)); ++ LinkedInterface(tf_prefix + TOOL_CONTACT_GPIO, "tool_contact_result", &tool_contact_result_)); - state_interfaces.emplace_back(hardware_interface::StateInterface(tf_prefix + "payload", "mass", &rtde_payload_mass_)); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "mass", &rtde_payload_mass_)); - state_interfaces.emplace_back( +- state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "payload", "cog.x", &rtde_payload_cog_[0])); -+ LinkedInterface(tf_prefix + "payload", "cog.x", &rtde_payload_cog_[0])); - state_interfaces.emplace_back( +- state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "payload", "cog.y", &rtde_payload_cog_[1])); -+ LinkedInterface(tf_prefix + "payload", "cog.y", &rtde_payload_cog_[1])); - state_interfaces.emplace_back( +- state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "payload", "cog.z", &rtde_payload_cog_[2])); -+ LinkedInterface(tf_prefix + "payload", "cog.z", &rtde_payload_cog_[2])); - state_interfaces.emplace_back( +- state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "payload", "inertia.ixx", &rtde_payload_inertia_[0])); -+ LinkedInterface(tf_prefix + "payload", "inertia.ixx", &rtde_payload_inertia_[0])); - state_interfaces.emplace_back( +- state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "payload", "inertia.iyy", &rtde_payload_inertia_[1])); -+ LinkedInterface(tf_prefix + "payload", "inertia.iyy", &rtde_payload_inertia_[1])); state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "payload", "inertia.izz", &rtde_payload_inertia_[2])); -+ LinkedInterface(tf_prefix + "payload", "inertia.izz", &rtde_payload_inertia_[2])); - state_interfaces.emplace_back( +- state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "payload", "inertia.ixy", &rtde_payload_inertia_[3])); -+ LinkedInterface(tf_prefix + "payload", "inertia.ixy", &rtde_payload_inertia_[3])); ++ LinkedInterface(tf_prefix + TOOL_CONTACT_GPIO, "tool_contact_state", &tool_contact_state_)); ++ ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "mass", &rtde_payload_mass_)); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "cog.x", &rtde_payload_cog_[0])); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "cog.y", &rtde_payload_cog_[1])); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "cog.z", &rtde_payload_cog_[2])); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "inertia.ixx", &rtde_payload_inertia_[0])); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "inertia.iyy", &rtde_payload_inertia_[1])); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "inertia.izz", &rtde_payload_inertia_[2])); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "inertia.ixy", &rtde_payload_inertia_[3])); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "inertia.ixz", &rtde_payload_inertia_[4])); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "inertia.iyz", &rtde_payload_inertia_[5])); ++ // Motion primitives stuff state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "payload", "inertia.ixz", &rtde_payload_inertia_[4])); -+ LinkedInterface(tf_prefix + "payload", "inertia.ixz", &rtde_payload_inertia_[4])); ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "execution_status", &hw_moprim_states_[0])); state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "payload", "inertia.iyz", &rtde_payload_inertia_[5])); -+ LinkedInterface(tf_prefix + "payload", "inertia.iyz", &rtde_payload_inertia_[5])); - // Motion primitives stuff +- // Motion primitives stuff - state_interfaces.emplace_back(hardware_interface::StateInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, - "execution_status", &hw_moprim_states_[0])); +- "execution_status", &hw_moprim_states_[0])); - state_interfaces.emplace_back(hardware_interface::StateInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, - "ready_for_new_primitive", &hw_moprim_states_[1])); +- "ready_for_new_primitive", &hw_moprim_states_[1])); ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "ready_for_new_primitive", &hw_moprim_states_[1])); return state_interfaces; } @@ -354,7 +497,7 @@ index b9d3649..76c56de 100644 { auto has_cmd_interface = [](const hardware_interface::ComponentInfo& joint, const std::string& interface_name) { auto it = -@@ -384,16 +470,16 @@ std::vector URPositionHardwareInterface::e +@@ -384,17 +544,17 @@ std::vector URPositionHardwareInterface::e [&interface_name](const hardware_interface::InterfaceInfo& obj) { return obj.name == interface_name; }); return it != joint.command_interfaces.end(); }; @@ -362,113 +505,129 @@ index b9d3649..76c56de 100644 + std::vector command_interfaces; for (size_t i = 0; i < info_.joints.size(); ++i) { - command_interfaces.emplace_back(hardware_interface::CommandInterface( -+ command_interfaces.emplace_back(LinkedInterface( - info_.joints[i].name, hardware_interface::HW_IF_POSITION, &urcl_position_commands_[i])); +- info_.joints[i].name, hardware_interface::HW_IF_POSITION, &urcl_position_commands_[i])); ++ command_interfaces.emplace_back( ++ LinkedInterface(info_.joints[i].name, hardware_interface::HW_IF_POSITION, &urcl_position_commands_[i])); - command_interfaces.emplace_back(hardware_interface::CommandInterface( -+ command_interfaces.emplace_back(LinkedInterface( - info_.joints[i].name, hardware_interface::HW_IF_VELOCITY, &urcl_velocity_commands_[i])); +- info_.joints[i].name, hardware_interface::HW_IF_VELOCITY, &urcl_velocity_commands_[i])); ++ command_interfaces.emplace_back( ++ LinkedInterface(info_.joints[i].name, hardware_interface::HW_IF_VELOCITY, &urcl_velocity_commands_[i])); if (has_cmd_interface(info_.joints[i], hardware_interface::HW_IF_EFFORT)) { - command_interfaces.emplace_back(hardware_interface::CommandInterface( -+ command_interfaces.emplace_back(LinkedInterface( - info_.joints[i].name, hardware_interface::HW_IF_EFFORT, &urcl_torque_commands_[i])); +- info_.joints[i].name, hardware_interface::HW_IF_EFFORT, &urcl_torque_commands_[i])); ++ command_interfaces.emplace_back( ++ LinkedInterface(info_.joints[i].name, hardware_interface::HW_IF_EFFORT, &urcl_torque_commands_[i])); } } -@@ -403,58 +489,58 @@ std::vector URPositionHardwareInterface::e + // Obtain the tf_prefix from the urdf so that we can have the general interface multiple times +@@ -402,60 +562,49 @@ std::vector URPositionHardwareInterface::e + // command interface in info_ and match them accordingly const std::string tf_prefix = info_.hardware_parameters.at("tf_prefix"); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "gpio", "io_async_success", &io_async_success_)); -+ LinkedInterface(tf_prefix + "gpio", "io_async_success", &io_async_success_)); ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "io_async_success", &io_async_success_)); - command_interfaces.emplace_back(hardware_interface::CommandInterface( -+ command_interfaces.emplace_back(LinkedInterface( - tf_prefix + "speed_scaling", "target_speed_fraction_cmd", &target_speed_fraction_cmd_)); +- tf_prefix + "speed_scaling", "target_speed_fraction_cmd", &target_speed_fraction_cmd_)); ++ command_interfaces.emplace_back( ++ LinkedInterface(tf_prefix + "speed_scaling", "target_speed_fraction_cmd", &target_speed_fraction_cmd_)); - command_interfaces.emplace_back(hardware_interface::CommandInterface( -+ command_interfaces.emplace_back(LinkedInterface( - tf_prefix + "speed_scaling", "target_speed_fraction_async_success", &scaling_async_success_)); +- tf_prefix + "speed_scaling", "target_speed_fraction_async_success", &scaling_async_success_)); ++ command_interfaces.emplace_back( ++ LinkedInterface(tf_prefix + "speed_scaling", "target_speed_fraction_async_success", &scaling_async_success_)); - command_interfaces.emplace_back(hardware_interface::CommandInterface( -+ command_interfaces.emplace_back(LinkedInterface( - tf_prefix + "resend_robot_program", "resend_robot_program_cmd", &resend_robot_program_cmd_)); +- tf_prefix + "resend_robot_program", "resend_robot_program_cmd", &resend_robot_program_cmd_)); ++ command_interfaces.emplace_back( ++ LinkedInterface(tf_prefix + "resend_robot_program", "resend_robot_program_cmd", &resend_robot_program_cmd_)); - command_interfaces.emplace_back(hardware_interface::CommandInterface( + command_interfaces.emplace_back(LinkedInterface( tf_prefix + "resend_robot_program", "resend_robot_program_async_success", &resend_robot_program_async_success_)); - command_interfaces.emplace_back(hardware_interface::CommandInterface( -+ command_interfaces.emplace_back(LinkedInterface( - tf_prefix + "hand_back_control", "hand_back_control_cmd", &hand_back_control_cmd_)); - +- tf_prefix + "hand_back_control", "hand_back_control_cmd", &hand_back_control_cmd_)); +- - command_interfaces.emplace_back(hardware_interface::CommandInterface( -+ command_interfaces.emplace_back(LinkedInterface( - tf_prefix + "hand_back_control", "hand_back_control_async_success", &hand_back_control_async_success_)); - +- tf_prefix + "hand_back_control", "hand_back_control_async_success", &hand_back_control_async_success_)); +- - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + "payload", "mass", &payload_mass_)); -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "mass", &payload_mass_)); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "payload", "cog.x", &payload_center_of_gravity_[0])); -+ LinkedInterface(tf_prefix + "payload", "cog.x", &payload_center_of_gravity_[0])); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "payload", "cog.y", &payload_center_of_gravity_[1])); -+ LinkedInterface(tf_prefix + "payload", "cog.y", &payload_center_of_gravity_[1])); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "payload", "cog.z", &payload_center_of_gravity_[2])); -+ LinkedInterface(tf_prefix + "payload", "cog.z", &payload_center_of_gravity_[2])); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.ixx", &payload_inertia_[0])); -+ LinkedInterface(tf_prefix + "payload", "inertia.ixx", &payload_inertia_[0])); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.iyy", &payload_inertia_[1])); -+ LinkedInterface(tf_prefix + "payload", "inertia.iyy", &payload_inertia_[1])); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.izz", &payload_inertia_[2])); -+ LinkedInterface(tf_prefix + "payload", "inertia.izz", &payload_inertia_[2])); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.ixy", &payload_inertia_[3])); -+ LinkedInterface(tf_prefix + "payload", "inertia.ixy", &payload_inertia_[3])); command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.ixz", &payload_inertia_[4])); -+ LinkedInterface(tf_prefix + "payload", "inertia.ixz", &payload_inertia_[4])); ++ LinkedInterface(tf_prefix + "hand_back_control", "hand_back_control_cmd", &hand_back_control_cmd_)); ++ ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "hand_back_control", "hand_back_control_async_success", ++ &hand_back_control_async_success_)); ++ ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "mass", &payload_mass_)); ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "cog.x", &payload_center_of_gravity_[0])); ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "cog.y", &payload_center_of_gravity_[1])); ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "cog.z", &payload_center_of_gravity_[2])); ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "inertia.ixx", &payload_inertia_[0])); ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "inertia.iyy", &payload_inertia_[1])); ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "inertia.izz", &payload_inertia_[2])); ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "inertia.ixy", &payload_inertia_[3])); ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "inertia.ixz", &payload_inertia_[4])); ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "inertia.iyz", &payload_inertia_[5])); ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "transition_time", &payload_transition_time_)); command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.iyz", &payload_inertia_[5])); -+ LinkedInterface(tf_prefix + "payload", "inertia.iyz", &payload_inertia_[5])); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "payload", "transition_time", &payload_transition_time_)); -+ LinkedInterface(tf_prefix + "payload", "transition_time", &payload_transition_time_)); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "payload", "payload_async_success", &payload_async_success_)); + LinkedInterface(tf_prefix + "payload", "payload_async_success", &payload_async_success_)); for (size_t i = 0; i < friction_model_viscous_.size(); ++i) { - command_interfaces.emplace_back(hardware_interface::CommandInterface( -+ command_interfaces.emplace_back(LinkedInterface( - tf_prefix + "friction_model", "viscous_" + std::to_string(i), &friction_model_viscous_[i])); +- tf_prefix + "friction_model", "viscous_" + std::to_string(i), &friction_model_viscous_[i])); ++ command_interfaces.emplace_back( ++ LinkedInterface(tf_prefix + "friction_model", "viscous_" + std::to_string(i), &friction_model_viscous_[i])); } for (size_t i = 0; i < friction_model_coulomb_.size(); ++i) { - command_interfaces.emplace_back(hardware_interface::CommandInterface( -+ command_interfaces.emplace_back(LinkedInterface( - tf_prefix + "friction_model", "coulomb_" + std::to_string(i), &friction_model_coulomb_[i])); +- tf_prefix + "friction_model", "coulomb_" + std::to_string(i), &friction_model_coulomb_[i])); ++ command_interfaces.emplace_back( ++ LinkedInterface(tf_prefix + "friction_model", "coulomb_" + std::to_string(i), &friction_model_coulomb_[i])); } - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + "friction_model", "async_success", -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "friction_model", "async_success", - &friction_model_async_success_)); +- &friction_model_async_success_)); ++ command_interfaces.emplace_back( ++ LinkedInterface(tf_prefix + "friction_model", "async_success", &friction_model_async_success_)); command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "task_frame_x", &force_mode_task_frame_[0]); -@@ -488,145 +574,145 @@ std::vector URPositionHardwareInterface::e + command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "task_frame_y", &force_mode_task_frame_[1]); +@@ -487,146 +636,134 @@ std::vector URPositionHardwareInterface::e + command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "damping", &force_mode_damping_); command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "gain_scaling", &force_mode_gain_scaling_); ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "gravity", "x", &gravity_vector_[0])); ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "gravity", "y", &gravity_vector_[1])); ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "gravity", "z", &gravity_vector_[2])); command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "gravity", "x", &gravity_vector_[0])); -+ LinkedInterface(tf_prefix + "gravity", "x", &gravity_vector_[0])); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "gravity", "y", &gravity_vector_[1])); -+ LinkedInterface(tf_prefix + "gravity", "y", &gravity_vector_[1])); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "gravity", "z", &gravity_vector_[2])); -+ LinkedInterface(tf_prefix + "gravity", "z", &gravity_vector_[2])); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "gravity", "gravity_async_success", &gravity_async_success_)); + LinkedInterface(tf_prefix + "gravity", "gravity_async_success", &gravity_async_success_)); @@ -486,65 +645,75 @@ index b9d3649..76c56de 100644 command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "gpio", "analog_output_domain_cmd", &analog_output_domain_cmd_)); + LinkedInterface(tf_prefix + "gpio", "analog_output_domain_cmd", &analog_output_domain_cmd_)); ++ ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "tool_voltage_cmd", &tool_voltage_cmd_)); ++ ++ command_interfaces.emplace_back( ++ LinkedInterface(tf_prefix + "zero_ftsensor", "zero_ftsensor_cmd", &zero_ftsensor_cmd_)); command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "gpio", "tool_voltage_cmd", &tool_voltage_cmd_)); -+ LinkedInterface(tf_prefix + "gpio", "tool_voltage_cmd", &tool_voltage_cmd_)); ++ LinkedInterface(tf_prefix + "zero_ftsensor", "zero_ftsensor_async_success", &zero_ftsensor_async_success_)); command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "zero_ftsensor", "zero_ftsensor_cmd", &zero_ftsensor_cmd_)); -+ LinkedInterface(tf_prefix + "zero_ftsensor", "zero_ftsensor_cmd", &zero_ftsensor_cmd_)); ++ LinkedInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "async_success", &freedrive_mode_async_success_)); - command_interfaces.emplace_back(hardware_interface::CommandInterface( -+ command_interfaces.emplace_back(LinkedInterface( - tf_prefix + "zero_ftsensor", "zero_ftsensor_async_success", &zero_ftsensor_async_success_)); +- tf_prefix + "zero_ftsensor", "zero_ftsensor_async_success", &zero_ftsensor_async_success_)); ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "enable", &freedrive_mode_enable_)); - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "async_success", -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "async_success", - &freedrive_mode_async_success_)); +- &freedrive_mode_async_success_)); ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "abort", &freedrive_mode_abort_)); command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "enable", &freedrive_mode_enable_)); -+ LinkedInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "enable", &freedrive_mode_enable_)); ++ LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, "transfer_state", &passthrough_trajectory_transfer_state_)); command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "abort", &freedrive_mode_abort_)); -+ LinkedInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "abort", &freedrive_mode_abort_)); - +- - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + PASSTHROUGH_GPIO, "transfer_state", -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, "transfer_state", - &passthrough_trajectory_transfer_state_)); - +- &passthrough_trajectory_transfer_state_)); +- - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + PASSTHROUGH_GPIO, "time_from_start", -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, "time_from_start", - &passthrough_trajectory_time_from_start_)); +- &passthrough_trajectory_time_from_start_)); ++ LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, "time_from_start", &passthrough_trajectory_time_from_start_)); command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + PASSTHROUGH_GPIO, "abort", &passthrough_trajectory_abort_)); + LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, "abort", &passthrough_trajectory_abort_)); - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + PASSTHROUGH_GPIO, "trajectory_size", -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, "trajectory_size", - &passthrough_trajectory_size_)); +- &passthrough_trajectory_size_)); ++ command_interfaces.emplace_back( ++ LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, "trajectory_size", &passthrough_trajectory_size_)); for (size_t i = 0; i < 6; ++i) { - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + PASSTHROUGH_GPIO, +- "setpoint_positions_" + std::to_string(i), +- &passthrough_trajectory_positions_[i])); + command_interfaces.emplace_back(LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, - "setpoint_positions_" + std::to_string(i), - &passthrough_trajectory_positions_[i])); ++ "setpoint_positions_" + std::to_string(i), ++ &passthrough_trajectory_positions_[i])); } for (size_t i = 0; i < 6; ++i) { - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + PASSTHROUGH_GPIO, +- "setpoint_velocities_" + std::to_string(i), +- &passthrough_trajectory_velocities_[i])); + command_interfaces.emplace_back(LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, - "setpoint_velocities_" + std::to_string(i), - &passthrough_trajectory_velocities_[i])); ++ "setpoint_velocities_" + std::to_string(i), ++ &passthrough_trajectory_velocities_[i])); } for (size_t i = 0; i < 6; ++i) { - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + PASSTHROUGH_GPIO, +- "setpoint_accelerations_" + std::to_string(i), +- &passthrough_trajectory_accelerations_[i])); + command_interfaces.emplace_back(LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, - "setpoint_accelerations_" + std::to_string(i), - &passthrough_trajectory_accelerations_[i])); ++ "setpoint_accelerations_" + std::to_string(i), ++ &passthrough_trajectory_accelerations_[i])); } command_interfaces.emplace_back( @@ -567,108 +736,212 @@ index b9d3649..76c56de 100644 + LinkedInterface(tf_prefix + TWIST_GPIO, "angular_velocity_z", &urcl_twist_commands_[5])); - command_interfaces.emplace_back(hardware_interface::CommandInterface( -+ command_interfaces.emplace_back(LinkedInterface( - tf_prefix + TOOL_CONTACT_GPIO, "tool_contact_set_state", &tool_contact_set_state_)); +- tf_prefix + TOOL_CONTACT_GPIO, "tool_contact_set_state", &tool_contact_set_state_)); ++ command_interfaces.emplace_back( ++ LinkedInterface(tf_prefix + TOOL_CONTACT_GPIO, "tool_contact_set_state", &tool_contact_set_state_)); // Motion primitives stuff // Command for motion type (motion_type) - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, - "motion_type", &hw_moprim_commands_[0])); +- "motion_type", &hw_moprim_commands_[0])); ++ command_interfaces.emplace_back( ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "motion_type", &hw_moprim_commands_[0])); // Joint position commands (q1, q2, ..., q6) ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q1", &hw_moprim_commands_[1])); ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q2", &hw_moprim_commands_[2])); ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q3", &hw_moprim_commands_[3])); ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q4", &hw_moprim_commands_[4])); ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q5", &hw_moprim_commands_[5])); ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q6", &hw_moprim_commands_[6])); ++ // Position commands (pos_x, pos_y, pos_z, pos_qx, pos_qy, pos_qz, pos_qz) command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q1", &hw_moprim_commands_[1])); -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q1", &hw_moprim_commands_[1])); ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_x", &hw_moprim_commands_[7])); command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q2", &hw_moprim_commands_[2])); -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q2", &hw_moprim_commands_[2])); ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_y", &hw_moprim_commands_[8])); command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q3", &hw_moprim_commands_[3])); -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q3", &hw_moprim_commands_[3])); ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_z", &hw_moprim_commands_[9])); command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q4", &hw_moprim_commands_[4])); -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q4", &hw_moprim_commands_[4])); ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_qx", &hw_moprim_commands_[10])); command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q5", &hw_moprim_commands_[5])); -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q5", &hw_moprim_commands_[5])); ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_qy", &hw_moprim_commands_[11])); command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q6", &hw_moprim_commands_[6])); -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q6", &hw_moprim_commands_[6])); - // Position commands (pos_x, pos_y, pos_z, pos_qx, pos_qy, pos_qz, pos_qz) +- // Position commands (pos_x, pos_y, pos_z, pos_qx, pos_qy, pos_qz, pos_qz) ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_qz", &hw_moprim_commands_[12])); command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_x", &hw_moprim_commands_[7])); -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_x", &hw_moprim_commands_[7])); ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_qw", &hw_moprim_commands_[13])); ++ // Via Position commands for circula motion command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_y", &hw_moprim_commands_[8])); -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_y", &hw_moprim_commands_[8])); ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_via_x", &hw_moprim_commands_[14])); command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_z", &hw_moprim_commands_[9])); -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_z", &hw_moprim_commands_[9])); ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_via_y", &hw_moprim_commands_[15])); command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_qx", &hw_moprim_commands_[10])); -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_qx", &hw_moprim_commands_[10])); ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_via_z", &hw_moprim_commands_[16])); command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_qy", &hw_moprim_commands_[11])); -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_qy", &hw_moprim_commands_[11])); ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_via_qx", &hw_moprim_commands_[17])); command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_qz", &hw_moprim_commands_[12])); -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_qz", &hw_moprim_commands_[12])); ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_via_qy", &hw_moprim_commands_[18])); command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_qw", &hw_moprim_commands_[13])); -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_qw", &hw_moprim_commands_[13])); - // Via Position commands for circula motion +- // Via Position commands for circula motion ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_via_qz", &hw_moprim_commands_[19])); command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_via_x", &hw_moprim_commands_[14])); -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_via_x", &hw_moprim_commands_[14])); ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_via_qw", &hw_moprim_commands_[20])); ++ // Other command parameters (blend_radius, velocity, acceleration, move_time) command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_via_y", &hw_moprim_commands_[15])); -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_via_y", &hw_moprim_commands_[15])); ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "blend_radius", &hw_moprim_commands_[21])); command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_via_z", &hw_moprim_commands_[16])); - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_via_z", &hw_moprim_commands_[16])); -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, - "pos_via_qx", &hw_moprim_commands_[17])); +- "pos_via_qx", &hw_moprim_commands_[17])); - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, - "pos_via_qy", &hw_moprim_commands_[18])); +- "pos_via_qy", &hw_moprim_commands_[18])); - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, - "pos_via_qz", &hw_moprim_commands_[19])); +- "pos_via_qz", &hw_moprim_commands_[19])); - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, - "pos_via_qw", &hw_moprim_commands_[20])); - // Other command parameters (blend_radius, velocity, acceleration, move_time) +- "pos_via_qw", &hw_moprim_commands_[20])); +- // Other command parameters (blend_radius, velocity, acceleration, move_time) - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, - "blend_radius", &hw_moprim_commands_[21])); +- "blend_radius", &hw_moprim_commands_[21])); ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "velocity", &hw_moprim_commands_[22])); command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "velocity", &hw_moprim_commands_[22])); - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "velocity", &hw_moprim_commands_[22])); -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, - "acceleration", &hw_moprim_commands_[23])); +- "acceleration", &hw_moprim_commands_[23])); ++ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "acceleration", &hw_moprim_commands_[23])); command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "move_time", &hw_moprim_commands_[24])); + LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "move_time", &hw_moprim_commands_[24])); return command_interfaces; } -@@ -981,7 +1067,7 @@ void URPositionHardwareInterface::asyncThread() +@@ -981,8 +1118,8 @@ void URPositionHardwareInterface::asyncThread() } } -hardware_interface::return_type URPositionHardwareInterface::read(const rclcpp::Time& time, +- const rclcpp::Duration& period) +hardware_interface::return_type URPositionHardwareInterface::read_impl(const rclcpp::Time& time, - const rclcpp::Duration& period) ++ const rclcpp::Duration& period) { // We want to start the rtde comm the latest point possible due to the delay times arising from setting up the -@@ -1091,7 +1177,7 @@ hardware_interface::return_type URPositionHardwareInterface::read(const rclcpp:: + // communication with multiple arms +@@ -1067,13 +1204,13 @@ hardware_interface::return_type URPositionHardwareInterface::read(const rclcpp:: + urcl_position_commands_ = urcl_position_commands_old_ = urcl_joint_positions_; + urcl_velocity_commands_ = { { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } }; + urcl_torque_commands_ = { { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } }; +- target_speed_fraction_cmd_ = NO_NEW_CMD_; +- resend_robot_program_cmd_ = NO_NEW_CMD_; +- zero_ftsensor_cmd_ = NO_NEW_CMD_; +- hand_back_control_cmd_ = NO_NEW_CMD_; ++ set_async(target_speed_fraction_cmd_, NO_NEW_CMD_); ++ set_async(resend_robot_program_cmd_, NO_NEW_CMD_); ++ set_async(zero_ftsensor_cmd_, NO_NEW_CMD_); ++ set_async(hand_back_control_cmd_, NO_NEW_CMD_); + force_mode_disable_cmd_ = NO_NEW_CMD_; +- freedrive_mode_abort_ = NO_NEW_CMD_; +- freedrive_mode_enable_ = NO_NEW_CMD_; ++ set_async(freedrive_mode_abort_, NO_NEW_CMD_); ++ set_async(freedrive_mode_enable_, NO_NEW_CMD_); + initialized_ = true; + } + +@@ -1091,8 +1228,8 @@ hardware_interface::return_type URPositionHardwareInterface::read(const rclcpp:: return hardware_interface::return_type::OK; } -hardware_interface::return_type URPositionHardwareInterface::write(const rclcpp::Time& time, +- const rclcpp::Duration& period) +hardware_interface::return_type URPositionHardwareInterface::write_impl(const rclcpp::Time& time, - const rclcpp::Duration& period) ++ const rclcpp::Duration& period) { // If there is no interpreting program running on the robot, we do not want to send anything. + // TODO(anyone): We would still like to disable the controllers requiring a writable interface. In ROS1 +@@ -1153,26 +1290,36 @@ void URPositionHardwareInterface::handleRobotProgramState(bool program_running) + + void URPositionHardwareInterface::initAsyncIO() + { +- for (size_t i = 0; i < 18; ++i) { +- standard_dig_out_bits_cmd_[i] = NO_NEW_CMD_; ++ for (const auto& v : standard_dig_out_bits_cmd_) { ++ set_async(v, NO_NEW_CMD_); + } + +- for (size_t i = 0; i < 2; ++i) { +- standard_analog_output_cmd_[i] = NO_NEW_CMD_; ++ for (const auto& v : standard_analog_output_cmd_) { ++ set_async(v, NO_NEW_CMD_); + } + +- analog_output_domain_cmd_ = NO_NEW_CMD_; ++ set_async(analog_output_domain_cmd_, NO_NEW_CMD_); + +- tool_voltage_cmd_ = NO_NEW_CMD_; ++ set_async(tool_voltage_cmd_, NO_NEW_CMD_); + +- payload_mass_ = NO_NEW_CMD_; +- payload_center_of_gravity_ = { NO_NEW_CMD_, NO_NEW_CMD_, NO_NEW_CMD_ }; +- payload_inertia_ = { NO_NEW_CMD_, NO_NEW_CMD_, NO_NEW_CMD_, NO_NEW_CMD_, NO_NEW_CMD_, NO_NEW_CMD_ }; +- payload_transition_time_ = NO_NEW_CMD_; ++ set_async(payload_mass_, NO_NEW_CMD_); ++ for (const auto& v : payload_center_of_gravity_) { ++ set_async(v, NO_NEW_CMD_); ++ } ++ for (const auto& v : payload_inertia_) { ++ set_async(v, NO_NEW_CMD_); ++ } ++ set_async(payload_transition_time_, NO_NEW_CMD_); + +- gravity_vector_ = { NO_NEW_CMD_, NO_NEW_CMD_, NO_NEW_CMD_ }; +- friction_model_viscous_.fill(NO_NEW_CMD_); +- friction_model_coulomb_.fill(NO_NEW_CMD_); ++ for (const auto& v : gravity_vector_) { ++ set_async(v, NO_NEW_CMD_); ++ } ++ for (const auto& v : friction_model_viscous_) { ++ set_async(v, NO_NEW_CMD_); ++ } ++ for (const auto& v : friction_model_coulomb_) { ++ set_async(v, NO_NEW_CMD_); ++ } + } + + void URPositionHardwareInterface::checkAsyncIO() +@@ -1180,6 +1327,7 @@ void URPositionHardwareInterface::checkAsyncIO() + if (!rtde_comm_has_been_started_) { + return; + } ++ pull_async(); + for (size_t i = 0; i < 18; ++i) { + if (!std::isnan(standard_dig_out_bits_cmd_[i]) && ur_driver_ != nullptr) { + if (i <= 7) { +@@ -1280,6 +1428,7 @@ void URPositionHardwareInterface::checkAsyncIO() + freedrive_activated_ = false; + freedrive_mode_abort_ = NO_NEW_CMD_; + } ++ push_async(); + } + + void URPositionHardwareInterface::check_tool_contact_controller() +@@ -1583,7 +1732,7 @@ hardware_interface::return_type URPositionHardwareInterface::perform_command_mod + StoppingInterface::STOP_FREEDRIVE) != stop_modes_[0].end()) { + freedrive_mode_controller_running_ = false; + freedrive_activated_ = false; +- freedrive_mode_abort_ = 1.0; ++ set_async(freedrive_mode_abort_, 1.0); + } + + if (stop_modes_.size() != 0 && std::find(stop_modes_[0].begin(), stop_modes_[0].end(), From 7f3841b1a077892dfdb17fef5edcd9c8dc3f8f9b Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Sun, 18 Oct 2026 06:35:55 +1000 Subject: [PATCH 16/21] [skip ci] ur_robot_driver: as upstream ceb2b1b (initialized async copies, every written flag published) Co-Authored-By: Claude Opus 5.5 --- .../rolling/patch/ros2-ur-robot-driver.patch | 121 +++++++++++++----- 1 file changed, 86 insertions(+), 35 deletions(-) diff --git a/distros/rolling/patch/ros2-ur-robot-driver.patch b/distros/rolling/patch/ros2-ur-robot-driver.patch index f8b955f1..184a31d6 100644 --- a/distros/rolling/patch/ros2-ur-robot-driver.patch +++ b/distros/rolling/patch/ros2-ur-robot-driver.patch @@ -70,19 +70,20 @@ index 6232980..4e12332 100644 void readData(const std::unique_ptr& data_pkg, const std::string& var_name, T& data); diff --git a/src/hardware_interface.cpp b/src/hardware_interface.cpp -index b9d3649..c9bf7fd 100644 +index b9d3649..b27eaf8 100644 --- a/src/hardware_interface.cpp +++ b/src/hardware_interface.cpp -@@ -39,6 +39,8 @@ +@@ -39,6 +39,9 @@ * */ //---------------------------------------------------------------------- ++#include +#include +#include #include #include #include -@@ -99,6 +101,34 @@ RobotTypeWithSeries robotTypeFromString(const std::string& robot_type_str) +@@ -99,6 +102,50 @@ RobotTypeWithSeries robotTypeFromString(const std::string& robot_type_str) URPositionHardwareInterface::URPositionHardwareInterface() { mode_compatibility_ = createModeCompatibilityMatrix(); @@ -114,18 +115,33 @@ index b9d3649..c9bf7fd 100644 + a->fill(NO_NEW_CMD_); + } + hw_moprim_commands_.fill(NO_NEW_CMD_); ++ // and the async thread's copies of the async interfaces (checkAsyncIO() acts on them) ++ for (double* v : { &analog_output_domain_cmd_, &tool_voltage_cmd_, &io_async_success_, &target_speed_fraction_cmd_, ++ &scaling_async_success_, &resend_robot_program_cmd_, &resend_robot_program_async_success_, ++ &hand_back_control_cmd_, &hand_back_control_async_success_, &payload_mass_, ++ &payload_transition_time_, &payload_async_success_, &gravity_async_success_, ++ &friction_model_async_success_, &zero_ftsensor_cmd_, &zero_ftsensor_async_success_, ++ &freedrive_mode_enable_, &freedrive_mode_abort_, &freedrive_mode_async_success_ }) { ++ *v = NO_NEW_CMD_; ++ } ++ standard_dig_out_bits_cmd_.fill(NO_NEW_CMD_); ++ standard_analog_output_cmd_.fill(NO_NEW_CMD_); ++ payload_center_of_gravity_.fill(NO_NEW_CMD_); ++ payload_inertia_.fill(NO_NEW_CMD_); ++ gravity_vector_.fill(NO_NEW_CMD_); ++ friction_model_viscous_.fill(NO_NEW_CMD_); ++ friction_model_coulomb_.fill(NO_NEW_CMD_); } URPositionHardwareInterface::~URPositionHardwareInterface() -@@ -226,26 +256,179 @@ URPositionHardwareInterface::on_init(const hardware_interface::HardwareComponent +@@ -226,26 +273,213 @@ URPositionHardwareInterface::on_init(const hardware_interface::HardwareComponent return hardware_interface::CallbackReturn::SUCCESS; } -std::vector URPositionHardwareInterface::export_state_interfaces() +std::vector +URPositionHardwareInterface::on_export_state_interfaces() - { -- std::vector state_interfaces; ++{ + std::vector state_interfaces; + state_links_.clear(); + for (const auto& link : export_state_links()) { @@ -173,6 +189,16 @@ index b9d3649..c9bf7fd 100644 +{ + return std::memcmp(&a, &b, sizeof(double)) == 0; +} ++ ++// marks a success flag checkAsyncIO() didn't write (it only ever assigns them): a NaN that is ++// neither NO_NEW_CMD_ nor anything it assigns ++double unwritten() ++{ ++ const uint64_t bits = 0x7ff800000000beefULL; ++ double value; ++ std::memcpy(&value, &bits, sizeof(value)); ++ return value; ++} +} // namespace + +// a command a controller wrote to its handle since the last sync goes to the member @@ -194,8 +220,10 @@ index b9d3649..c9bf7fd 100644 + std::ignore = handle->set_value(*value); + } + for (auto& link : command_links_) { -+ if (!same(*link.value, link.synced) && link.handle->set_value(*link.value)) { -+ link.synced = *link.value; ++ // one read: other threads (e.g. trajectory_done_callback()) may change the member meanwhile ++ const double value = *link.value; ++ if (!same(value, link.synced) && link.handle->set_value(value)) { ++ link.synced = value; + } + } +} @@ -217,32 +245,54 @@ index b9d3649..c9bf7fd 100644 + in(freedrive_mode_abort_) || in(freedrive_mode_async_success_); +} + -+// the requests (and flags) as the controllers and services left them, into the async thread's members ++// the requests as the controllers and services left them, into the async thread's members; the ++// success flags are marked, so that push_async() publishes every one checkAsyncIO() writes (also ++// when the result equals the previous one, as for a request that followed an earlier success) +void URPositionHardwareInterface::pull_async() +{ + for (auto& link : async_links_) { ++ if (link.pending) { ++ continue; // keeps the value it couldn't publish yet ++ } + double value; -+ if (!link.pending && link.handle->get_value(value, false)) { ++ if (link.success_flag) { ++ *link.value = unwritten(); ++ } else if (link.handle->get_value(value, false)) { + *link.value = value; + link.pulled = value; + } + } +} + -+// what checkAsyncIO() changed, back to the handles: the resets first, the success flags only once ++// what checkAsyncIO() did, back to the handles: the request resets first, the success flags only once +// those are all published; anything that couldn't be published is retried next time +void URPositionHardwareInterface::push_async() +{ + bool resets_published = true; + for (auto& link : async_links_) { -+ if (!link.pending && same(*link.value, link.pulled)) { ++ const double value = *link.value; ++ if (link.success_flag) { ++ if (!link.pending && same(value, unwritten())) { ++ continue; ++ } ++ link.pending = !(resets_published && link.handle->set_value(value)); ++ continue; ++ } ++ if (link.pending) { ++ // a newer request arrived meanwhile: it wins over the reset of the old one ++ double current; ++ if (link.handle->get_value(current, false) && !same(current, link.pulled)) { ++ link.pending = false; ++ continue; ++ } ++ } else if (same(value, link.pulled)) { + continue; + } -+ link.pending = !((resets_published || !link.success_flag) && link.handle->set_value(*link.value)); -+ if (!link.pending) { -+ link.pulled = *link.value; -+ } else if (!link.success_flag) { ++ link.pending = !link.handle->set_value(value); ++ if (link.pending) { + resets_published = false; ++ } else { ++ link.pulled = value; + } + } +} @@ -277,7 +327,8 @@ index b9d3649..c9bf7fd 100644 +} + +std::vector URPositionHardwareInterface::export_state_links() -+{ + { +- std::vector state_interfaces; + std::vector state_interfaces; for (size_t i = 0; i < info_.joints.size(); ++i) { - state_interfaces.emplace_back(hardware_interface::StateInterface( @@ -307,7 +358,7 @@ index b9d3649..c9bf7fd 100644 for (auto& sensor : info_.sensors) { if (sensor.name == tf_prefix + "tcp_fts_sensor") { -@@ -253,130 +436,107 @@ std::vector URPositionHardwareInterface::exp +@@ -253,130 +487,107 @@ std::vector URPositionHardwareInterface::exp "force.x", "force.y", "force.z", "torque.x", "torque.y", "torque.z" }; for (uint32_t j = 0; j < 6; ++j) { @@ -454,13 +505,13 @@ index b9d3649..c9bf7fd 100644 - hardware_interface::StateInterface(tf_prefix + "payload", "cog.x", &rtde_payload_cog_[0])); - state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "payload", "cog.y", &rtde_payload_cog_[1])); -- state_interfaces.emplace_back( + state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "payload", "cog.z", &rtde_payload_cog_[2])); - state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "payload", "inertia.ixx", &rtde_payload_inertia_[0])); - state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "payload", "inertia.iyy", &rtde_payload_inertia_[1])); - state_interfaces.emplace_back( +- state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "payload", "inertia.izz", &rtde_payload_inertia_[2])); - state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "payload", "inertia.ixy", &rtde_payload_inertia_[3])); @@ -497,7 +548,7 @@ index b9d3649..c9bf7fd 100644 { auto has_cmd_interface = [](const hardware_interface::ComponentInfo& joint, const std::string& interface_name) { auto it = -@@ -384,17 +544,17 @@ std::vector URPositionHardwareInterface::e +@@ -384,17 +595,17 @@ std::vector URPositionHardwareInterface::e [&interface_name](const hardware_interface::InterfaceInfo& obj) { return obj.name == interface_name; }); return it != joint.command_interfaces.end(); }; @@ -522,7 +573,7 @@ index b9d3649..c9bf7fd 100644 } } // Obtain the tf_prefix from the urdf so that we can have the general interface multiple times -@@ -402,60 +562,49 @@ std::vector URPositionHardwareInterface::e +@@ -402,60 +613,49 @@ std::vector URPositionHardwareInterface::e // command interface in info_ and match them accordingly const std::string tf_prefix = info_.hardware_parameters.at("tf_prefix"); @@ -565,12 +616,8 @@ index b9d3649..c9bf7fd 100644 - hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.ixx", &payload_inertia_[0])); - command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.iyy", &payload_inertia_[1])); -- command_interfaces.emplace_back( -- hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.izz", &payload_inertia_[2])); -- command_interfaces.emplace_back( -- hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.ixy", &payload_inertia_[3])); command_interfaces.emplace_back( -- hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.ixz", &payload_inertia_[4])); +- hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.izz", &payload_inertia_[2])); + LinkedInterface(tf_prefix + "hand_back_control", "hand_back_control_cmd", &hand_back_control_cmd_)); + + command_interfaces.emplace_back(LinkedInterface(tf_prefix + "hand_back_control", "hand_back_control_async_success", @@ -588,6 +635,10 @@ index b9d3649..c9bf7fd 100644 + command_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "inertia.iyz", &payload_inertia_[5])); + command_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "transition_time", &payload_transition_time_)); command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.ixy", &payload_inertia_[3])); +- command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.ixz", &payload_inertia_[4])); +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.iyz", &payload_inertia_[5])); - command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "payload", "transition_time", &payload_transition_time_)); @@ -614,7 +665,7 @@ index b9d3649..c9bf7fd 100644 command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "task_frame_x", &force_mode_task_frame_[0]); command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "task_frame_y", &force_mode_task_frame_[1]); -@@ -487,146 +636,134 @@ std::vector URPositionHardwareInterface::e +@@ -487,146 +687,134 @@ std::vector URPositionHardwareInterface::e command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "damping", &force_mode_damping_); command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "gain_scaling", &force_mode_gain_scaling_); @@ -828,7 +879,7 @@ index b9d3649..c9bf7fd 100644 return command_interfaces; } -@@ -981,8 +1118,8 @@ void URPositionHardwareInterface::asyncThread() +@@ -981,8 +1169,8 @@ void URPositionHardwareInterface::asyncThread() } } @@ -839,7 +890,7 @@ index b9d3649..c9bf7fd 100644 { // We want to start the rtde comm the latest point possible due to the delay times arising from setting up the // communication with multiple arms -@@ -1067,13 +1204,13 @@ hardware_interface::return_type URPositionHardwareInterface::read(const rclcpp:: +@@ -1067,13 +1255,13 @@ hardware_interface::return_type URPositionHardwareInterface::read(const rclcpp:: urcl_position_commands_ = urcl_position_commands_old_ = urcl_joint_positions_; urcl_velocity_commands_ = { { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } }; urcl_torque_commands_ = { { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } }; @@ -859,7 +910,7 @@ index b9d3649..c9bf7fd 100644 initialized_ = true; } -@@ -1091,8 +1228,8 @@ hardware_interface::return_type URPositionHardwareInterface::read(const rclcpp:: +@@ -1091,8 +1279,8 @@ hardware_interface::return_type URPositionHardwareInterface::read(const rclcpp:: return hardware_interface::return_type::OK; } @@ -870,7 +921,7 @@ index b9d3649..c9bf7fd 100644 { // If there is no interpreting program running on the robot, we do not want to send anything. // TODO(anyone): We would still like to disable the controllers requiring a writable interface. In ROS1 -@@ -1153,26 +1290,36 @@ void URPositionHardwareInterface::handleRobotProgramState(bool program_running) +@@ -1153,26 +1341,36 @@ void URPositionHardwareInterface::handleRobotProgramState(bool program_running) void URPositionHardwareInterface::initAsyncIO() { @@ -920,7 +971,7 @@ index b9d3649..c9bf7fd 100644 } void URPositionHardwareInterface::checkAsyncIO() -@@ -1180,6 +1327,7 @@ void URPositionHardwareInterface::checkAsyncIO() +@@ -1180,6 +1378,7 @@ void URPositionHardwareInterface::checkAsyncIO() if (!rtde_comm_has_been_started_) { return; } @@ -928,7 +979,7 @@ index b9d3649..c9bf7fd 100644 for (size_t i = 0; i < 18; ++i) { if (!std::isnan(standard_dig_out_bits_cmd_[i]) && ur_driver_ != nullptr) { if (i <= 7) { -@@ -1280,6 +1428,7 @@ void URPositionHardwareInterface::checkAsyncIO() +@@ -1280,6 +1479,7 @@ void URPositionHardwareInterface::checkAsyncIO() freedrive_activated_ = false; freedrive_mode_abort_ = NO_NEW_CMD_; } @@ -936,7 +987,7 @@ index b9d3649..c9bf7fd 100644 } void URPositionHardwareInterface::check_tool_contact_controller() -@@ -1583,7 +1732,7 @@ hardware_interface::return_type URPositionHardwareInterface::perform_command_mod +@@ -1583,7 +1783,7 @@ hardware_interface::return_type URPositionHardwareInterface::perform_command_mod StoppingInterface::STOP_FREEDRIVE) != stop_modes_[0].end()) { freedrive_mode_controller_running_ = false; freedrive_activated_ = false; From faf5e6af271f58fbf226f720244bda6735a59a6c Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Sun, 18 Oct 2026 08:48:42 +1000 Subject: [PATCH 17/21] [skip ci] ur_robot_driver: as upstream 4d45356 (all-or-nothing async reads, non-blocking resets) Co-Authored-By: Claude Opus 5.5 --- .../rolling/patch/ros2-ur-robot-driver.patch | 116 +++++++++++------- 1 file changed, 72 insertions(+), 44 deletions(-) diff --git a/distros/rolling/patch/ros2-ur-robot-driver.patch b/distros/rolling/patch/ros2-ur-robot-driver.patch index 184a31d6..aa2b8084 100644 --- a/distros/rolling/patch/ros2-ur-robot-driver.patch +++ b/distros/rolling/patch/ros2-ur-robot-driver.patch @@ -1,5 +1,5 @@ diff --git a/include/ur_robot_driver/hardware_interface.hpp b/include/ur_robot_driver/hardware_interface.hpp -index 6232980..4e12332 100644 +index 6232980..4084dc8 100644 --- a/include/ur_robot_driver/hardware_interface.hpp +++ b/include/ur_robot_driver/hardware_interface.hpp @@ -144,9 +144,11 @@ public: @@ -16,7 +16,7 @@ index 6232980..4e12332 100644 hardware_interface::CallbackReturn on_configure(const rclcpp_lifecycle::State& previous_state) final; hardware_interface::CallbackReturn on_activate(const rclcpp_lifecycle::State& previous_state) final; -@@ -175,6 +177,52 @@ public: +@@ -175,6 +177,55 @@ public: void asyncThread(); protected: @@ -61,16 +61,19 @@ index 6232980..4e12332 100644 + bool pending; + }; + std::vector async_links_; ++ // set_async() writes that found the handle locked, retried by the control loop (its thread only) ++ std::vector> async_retries_; + bool is_async_member(const double* value) const; -+ void pull_async(); ++ bool pull_async(); + void push_async(); + void set_async(const double& member, double value); ++ void retry_set_async(); + template void readData(const std::unique_ptr& data_pkg, const std::string& var_name, T& data); diff --git a/src/hardware_interface.cpp b/src/hardware_interface.cpp -index b9d3649..b27eaf8 100644 +index b9d3649..6e58534 100644 --- a/src/hardware_interface.cpp +++ b/src/hardware_interface.cpp @@ -39,6 +39,9 @@ @@ -134,7 +137,7 @@ index b9d3649..b27eaf8 100644 } URPositionHardwareInterface::~URPositionHardwareInterface() -@@ -226,26 +273,213 @@ URPositionHardwareInterface::on_init(const hardware_interface::HardwareComponent +@@ -226,26 +273,236 @@ URPositionHardwareInterface::on_init(const hardware_interface::HardwareComponent return hardware_interface::CallbackReturn::SUCCESS; } @@ -179,6 +182,7 @@ index b9d3649..b27eaf8 100644 + // the request resets are published before the success flags (push_async()) + std::stable_partition(async_links_.begin(), async_links_.end(), + [](const AsyncLink& link) { return !link.success_flag; }); ++ async_retries_.reserve(async_links_.size()); // no allocation in the control loop + return command_interfaces; +} + @@ -248,20 +252,29 @@ index b9d3649..b27eaf8 100644 +// the requests as the controllers and services left them, into the async thread's members; the +// success flags are marked, so that push_async() publishes every one checkAsyncIO() writes (also +// when the result equals the previous one, as for a request that followed an earlier success) -+void URPositionHardwareInterface::pull_async() ++bool URPositionHardwareInterface::pull_async() +{ -+ for (auto& link : async_links_) { ++ // all requests or none: checkAsyncIO() must not act on a request of which only some values were read ++ std::vector values(async_links_.size()); ++ for (size_t i = 0; i < async_links_.size(); ++i) { ++ const auto& link = async_links_[i]; ++ if (!link.pending && !link.success_flag && !link.handle->get_value(values[i], false)) { ++ return false; ++ } ++ } ++ for (size_t i = 0; i < async_links_.size(); ++i) { ++ auto& link = async_links_[i]; + if (link.pending) { + continue; // keeps the value it couldn't publish yet + } -+ double value; + if (link.success_flag) { + *link.value = unwritten(); -+ } else if (link.handle->get_value(value, false)) { -+ *link.value = value; -+ link.pulled = value; ++ } else { ++ *link.value = values[i]; ++ link.pulled = values[i]; + } + } ++ return true; +} + +// what checkAsyncIO() did, back to the handles: the request resets first, the success flags only once @@ -283,6 +296,7 @@ index b9d3649..b27eaf8 100644 + double current; + if (link.handle->get_value(current, false) && !same(current, link.pulled)) { + link.pending = false; ++ link.pulled = value; // so that a failed pull can't bring the dropped reset back + continue; + } + } else if (same(value, link.pulled)) { @@ -297,20 +311,31 @@ index b9d3649..b27eaf8 100644 + } +} + -+// a reset from the control loop thread (initialisation, mode switch) straight to the handle ++// a reset from the control loop thread (initialisation, mode switch) straight to the handle, ++// without waiting for its lock: if it is taken, the control loop retries (retry_set_async()) +void URPositionHardwareInterface::set_async(const double& member, double value) +{ + for (auto& link : async_links_) { + if (link.value == &member) { -+ std::ignore = link.handle->set_value(value, true); ++ if (!link.handle->set_value(value)) { ++ async_retries_.emplace_back(link.handle, value); ++ } + return; + } + } +} + ++void URPositionHardwareInterface::retry_set_async() ++{ ++ async_retries_.erase(std::remove_if(async_retries_.begin(), async_retries_.end(), ++ [](const auto& retry) { return retry.first->set_value(retry.second); }), ++ async_retries_.end()); ++} ++ +hardware_interface::return_type URPositionHardwareInterface::read(const rclcpp::Time& time, + const rclcpp::Duration& period) +{ ++ retry_set_async(); + pull_commands(); + const auto result = read_impl(time, period); + push_states_and_commands(); @@ -320,6 +345,7 @@ index b9d3649..b27eaf8 100644 +hardware_interface::return_type URPositionHardwareInterface::write(const rclcpp::Time& time, + const rclcpp::Duration& period) +{ ++ retry_set_async(); + pull_commands(); + const auto result = write_impl(time, period); + push_states_and_commands(); @@ -358,7 +384,7 @@ index b9d3649..b27eaf8 100644 for (auto& sensor : info_.sensors) { if (sensor.name == tf_prefix + "tcp_fts_sensor") { -@@ -253,130 +487,107 @@ std::vector URPositionHardwareInterface::exp +@@ -253,130 +510,107 @@ std::vector URPositionHardwareInterface::exp "force.x", "force.y", "force.z", "torque.x", "torque.y", "torque.z" }; for (uint32_t j = 0; j < 6; ++j) { @@ -437,11 +463,11 @@ index b9d3649..b27eaf8 100644 - state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "gpio", "tool_output_current", &tool_output_current_)); -- -- state_interfaces.emplace_back( -- hardware_interface::StateInterface(tf_prefix + "gpio", "tool_temperature", &tool_temperature_)); + state_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "tool_output_current", &tool_output_current_)); +- state_interfaces.emplace_back( +- hardware_interface::StateInterface(tf_prefix + "gpio", "tool_temperature", &tool_temperature_)); +- - state_interfaces.emplace_back(hardware_interface::StateInterface(tf_prefix + "system_interface", "initialized", - &system_interface_initialized_)); + state_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "tool_temperature", &tool_temperature_)); @@ -501,11 +527,11 @@ index b9d3649..b27eaf8 100644 + LinkedInterface(tf_prefix + TOOL_CONTACT_GPIO, "tool_contact_result", &tool_contact_result_)); - state_interfaces.emplace_back(hardware_interface::StateInterface(tf_prefix + "payload", "mass", &rtde_payload_mass_)); -- state_interfaces.emplace_back( + state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "payload", "cog.x", &rtde_payload_cog_[0])); - state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "payload", "cog.y", &rtde_payload_cog_[1])); - state_interfaces.emplace_back( +- state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "payload", "cog.z", &rtde_payload_cog_[2])); - state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "payload", "inertia.ixx", &rtde_payload_inertia_[0])); @@ -548,7 +574,7 @@ index b9d3649..b27eaf8 100644 { auto has_cmd_interface = [](const hardware_interface::ComponentInfo& joint, const std::string& interface_name) { auto it = -@@ -384,17 +595,17 @@ std::vector URPositionHardwareInterface::e +@@ -384,17 +618,17 @@ std::vector URPositionHardwareInterface::e [&interface_name](const hardware_interface::InterfaceInfo& obj) { return obj.name == interface_name; }); return it != joint.command_interfaces.end(); }; @@ -573,7 +599,7 @@ index b9d3649..b27eaf8 100644 } } // Obtain the tf_prefix from the urdf so that we can have the general interface multiple times -@@ -402,60 +613,49 @@ std::vector URPositionHardwareInterface::e +@@ -402,60 +636,49 @@ std::vector URPositionHardwareInterface::e // command interface in info_ and match them accordingly const std::string tf_prefix = info_.hardware_parameters.at("tf_prefix"); @@ -614,10 +640,8 @@ index b9d3649..b27eaf8 100644 - hardware_interface::CommandInterface(tf_prefix + "payload", "cog.z", &payload_center_of_gravity_[2])); - command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.ixx", &payload_inertia_[0])); -- command_interfaces.emplace_back( -- hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.iyy", &payload_inertia_[1])); command_interfaces.emplace_back( -- hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.izz", &payload_inertia_[2])); +- hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.iyy", &payload_inertia_[1])); + LinkedInterface(tf_prefix + "hand_back_control", "hand_back_control_cmd", &hand_back_control_cmd_)); + + command_interfaces.emplace_back(LinkedInterface(tf_prefix + "hand_back_control", "hand_back_control_async_success", @@ -635,6 +659,8 @@ index b9d3649..b27eaf8 100644 + command_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "inertia.iyz", &payload_inertia_[5])); + command_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "transition_time", &payload_transition_time_)); command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.izz", &payload_inertia_[2])); +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.ixy", &payload_inertia_[3])); - command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.ixz", &payload_inertia_[4])); @@ -665,7 +691,7 @@ index b9d3649..b27eaf8 100644 command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "task_frame_x", &force_mode_task_frame_[0]); command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "task_frame_y", &force_mode_task_frame_[1]); -@@ -487,146 +687,134 @@ std::vector URPositionHardwareInterface::e +@@ -487,146 +710,134 @@ std::vector URPositionHardwareInterface::e command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "damping", &force_mode_damping_); command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "gain_scaling", &force_mode_gain_scaling_); @@ -698,41 +724,41 @@ index b9d3649..b27eaf8 100644 + LinkedInterface(tf_prefix + "gpio", "analog_output_domain_cmd", &analog_output_domain_cmd_)); + + command_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "tool_voltage_cmd", &tool_voltage_cmd_)); -+ -+ command_interfaces.emplace_back( -+ LinkedInterface(tf_prefix + "zero_ftsensor", "zero_ftsensor_cmd", &zero_ftsensor_cmd_)); command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "gpio", "tool_voltage_cmd", &tool_voltage_cmd_)); -+ LinkedInterface(tf_prefix + "zero_ftsensor", "zero_ftsensor_async_success", &zero_ftsensor_async_success_)); ++ LinkedInterface(tf_prefix + "zero_ftsensor", "zero_ftsensor_cmd", &zero_ftsensor_cmd_)); command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "zero_ftsensor", "zero_ftsensor_cmd", &zero_ftsensor_cmd_)); -+ LinkedInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "async_success", &freedrive_mode_async_success_)); ++ LinkedInterface(tf_prefix + "zero_ftsensor", "zero_ftsensor_async_success", &zero_ftsensor_async_success_)); - command_interfaces.emplace_back(hardware_interface::CommandInterface( - tf_prefix + "zero_ftsensor", "zero_ftsensor_async_success", &zero_ftsensor_async_success_)); -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "enable", &freedrive_mode_enable_)); ++ command_interfaces.emplace_back( ++ LinkedInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "async_success", &freedrive_mode_async_success_)); - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "async_success", - &freedrive_mode_async_success_)); -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "abort", &freedrive_mode_abort_)); ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "enable", &freedrive_mode_enable_)); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "enable", &freedrive_mode_enable_)); -+ LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, "transfer_state", &passthrough_trajectory_transfer_state_)); ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "abort", &freedrive_mode_abort_)); command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "abort", &freedrive_mode_abort_)); - - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + PASSTHROUGH_GPIO, "transfer_state", - &passthrough_trajectory_transfer_state_)); -- ++ LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, "transfer_state", &passthrough_trajectory_transfer_state_)); + - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + PASSTHROUGH_GPIO, "time_from_start", - &passthrough_trajectory_time_from_start_)); -+ LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, "time_from_start", &passthrough_trajectory_time_from_start_)); command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + PASSTHROUGH_GPIO, "abort", &passthrough_trajectory_abort_)); ++ LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, "time_from_start", &passthrough_trajectory_time_from_start_)); ++ command_interfaces.emplace_back( + LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, "abort", &passthrough_trajectory_abort_)); - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + PASSTHROUGH_GPIO, "trajectory_size", @@ -879,7 +905,7 @@ index b9d3649..b27eaf8 100644 return command_interfaces; } -@@ -981,8 +1169,8 @@ void URPositionHardwareInterface::asyncThread() +@@ -981,8 +1192,8 @@ void URPositionHardwareInterface::asyncThread() } } @@ -890,7 +916,7 @@ index b9d3649..b27eaf8 100644 { // We want to start the rtde comm the latest point possible due to the delay times arising from setting up the // communication with multiple arms -@@ -1067,13 +1255,13 @@ hardware_interface::return_type URPositionHardwareInterface::read(const rclcpp:: +@@ -1067,13 +1278,13 @@ hardware_interface::return_type URPositionHardwareInterface::read(const rclcpp:: urcl_position_commands_ = urcl_position_commands_old_ = urcl_joint_positions_; urcl_velocity_commands_ = { { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } }; urcl_torque_commands_ = { { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } }; @@ -910,7 +936,7 @@ index b9d3649..b27eaf8 100644 initialized_ = true; } -@@ -1091,8 +1279,8 @@ hardware_interface::return_type URPositionHardwareInterface::read(const rclcpp:: +@@ -1091,8 +1302,8 @@ hardware_interface::return_type URPositionHardwareInterface::read(const rclcpp:: return hardware_interface::return_type::OK; } @@ -921,7 +947,7 @@ index b9d3649..b27eaf8 100644 { // If there is no interpreting program running on the robot, we do not want to send anything. // TODO(anyone): We would still like to disable the controllers requiring a writable interface. In ROS1 -@@ -1153,26 +1341,36 @@ void URPositionHardwareInterface::handleRobotProgramState(bool program_running) +@@ -1153,26 +1364,36 @@ void URPositionHardwareInterface::handleRobotProgramState(bool program_running) void URPositionHardwareInterface::initAsyncIO() { @@ -971,15 +997,17 @@ index b9d3649..b27eaf8 100644 } void URPositionHardwareInterface::checkAsyncIO() -@@ -1180,6 +1378,7 @@ void URPositionHardwareInterface::checkAsyncIO() +@@ -1180,6 +1401,9 @@ void URPositionHardwareInterface::checkAsyncIO() if (!rtde_comm_has_been_started_) { return; } -+ pull_async(); ++ if (!pull_async()) { ++ return; // a handle was locked: try again next cycle ++ } for (size_t i = 0; i < 18; ++i) { if (!std::isnan(standard_dig_out_bits_cmd_[i]) && ur_driver_ != nullptr) { if (i <= 7) { -@@ -1280,6 +1479,7 @@ void URPositionHardwareInterface::checkAsyncIO() +@@ -1280,6 +1504,7 @@ void URPositionHardwareInterface::checkAsyncIO() freedrive_activated_ = false; freedrive_mode_abort_ = NO_NEW_CMD_; } @@ -987,7 +1015,7 @@ index b9d3649..b27eaf8 100644 } void URPositionHardwareInterface::check_tool_contact_controller() -@@ -1583,7 +1783,7 @@ hardware_interface::return_type URPositionHardwareInterface::perform_command_mod +@@ -1583,7 +1808,7 @@ hardware_interface::return_type URPositionHardwareInterface::perform_command_mod StoppingInterface::STOP_FREEDRIVE) != stop_modes_[0].end()) { freedrive_mode_controller_running_ = false; freedrive_activated_ = false; From 6cc90ac5130df081d39cacfaefdf5edec9c06e10 Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Sun, 18 Oct 2026 11:37:23 +1000 Subject: [PATCH 18/21] [skip ci] ur_robot_driver: as upstream 76260cf (InterfaceInfo{}, no deferred writes) Co-Authored-By: Claude Opus 5.5 --- .../rolling/patch/ros2-ur-robot-driver.patch | 111 ++++++++---------- 1 file changed, 51 insertions(+), 60 deletions(-) diff --git a/distros/rolling/patch/ros2-ur-robot-driver.patch b/distros/rolling/patch/ros2-ur-robot-driver.patch index aa2b8084..df60c579 100644 --- a/distros/rolling/patch/ros2-ur-robot-driver.patch +++ b/distros/rolling/patch/ros2-ur-robot-driver.patch @@ -1,5 +1,5 @@ diff --git a/include/ur_robot_driver/hardware_interface.hpp b/include/ur_robot_driver/hardware_interface.hpp -index 6232980..4084dc8 100644 +index 6232980..0024daf 100644 --- a/include/ur_robot_driver/hardware_interface.hpp +++ b/include/ur_robot_driver/hardware_interface.hpp @@ -144,9 +144,11 @@ public: @@ -16,7 +16,7 @@ index 6232980..4084dc8 100644 hardware_interface::CallbackReturn on_configure(const rclcpp_lifecycle::State& previous_state) final; hardware_interface::CallbackReturn on_activate(const rclcpp_lifecycle::State& previous_state) final; -@@ -175,6 +177,55 @@ public: +@@ -175,6 +177,52 @@ public: void asyncThread(); protected: @@ -61,19 +61,16 @@ index 6232980..4084dc8 100644 + bool pending; + }; + std::vector async_links_; -+ // set_async() writes that found the handle locked, retried by the control loop (its thread only) -+ std::vector> async_retries_; + bool is_async_member(const double* value) const; + bool pull_async(); + void push_async(); + void set_async(const double& member, double value); -+ void retry_set_async(); + template void readData(const std::unique_ptr& data_pkg, const std::string& var_name, T& data); diff --git a/src/hardware_interface.cpp b/src/hardware_interface.cpp -index b9d3649..6e58534 100644 +index b9d3649..eadff03 100644 --- a/src/hardware_interface.cpp +++ b/src/hardware_interface.cpp @@ -39,6 +39,9 @@ @@ -137,7 +134,7 @@ index b9d3649..6e58534 100644 } URPositionHardwareInterface::~URPositionHardwareInterface() -@@ -226,26 +273,236 @@ URPositionHardwareInterface::on_init(const hardware_interface::HardwareComponent +@@ -226,26 +273,230 @@ URPositionHardwareInterface::on_init(const hardware_interface::HardwareComponent return hardware_interface::CallbackReturn::SUCCESS; } @@ -148,7 +145,7 @@ index b9d3649..6e58534 100644 + std::vector state_interfaces; + state_links_.clear(); + for (const auto& link : export_state_links()) { -+ hardware_interface::InterfaceInfo info; ++ hardware_interface::InterfaceInfo info{}; + info.name = link.name; + auto handle = std::make_shared( + hardware_interface::InterfaceDescription(link.prefix, info)); @@ -164,7 +161,7 @@ index b9d3649..6e58534 100644 + command_links_.clear(); + async_links_.clear(); + for (const auto& link : export_command_links()) { -+ hardware_interface::InterfaceInfo info; ++ hardware_interface::InterfaceInfo info{}; + info.name = link.name; + auto handle = std::make_shared( + hardware_interface::InterfaceDescription(link.prefix, info)); @@ -182,7 +179,6 @@ index b9d3649..6e58534 100644 + // the request resets are published before the success flags (push_async()) + std::stable_partition(async_links_.begin(), async_links_.end(), + [](const AsyncLink& link) { return !link.success_flag; }); -+ async_retries_.reserve(async_links_.size()); // no allocation in the control loop + return command_interfaces; +} + @@ -311,31 +307,28 @@ index b9d3649..6e58534 100644 + } +} + -+// a reset from the control loop thread (initialisation, mode switch) straight to the handle, -+// without waiting for its lock: if it is taken, the control loop retries (retry_set_async()) ++// a reset from the control loop thread (initialisation, mode switch) straight to the handle. Like ++// LoanedCommandInterface::set_value(), it doesn't wait for the lock but tries a few times (holders only ++// copy a value); nothing is deferred, so no older write can land after a newer one. +void URPositionHardwareInterface::set_async(const double& member, double value) -+{ + { +- std::vector state_interfaces; + for (auto& link : async_links_) { + if (link.value == &member) { -+ if (!link.handle->set_value(value)) { -+ async_retries_.emplace_back(link.handle, value); ++ for (int attempt = 0; attempt < 10; ++attempt) { ++ if (link.handle->set_value(value)) { ++ return; ++ } + } ++ RCLCPP_WARN(get_logger(), "Could not write %s: the interface is locked.", link.handle->get_name().c_str()); + return; + } + } +} + -+void URPositionHardwareInterface::retry_set_async() -+{ -+ async_retries_.erase(std::remove_if(async_retries_.begin(), async_retries_.end(), -+ [](const auto& retry) { return retry.first->set_value(retry.second); }), -+ async_retries_.end()); -+} -+ +hardware_interface::return_type URPositionHardwareInterface::read(const rclcpp::Time& time, + const rclcpp::Duration& period) +{ -+ retry_set_async(); + pull_commands(); + const auto result = read_impl(time, period); + push_states_and_commands(); @@ -345,7 +338,6 @@ index b9d3649..6e58534 100644 +hardware_interface::return_type URPositionHardwareInterface::write(const rclcpp::Time& time, + const rclcpp::Duration& period) +{ -+ retry_set_async(); + pull_commands(); + const auto result = write_impl(time, period); + push_states_and_commands(); @@ -353,8 +345,7 @@ index b9d3649..6e58534 100644 +} + +std::vector URPositionHardwareInterface::export_state_links() - { -- std::vector state_interfaces; ++{ + std::vector state_interfaces; for (size_t i = 0; i < info_.joints.size(); ++i) { - state_interfaces.emplace_back(hardware_interface::StateInterface( @@ -384,7 +375,7 @@ index b9d3649..6e58534 100644 for (auto& sensor : info_.sensors) { if (sensor.name == tf_prefix + "tcp_fts_sensor") { -@@ -253,130 +510,107 @@ std::vector URPositionHardwareInterface::exp +@@ -253,130 +504,107 @@ std::vector URPositionHardwareInterface::exp "force.x", "force.y", "force.z", "torque.x", "torque.y", "torque.z" }; for (uint32_t j = 0; j < 6; ++j) { @@ -448,26 +439,26 @@ index b9d3649..6e58534 100644 - state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "gpio", "tool_output_voltage", &tool_output_voltage_copy_)); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "tool_output_voltage", &tool_output_voltage_copy_)); - +- - state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "gpio", "robot_mode", &robot_mode_copy_)); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "robot_mode", &robot_mode_copy_)); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "tool_output_voltage", &tool_output_voltage_copy_)); - state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "gpio", "safety_mode", &safety_mode_copy_)); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "safety_mode", &safety_mode_copy_)); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "robot_mode", &robot_mode_copy_)); - state_interfaces.emplace_back(hardware_interface::StateInterface(tf_prefix + "gpio", "tool_mode", &tool_mode_copy_)); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "tool_mode", &tool_mode_copy_)); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "safety_mode", &safety_mode_copy_)); - state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "gpio", "tool_output_current", &tool_output_current_)); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "tool_output_current", &tool_output_current_)); ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "tool_mode", &tool_mode_copy_)); - state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "gpio", "tool_temperature", &tool_temperature_)); -- ++ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "tool_output_current", &tool_output_current_)); + - state_interfaces.emplace_back(hardware_interface::StateInterface(tf_prefix + "system_interface", "initialized", - &system_interface_initialized_)); + state_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "tool_temperature", &tool_temperature_)); @@ -527,9 +518,9 @@ index b9d3649..6e58534 100644 + LinkedInterface(tf_prefix + TOOL_CONTACT_GPIO, "tool_contact_result", &tool_contact_result_)); - state_interfaces.emplace_back(hardware_interface::StateInterface(tf_prefix + "payload", "mass", &rtde_payload_mass_)); - state_interfaces.emplace_back( -- hardware_interface::StateInterface(tf_prefix + "payload", "cog.x", &rtde_payload_cog_[0])); - state_interfaces.emplace_back( +- hardware_interface::StateInterface(tf_prefix + "payload", "cog.x", &rtde_payload_cog_[0])); + state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "payload", "cog.y", &rtde_payload_cog_[1])); - state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "payload", "cog.z", &rtde_payload_cog_[2])); @@ -574,7 +565,7 @@ index b9d3649..6e58534 100644 { auto has_cmd_interface = [](const hardware_interface::ComponentInfo& joint, const std::string& interface_name) { auto it = -@@ -384,17 +618,17 @@ std::vector URPositionHardwareInterface::e +@@ -384,17 +612,17 @@ std::vector URPositionHardwareInterface::e [&interface_name](const hardware_interface::InterfaceInfo& obj) { return obj.name == interface_name; }); return it != joint.command_interfaces.end(); }; @@ -599,7 +590,7 @@ index b9d3649..6e58534 100644 } } // Obtain the tf_prefix from the urdf so that we can have the general interface multiple times -@@ -402,60 +636,49 @@ std::vector URPositionHardwareInterface::e +@@ -402,60 +630,49 @@ std::vector URPositionHardwareInterface::e // command interface in info_ and match them accordingly const std::string tf_prefix = info_.hardware_parameters.at("tf_prefix"); @@ -640,8 +631,10 @@ index b9d3649..6e58534 100644 - hardware_interface::CommandInterface(tf_prefix + "payload", "cog.z", &payload_center_of_gravity_[2])); - command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.ixx", &payload_inertia_[0])); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.iyy", &payload_inertia_[1])); + command_interfaces.emplace_back( +- hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.izz", &payload_inertia_[2])); + LinkedInterface(tf_prefix + "hand_back_control", "hand_back_control_cmd", &hand_back_control_cmd_)); + + command_interfaces.emplace_back(LinkedInterface(tf_prefix + "hand_back_control", "hand_back_control_async_success", @@ -659,8 +652,6 @@ index b9d3649..6e58534 100644 + command_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "inertia.iyz", &payload_inertia_[5])); + command_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "transition_time", &payload_transition_time_)); command_interfaces.emplace_back( -- hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.izz", &payload_inertia_[2])); -- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.ixy", &payload_inertia_[3])); - command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.ixz", &payload_inertia_[4])); @@ -691,7 +682,7 @@ index b9d3649..6e58534 100644 command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "task_frame_x", &force_mode_task_frame_[0]); command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "task_frame_y", &force_mode_task_frame_[1]); -@@ -487,146 +710,134 @@ std::vector URPositionHardwareInterface::e +@@ -487,146 +704,134 @@ std::vector URPositionHardwareInterface::e command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "damping", &force_mode_damping_); command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "gain_scaling", &force_mode_gain_scaling_); @@ -724,41 +715,41 @@ index b9d3649..6e58534 100644 + LinkedInterface(tf_prefix + "gpio", "analog_output_domain_cmd", &analog_output_domain_cmd_)); + + command_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "tool_voltage_cmd", &tool_voltage_cmd_)); ++ ++ command_interfaces.emplace_back( ++ LinkedInterface(tf_prefix + "zero_ftsensor", "zero_ftsensor_cmd", &zero_ftsensor_cmd_)); command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "gpio", "tool_voltage_cmd", &tool_voltage_cmd_)); -+ LinkedInterface(tf_prefix + "zero_ftsensor", "zero_ftsensor_cmd", &zero_ftsensor_cmd_)); ++ LinkedInterface(tf_prefix + "zero_ftsensor", "zero_ftsensor_async_success", &zero_ftsensor_async_success_)); command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "zero_ftsensor", "zero_ftsensor_cmd", &zero_ftsensor_cmd_)); -+ LinkedInterface(tf_prefix + "zero_ftsensor", "zero_ftsensor_async_success", &zero_ftsensor_async_success_)); ++ LinkedInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "async_success", &freedrive_mode_async_success_)); - command_interfaces.emplace_back(hardware_interface::CommandInterface( - tf_prefix + "zero_ftsensor", "zero_ftsensor_async_success", &zero_ftsensor_async_success_)); -+ command_interfaces.emplace_back( -+ LinkedInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "async_success", &freedrive_mode_async_success_)); ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "enable", &freedrive_mode_enable_)); - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "async_success", - &freedrive_mode_async_success_)); -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "enable", &freedrive_mode_enable_)); ++ command_interfaces.emplace_back(LinkedInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "abort", &freedrive_mode_abort_)); -- command_interfaces.emplace_back( + command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "enable", &freedrive_mode_enable_)); -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "abort", &freedrive_mode_abort_)); ++ LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, "transfer_state", &passthrough_trajectory_transfer_state_)); command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "abort", &freedrive_mode_abort_)); - - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + PASSTHROUGH_GPIO, "transfer_state", - &passthrough_trajectory_transfer_state_)); -+ LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, "transfer_state", &passthrough_trajectory_transfer_state_)); - +- - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + PASSTHROUGH_GPIO, "time_from_start", - &passthrough_trajectory_time_from_start_)); ++ LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, "time_from_start", &passthrough_trajectory_time_from_start_)); command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + PASSTHROUGH_GPIO, "abort", &passthrough_trajectory_abort_)); -+ LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, "time_from_start", &passthrough_trajectory_time_from_start_)); -+ command_interfaces.emplace_back( + LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, "abort", &passthrough_trajectory_abort_)); - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + PASSTHROUGH_GPIO, "trajectory_size", @@ -905,7 +896,7 @@ index b9d3649..6e58534 100644 return command_interfaces; } -@@ -981,8 +1192,8 @@ void URPositionHardwareInterface::asyncThread() +@@ -981,8 +1186,8 @@ void URPositionHardwareInterface::asyncThread() } } @@ -916,7 +907,7 @@ index b9d3649..6e58534 100644 { // We want to start the rtde comm the latest point possible due to the delay times arising from setting up the // communication with multiple arms -@@ -1067,13 +1278,13 @@ hardware_interface::return_type URPositionHardwareInterface::read(const rclcpp:: +@@ -1067,13 +1272,13 @@ hardware_interface::return_type URPositionHardwareInterface::read(const rclcpp:: urcl_position_commands_ = urcl_position_commands_old_ = urcl_joint_positions_; urcl_velocity_commands_ = { { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } }; urcl_torque_commands_ = { { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } }; @@ -936,7 +927,7 @@ index b9d3649..6e58534 100644 initialized_ = true; } -@@ -1091,8 +1302,8 @@ hardware_interface::return_type URPositionHardwareInterface::read(const rclcpp:: +@@ -1091,8 +1296,8 @@ hardware_interface::return_type URPositionHardwareInterface::read(const rclcpp:: return hardware_interface::return_type::OK; } @@ -947,7 +938,7 @@ index b9d3649..6e58534 100644 { // If there is no interpreting program running on the robot, we do not want to send anything. // TODO(anyone): We would still like to disable the controllers requiring a writable interface. In ROS1 -@@ -1153,26 +1364,36 @@ void URPositionHardwareInterface::handleRobotProgramState(bool program_running) +@@ -1153,26 +1358,36 @@ void URPositionHardwareInterface::handleRobotProgramState(bool program_running) void URPositionHardwareInterface::initAsyncIO() { @@ -997,7 +988,7 @@ index b9d3649..6e58534 100644 } void URPositionHardwareInterface::checkAsyncIO() -@@ -1180,6 +1401,9 @@ void URPositionHardwareInterface::checkAsyncIO() +@@ -1180,6 +1395,9 @@ void URPositionHardwareInterface::checkAsyncIO() if (!rtde_comm_has_been_started_) { return; } @@ -1007,7 +998,7 @@ index b9d3649..6e58534 100644 for (size_t i = 0; i < 18; ++i) { if (!std::isnan(standard_dig_out_bits_cmd_[i]) && ur_driver_ != nullptr) { if (i <= 7) { -@@ -1280,6 +1504,7 @@ void URPositionHardwareInterface::checkAsyncIO() +@@ -1280,6 +1498,7 @@ void URPositionHardwareInterface::checkAsyncIO() freedrive_activated_ = false; freedrive_mode_abort_ = NO_NEW_CMD_; } @@ -1015,7 +1006,7 @@ index b9d3649..6e58534 100644 } void URPositionHardwareInterface::check_tool_contact_controller() -@@ -1583,7 +1808,7 @@ hardware_interface::return_type URPositionHardwareInterface::perform_command_mod +@@ -1583,7 +1802,7 @@ hardware_interface::return_type URPositionHardwareInterface::perform_command_mod StoppingInterface::STOP_FREEDRIVE) != stop_modes_[0].end()) { freedrive_mode_controller_running_ = false; freedrive_activated_ = false; From 8c03a5f580f9ed506deb73818725bcc38cd397c4 Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Sun, 18 Oct 2026 12:05:02 +1000 Subject: [PATCH 19/21] [skip ci] foxglove_bridge on Windows with /permissive (as lyrical) The Foxglove SDK 0.29.2 has the same parameter.hpp as 0.28, which MSVC's /permissive- (C++20) rejects. Co-Authored-By: Claude Opus 5.5 --- distros/rolling/patch/ros2-foxglove-bridge.win.patch | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/distros/rolling/patch/ros2-foxglove-bridge.win.patch b/distros/rolling/patch/ros2-foxglove-bridge.win.patch index feaf5dfb..4b57b876 100644 --- a/distros/rolling/patch/ros2-foxglove-bridge.win.patch +++ b/distros/rolling/patch/ros2-foxglove-bridge.win.patch @@ -1,12 +1,14 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -62,7 +62,7 @@ endif() +@@ -62,7 +62,9 @@ endif() macro(enable_strict_compiler_warnings target) if (MSVC) - target_compile_options(${target} PRIVATE /WX /W4) -+ target_compile_options(${target} PRIVATE /W4) ++ # /permissive: with C++20 (pulled in by the dependencies) MSVC enables /permissive-, which rejects ++ # the Foxglove SDK's explicit specializations after their first use (C2908 in parameter.hpp) ++ target_compile_options(${target} PRIVATE /W4 /permissive) elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang") target_compile_options(${target} PRIVATE -Wall -Wextra -Wpedantic -Werror -Wold-style-cast -Wfloat-equal -Wmost -Wunused-exception-parameter) else() From 7a6b27f9194c53407d4cbf4ab2782f265ce8beab Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Sun, 18 Oct 2026 21:26:05 +1000 Subject: [PATCH 20/21] rolling: Rust message crates match the rosidl_buffer sequence layout [skip ci] Same as lyrical: rosidl_runtime_c's primitive and string sequences carry the rosidl_buffer flags (ros2/rosidl#942), which rosidl_runtime_rs 0.7 matches, but rosidl_generator_rs 0.5.0 pins the generated crates to 0.6 (RoboStack/ros-lyrical#17, ros2-rust/ros2_rust#659). Pin 0.7. Also point gz_ros2_control's plugin path hook at bin/ on Windows, where the plugin DLL is installed (RoboStack/robostack#104). Co-Authored-By: Claude Opus 5.5 --- .../rolling/patch/ros2-gz-ros2-control.win.patch | 14 ++++++++++++-- .../rolling/patch/ros2-rosidl-generator-rs.patch | 14 ++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 distros/rolling/patch/ros2-rosidl-generator-rs.patch diff --git a/distros/rolling/patch/ros2-gz-ros2-control.win.patch b/distros/rolling/patch/ros2-gz-ros2-control.win.patch index b50eddae..5cb86242 100644 --- a/distros/rolling/patch/ros2-gz-ros2-control.win.patch +++ b/distros/rolling/patch/ros2-gz-ros2-control.win.patch @@ -1,8 +1,18 @@ +diff --git a/hooks/gz_ros2_control.dsv.in b/hooks/gz_ros2_control.dsv.in +index afbcf3a..45a35f1 100644 +--- a/hooks/gz_ros2_control.dsv.in ++++ b/hooks/gz_ros2_control.dsv.in +@@ -1 +1 @@ +-prepend-non-duplicate;GZ_SIM_SYSTEM_PLUGIN_PATH;@CMAKE_INSTALL_PREFIX@/lib ++prepend-non-duplicate;GZ_SIM_SYSTEM_PLUGIN_PATH;@CMAKE_INSTALL_PREFIX@/bin diff --git a/src/gz_system.cpp b/src/gz_system.cpp -index 5c9952b9..d5554d2c 100644 +index 5ac9614..3e6fbf0 100644 --- a/src/gz_system.cpp +++ b/src/gz_system.cpp -@@ -51,3 +51,7 @@ +@@ -67,6 +67,10 @@ struct InterfaceData + hardware_interface::CommandInterface::SharedPtr command; + }; + +#ifdef ERROR +#undef ERROR +#endif diff --git a/distros/rolling/patch/ros2-rosidl-generator-rs.patch b/distros/rolling/patch/ros2-rosidl-generator-rs.patch new file mode 100644 index 00000000..d899e9c9 --- /dev/null +++ b/distros/rolling/patch/ros2-rosidl-generator-rs.patch @@ -0,0 +1,14 @@ +diff --git a/resource/Cargo.toml.em b/resource/Cargo.toml.em +index 02298a3..139e11b 100644 +--- a/resource/Cargo.toml.em ++++ b/resource/Cargo.toml.em +@@ -4,7 +4,8 @@ version = "@(package_version)" + edition = "2021" + + [dependencies] +-rosidl_runtime_rs = "0.6" ++# 0.7: matches the rosidl_buffer primitive sequence layout from Lyrical on (ros2-rust/ros2_rust#659) ++rosidl_runtime_rs = "0.7" + serde = { version = "1", optional = true, features = ["derive"] } + serde-big-array = { version = "0.5.1", optional = true } + From 2d3a5f3c08216687dac184698be7ad656a616900 Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Mon, 19 Oct 2026 16:45:54 +1000 Subject: [PATCH 21/21] rolling: ur_robot_driver and ur_controllers from upstream PR #2026 [skip ci] Replace the ros2_control 6.12 port of ur_robot_driver (our own, sent upstream as UniversalRobots/Universal_Robots_ROS2_Driver#2032 and closed there as a duplicate) with the maintainers' migration, UniversalRobots/Universal_Robots_ROS2_Driver#2026 (head 39f2489). #2026 is based on a later main than the 7.1.0 release: ur_robot_driver's patch is #2026 merged onto 7.1.0, without the use_currents_as_efforts_ member from #1551 that its header context carries (nothing in the patched code uses it). #2026 also changes the passthrough trajectory controller (transfer_sequence), so ur_controllers gets its part of the PR too; the two go together. Both built against hardware_interface 6.12.0 on osx-arm64, with recipe tests. evict_cache drops both from the PR build cache so CI rebuilds them. Co-Authored-By: Claude Opus 5.5 --- distros/rolling/ci.yaml | 4 +- .../rolling/patch/ros2-ur-controllers.patch | 711 ++++ .../rolling/patch/ros2-ur-robot-driver.patch | 3459 +++++++++++++---- 3 files changed, 3492 insertions(+), 682 deletions(-) create mode 100644 distros/rolling/patch/ros2-ur-controllers.patch diff --git a/distros/rolling/ci.yaml b/distros/rolling/ci.yaml index 63d3a18e..6e5f71ee 100644 --- a/distros/rolling/ci.yaml +++ b/distros/rolling/ci.yaml @@ -23,4 +23,6 @@ full_rebuild: false # # Remember that dependents are not rebuilt automatically: evict them as well if # they must pick up the change. -evict_cache: [] +evict_cache: + - ur_robot_driver # patch now from UniversalRobots/Universal_Robots_ROS2_Driver#2026 + - ur_controllers diff --git a/distros/rolling/patch/ros2-ur-controllers.patch b/distros/rolling/patch/ros2-ur-controllers.patch new file mode 100644 index 00000000..22d7281b --- /dev/null +++ b/distros/rolling/patch/ros2-ur-controllers.patch @@ -0,0 +1,711 @@ +diff --git a/include/ur_controllers/passthrough_trajectory_controller.hpp b/include/ur_controllers/passthrough_trajectory_controller.hpp +index 568aab1..cc9ea3b 100644 +--- a/include/ur_controllers/passthrough_trajectory_controller.hpp ++++ b/include/ur_controllers/passthrough_trajectory_controller.hpp +@@ -70,23 +70,22 @@ namespace ur_controllers + { + + /* +- * 0.0: No trajectory to forward, the controller is idling and ready to receive a new trajectory. +- * 1.0: The controller has received and accepted a new trajectory. When the state is 1.0, the controller will write a ++ * 0: No trajectory to forward, the controller is idling and ready to receive a new trajectory. ++ * 1: The controller has received and accepted a new trajectory. When the state is 1, the controller will write a + * point to the hardware interface. +- * 2.0: The hardware interface will read the point written from the controller. The state will switch between 1.0 +- * and 2.0 until all points have been read by the hardware interface. +- * 3.0: The hardware interface has read all the points, and will now write all the points to the physical robot ++ * 2: The hardware interface will read the point written from the controller. ++ * 3: The hardware interface has read all the points, and will now write all the points to the physical robot + * controller. +- * 4.0: The robot is moving through the trajectory. +- * 5.0: The robot finished executing the trajectory. ++ * 4: The robot is moving through the trajectory. ++ * 5: The robot finished executing the trajectory. + */ +-const double TRANSFER_STATE_IDLE = 0.0; +-const double TRANSFER_STATE_NEW_TRAJECTORY = 6.0; +-const double TRANSFER_STATE_WAITING_FOR_POINT = 1.0; +-const double TRANSFER_STATE_TRANSFERRING = 2.0; +-const double TRANSFER_STATE_TRANSFER_DONE = 3.0; +-const double TRANSFER_STATE_IN_MOTION = 4.0; +-const double TRANSFER_STATE_DONE = 5.0; ++constexpr double TRANSFER_STATE_IDLE = 0.0; ++constexpr double TRANSFER_STATE_NEW_TRAJECTORY = 6.0; ++constexpr double TRANSFER_STATE_WAITING_FOR_POINT = 1.0; ++constexpr double TRANSFER_STATE_TRANSFERRING = 2.0; ++constexpr double TRANSFER_STATE_TRANSFER_DONE = 3.0; ++constexpr double TRANSFER_STATE_IN_MOTION = 4.0; ++constexpr double TRANSFER_STATE_DONE = 5.0; + + using namespace std::chrono_literals; // NOLINT + +@@ -125,9 +124,10 @@ private: + /* Start an action server with an action called: /passthrough_trajectory_controller/forward_joint_trajectory. */ + void start_action_server(void); + +- void end_goal(); ++ void end_goal(bool reset_abort = true); + + bool check_goal_tolerance(); ++ bool write_transfer_request(double transfer_state); + + // Get a mapping between the trajectory's joint order and the internal one + std::unordered_map create_joint_mapping(const std::vector& joint_names) const; +@@ -169,6 +169,10 @@ private: + + std::atomic current_index_; + std::atomic trajectory_active_; ++ double next_transfer_sequence_ = 1.0; ++ double pending_transfer_sequence_ = 0.0; ++ bool transfer_pending_ = false; ++ rclcpp::Duration transfer_pending_duration_ = rclcpp::Duration::from_nanoseconds(0); + rclcpp::Duration active_trajectory_elapsed_time_ = rclcpp::Duration::from_nanoseconds(0); + rclcpp::Duration max_trajectory_time_ = rclcpp::Duration::from_nanoseconds(0); + double scaling_factor_; +@@ -176,9 +180,14 @@ private: + static constexpr double NO_VAL = std::numeric_limits::quiet_NaN(); + + std::optional> scaling_state_interface_; ++ std::optional> abort_state_interface_; ++ std::optional> transfer_state_interface_; ++ std::optional> transfer_sequence_state_interface_; + std::optional> abort_command_interface_; + std::optional> trajectory_size_command_interface_; + std::optional> transfer_command_interface_; ++ std::optional> ++ transfer_sequence_command_interface_; + std::optional> time_from_start_command_interface_; + + rclcpp::Clock::SharedPtr clock_; +diff --git a/src/passthrough_trajectory_controller.cpp b/src/passthrough_trajectory_controller.cpp +index 12df8bc..8330fec 100644 +--- a/src/passthrough_trajectory_controller.cpp ++++ b/src/passthrough_trajectory_controller.cpp +@@ -188,6 +188,10 @@ controller_interface::InterfaceConfiguration PassthroughTrajectoryController::st + std::copy(joint_state_interface_names_.cbegin(), joint_state_interface_names_.cend(), std::back_inserter(conf.names)); + + conf.names.push_back(passthrough_params_.speed_scaling_interface_name); ++ const std::string passthrough_prefix = passthrough_params_.tf_prefix + "trajectory_passthrough/"; ++ conf.names.push_back(passthrough_prefix + "abort"); ++ conf.names.push_back(passthrough_prefix + "transfer_state"); ++ conf.names.push_back(passthrough_prefix + "transfer_sequence"); + + return conf; + } +@@ -207,6 +211,7 @@ controller_interface::InterfaceConfiguration PassthroughTrajectoryController::co + + config.names.push_back(tf_prefix + "trajectory_passthrough/abort"); + config.names.emplace_back(tf_prefix + "trajectory_passthrough/transfer_state"); ++ config.names.emplace_back(tf_prefix + "trajectory_passthrough/transfer_sequence"); + config.names.emplace_back(tf_prefix + "trajectory_passthrough/time_from_start"); + config.names.emplace_back(tf_prefix + "trajectory_passthrough/trajectory_size"); + +@@ -244,6 +249,32 @@ controller_interface::CallbackReturn PassthroughTrajectoryController::on_activat + return controller_interface::CallbackReturn::ERROR; + } + ++ const std::string tf_prefix = passthrough_params_.tf_prefix; ++ const auto find_state_interface = [this, &tf_prefix](const std::string& interface_name) { ++ return std::find_if(state_interfaces_.begin(), state_interfaces_.end(), [&](auto& interface) { ++ return interface.get_name() == tf_prefix + "trajectory_passthrough/" + interface_name; ++ }); ++ }; ++ auto abort_state_it = find_state_interface("abort"); ++ auto transfer_state_it = find_state_interface("transfer_state"); ++ auto transfer_sequence_state_it = find_state_interface("transfer_sequence"); ++ if (abort_state_it == state_interfaces_.end() || transfer_state_it == state_interfaces_.end() || ++ transfer_sequence_state_it == state_interfaces_.end()) { ++ RCLCPP_ERROR(get_node()->get_logger(), "Did not find all trajectory passthrough state interfaces."); ++ return controller_interface::CallbackReturn::ERROR; ++ } ++ abort_state_interface_ = *abort_state_it; ++ transfer_state_interface_ = *transfer_state_it; ++ transfer_sequence_state_interface_ = *transfer_sequence_state_it; ++ const auto acknowledged_sequence = transfer_sequence_state_interface_->get().get_optional(); ++ if (!acknowledged_sequence) { ++ RCLCPP_ERROR(get_node()->get_logger(), "Could not read the trajectory passthrough transfer sequence."); ++ return controller_interface::CallbackReturn::ERROR; ++ } ++ next_transfer_sequence_ = *acknowledged_sequence + 1.0; ++ pending_transfer_sequence_ = *acknowledged_sequence; ++ transfer_pending_ = false; ++ + { + const std::string interface_name = passthrough_params_.tf_prefix + "trajectory_passthrough/" + "abort"; +@@ -270,7 +301,6 @@ controller_interface::CallbackReturn PassthroughTrajectoryController::on_activat + } + } + +- const std::string tf_prefix = passthrough_params_.tf_prefix; + { + const std::string interface_name = tf_prefix + "trajectory_passthrough/transfer_state"; + auto it = std::find_if(command_interfaces_.begin(), command_interfaces_.end(), +@@ -282,6 +312,17 @@ controller_interface::CallbackReturn PassthroughTrajectoryController::on_activat + return controller_interface::CallbackReturn::ERROR; + } + } ++ { ++ const std::string interface_name = tf_prefix + "trajectory_passthrough/transfer_sequence"; ++ auto it = std::find_if(command_interfaces_.begin(), command_interfaces_.end(), ++ [&](auto& interface) { return (interface.get_name() == interface_name); }); ++ if (it != command_interfaces_.end()) { ++ transfer_sequence_command_interface_ = *it; ++ } else { ++ RCLCPP_ERROR(get_node()->get_logger(), "Did not find '%s' in command interfaces.", interface_name.c_str()); ++ return controller_interface::CallbackReturn::ERROR; ++ } ++ } + { + const std::string interface_name = tf_prefix + "trajectory_passthrough/time_from_start"; + auto it = std::find_if(command_interfaces_.begin(), command_interfaces_.end(), +@@ -294,6 +335,11 @@ controller_interface::CallbackReturn PassthroughTrajectoryController::on_activat + } + } + ++ if (!abort_command_interface_->get().set_value(0.0) || !write_transfer_request(TRANSFER_STATE_IDLE)) { ++ RCLCPP_ERROR(get_node()->get_logger(), "Could not initialize the trajectory passthrough transfer protocol."); ++ return controller_interface::CallbackReturn::ERROR; ++ } ++ + return ControllerInterface::on_activate(state); + } + +@@ -320,7 +366,7 @@ controller_interface::CallbackReturn PassthroughTrajectoryController::on_deactiv + RCLCPP_ERROR(get_node()->get_logger(), "Failed to set active goal, deactivation of controller failed."); + return controller_interface::CallbackReturn::ERROR; + } +- end_goal(); ++ end_goal(false); + } + return CallbackReturn::SUCCESS; + } +@@ -336,15 +382,35 @@ controller_interface::return_type PassthroughTrajectoryController::update(const + return controller_interface::return_type::OK; + } + +- const auto current_transfer_state = transfer_command_interface_->get().get_optional().value_or(TRANSFER_STATE_IDLE); ++ const auto acknowledged_sequence = transfer_sequence_state_interface_->get().get_optional(); ++ const auto current_transfer_state = transfer_state_interface_->get().get_optional(); ++ const auto abort_state = abort_state_interface_->get().get_optional(); ++ if (!current_transfer_state || !acknowledged_sequence || !abort_state) { ++ RCLCPP_WARN_THROTTLE(get_node()->get_logger(), *clock_, 1000, ++ "Could not read trajectory passthrough state interfaces, skipping cycle."); ++ return controller_interface::return_type::OK; ++ } ++ if (transfer_pending_) { ++ if (*acknowledged_sequence != pending_transfer_sequence_) { ++ // Do not act on the transfer state here. Until the acknowledgement arrives it may still describe a previous ++ // session, e.g. in the first cycle after activation. ++ transfer_pending_duration_ = transfer_pending_duration_ + period; ++ if (transfer_pending_duration_.seconds() > 1.0) { ++ RCLCPP_WARN_THROTTLE(get_node()->get_logger(), *clock_, 1000, ++ "Hardware interface has not acknowledged trajectory transfer request %.0f for %.1f s.", ++ pending_transfer_sequence_, transfer_pending_duration_.seconds()); ++ } ++ return controller_interface::return_type::OK; ++ } ++ transfer_pending_ = false; ++ } + + bool write_success = true; + if (active_goal && trajectory_active_) { +- if (current_transfer_state != TRANSFER_STATE_IDLE) { ++ if (*current_transfer_state != TRANSFER_STATE_IDLE) { + // Check if the trajectory has been aborted from the hardware interface. E.g. the robot was stopped on the teach + // pendant. +- if (abort_command_interface_->get().get_optional().has_value() && +- abort_command_interface_->get().get_optional().value() == 1.0 && current_index_ > 0) { ++ if (*abort_state == 1.0 && current_index_ > 0) { + RCLCPP_INFO(get_node()->get_logger(), "Trajectory aborted by hardware, aborting action."); + std::shared_ptr result = + std::make_shared(); +@@ -356,13 +422,15 @@ controller_interface::return_type PassthroughTrajectoryController::update(const + + active_joint_traj_ = active_goal->gh_->get_goal()->trajectory; + +- if (current_index_ == 0 && current_transfer_state == TRANSFER_STATE_IDLE) { ++ if (current_index_ == 0 && *current_transfer_state == TRANSFER_STATE_IDLE) { + active_trajectory_elapsed_time_ = rclcpp::Duration(0, 0); + max_trajectory_time_ = + rclcpp::Duration::from_seconds(duration_to_double(active_joint_traj_.points.back().time_from_start)); +- write_success &= transfer_command_interface_->get().set_value(TRANSFER_STATE_NEW_TRAJECTORY); + write_success &= + trajectory_size_command_interface_->get().set_value(static_cast(active_joint_traj_.points.size())); ++ if (write_success) { ++ write_success = write_transfer_request(TRANSFER_STATE_NEW_TRAJECTORY); ++ } + } + + auto active_goal_time_tol = goal_time_tolerance_.try_get(); +@@ -378,7 +446,7 @@ controller_interface::return_type PassthroughTrajectoryController::update(const + } + + // Write a new point to the command interface, if the previous point has been read by the hardware interface. +- if (current_transfer_state == TRANSFER_STATE_WAITING_FOR_POINT) { ++ if (*current_transfer_state == TRANSFER_STATE_WAITING_FOR_POINT) { + if (current_index_ < active_joint_traj_.points.size()) { + // Write the time_from_start parameter. + write_success &= time_from_start_command_interface_->get().set_value( +@@ -412,18 +480,22 @@ controller_interface::return_type PassthroughTrajectoryController::update(const + write_success &= command_interfaces_[i * 3 + 2].set_value(NO_VAL); + } + } +- // Tell hardware interface that this point is ready to be read. +- write_success &= transfer_command_interface_->get().set_value(TRANSFER_STATE_TRANSFERRING); +- current_index_++; ++ // Commit the point only after its complete payload has been written. ++ if (write_success) { ++ write_success = write_transfer_request(TRANSFER_STATE_TRANSFERRING); ++ } ++ if (write_success) { ++ current_index_++; ++ } + // Check if all points have been written to the hardware interface. + } else if (current_index_ == active_joint_traj_.points.size()) { +- write_success &= transfer_command_interface_->get().set_value(TRANSFER_STATE_TRANSFER_DONE); ++ write_success = write_transfer_request(TRANSFER_STATE_TRANSFER_DONE); + } else { + RCLCPP_ERROR(get_node()->get_logger(), "Hardware waiting for trajectory point while none is present!"); + } + + // When the trajectory is finished, report the goal as successful to the client. +- } else if (current_transfer_state == TRANSFER_STATE_DONE) { ++ } else if (*current_transfer_state == TRANSFER_STATE_DONE) { + auto result = active_goal->preallocated_result_; + // Check if the actual position complies with the tolerances given. + if (!check_goal_tolerance()) { +@@ -451,7 +523,7 @@ controller_interface::return_type PassthroughTrajectoryController::update(const + end_goal(); + RCLCPP_INFO(get_node()->get_logger(), "%s", result->error_string.c_str()); + } +- } else if (current_transfer_state == TRANSFER_STATE_IN_MOTION) { ++ } else if (*current_transfer_state == TRANSFER_STATE_IN_MOTION) { + // Keep track of how long the trajectory has been executing, if it takes too long, send a warning. + if (scaling_state_interface_.has_value()) { + scaling_factor_ = scaling_state_interface_->get().get_optional().value_or(1.0); +@@ -471,14 +543,16 @@ controller_interface::return_type PassthroughTrajectoryController::update(const + "Trajectory should be finished by now. You may want to cancel this goal, if it is not."); + } + } +- } else if (current_transfer_state != TRANSFER_STATE_IDLE && current_transfer_state != TRANSFER_STATE_DONE) { ++ } else if (*current_transfer_state != TRANSFER_STATE_IDLE && *current_transfer_state != TRANSFER_STATE_DONE) { + // No goal is active, but we are not in IDLE, either. We have been canceled. + write_success &= abort_command_interface_->get().set_value(1.0); + +- } else if (current_transfer_state == TRANSFER_STATE_DONE) { ++ } else if (*current_transfer_state == TRANSFER_STATE_DONE) { + // We have been informed about the finished trajectory. Let's reset things. +- write_success &= transfer_command_interface_->get().set_value(TRANSFER_STATE_IDLE); + write_success &= abort_command_interface_->get().set_value(0.0); ++ if (write_success) { ++ write_success = write_transfer_request(TRANSFER_STATE_IDLE); ++ } + } + if (!write_success) { + RCLCPP_ERROR(get_node()->get_logger(), "Could not write to a command interfaces."); +@@ -830,14 +904,34 @@ bool PassthroughTrajectoryController::check_goal_tolerance() + return true; + } + +-void PassthroughTrajectoryController::end_goal() ++void PassthroughTrajectoryController::end_goal(const bool reset_abort) + { + trajectory_active_ = false; +- if (!transfer_command_interface_->get().set_value(TRANSFER_STATE_IDLE)) { +- RCLCPP_ERROR(get_node()->get_logger(), "Could not write to transfer command interface."); ++ const bool abort_reset = !reset_abort || abort_command_interface_->get().set_value(0.0); ++ // A request still in flight cannot be replaced. The hardware resets the transfer on abort in that case. ++ if (!abort_reset || (!transfer_pending_ && !write_transfer_request(TRANSFER_STATE_IDLE))) { ++ RCLCPP_ERROR(get_node()->get_logger(), "Could not write trajectory transfer reset request."); + } + } + ++bool PassthroughTrajectoryController::write_transfer_request(const double transfer_state) ++{ ++ if (transfer_pending_) { ++ return false; ++ } ++ if (!transfer_command_interface_->get().set_value(transfer_state)) { ++ return false; ++ } ++ if (!transfer_sequence_command_interface_->get().set_value(next_transfer_sequence_)) { ++ return false; ++ } ++ pending_transfer_sequence_ = next_transfer_sequence_; ++ next_transfer_sequence_ += 1.0; ++ transfer_pending_ = true; ++ transfer_pending_duration_ = rclcpp::Duration::from_nanoseconds(0); ++ return true; ++} ++ + std::unordered_map + PassthroughTrajectoryController::create_joint_mapping(const std::vector& joint_names) const + { +diff --git a/test/test_tool_contact_controller.cpp b/test/test_tool_contact_controller.cpp +index 14b543e..eccf9f3 100644 +--- a/test/test_tool_contact_controller.cpp ++++ b/test/test_tool_contact_controller.cpp +@@ -70,16 +70,13 @@ protected: + params.node_options = controller_.define_custom_node_options(); + ASSERT_EQ(controller_.init(params), controller_interface::return_type::OK); + +- set_state_value_ = TOOL_CONTACT_STANDBY; +- state_value_ = TOOL_CONTACT_STANDBY; +- result_value_ = 3.0; +- +- command_interface_ = std::make_shared( +- "tool_contact", "tool_contact_set_state", &set_state_value_); +- state_interface_ = +- std::make_shared("tool_contact", "tool_contact_state", &state_value_); +- result_interface_ = +- std::make_shared("tool_contact", "tool_contact_result", &result_value_); ++ command_interface_ = std::make_shared("tool_contact", "tool_contact_set_" ++ "state"); ++ state_interface_ = std::make_shared("tool_contact", "tool_contact_state"); ++ result_interface_ = std::make_shared("tool_contact", "tool_contact_result"); ++ ASSERT_TRUE(command_interface_->set_value(TOOL_CONTACT_STANDBY)); ++ ASSERT_TRUE(state_interface_->set_value(TOOL_CONTACT_STANDBY)); ++ ASSERT_TRUE(result_interface_->set_value(3.0)); + + loaned_command_ = std::make_unique(command_interface_); + loaned_state_ = std::make_unique(state_interface_); +@@ -126,8 +123,18 @@ protected: + + void set_hw_state(double state, double result = 3.0) + { +- state_value_ = state; +- result_value_ = result; ++ ASSERT_TRUE(state_interface_->set_value(state)); ++ ASSERT_TRUE(result_interface_->set_value(result)); ++ } ++ ++ void set_command_state(double state) ++ { ++ ASSERT_TRUE(command_interface_->set_value(state)); ++ } ++ ++ double command_state() const ++ { ++ return command_interface_->get_optional().value(); + } + + void set_active(bool active) +@@ -197,9 +204,6 @@ protected: + } + + ur_controllers::ToolContactController controller_; +- double set_state_value_{}; +- double state_value_{}; +- double result_value_{}; + std::shared_ptr command_interface_; + std::shared_ptr state_interface_; + std::shared_ptr result_interface_; +@@ -216,11 +220,11 @@ TEST_F(ToolContactControllerTest, AbortWhileExecutingKeepsWaitingEndCommand) + { + // Regression (#1939): abort must not be overwritten by the EXECUTING branch. + request_abort(); +- set_state_value_ = TOOL_CONTACT_EXECUTING; ++ set_command_state(TOOL_CONTACT_EXECUTING); + set_hw_state(TOOL_CONTACT_EXECUTING, 3.0); + + EXPECT_EQ(run_update(), controller_interface::return_type::OK); +- EXPECT_DOUBLE_EQ(set_state_value_, TOOL_CONTACT_WAITING_END); ++ EXPECT_DOUBLE_EQ(command_state(), TOOL_CONTACT_WAITING_END); + EXPECT_FALSE(abort_requested()); + EXPECT_FALSE(enable_requested()); + } +@@ -228,22 +232,22 @@ TEST_F(ToolContactControllerTest, AbortWhileExecutingKeepsWaitingEndCommand) + TEST_F(ToolContactControllerTest, EnableWhileIdleSetsWaitingBeginAndReturns) + { + request_enable(); +- set_state_value_ = TOOL_CONTACT_STANDBY; ++ set_command_state(TOOL_CONTACT_STANDBY); + set_hw_state(TOOL_CONTACT_STANDBY); + + EXPECT_EQ(run_update(), controller_interface::return_type::OK); +- EXPECT_DOUBLE_EQ(set_state_value_, TOOL_CONTACT_WAITING_BEGIN); ++ EXPECT_DOUBLE_EQ(command_state(), TOOL_CONTACT_WAITING_BEGIN); + EXPECT_FALSE(enable_requested()); + } + + TEST_F(ToolContactControllerTest, AbortTakesPriorityOverEnable) + { + request_abort_and_enable(); +- set_state_value_ = TOOL_CONTACT_EXECUTING; ++ set_command_state(TOOL_CONTACT_EXECUTING); + set_hw_state(TOOL_CONTACT_EXECUTING, 3.0); + + EXPECT_EQ(run_update(), controller_interface::return_type::OK); +- EXPECT_DOUBLE_EQ(set_state_value_, TOOL_CONTACT_WAITING_END); ++ EXPECT_DOUBLE_EQ(command_state(), TOOL_CONTACT_WAITING_END); + EXPECT_FALSE(abort_requested()); + EXPECT_FALSE(enable_requested()); + } +@@ -252,11 +256,11 @@ TEST_F(ToolContactControllerTest, AbortDoesNotFallThroughToStateMachine) + { + // Even when HW reports SUCCESS_END, abort must win and leave WAITING_END. + request_abort(); +- set_state_value_ = TOOL_CONTACT_EXECUTING; ++ set_command_state(TOOL_CONTACT_EXECUTING); + set_hw_state(TOOL_CONTACT_SUCCESS_END); + + EXPECT_EQ(run_update(), controller_interface::return_type::OK); +- EXPECT_DOUBLE_EQ(set_state_value_, TOOL_CONTACT_WAITING_END); ++ EXPECT_DOUBLE_EQ(command_state(), TOOL_CONTACT_WAITING_END); + } + + // --------------------------------------------------------------------------- +@@ -266,12 +270,12 @@ TEST_F(ToolContactControllerTest, AbortDoesNotFallThroughToStateMachine) + TEST_F(ToolContactControllerTest, ExecutingNonTerminalResultAcknowledgesExecuting) + { + clear_requests(); +- set_state_value_ = TOOL_CONTACT_WAITING_BEGIN; ++ set_command_state(TOOL_CONTACT_WAITING_BEGIN); + set_hw_state(TOOL_CONTACT_EXECUTING, 3.0); + set_logged_once(false); + + EXPECT_EQ(run_update(), controller_interface::return_type::OK); +- EXPECT_DOUBLE_EQ(set_state_value_, TOOL_CONTACT_EXECUTING); ++ EXPECT_DOUBLE_EQ(command_state(), TOOL_CONTACT_EXECUTING); + EXPECT_TRUE(is_active()); + EXPECT_TRUE(logged_once()); + EXPECT_FALSE(should_reset_goal()); +@@ -280,12 +284,12 @@ TEST_F(ToolContactControllerTest, ExecutingNonTerminalResultAcknowledgesExecutin + TEST_F(ToolContactControllerTest, ExecutingSuccessResultRequestsWaitingEnd) + { + clear_requests(); +- set_state_value_ = TOOL_CONTACT_EXECUTING; ++ set_command_state(TOOL_CONTACT_EXECUTING); + set_hw_state(TOOL_CONTACT_EXECUTING, 0.0); + set_active(true); + + EXPECT_EQ(run_update(), controller_interface::return_type::OK); +- EXPECT_DOUBLE_EQ(set_state_value_, TOOL_CONTACT_WAITING_END); ++ EXPECT_DOUBLE_EQ(command_state(), TOOL_CONTACT_WAITING_END); + EXPECT_FALSE(is_active()); + // No active goal handle, so should_reset_goal stays false. + EXPECT_FALSE(should_reset_goal()); +@@ -294,12 +298,12 @@ TEST_F(ToolContactControllerTest, ExecutingSuccessResultRequestsWaitingEnd) + TEST_F(ToolContactControllerTest, ExecutingHardwareAbortResultSetsStandby) + { + clear_requests(); +- set_state_value_ = TOOL_CONTACT_EXECUTING; ++ set_command_state(TOOL_CONTACT_EXECUTING); + set_hw_state(TOOL_CONTACT_EXECUTING, 1.0); + set_active(true); + + EXPECT_EQ(run_update(), controller_interface::return_type::OK); +- EXPECT_DOUBLE_EQ(set_state_value_, TOOL_CONTACT_STANDBY); ++ EXPECT_DOUBLE_EQ(command_state(), TOOL_CONTACT_STANDBY); + EXPECT_FALSE(is_active()); + } + +@@ -312,13 +316,13 @@ TEST_F(ToolContactControllerTest, ContendedGoalBoxExecutingNonTerminalAcknowledg + // Non-terminal EXECUTING must still be acknowledged so startToolContact is + // not retriggered, even when the goal handle cannot be read this cycle. + clear_requests(); +- set_state_value_ = TOOL_CONTACT_WAITING_BEGIN; ++ set_command_state(TOOL_CONTACT_WAITING_BEGIN); + set_hw_state(TOOL_CONTACT_EXECUTING, 3.0); + set_logged_once(false); + + with_goal_box_contended([this]() { + EXPECT_EQ(run_update(), controller_interface::return_type::OK); +- EXPECT_DOUBLE_EQ(set_state_value_, TOOL_CONTACT_EXECUTING); ++ EXPECT_DOUBLE_EQ(command_state(), TOOL_CONTACT_EXECUTING); + EXPECT_TRUE(is_active()); + EXPECT_TRUE(logged_once()); + EXPECT_FALSE(should_reset_goal()); +@@ -330,14 +334,14 @@ TEST_F(ToolContactControllerTest, ContendedGoalBoxExecutingSuccessDefersTerminal + // Terminal success must NOT write WAITING_END while the goal box is + // contended; goal/result handling is deferred to a later cycle. + clear_requests(); +- set_state_value_ = TOOL_CONTACT_EXECUTING; ++ set_command_state(TOOL_CONTACT_EXECUTING); + set_hw_state(TOOL_CONTACT_EXECUTING, 0.0); + set_active(true); + set_logged_once(true); + + with_goal_box_contended([this]() { + EXPECT_EQ(run_update(), controller_interface::return_type::OK); +- EXPECT_DOUBLE_EQ(set_state_value_, TOOL_CONTACT_EXECUTING); ++ EXPECT_DOUBLE_EQ(command_state(), TOOL_CONTACT_EXECUTING); + EXPECT_TRUE(is_active()); + EXPECT_FALSE(should_reset_goal()); + }); +@@ -348,14 +352,14 @@ TEST_F(ToolContactControllerTest, ContendedGoalBoxExecutingHardwareAbortDefersTe + // Terminal hardware abort must NOT write STANDBY while the goal box is + // contended; goal/result handling is deferred to a later cycle. + clear_requests(); +- set_state_value_ = TOOL_CONTACT_EXECUTING; ++ set_command_state(TOOL_CONTACT_EXECUTING); + set_hw_state(TOOL_CONTACT_EXECUTING, 1.0); + set_active(true); + set_logged_once(true); + + with_goal_box_contended([this]() { + EXPECT_EQ(run_update(), controller_interface::return_type::OK); +- EXPECT_DOUBLE_EQ(set_state_value_, TOOL_CONTACT_EXECUTING); ++ EXPECT_DOUBLE_EQ(command_state(), TOOL_CONTACT_EXECUTING); + EXPECT_TRUE(is_active()); + EXPECT_FALSE(should_reset_goal()); + }); +@@ -364,13 +368,13 @@ TEST_F(ToolContactControllerTest, ContendedGoalBoxExecutingHardwareAbortDefersTe + TEST_F(ToolContactControllerTest, ContendedGoalBoxNonExecutingLeavesCommandUnchanged) + { + clear_requests(); +- set_state_value_ = TOOL_CONTACT_STANDBY; ++ set_command_state(TOOL_CONTACT_STANDBY); + set_hw_state(TOOL_CONTACT_STANDBY); + set_logged_once(true); + + with_goal_box_contended([this]() { + EXPECT_EQ(run_update(), controller_interface::return_type::OK); +- EXPECT_DOUBLE_EQ(set_state_value_, TOOL_CONTACT_STANDBY); ++ EXPECT_DOUBLE_EQ(command_state(), TOOL_CONTACT_STANDBY); + // STANDBY logging clear only runs in the uncontended switch. + EXPECT_TRUE(logged_once()); + }); +@@ -383,59 +387,59 @@ TEST_F(ToolContactControllerTest, ContendedGoalBoxNonExecutingLeavesCommandUncha + TEST_F(ToolContactControllerTest, FailureBeginSetsStandbyAndClearsActive) + { + clear_requests(); +- set_state_value_ = TOOL_CONTACT_WAITING_BEGIN; ++ set_command_state(TOOL_CONTACT_WAITING_BEGIN); + set_hw_state(TOOL_CONTACT_FAILURE_BEGIN); + set_active(true); + + EXPECT_EQ(run_update(), controller_interface::return_type::OK); +- EXPECT_DOUBLE_EQ(set_state_value_, TOOL_CONTACT_STANDBY); ++ EXPECT_DOUBLE_EQ(command_state(), TOOL_CONTACT_STANDBY); + EXPECT_FALSE(is_active()); + } + + TEST_F(ToolContactControllerTest, SuccessEndSetsStandbyAndClearsActive) + { + clear_requests(); +- set_state_value_ = TOOL_CONTACT_WAITING_END; ++ set_command_state(TOOL_CONTACT_WAITING_END); + set_hw_state(TOOL_CONTACT_SUCCESS_END); + set_active(true); + + EXPECT_EQ(run_update(), controller_interface::return_type::OK); +- EXPECT_DOUBLE_EQ(set_state_value_, TOOL_CONTACT_STANDBY); ++ EXPECT_DOUBLE_EQ(command_state(), TOOL_CONTACT_STANDBY); + EXPECT_FALSE(is_active()); + } + + TEST_F(ToolContactControllerTest, SuccessEndAlwaysWritesStandbyEvenIfAlreadyInactive) + { + clear_requests(); +- set_state_value_ = TOOL_CONTACT_WAITING_END; ++ set_command_state(TOOL_CONTACT_WAITING_END); + set_hw_state(TOOL_CONTACT_SUCCESS_END); + set_active(false); + + EXPECT_EQ(run_update(), controller_interface::return_type::OK); +- EXPECT_DOUBLE_EQ(set_state_value_, TOOL_CONTACT_STANDBY); ++ EXPECT_DOUBLE_EQ(command_state(), TOOL_CONTACT_STANDBY); + EXPECT_FALSE(is_active()); + } + + TEST_F(ToolContactControllerTest, FailureEndSetsStandby) + { + clear_requests(); +- set_state_value_ = TOOL_CONTACT_WAITING_END; ++ set_command_state(TOOL_CONTACT_WAITING_END); + set_hw_state(TOOL_CONTACT_FAILURE_END); + set_active(true); + + EXPECT_EQ(run_update(), controller_interface::return_type::OK); +- EXPECT_DOUBLE_EQ(set_state_value_, TOOL_CONTACT_STANDBY); ++ EXPECT_DOUBLE_EQ(command_state(), TOOL_CONTACT_STANDBY); + } + + TEST_F(ToolContactControllerTest, StandbyClearsLoggedOnceWithoutChangingCommand) + { + clear_requests(); +- set_state_value_ = TOOL_CONTACT_STANDBY; ++ set_command_state(TOOL_CONTACT_STANDBY); + set_hw_state(TOOL_CONTACT_STANDBY); + set_logged_once(true); + + EXPECT_EQ(run_update(), controller_interface::return_type::OK); +- EXPECT_DOUBLE_EQ(set_state_value_, TOOL_CONTACT_STANDBY); ++ EXPECT_DOUBLE_EQ(command_state(), TOOL_CONTACT_STANDBY); + EXPECT_FALSE(logged_once()); + } + +@@ -443,31 +447,31 @@ TEST_F(ToolContactControllerTest, WaitingBeginStateIsPassthroughDefault) + { + // Intermediate HW states fall through the default branch; command is unchanged. + clear_requests(); +- set_state_value_ = TOOL_CONTACT_WAITING_BEGIN; ++ set_command_state(TOOL_CONTACT_WAITING_BEGIN); + set_hw_state(TOOL_CONTACT_WAITING_BEGIN); + + EXPECT_EQ(run_update(), controller_interface::return_type::OK); +- EXPECT_DOUBLE_EQ(set_state_value_, TOOL_CONTACT_WAITING_BEGIN); ++ EXPECT_DOUBLE_EQ(command_state(), TOOL_CONTACT_WAITING_BEGIN); + } + + TEST_F(ToolContactControllerTest, WaitingEndStateIsPassthroughDefault) + { + clear_requests(); +- set_state_value_ = TOOL_CONTACT_WAITING_END; ++ set_command_state(TOOL_CONTACT_WAITING_END); + set_hw_state(TOOL_CONTACT_WAITING_END); + + EXPECT_EQ(run_update(), controller_interface::return_type::OK); +- EXPECT_DOUBLE_EQ(set_state_value_, TOOL_CONTACT_WAITING_END); ++ EXPECT_DOUBLE_EQ(command_state(), TOOL_CONTACT_WAITING_END); + } + + TEST_F(ToolContactControllerTest, UnknownStateLeavesCommandUnchanged) + { + clear_requests(); +- set_state_value_ = TOOL_CONTACT_STANDBY; ++ set_command_state(TOOL_CONTACT_STANDBY); + set_hw_state(99.0); + + EXPECT_EQ(run_update(), controller_interface::return_type::OK); +- EXPECT_DOUBLE_EQ(set_state_value_, TOOL_CONTACT_STANDBY); ++ EXPECT_DOUBLE_EQ(command_state(), TOOL_CONTACT_STANDBY); + } + + // --------------------------------------------------------------------------- +@@ -478,28 +482,28 @@ TEST_F(ToolContactControllerTest, EnableThenExecutingHandshakeSequence) + { + // 1) Enable request -> WAITING_BEGIN + request_enable(); +- set_state_value_ = TOOL_CONTACT_STANDBY; ++ set_command_state(TOOL_CONTACT_STANDBY); + set_hw_state(TOOL_CONTACT_STANDBY); + ASSERT_EQ(run_update(), controller_interface::return_type::OK); +- ASSERT_DOUBLE_EQ(set_state_value_, TOOL_CONTACT_WAITING_BEGIN); ++ ASSERT_DOUBLE_EQ(command_state(), TOOL_CONTACT_WAITING_BEGIN); + + // 2) HW reports EXECUTING with non-terminal result -> acknowledge EXECUTING + clear_requests(); + set_hw_state(TOOL_CONTACT_EXECUTING, 3.0); + ASSERT_EQ(run_update(), controller_interface::return_type::OK); +- EXPECT_DOUBLE_EQ(set_state_value_, TOOL_CONTACT_EXECUTING); ++ EXPECT_DOUBLE_EQ(command_state(), TOOL_CONTACT_EXECUTING); + EXPECT_TRUE(is_active()); + + // 3) Abort while still executing -> WAITING_END (regression path) + request_abort(); + ASSERT_EQ(run_update(), controller_interface::return_type::OK); +- EXPECT_DOUBLE_EQ(set_state_value_, TOOL_CONTACT_WAITING_END); ++ EXPECT_DOUBLE_EQ(command_state(), TOOL_CONTACT_WAITING_END); + + // 4) HW reports SUCCESS_END -> STANDBY + clear_requests(); + set_hw_state(TOOL_CONTACT_SUCCESS_END); + ASSERT_EQ(run_update(), controller_interface::return_type::OK); +- EXPECT_DOUBLE_EQ(set_state_value_, TOOL_CONTACT_STANDBY); ++ EXPECT_DOUBLE_EQ(command_state(), TOOL_CONTACT_STANDBY); + EXPECT_FALSE(is_active()); + } + diff --git a/distros/rolling/patch/ros2-ur-robot-driver.patch b/distros/rolling/patch/ros2-ur-robot-driver.patch index df60c579..bd3db511 100644 --- a/distros/rolling/patch/ros2-ur-robot-driver.patch +++ b/distros/rolling/patch/ros2-ur-robot-driver.patch @@ -1,472 +1,563 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 3e60802..c6202cb 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -285,6 +285,20 @@ if(BUILD_TESTING) + ur_robot_driver_plugin + ) + ++ ament_add_gmock(test_hardware_interface_exports ++ test/test_hardware_interface_exports.cpp ++ ) ++ target_link_libraries(test_hardware_interface_exports ++ ur_robot_driver_plugin ++ ) ++ target_include_directories(test_hardware_interface_exports PRIVATE ++ include ++ ${motion_primitives_controllers_INCLUDE_DIRS} ++ ) ++ target_link_libraries(test_hardware_interface_exports ++ hardware_interface::hardware_interface ++ ) ++ + ament_add_gmock(test_robot_state_helper + test/test_robot_state_helper.cpp + ) +diff --git a/doc/migration_notes.rst b/doc/migration_notes.rst +index f666003..db46e90 100644 +--- a/doc/migration_notes.rst ++++ b/doc/migration_notes.rst +@@ -11,7 +11,7 @@ Kilted -> Lyrical + .. include:: migration/lyrical.rst + :start-line: 4 + +-Lyrical -> Maoka ++Lyrical -> Makoa + ^^^^^^^^^^^^^^^^ + .. include:: migration/makoa.rst + :start-line: 4 diff --git a/include/ur_robot_driver/hardware_interface.hpp b/include/ur_robot_driver/hardware_interface.hpp -index 6232980..0024daf 100644 +index 4ca463f..4d2f57f 100644 --- a/include/ur_robot_driver/hardware_interface.hpp +++ b/include/ur_robot_driver/hardware_interface.hpp -@@ -144,9 +144,11 @@ public: +@@ -43,10 +43,13 @@ + #define UR_ROBOT_DRIVER__HARDWARE_INTERFACE_HPP_ + + // System ++#include + #include + #include ++#include + #include + #include ++#include + #include + #include + +@@ -144,15 +147,14 @@ public: hardware_interface::CallbackReturn on_init(const hardware_interface::HardwareComponentInterfaceParams& params) final; - std::vector export_state_interfaces() final; -+ // ros2_control 6.12 has no pointer-based interfaces anymore: the exported handles mirror -+ // the members the driver works on, copied around read() and write() (RoboStack patch) -+ std::vector on_export_state_interfaces() final; - +- - std::vector export_command_interfaces() final; -+ std::vector on_export_command_interfaces() final; - +- hardware_interface::CallbackReturn on_configure(const rclcpp_lifecycle::State& previous_state) final; hardware_interface::CallbackReturn on_activate(const rclcpp_lifecycle::State& previous_state) final; -@@ -175,6 +177,52 @@ public: - void asyncThread(); + hardware_interface::CallbackReturn on_cleanup(const rclcpp_lifecycle::State& previous_state) final; + hardware_interface::CallbackReturn on_shutdown(const rclcpp_lifecycle::State& previous_state) final; - protected: -+ struct LinkedInterface -+ { -+ LinkedInterface(const std::string& prefix, const std::string& name, double* value) -+ : prefix(prefix), name(name), value(value) -+ { -+ } -+ std::string prefix; -+ std::string name; -+ double* value; -+ }; -+ std::vector export_state_links(); -+ std::vector export_command_links(); -+ hardware_interface::return_type read_impl(const rclcpp::Time& time, const rclcpp::Duration& period); -+ hardware_interface::return_type write_impl(const rclcpp::Time& time, const rclcpp::Duration& period); -+ void pull_commands(); -+ void push_states_and_commands(); -+ std::vector> state_links_; -+ // A command interface, the member it mirrors, and the value both last agreed on. Interfaces -+ // only the control loop touches are mirrored around read()/write(), copying only the side that -+ // changed since (a value whose publication failed stays unsynced and is retried). -+ struct CommandLink -+ { -+ hardware_interface::CommandInterface::SharedPtr handle; -+ double* value; -+ double synced; -+ }; -+ std::vector command_links_; -+ // Interfaces the async thread works on (checkAsyncIO(): IO, payload, gravity, friction model, -+ // freedrive, ... requests and their *_async_success flags), which service callbacks write too: -+ // never mirrored. checkAsyncIO() reads their handles first and publishes only its own changes -+ // afterwards, the request resets before the success flags, so that a service waiting for a flag -+ // can't have its next request overwritten. Other writers go to the handle (set_async()). -+ struct AsyncLink -+ { -+ hardware_interface::CommandInterface::SharedPtr handle; -+ double* value; -+ double pulled; -+ bool success_flag; -+ bool pending; -+ }; -+ std::vector async_links_; -+ bool is_async_member(const double* value) const; -+ bool pull_async(); -+ void push_async(); -+ void set_async(const double& member, double value); -+ - template - void readData(const std::unique_ptr& data_pkg, const std::string& var_name, - T& data); -diff --git a/src/hardware_interface.cpp b/src/hardware_interface.cpp -index b9d3649..eadff03 100644 ---- a/src/hardware_interface.cpp -+++ b/src/hardware_interface.cpp -@@ -39,6 +39,9 @@ - * - */ - //---------------------------------------------------------------------- -+#include -+#include -+#include - #include - #include - #include -@@ -99,6 +102,50 @@ RobotTypeWithSeries robotTypeFromString(const std::string& robot_type_str) - URPositionHardwareInterface::URPositionHardwareInterface() - { - mode_compatibility_ = createModeCompatibilityMatrix(); -+ // members behind exported interfaces that nothing sets before the first read()/write() (the -+ // handles are synced from them): states start at 0, commands without a new command -+ for (double* v : { &speed_scaling_combined_, &tool_output_current_, &tool_temperature_, &tool_mode_copy_, -+ &tool_output_voltage_copy_, &robot_mode_copy_, &safety_mode_copy_, &robot_program_running_copy_, -+ &get_robot_software_version_major_, &get_robot_software_version_minor_, -+ &get_robot_software_version_bugfix_, &get_robot_software_version_build_ }) { -+ *v = 0.0; -+ } -+ standard_analog_input_.fill(0.0); -+ standard_analog_output_.fill(0.0); -+ tool_analog_input_.fill(0.0); -+ actual_dig_out_bits_copy_.fill(0.0); -+ actual_dig_in_bits_copy_.fill(0.0); -+ analog_io_types_copy_.fill(0.0); -+ tool_analog_input_types_copy_.fill(0.0); -+ robot_status_bits_copy_.fill(0.0); -+ safety_status_bits_copy_.fill(0.0); -+ hw_moprim_states_.fill(0.0); -+ for (double* v : { &force_mode_async_success_, &force_mode_damping_, &force_mode_disable_cmd_, -+ &force_mode_gain_scaling_, &passthrough_trajectory_time_from_start_ }) { -+ *v = NO_NEW_CMD_; -+ } -+ for (auto* a : { &force_mode_limits_, &force_mode_selection_vector_, &force_mode_task_frame_, &force_mode_wrench_, -+ &passthrough_trajectory_positions_, &passthrough_trajectory_velocities_, -+ &passthrough_trajectory_accelerations_, &urcl_torque_commands_ }) { -+ a->fill(NO_NEW_CMD_); -+ } -+ hw_moprim_commands_.fill(NO_NEW_CMD_); -+ // and the async thread's copies of the async interfaces (checkAsyncIO() acts on them) -+ for (double* v : { &analog_output_domain_cmd_, &tool_voltage_cmd_, &io_async_success_, &target_speed_fraction_cmd_, -+ &scaling_async_success_, &resend_robot_program_cmd_, &resend_robot_program_async_success_, -+ &hand_back_control_cmd_, &hand_back_control_async_success_, &payload_mass_, -+ &payload_transition_time_, &payload_async_success_, &gravity_async_success_, -+ &friction_model_async_success_, &zero_ftsensor_cmd_, &zero_ftsensor_async_success_, -+ &freedrive_mode_enable_, &freedrive_mode_abort_, &freedrive_mode_async_success_ }) { -+ *v = NO_NEW_CMD_; -+ } -+ standard_dig_out_bits_cmd_.fill(NO_NEW_CMD_); -+ standard_analog_output_cmd_.fill(NO_NEW_CMD_); -+ payload_center_of_gravity_.fill(NO_NEW_CMD_); -+ payload_inertia_.fill(NO_NEW_CMD_); -+ gravity_vector_.fill(NO_NEW_CMD_); -+ friction_model_viscous_.fill(NO_NEW_CMD_); -+ friction_model_coulomb_.fill(NO_NEW_CMD_); - } ++ std::vector on_export_state_interfaces() final; ++ std::vector on_export_command_interfaces() final; ++ + hardware_interface::return_type read(const rclcpp::Time& time, const rclcpp::Duration& period) final; + hardware_interface::return_type write(const rclcpp::Time& time, const rclcpp::Duration& period) final; - URPositionHardwareInterface::~URPositionHardwareInterface() -@@ -226,26 +273,230 @@ URPositionHardwareInterface::on_init(const hardware_interface::HardwareComponent - return hardware_interface::CallbackReturn::SUCCESS; - } +@@ -185,21 +187,34 @@ protected: + // stop function used by on_shutdown and on_cleanup + hardware_interface::CallbackReturn stop(); --std::vector URPositionHardwareInterface::export_state_interfaces() -+std::vector -+URPositionHardwareInterface::on_export_state_interfaces() -+{ -+ std::vector state_interfaces; -+ state_links_.clear(); -+ for (const auto& link : export_state_links()) { -+ hardware_interface::InterfaceInfo info{}; -+ info.name = link.name; -+ auto handle = std::make_shared( -+ hardware_interface::InterfaceDescription(link.prefix, info)); -+ state_links_.emplace_back(handle, link.value); -+ state_interfaces.push_back(handle); -+ } -+ return state_interfaces; -+} ++ // Interface handles, resolved once in on_export_*_interfaces() ++ void resolve_state_interface_handles(); ++ void resolve_command_interface_handles(); + -+std::vector URPositionHardwareInterface::on_export_command_interfaces() -+{ -+ std::vector command_interfaces; -+ command_links_.clear(); -+ async_links_.clear(); -+ for (const auto& link : export_command_links()) { -+ hardware_interface::InterfaceInfo info{}; -+ info.name = link.name; -+ auto handle = std::make_shared( -+ hardware_interface::InterfaceDescription(link.prefix, info)); -+ if (is_async_member(link.value)) { -+ // the handle is the storage: no new command until a controller writes one -+ std::ignore = handle->set_value(NO_NEW_CMD_); -+ const bool success_flag = link.name.size() >= 13 && link.name.rfind("async_success") == link.name.size() - 13; -+ async_links_.push_back({ handle, link.value, NO_NEW_CMD_, success_flag, false }); -+ } else { -+ std::ignore = handle->set_value(*link.value); -+ command_links_.push_back({ handle, link.value, *link.value }); -+ } -+ command_interfaces.push_back(handle); -+ } -+ // the request resets are published before the success flags (push_async()) -+ std::stable_partition(async_links_.begin(), async_links_.end(), -+ [](const AsyncLink& link) { return !link.success_flag; }); -+ return command_interfaces; -+} ++ void initializeCommandInterfaces(); + void initAsyncIO(); + void checkAsyncIO(); + void updateNonDoubleValues(); + void extractToolPose(); + void transformForceTorque(); +- void start_force_mode(); ++ void start_force_mode(const urcl::vector6d_t& task_frame, const urcl::vector6d_t& selection_vector, ++ const urcl::vector6d_t& wrench, double type, const urcl::vector6d_t& limits, double damping, ++ double gain_scaling); + void stop_force_mode(); ++ // Reads the freedrive enable and abort commands and writes at most one freedrive control message. ++ // Returns true when that write consumed this cycle. The caller sends a keepalive otherwise. ++ bool commandFreedriveMode(); + void check_passthrough_trajectory_controller(); ++ void process_trajectory_result(); ++ void end_passthrough_cancel_wait(); ++ // Republish the joint and twist commands stored by perform_command_mode_switch(). ++ bool publish_seeded_motion_commands(); + void trajectory_done_callback(urcl::control::TrajectoryResult result); + bool is_valid_joint_information(std::vector> data); + void tool_contact_callback(urcl::control::ToolContactResult); + void check_tool_contact_controller(); + + urcl::vector6d_t urcl_position_commands_; +- urcl::vector6d_t urcl_position_commands_old_; + urcl::vector6d_t urcl_velocity_commands_; + urcl::vector6d_t urcl_torque_commands_; + urcl::vector6d_t urcl_twist_commands_; +@@ -237,22 +252,9 @@ protected: + std::bitset<4> robot_status_bits_; + std::bitset<11> safety_status_bits_; + +- // asynchronous commands +- std::array standard_dig_out_bits_cmd_; +- std::array standard_analog_output_cmd_; +- double analog_output_domain_cmd_; +- double tool_voltage_cmd_; +- double io_async_success_; +- double target_speed_fraction_cmd_; +- double scaling_async_success_; +- double resend_robot_program_cmd_; +- double resend_robot_program_async_success_; +- double zero_ftsensor_cmd_; +- double zero_ftsensor_async_success_; +- double hand_back_control_cmd_; +- double hand_back_control_async_success_; + bool first_pass_; + bool initialized_; ++ bool command_snapshot_initialized_; + double system_interface_initialized_; + std::atomic_bool async_thread_shutdown_; + urcl::VersionInformation version_info_; +@@ -264,19 +266,31 @@ protected: + // Tool contact controller interface values + double tool_contact_set_state_; + double tool_contact_state_; +- double tool_contact_result_; ++ std::atomic tool_contact_result_; + bool tool_contact_controller_running_; + +- // Freedrive mode controller interface values +- bool freedrive_activated_; +- bool freedrive_mode_controller_running_; +- double freedrive_mode_async_success_; +- double freedrive_mode_enable_; +- double freedrive_mode_abort_; ++ // Freedrive mode controller state. Enable and abort commands are read from their interfaces in write(). ++ // perform_command_mode_switch() sends FREEDRIVE_STOP. If that write fails, activated stays true and ++ // write() retries the stop before any other control mode. ++ std::atomic freedrive_activated_; ++ std::atomic freedrive_mode_controller_running_; ++ // Joint and twist commands stored by the mode switch have not reached their command interfaces. ++ bool seeded_motion_commands_pending_ = false; ++ // Motion-primitive command interfaces still hold pre-reset values. ++ bool moprim_command_reset_pending_ = false; + + // Passthrough trajectory controller interface values + double passthrough_trajectory_transfer_state_; ++ double passthrough_trajectory_transfer_state_command_; ++ double passthrough_trajectory_transfer_sequence_; ++ double passthrough_trajectory_transfer_sequence_command_; + double passthrough_trajectory_abort_; ++ double passthrough_trajectory_abort_command_; ++ bool passthrough_terminal_result_pending_; ++ bool passthrough_trajectory_execution_active_; ++ std::atomic_bool passthrough_cancel_result_pending_{ false }; ++ // The TRAJECTORY_CANCEL from stopping the passthrough controller still has to be sent. ++ bool passthrough_cancel_unsent_ = false; + double passthrough_trajectory_size_; + bool passthrough_trajectory_controller_running_; + urcl::vector6d_t passthrough_trajectory_positions_; +@@ -286,37 +300,11 @@ protected: + + bool twist_controller_running_; + +- // payload stuff +- urcl::vector3d_t payload_center_of_gravity_; +- urcl::vector6d_t payload_inertia_; +- double payload_mass_; +- double payload_transition_time_; +- double payload_async_success_; ++ // Payload reported by RTDE. Commanded payload is read from the command interfaces. + double rtde_payload_mass_ = 0.0; + urcl::vector3d_t rtde_payload_cog_{ 0.0, 0.0, 0.0 }; + urcl::vector6d_t rtde_payload_inertia_{ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; + +- // Friction model parameters +- urcl::vector6d_t friction_model_viscous_; +- urcl::vector6d_t friction_model_coulomb_; +- double friction_model_async_success_; +- +- // force mode parameters +- urcl::vector6d_t force_mode_task_frame_; +- urcl::vector6d_t force_mode_selection_vector_; +- urcl::vector6uint32_t force_mode_selection_vector_copy_; +- urcl::vector6d_t force_mode_wrench_; +- urcl::vector6d_t force_mode_limits_; +- double force_mode_type_; +- double force_mode_async_success_; +- double force_mode_disable_cmd_; +- double force_mode_damping_; +- double force_mode_gain_scaling_; +- +- // Gravity stuff +- urcl::vector3d_t gravity_vector_; +- double gravity_async_success_; +- + //*************** Motion primitives stuff *************** + std::shared_ptr instruction_executor_; + +@@ -336,6 +324,8 @@ protected: + // 25 Commands: motion_type + 6 joints + 2*7 positions (goal and via) + blend_radius + velocity + acceleration + + // move_time + std::array hw_moprim_commands_; ++ std::array pending_moprim_command_; ++ bool moprim_command_pending_ = false; + // 2 States: execution_status, ready_for_new_primitive + std::array hw_moprim_states_; + +@@ -343,8 +333,9 @@ protected: + std::atomic_bool build_moprim_sequence_{ false }; + std::vector> moprim_sequence_; + +- void handleMoprimCommands(); +- void resetMoprimCmdInterfaces(); ++ void handleMoprimCommands(bool accept_new_command); ++ bool resetMoprimCmdInterfaces(size_t start_index = 0); ++ void retryMoprimCommandReset(); + void asyncMoprimCmdThread(); + void processMoprimMotionCmd(const std::array& command); + bool getMoprimTimeOrVelAndAcc(const std::array& command, double& velocity, double& acceleration, +@@ -379,13 +370,15 @@ protected: + std::vector> trajectory_joint_velocities_; + std::vector> trajectory_joint_accelerations_; + std::vector trajectory_times_; ++ // One slot per completion. The callback and write() exchange the result and its order together. ++ realtime_tools::LockFreeSPSCQueue trajectory_result_queue_; + + PausingState pausing_state_; + double pausing_ramp_up_increment_; + + // resources switching aux vars + std::vector> stop_modes_; +- std::vector> start_modes_; ++ std::vector> start_modes_; + bool position_controller_running_; + bool velocity_controller_running_; + bool torque_controller_running_; +@@ -408,6 +401,107 @@ protected: + + std::unique_ptr data_package_buffer_; + std::function get_data_package; + -+namespace -+{ -+// NO_NEW_CMD_ is NaN, which never compares equal to itself -+bool same(double a, double b) -+{ -+ return std::memcmp(&a, &b, sizeof(double)) == 0; -+} ++ // --- Interface handles, resolved once when the interfaces are exported --- ++ // Resolving throws if the description lacks an interface, so every handle is valid afterwards. Only the joint effort ++ // command handles are optional and nullptr when the description does not declare them. + -+// marks a success flag checkAsyncIO() didn't write (it only ever assigns them): a NaN that is -+// neither NO_NEW_CMD_ nor anything it assigns -+double unwritten() -+{ -+ const uint64_t bits = 0x7ff800000000beefULL; -+ double value; -+ std::memcpy(&value, &bits, sizeof(value)); -+ return value; -+} -+} // namespace ++ using StateHandle = hardware_interface::StateInterface::SharedPtr; ++ using CommandHandle = hardware_interface::CommandInterface::SharedPtr; + -+// a command a controller wrote to its handle since the last sync goes to the member -+void URPositionHardwareInterface::pull_commands() -+{ -+ for (auto& link : command_links_) { -+ double command; -+ if (link.handle->get_value(command, false) && !same(command, link.synced) && same(*link.value, link.synced)) { -+ *link.value = command; -+ link.synced = command; -+ } ++ template ++ bool set_state_nonblocking(const StateHandle& handle, const T& value) ++ { ++ return set_state(handle, value, false); + } -+} -+ -+// the states, and the commands the driver itself changed since the last sync, go to the handles -+void URPositionHardwareInterface::push_states_and_commands() -+{ -+ for (auto& [handle, value] : state_links_) { -+ std::ignore = handle->set_value(*value); -+ } -+ for (auto& link : command_links_) { -+ // one read: other threads (e.g. trajectory_done_callback()) may change the member meanwhile -+ const double value = *link.value; -+ if (!same(value, link.synced) && link.handle->set_value(value)) { -+ link.synced = value; -+ } ++ template ++ bool get_command_nonblocking(const CommandHandle& handle, T& value) ++ { ++ return get_command(handle, value, false); + } -+} -+ -+bool URPositionHardwareInterface::is_async_member(const double* value) const -+{ -+ auto in = [value](const auto& member) { -+ const double* begin = reinterpret_cast(&member); -+ return value >= begin && value < begin + sizeof(member) / sizeof(double); -+ }; -+ return in(standard_dig_out_bits_cmd_) || in(standard_analog_output_cmd_) || in(analog_output_domain_cmd_) || -+ in(tool_voltage_cmd_) || in(io_async_success_) || in(target_speed_fraction_cmd_) || -+ in(scaling_async_success_) || in(resend_robot_program_cmd_) || in(resend_robot_program_async_success_) || -+ in(hand_back_control_cmd_) || in(hand_back_control_async_success_) || in(payload_mass_) || -+ in(payload_center_of_gravity_) || in(payload_inertia_) || in(payload_transition_time_) || -+ in(payload_async_success_) || in(gravity_vector_) || in(gravity_async_success_) || -+ in(friction_model_viscous_) || in(friction_model_coulomb_) || in(friction_model_async_success_) || -+ in(zero_ftsensor_cmd_) || in(zero_ftsensor_async_success_) || in(freedrive_mode_enable_) || -+ in(freedrive_mode_abort_) || in(freedrive_mode_async_success_); -+} -+ -+// the requests as the controllers and services left them, into the async thread's members; the -+// success flags are marked, so that push_async() publishes every one checkAsyncIO() writes (also -+// when the result equals the previous one, as for a request that followed an earlier success) -+bool URPositionHardwareInterface::pull_async() -+{ -+ // all requests or none: checkAsyncIO() must not act on a request of which only some values were read -+ std::vector values(async_links_.size()); -+ for (size_t i = 0; i < async_links_.size(); ++i) { -+ const auto& link = async_links_[i]; -+ if (!link.pending && !link.success_flag && !link.handle->get_value(values[i], false)) { -+ return false; -+ } ++ template ++ bool set_command_nonblocking(const CommandHandle& handle, const T& value) ++ { ++ return set_command(handle, value, false); + } -+ for (size_t i = 0; i < async_links_.size(); ++i) { -+ auto& link = async_links_[i]; -+ if (link.pending) { -+ continue; // keeps the value it couldn't publish yet -+ } -+ if (link.success_flag) { -+ *link.value = unwritten(); -+ } else { -+ *link.value = values[i]; -+ link.pulled = values[i]; -+ } ++ // Not real-time safe. Throws if the value cannot be read. ++ double get_command_blocking(const CommandHandle& handle) ++ { ++ double value; ++ get_command(handle, value, true); ++ return value; + } -+ return true; -+} + -+// what checkAsyncIO() did, back to the handles: the request resets first, the success flags only once -+// those are all published; anything that couldn't be published is retried next time -+void URPositionHardwareInterface::push_async() -+{ -+ bool resets_published = true; -+ for (auto& link : async_links_) { -+ const double value = *link.value; -+ if (link.success_flag) { -+ if (!link.pending && same(value, unwritten())) { -+ continue; -+ } -+ link.pending = !(resets_published && link.handle->set_value(value)); -+ continue; -+ } -+ if (link.pending) { -+ // a newer request arrived meanwhile: it wins over the reset of the old one -+ double current; -+ if (link.handle->get_value(current, false) && !same(current, link.pulled)) { -+ link.pending = false; -+ link.pulled = value; // so that a failed pull can't bring the dropped reset back -+ continue; -+ } -+ } else if (same(value, link.pulled)) { -+ continue; -+ } -+ link.pending = !link.handle->set_value(value); -+ if (link.pending) { -+ resets_published = false; -+ } else { -+ link.pulled = value; -+ } -+ } -+} ++ std::vector joint_position_state_handles_; ++ std::vector joint_velocity_state_handles_; ++ std::vector joint_effort_state_handles_; ++ std::vector joint_position_command_handles_; ++ std::vector joint_velocity_command_handles_; ++ std::vector joint_effort_command_handles_; + -+// a reset from the control loop thread (initialisation, mode switch) straight to the handle. Like -+// LoanedCommandInterface::set_value(), it doesn't wait for the lock but tries a few times (holders only -+// copy a value); nothing is deferred, so no older write can land after a newer one. -+void URPositionHardwareInterface::set_async(const double& member, double value) - { -- std::vector state_interfaces; -+ for (auto& link : async_links_) { -+ if (link.value == &member) { -+ for (int attempt = 0; attempt < 10; ++attempt) { -+ if (link.handle->set_value(value)) { -+ return; -+ } -+ } -+ RCLCPP_WARN(get_logger(), "Could not write %s: the interface is locked.", link.handle->get_name().c_str()); -+ return; -+ } -+ } -+} ++ // Plain RTDE-read state values (gpio digital/analog IO, tool/robot/safety status, tcp pose, ft ++ // sensor, payload, get_robot_software_version, system_interface/gpio program_running): handle ++ // plus a pointer to the source value, pushed via set_state() in one loop per read() cycle. ++ std::vector> state_push_list_; + -+hardware_interface::return_type URPositionHardwareInterface::read(const rclcpp::Time& time, -+ const rclcpp::Duration& period) -+{ -+ pull_commands(); -+ const auto result = read_impl(time, period); -+ push_states_and_commands(); -+ return result; -+} ++ std::array moprim_state_handles_; + -+hardware_interface::return_type URPositionHardwareInterface::write(const rclcpp::Time& time, -+ const rclcpp::Duration& period) -+{ -+ pull_commands(); -+ const auto result = write_impl(time, period); -+ push_states_and_commands(); -+ return result; -+} ++ CommandHandle io_async_success_handle_; ++ std::array standard_dig_out_bits_cmd_handles_; ++ std::array standard_analog_output_cmd_handles_; ++ CommandHandle analog_output_domain_cmd_handle_; ++ CommandHandle tool_voltage_cmd_handle_; ++ CommandHandle target_speed_fraction_cmd_handle_; ++ CommandHandle scaling_async_success_handle_; ++ CommandHandle resend_robot_program_cmd_handle_; ++ CommandHandle resend_robot_program_async_success_handle_; ++ CommandHandle hand_back_control_cmd_handle_; ++ CommandHandle hand_back_control_async_success_handle_; ++ CommandHandle payload_mass_handle_; ++ std::array payload_cog_handles_; ++ std::array payload_inertia_handles_; ++ CommandHandle payload_transition_time_handle_; ++ CommandHandle payload_async_success_handle_; ++ std::array gravity_vector_handles_; ++ CommandHandle gravity_async_success_handle_; ++ std::array friction_viscous_handles_; ++ std::array friction_coulomb_handles_; ++ CommandHandle friction_async_success_handle_; ++ CommandHandle zero_ftsensor_cmd_handle_; ++ CommandHandle zero_ftsensor_async_success_handle_; ++ CommandHandle freedrive_enable_handle_; ++ CommandHandle freedrive_abort_handle_; ++ CommandHandle freedrive_async_success_handle_; + -+std::vector URPositionHardwareInterface::export_state_links() -+{ -+ std::vector state_interfaces; - for (size_t i = 0; i < info_.joints.size(); ++i) { ++ std::array force_mode_task_frame_handles_; ++ std::array force_mode_selection_vector_handles_; ++ std::array force_mode_wrench_handles_; ++ CommandHandle force_mode_type_handle_; ++ std::array force_mode_limits_handles_; ++ CommandHandle force_mode_async_success_handle_; ++ CommandHandle force_mode_disable_cmd_handle_; ++ CommandHandle force_mode_damping_handle_; ++ CommandHandle force_mode_gain_scaling_handle_; ++ ++ CommandHandle passthrough_transfer_state_cmd_handle_; ++ CommandHandle passthrough_transfer_sequence_cmd_handle_; ++ CommandHandle passthrough_time_from_start_handle_; ++ CommandHandle passthrough_abort_cmd_handle_; ++ CommandHandle passthrough_size_handle_; ++ std::array passthrough_positions_handles_; ++ std::array passthrough_velocities_handles_; ++ std::array passthrough_accelerations_handles_; ++ StateHandle passthrough_transfer_state_state_handle_; ++ StateHandle passthrough_transfer_sequence_state_handle_; ++ StateHandle passthrough_abort_state_handle_; ++ ++ std::array twist_command_handles_; ++ ++ CommandHandle tool_contact_set_state_handle_; ++ StateHandle tool_contact_result_handle_; ++ StateHandle tool_contact_state_handle_; ++ ++ std::array moprim_command_handles_; + }; + } // namespace ur_robot_driver + +diff --git a/src/hardware_interface.cpp b/src/hardware_interface.cpp +index 0edcf90..21c14b7 100644 +--- a/src/hardware_interface.cpp ++++ b/src/hardware_interface.cpp +@@ -124,14 +124,17 @@ URPositionHardwareInterface::on_init(const hardware_interface::HardwareComponent + urcl_joint_efforts_ = { { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } }; + urcl_ft_sensor_measurements_ = { { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } }; + urcl_tcp_pose_ = { { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } }; +- urcl_position_commands_ = { { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } }; +- urcl_position_commands_old_ = { { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } }; ++ urcl_position_commands_.fill(NO_NEW_CMD_); + urcl_velocity_commands_ = { { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } }; ++ urcl_torque_commands_ = { { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } }; + urcl_twist_commands_ = { { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } }; + position_controller_running_ = false; + velocity_controller_running_ = false; + torque_controller_running_ = false; + freedrive_mode_controller_running_ = false; ++ freedrive_activated_ = false; ++ seeded_motion_commands_pending_ = false; ++ moprim_command_reset_pending_ = false; + passthrough_trajectory_controller_running_ = false; + tool_contact_controller_running_ = false; + twist_controller_running_ = false; +@@ -141,12 +144,23 @@ URPositionHardwareInterface::on_init(const hardware_interface::HardwareComponent + controllers_initialized_ = false; + first_pass_ = true; + initialized_ = false; ++ command_snapshot_initialized_ = false; + async_thread_shutdown_ = false; + system_interface_initialized_ = 0.0; +- freedrive_mode_abort_ = 0.0; + passthrough_trajectory_transfer_state_ = 0.0; ++ passthrough_trajectory_transfer_state_command_ = 0.0; ++ passthrough_trajectory_transfer_sequence_ = 0.0; ++ passthrough_trajectory_transfer_sequence_command_ = 0.0; + passthrough_trajectory_abort_ = 0.0; ++ passthrough_trajectory_abort_command_ = 0.0; ++ passthrough_terminal_result_pending_ = false; ++ passthrough_trajectory_execution_active_ = false; ++ passthrough_cancel_result_pending_ = false; + passthrough_trajectory_size_ = 0.0; ++ passthrough_trajectory_positions_.fill(NO_NEW_CMD_); ++ passthrough_trajectory_velocities_.fill(NO_NEW_CMD_); ++ passthrough_trajectory_accelerations_.fill(NO_NEW_CMD_); ++ passthrough_trajectory_time_from_start_ = NO_NEW_CMD_; + tool_contact_result_ = NO_NEW_CMD_; + tool_contact_set_state_ = 0.0; + tool_contact_state_ = 0.0; +@@ -162,13 +176,6 @@ URPositionHardwareInterface::on_init(const hardware_interface::HardwareComponent + motion_primitives_forward_controller_running_ = false; + hw_moprim_states_.fill(std::numeric_limits::quiet_NaN()); + hw_moprim_commands_.fill(std::numeric_limits::quiet_NaN()); +- for (size_t i = 0; i < 6; i++) { +- force_mode_task_frame_[i] = NO_NEW_CMD_; +- force_mode_selection_vector_[i] = static_cast(NO_NEW_CMD_); +- force_mode_wrench_[i] = NO_NEW_CMD_; +- force_mode_limits_[i] = NO_NEW_CMD_; +- } +- force_mode_type_ = static_cast(NO_NEW_CMD_); + + for (const hardware_interface::ComponentInfo& joint : info_.joints) { + auto has_cmd_interface = [](const hardware_interface::ComponentInfo& joint, const std::string& interface_name) { +@@ -226,409 +233,240 @@ URPositionHardwareInterface::on_init(const hardware_interface::HardwareComponent + return hardware_interface::CallbackReturn::SUCCESS; + } + +-std::vector URPositionHardwareInterface::export_state_interfaces() ++std::vector ++URPositionHardwareInterface::on_export_state_interfaces() + { +- std::vector state_interfaces; +- for (size_t i = 0; i < info_.joints.size(); ++i) { - state_interfaces.emplace_back(hardware_interface::StateInterface( - info_.joints[i].name, hardware_interface::HW_IF_POSITION, &urcl_joint_positions_[i])); -+ state_interfaces.emplace_back( -+ LinkedInterface(info_.joints[i].name, hardware_interface::HW_IF_POSITION, &urcl_joint_positions_[i])); - +- - state_interfaces.emplace_back(hardware_interface::StateInterface( - info_.joints[i].name, hardware_interface::HW_IF_VELOCITY, &urcl_joint_velocities_[i])); -+ state_interfaces.emplace_back( -+ LinkedInterface(info_.joints[i].name, hardware_interface::HW_IF_VELOCITY, &urcl_joint_velocities_[i])); ++ auto interfaces = hardware_interface::SystemInterface::on_export_state_interfaces(); ++ resolve_state_interface_handles(); ++ return interfaces; ++} - state_interfaces.emplace_back(hardware_interface::StateInterface( - info_.joints[i].name, hardware_interface::HW_IF_EFFORT, &urcl_joint_efforts_[i])); -+ state_interfaces.emplace_back( -+ LinkedInterface(info_.joints[i].name, hardware_interface::HW_IF_EFFORT, &urcl_joint_efforts_[i])); - } +- } ++std::vector URPositionHardwareInterface::on_export_command_interfaces() ++{ ++ auto interfaces = hardware_interface::SystemInterface::on_export_command_interfaces(); ++ resolve_command_interface_handles(); ++ return interfaces; ++} - // Obtain the tf_prefix from the urdf so that we can have the general interface multiple times - // NOTE using the tf_prefix at this point is some kind of workaround. One should actually go through the list of gpio - // state interface in info_ and match them accordingly +- // Obtain the tf_prefix from the urdf so that we can have the general interface multiple times +- // NOTE using the tf_prefix at this point is some kind of workaround. One should actually go through the list of gpio +- // state interface in info_ and match them accordingly ++void URPositionHardwareInterface::resolve_state_interface_handles() ++{ ++ // Throws if the description does not declare an interface this driver publishes. ++ const auto state_handle = [this](const std::string& name) { return get_state_interface_handle(name); }; const std::string tf_prefix = info_.hardware_parameters.at("tf_prefix"); - state_interfaces.emplace_back(hardware_interface::StateInterface(tf_prefix + "speed_scaling", "speed_scaling_factor", - &speed_scaling_combined_)); -+ state_interfaces.emplace_back( -+ LinkedInterface(tf_prefix + "speed_scaling", "speed_scaling_factor", &speed_scaling_combined_)); - for (auto& sensor : info_.sensors) { +- for (auto& sensor : info_.sensors) { ++ joint_position_state_handles_.resize(info_.joints.size()); ++ joint_velocity_state_handles_.resize(info_.joints.size()); ++ joint_effort_state_handles_.resize(info_.joints.size()); ++ for (size_t i = 0; i < info_.joints.size(); ++i) { ++ const std::string& name = info_.joints[i].name; ++ joint_position_state_handles_[i] = state_handle(name + "/" + hardware_interface::HW_IF_POSITION); ++ joint_velocity_state_handles_[i] = state_handle(name + "/" + hardware_interface::HW_IF_VELOCITY); ++ joint_effort_state_handles_[i] = state_handle(name + "/" + hardware_interface::HW_IF_EFFORT); ++ } ++ ++ state_push_list_.clear(); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "speed_scaling/speed_scaling_factor"), ++ &speed_scaling_combined_); ++ for (const auto& sensor : info_.sensors) { if (sensor.name == tf_prefix + "tcp_fts_sensor") { -@@ -253,130 +504,107 @@ std::vector URPositionHardwareInterface::exp +- const std::vector fts_names = { ++ const std::array fts_names = { "force.x", "force.y", "force.z", "torque.x", "torque.y", "torque.z" }; - for (uint32_t j = 0; j < 6; ++j) { +- for (uint32_t j = 0; j < 6; ++j) { - state_interfaces.emplace_back( - hardware_interface::StateInterface(sensor.name, fts_names[j], &urcl_ft_sensor_measurements_[j])); -+ state_interfaces.emplace_back(LinkedInterface(sensor.name, fts_names[j], &urcl_ft_sensor_measurements_[j])); ++ for (size_t i = 0; i < fts_names.size(); ++i) { ++ state_push_list_.emplace_back(state_handle(sensor.name + "/" + fts_names[i]), &urcl_ft_sensor_measurements_[i]); } ++ break; } } - +- for (size_t i = 0; i < 18; ++i) { - state_interfaces.emplace_back(hardware_interface::StateInterface( - tf_prefix + "gpio", "digital_output_" + std::to_string(i), &actual_dig_out_bits_copy_[i])); - state_interfaces.emplace_back(hardware_interface::StateInterface( - tf_prefix + "gpio", "digital_input_" + std::to_string(i), &actual_dig_in_bits_copy_[i])); -+ state_interfaces.emplace_back( -+ LinkedInterface(tf_prefix + "gpio", "digital_output_" + std::to_string(i), &actual_dig_out_bits_copy_[i])); -+ state_interfaces.emplace_back( -+ LinkedInterface(tf_prefix + "gpio", "digital_input_" + std::to_string(i), &actual_dig_in_bits_copy_[i])); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "gpio/digital_output_" + std::to_string(i)), ++ &actual_dig_out_bits_copy_[i]); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "gpio/digital_input_" + std::to_string(i)), ++ &actual_dig_in_bits_copy_[i]); } - +- for (size_t i = 0; i < 11; ++i) { - state_interfaces.emplace_back(hardware_interface::StateInterface( - tf_prefix + "gpio", "safety_status_bit_" + std::to_string(i), &safety_status_bits_copy_[i])); -+ state_interfaces.emplace_back( -+ LinkedInterface(tf_prefix + "gpio", "safety_status_bit_" + std::to_string(i), &safety_status_bits_copy_[i])); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "gpio/safety_status_bit_" + std::to_string(i)), ++ &safety_status_bits_copy_[i]); } - +- for (size_t i = 0; i < 4; ++i) { - state_interfaces.emplace_back(hardware_interface::StateInterface( - tf_prefix + "gpio", "analog_io_type_" + std::to_string(i), &analog_io_types_copy_[i])); - state_interfaces.emplace_back(hardware_interface::StateInterface( - tf_prefix + "gpio", "robot_status_bit_" + std::to_string(i), &robot_status_bits_copy_[i])); -+ state_interfaces.emplace_back( -+ LinkedInterface(tf_prefix + "gpio", "analog_io_type_" + std::to_string(i), &analog_io_types_copy_[i])); -+ state_interfaces.emplace_back( -+ LinkedInterface(tf_prefix + "gpio", "robot_status_bit_" + std::to_string(i), &robot_status_bits_copy_[i])); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "gpio/analog_io_type_" + std::to_string(i)), ++ &analog_io_types_copy_[i]); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "gpio/robot_status_bit_" + std::to_string(i)), ++ &robot_status_bits_copy_[i]); } - +- for (size_t i = 0; i < 2; ++i) { - state_interfaces.emplace_back(hardware_interface::StateInterface( - tf_prefix + "gpio", "tool_analog_input_type_" + std::to_string(i), &tool_analog_input_types_copy_[i])); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "tool_analog_input_type_" + std::to_string(i), -+ &tool_analog_input_types_copy_[i])); - +- - state_interfaces.emplace_back(hardware_interface::StateInterface( - tf_prefix + "gpio", "tool_analog_input_" + std::to_string(i), &tool_analog_input_[i])); -+ state_interfaces.emplace_back( -+ LinkedInterface(tf_prefix + "gpio", "tool_analog_input_" + std::to_string(i), &tool_analog_input_[i])); - +- - state_interfaces.emplace_back(hardware_interface::StateInterface( - tf_prefix + "gpio", "standard_analog_input_" + std::to_string(i), &standard_analog_input_[i])); -+ state_interfaces.emplace_back( -+ LinkedInterface(tf_prefix + "gpio", "standard_analog_input_" + std::to_string(i), &standard_analog_input_[i])); - +- - state_interfaces.emplace_back(hardware_interface::StateInterface( - tf_prefix + "gpio", "standard_analog_output_" + std::to_string(i), &standard_analog_output_[i])); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "standard_analog_output_" + std::to_string(i), -+ &standard_analog_output_[i])); - } - +- } +- - state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "gpio", "tool_output_voltage", &tool_output_voltage_copy_)); - - state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "gpio", "robot_mode", &robot_mode_copy_)); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "tool_output_voltage", &tool_output_voltage_copy_)); - +- - state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "gpio", "safety_mode", &safety_mode_copy_)); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "robot_mode", &robot_mode_copy_)); - +- - state_interfaces.emplace_back(hardware_interface::StateInterface(tf_prefix + "gpio", "tool_mode", &tool_mode_copy_)); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "safety_mode", &safety_mode_copy_)); - +- - state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "gpio", "tool_output_current", &tool_output_current_)); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "tool_mode", &tool_mode_copy_)); - +- - state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "gpio", "tool_temperature", &tool_temperature_)); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "tool_output_current", &tool_output_current_)); - +- - state_interfaces.emplace_back(hardware_interface::StateInterface(tf_prefix + "system_interface", "initialized", - &system_interface_initialized_)); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "tool_temperature", &tool_temperature_)); - - state_interfaces.emplace_back( +- +- state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "gpio", "program_running", &robot_program_running_copy_)); -+ LinkedInterface(tf_prefix + "system_interface", "initialized", &system_interface_initialized_)); - +- - state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "tcp_pose", "position.x", &urcl_tcp_pose_[0])); - state_interfaces.emplace_back( @@ -481,46 +572,29 @@ index b9d3649..eadff03 100644 - hardware_interface::StateInterface(tf_prefix + "tcp_pose", "orientation.z", &tcp_rotation_buffer.z)); - state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "tcp_pose", "orientation.w", &tcp_rotation_buffer.w)); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "program_running", &robot_program_running_copy_)); - +- - state_interfaces.emplace_back(hardware_interface::StateInterface( - tf_prefix + "get_robot_software_version", "get_version_major", &get_robot_software_version_major_)); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "tcp_pose", "position.x", &urcl_tcp_pose_[0])); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "tcp_pose", "position.y", &urcl_tcp_pose_[1])); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "tcp_pose", "position.z", &urcl_tcp_pose_[2])); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "tcp_pose", "orientation.x", &tcp_rotation_buffer.x)); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "tcp_pose", "orientation.y", &tcp_rotation_buffer.y)); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "tcp_pose", "orientation.z", &tcp_rotation_buffer.z)); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "tcp_pose", "orientation.w", &tcp_rotation_buffer.w)); - +- - state_interfaces.emplace_back(hardware_interface::StateInterface( - tf_prefix + "get_robot_software_version", "get_version_minor", &get_robot_software_version_minor_)); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "get_robot_software_version", "get_version_major", -+ &get_robot_software_version_major_)); - +- - state_interfaces.emplace_back(hardware_interface::StateInterface( - tf_prefix + "get_robot_software_version", "get_version_bugfix", &get_robot_software_version_bugfix_)); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "get_robot_software_version", "get_version_minor", -+ &get_robot_software_version_minor_)); - +- - state_interfaces.emplace_back(hardware_interface::StateInterface( - tf_prefix + "get_robot_software_version", "get_version_build", &get_robot_software_version_build_)); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "get_robot_software_version", "get_version_bugfix", -+ &get_robot_software_version_bugfix_)); - +- - state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + TOOL_CONTACT_GPIO, "tool_contact_result", &tool_contact_result_)); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "get_robot_software_version", "get_version_build", -+ &get_robot_software_version_build_)); - - state_interfaces.emplace_back( +- +- state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + TOOL_CONTACT_GPIO, "tool_contact_state", &tool_contact_state_)); -+ LinkedInterface(tf_prefix + TOOL_CONTACT_GPIO, "tool_contact_result", &tool_contact_result_)); - +- - state_interfaces.emplace_back(hardware_interface::StateInterface(tf_prefix + "payload", "mass", &rtde_payload_mass_)); - state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "payload", "cog.x", &rtde_payload_cog_[0])); - state_interfaces.emplace_back( +- state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "payload", "cog.y", &rtde_payload_cog_[1])); - state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "payload", "cog.z", &rtde_payload_cog_[2])); @@ -532,90 +606,117 @@ index b9d3649..eadff03 100644 - hardware_interface::StateInterface(tf_prefix + "payload", "inertia.izz", &rtde_payload_inertia_[2])); - state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "payload", "inertia.ixy", &rtde_payload_inertia_[3])); -+ LinkedInterface(tf_prefix + TOOL_CONTACT_GPIO, "tool_contact_state", &tool_contact_state_)); -+ -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "mass", &rtde_payload_mass_)); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "cog.x", &rtde_payload_cog_[0])); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "cog.y", &rtde_payload_cog_[1])); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "cog.z", &rtde_payload_cog_[2])); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "inertia.ixx", &rtde_payload_inertia_[0])); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "inertia.iyy", &rtde_payload_inertia_[1])); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "inertia.izz", &rtde_payload_inertia_[2])); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "inertia.ixy", &rtde_payload_inertia_[3])); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "inertia.ixz", &rtde_payload_inertia_[4])); -+ state_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "inertia.iyz", &rtde_payload_inertia_[5])); -+ // Motion primitives stuff - state_interfaces.emplace_back( +- state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "payload", "inertia.ixz", &rtde_payload_inertia_[4])); -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "execution_status", &hw_moprim_states_[0])); - state_interfaces.emplace_back( +- state_interfaces.emplace_back( - hardware_interface::StateInterface(tf_prefix + "payload", "inertia.iyz", &rtde_payload_inertia_[5])); - // Motion primitives stuff - state_interfaces.emplace_back(hardware_interface::StateInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, - "execution_status", &hw_moprim_states_[0])); - state_interfaces.emplace_back(hardware_interface::StateInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, - "ready_for_new_primitive", &hw_moprim_states_[1])); -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "ready_for_new_primitive", &hw_moprim_states_[1])); - - return state_interfaces; +- +- return state_interfaces; ++ state_push_list_.emplace_back(state_handle(tf_prefix + "gpio/tool_analog_input_type_" + std::to_string(i)), ++ &tool_analog_input_types_copy_[i]); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "gpio/tool_analog_input_" + std::to_string(i)), ++ &tool_analog_input_[i]); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "gpio/standard_analog_input_" + std::to_string(i)), ++ &standard_analog_input_[i]); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "gpio/standard_analog_output_" + std::to_string(i)), ++ &standard_analog_output_[i]); ++ } ++ state_push_list_.emplace_back(state_handle(tf_prefix + "gpio/tool_output_voltage"), &tool_output_voltage_copy_); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "gpio/robot_mode"), &robot_mode_copy_); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "gpio/safety_mode"), &safety_mode_copy_); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "gpio/tool_mode"), &tool_mode_copy_); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "gpio/tool_output_current"), &tool_output_current_); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "gpio/tool_temperature"), &tool_temperature_); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "system_interface/initialized"), ++ &system_interface_initialized_); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "gpio/program_running"), &robot_program_running_copy_); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "tcp_pose/position.x"), &urcl_tcp_pose_[0]); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "tcp_pose/position.y"), &urcl_tcp_pose_[1]); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "tcp_pose/position.z"), &urcl_tcp_pose_[2]); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "tcp_pose/orientation.x"), &tcp_rotation_buffer.x); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "tcp_pose/orientation.y"), &tcp_rotation_buffer.y); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "tcp_pose/orientation.z"), &tcp_rotation_buffer.z); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "tcp_pose/orientation.w"), &tcp_rotation_buffer.w); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "get_robot_software_version/get_version_major"), ++ &get_robot_software_version_major_); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "get_robot_software_version/get_version_minor"), ++ &get_robot_software_version_minor_); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "get_robot_software_version/get_version_bugfix"), ++ &get_robot_software_version_bugfix_); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "get_robot_software_version/get_version_build"), ++ &get_robot_software_version_build_); ++ state_push_list_.emplace_back(state_handle(tf_prefix + TOOL_CONTACT_GPIO + "/tool_contact_state"), ++ &tool_contact_state_); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "payload/mass"), &rtde_payload_mass_); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "payload/cog.x"), &rtde_payload_cog_[0]); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "payload/cog.y"), &rtde_payload_cog_[1]); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "payload/cog.z"), &rtde_payload_cog_[2]); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "payload/inertia.ixx"), &rtde_payload_inertia_[0]); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "payload/inertia.iyy"), &rtde_payload_inertia_[1]); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "payload/inertia.izz"), &rtde_payload_inertia_[2]); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "payload/inertia.ixy"), &rtde_payload_inertia_[3]); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "payload/inertia.ixz"), &rtde_payload_inertia_[4]); ++ state_push_list_.emplace_back(state_handle(tf_prefix + "payload/inertia.iyz"), &rtde_payload_inertia_[5]); ++ ++ moprim_state_handles_ = { state_handle(tf_prefix + HW_IF_MOTION_PRIMITIVES + "/execution_status"), ++ state_handle(tf_prefix + HW_IF_MOTION_PRIMITIVES + "/ready_for_new_primitive") }; ++ ++ tool_contact_result_handle_ = state_handle(tf_prefix + TOOL_CONTACT_GPIO + "/tool_contact_result"); ++ tool_contact_state_handle_ = state_handle(tf_prefix + TOOL_CONTACT_GPIO + "/tool_contact_state"); ++ ++ passthrough_transfer_state_state_handle_ = state_handle(tf_prefix + PASSTHROUGH_GPIO + "/transfer_state"); ++ passthrough_transfer_sequence_state_handle_ = state_handle(tf_prefix + PASSTHROUGH_GPIO + "/transfer_sequence"); ++ passthrough_abort_state_handle_ = state_handle(tf_prefix + PASSTHROUGH_GPIO + "/abort"); } -std::vector URPositionHardwareInterface::export_command_interfaces() -+std::vector URPositionHardwareInterface::export_command_links() ++void URPositionHardwareInterface::resolve_command_interface_handles() { - auto has_cmd_interface = [](const hardware_interface::ComponentInfo& joint, const std::string& interface_name) { - auto it = -@@ -384,17 +612,17 @@ std::vector URPositionHardwareInterface::e - [&interface_name](const hardware_interface::InterfaceInfo& obj) { return obj.name == interface_name; }); - return it != joint.command_interfaces.end(); - }; +- auto has_cmd_interface = [](const hardware_interface::ComponentInfo& joint, const std::string& interface_name) { +- auto it = +- find_if(joint.command_interfaces.begin(), joint.command_interfaces.end(), +- [&interface_name](const hardware_interface::InterfaceInfo& obj) { return obj.name == interface_name; }); +- return it != joint.command_interfaces.end(); +- }; - std::vector command_interfaces; -+ std::vector command_interfaces; - for (size_t i = 0; i < info_.joints.size(); ++i) { +- for (size_t i = 0; i < info_.joints.size(); ++i) { - command_interfaces.emplace_back(hardware_interface::CommandInterface( - info_.joints[i].name, hardware_interface::HW_IF_POSITION, &urcl_position_commands_[i])); -+ command_interfaces.emplace_back( -+ LinkedInterface(info_.joints[i].name, hardware_interface::HW_IF_POSITION, &urcl_position_commands_[i])); - +- - command_interfaces.emplace_back(hardware_interface::CommandInterface( - info_.joints[i].name, hardware_interface::HW_IF_VELOCITY, &urcl_velocity_commands_[i])); -+ command_interfaces.emplace_back( -+ LinkedInterface(info_.joints[i].name, hardware_interface::HW_IF_VELOCITY, &urcl_velocity_commands_[i])); - - if (has_cmd_interface(info_.joints[i], hardware_interface::HW_IF_EFFORT)) { +- +- if (has_cmd_interface(info_.joints[i], hardware_interface::HW_IF_EFFORT)) { - command_interfaces.emplace_back(hardware_interface::CommandInterface( - info_.joints[i].name, hardware_interface::HW_IF_EFFORT, &urcl_torque_commands_[i])); -+ command_interfaces.emplace_back( -+ LinkedInterface(info_.joints[i].name, hardware_interface::HW_IF_EFFORT, &urcl_torque_commands_[i])); - } - } - // Obtain the tf_prefix from the urdf so that we can have the general interface multiple times -@@ -402,60 +630,49 @@ std::vector URPositionHardwareInterface::e - // command interface in info_ and match them accordingly +- } +- } +- // Obtain the tf_prefix from the urdf so that we can have the general interface multiple times +- // NOTE using the tf_prefix at this point is some kind of workaround. One should actually go through the list of gpio +- // command interface in info_ and match them accordingly ++ // Throws if the description does not declare an interface this driver reads. Joint effort commands are optional. ++ const auto command_handle = [this](const std::string& name) { return get_command_interface_handle(name); }; const std::string tf_prefix = info_.hardware_parameters.at("tf_prefix"); - command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "gpio", "io_async_success", &io_async_success_)); -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "io_async_success", &io_async_success_)); - +- - command_interfaces.emplace_back(hardware_interface::CommandInterface( - tf_prefix + "speed_scaling", "target_speed_fraction_cmd", &target_speed_fraction_cmd_)); -+ command_interfaces.emplace_back( -+ LinkedInterface(tf_prefix + "speed_scaling", "target_speed_fraction_cmd", &target_speed_fraction_cmd_)); - +- - command_interfaces.emplace_back(hardware_interface::CommandInterface( - tf_prefix + "speed_scaling", "target_speed_fraction_async_success", &scaling_async_success_)); -+ command_interfaces.emplace_back( -+ LinkedInterface(tf_prefix + "speed_scaling", "target_speed_fraction_async_success", &scaling_async_success_)); - +- - command_interfaces.emplace_back(hardware_interface::CommandInterface( - tf_prefix + "resend_robot_program", "resend_robot_program_cmd", &resend_robot_program_cmd_)); -+ command_interfaces.emplace_back( -+ LinkedInterface(tf_prefix + "resend_robot_program", "resend_robot_program_cmd", &resend_robot_program_cmd_)); - +- - command_interfaces.emplace_back(hardware_interface::CommandInterface( -+ command_interfaces.emplace_back(LinkedInterface( - tf_prefix + "resend_robot_program", "resend_robot_program_async_success", &resend_robot_program_async_success_)); +- tf_prefix + "resend_robot_program", "resend_robot_program_async_success", &resend_robot_program_async_success_)); - command_interfaces.emplace_back(hardware_interface::CommandInterface( - tf_prefix + "hand_back_control", "hand_back_control_cmd", &hand_back_control_cmd_)); - @@ -633,25 +734,9 @@ index b9d3649..eadff03 100644 - hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.ixx", &payload_inertia_[0])); - command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.iyy", &payload_inertia_[1])); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.izz", &payload_inertia_[2])); -+ LinkedInterface(tf_prefix + "hand_back_control", "hand_back_control_cmd", &hand_back_control_cmd_)); -+ -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "hand_back_control", "hand_back_control_async_success", -+ &hand_back_control_async_success_)); -+ -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "mass", &payload_mass_)); -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "cog.x", &payload_center_of_gravity_[0])); -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "cog.y", &payload_center_of_gravity_[1])); -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "cog.z", &payload_center_of_gravity_[2])); -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "inertia.ixx", &payload_inertia_[0])); -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "inertia.iyy", &payload_inertia_[1])); -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "inertia.izz", &payload_inertia_[2])); -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "inertia.ixy", &payload_inertia_[3])); -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "inertia.ixz", &payload_inertia_[4])); -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "inertia.iyz", &payload_inertia_[5])); -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "payload", "transition_time", &payload_transition_time_)); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.ixy", &payload_inertia_[3])); - command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "payload", "inertia.ixz", &payload_inertia_[4])); @@ -661,35 +746,49 @@ index b9d3649..eadff03 100644 - hardware_interface::CommandInterface(tf_prefix + "payload", "transition_time", &payload_transition_time_)); - command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "payload", "payload_async_success", &payload_async_success_)); -+ LinkedInterface(tf_prefix + "payload", "payload_async_success", &payload_async_success_)); - - for (size_t i = 0; i < friction_model_viscous_.size(); ++i) { +- +- for (size_t i = 0; i < friction_model_viscous_.size(); ++i) { - command_interfaces.emplace_back(hardware_interface::CommandInterface( - tf_prefix + "friction_model", "viscous_" + std::to_string(i), &friction_model_viscous_[i])); -+ command_interfaces.emplace_back( -+ LinkedInterface(tf_prefix + "friction_model", "viscous_" + std::to_string(i), &friction_model_viscous_[i])); - } - for (size_t i = 0; i < friction_model_coulomb_.size(); ++i) { +- } +- for (size_t i = 0; i < friction_model_coulomb_.size(); ++i) { - command_interfaces.emplace_back(hardware_interface::CommandInterface( - tf_prefix + "friction_model", "coulomb_" + std::to_string(i), &friction_model_coulomb_[i])); -+ command_interfaces.emplace_back( -+ LinkedInterface(tf_prefix + "friction_model", "coulomb_" + std::to_string(i), &friction_model_coulomb_[i])); - } +- } - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + "friction_model", "async_success", - &friction_model_async_success_)); -+ command_interfaces.emplace_back( -+ LinkedInterface(tf_prefix + "friction_model", "async_success", &friction_model_async_success_)); - - command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "task_frame_x", &force_mode_task_frame_[0]); - command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "task_frame_y", &force_mode_task_frame_[1]); -@@ -487,146 +704,134 @@ std::vector URPositionHardwareInterface::e - command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "damping", &force_mode_damping_); - command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "gain_scaling", &force_mode_gain_scaling_); - -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "gravity", "x", &gravity_vector_[0])); -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "gravity", "y", &gravity_vector_[1])); -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "gravity", "z", &gravity_vector_[2])); - command_interfaces.emplace_back( +- +- command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "task_frame_x", &force_mode_task_frame_[0]); +- command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "task_frame_y", &force_mode_task_frame_[1]); +- command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "task_frame_z", &force_mode_task_frame_[2]); +- command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "task_frame_rx", &force_mode_task_frame_[3]); +- command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "task_frame_ry", &force_mode_task_frame_[4]); +- command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "task_frame_rz", &force_mode_task_frame_[5]); +- command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "selection_vector_x", &force_mode_selection_vector_[0]); +- command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "selection_vector_y", &force_mode_selection_vector_[1]); +- command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "selection_vector_z", &force_mode_selection_vector_[2]); +- command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "selection_vector_rx", &force_mode_selection_vector_[3]); +- command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "selection_vector_ry", &force_mode_selection_vector_[4]); +- command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "selection_vector_rz", &force_mode_selection_vector_[5]); +- command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "wrench_x", &force_mode_wrench_[0]); +- command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "wrench_y", &force_mode_wrench_[1]); +- command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "wrench_z", &force_mode_wrench_[2]); +- command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "wrench_rx", &force_mode_wrench_[3]); +- command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "wrench_ry", &force_mode_wrench_[4]); +- command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "wrench_rz", &force_mode_wrench_[5]); +- command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "type", &force_mode_type_); +- command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "limits_x", &force_mode_limits_[0]); +- command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "limits_y", &force_mode_limits_[1]); +- command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "limits_z", &force_mode_limits_[2]); +- command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "limits_rx", &force_mode_limits_[3]); +- command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "limits_ry", &force_mode_limits_[4]); +- command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "limits_rz", &force_mode_limits_[5]); +- command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "force_mode_async_success", &force_mode_async_success_); +- command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "disable_cmd", &force_mode_disable_cmd_); +- command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "damping", &force_mode_damping_); +- command_interfaces.emplace_back(tf_prefix + FORCE_MODE_GPIO, "gain_scaling", &force_mode_gain_scaling_); +- +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "gravity", "x", &gravity_vector_[0])); - command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "gravity", "y", &gravity_vector_[1])); @@ -697,49 +796,48 @@ index b9d3649..eadff03 100644 - hardware_interface::CommandInterface(tf_prefix + "gravity", "z", &gravity_vector_[2])); - command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "gravity", "gravity_async_success", &gravity_async_success_)); -+ LinkedInterface(tf_prefix + "gravity", "gravity_async_success", &gravity_async_success_)); ++ joint_position_command_handles_.resize(info_.joints.size()); ++ joint_velocity_command_handles_.resize(info_.joints.size()); ++ joint_effort_command_handles_.resize(info_.joints.size()); ++ for (size_t i = 0; i < info_.joints.size(); ++i) { ++ const std::string& name = info_.joints[i].name; ++ joint_position_command_handles_[i] = command_handle(name + "/" + hardware_interface::HW_IF_POSITION); ++ joint_velocity_command_handles_[i] = command_handle(name + "/" + hardware_interface::HW_IF_VELOCITY); ++ const std::string effort_name = name + "/" + hardware_interface::HW_IF_EFFORT; ++ joint_effort_command_handles_[i] = has_command(effort_name) ? command_handle(effort_name) : nullptr; ++ } ++ io_async_success_handle_ = command_handle(tf_prefix + "gpio/io_async_success"); for (size_t i = 0; i < 18; ++i) { - command_interfaces.emplace_back(hardware_interface::CommandInterface( -+ command_interfaces.emplace_back(LinkedInterface( - tf_prefix + "gpio", "standard_digital_output_cmd_" + std::to_string(i), &standard_dig_out_bits_cmd_[i])); +- tf_prefix + "gpio", "standard_digital_output_cmd_" + std::to_string(i), &standard_dig_out_bits_cmd_[i])); ++ standard_dig_out_bits_cmd_handles_[i] = ++ command_handle(tf_prefix + "gpio/standard_digital_output_cmd_" + std::to_string(i)); } - +- for (size_t i = 0; i < 2; ++i) { - command_interfaces.emplace_back(hardware_interface::CommandInterface( -+ command_interfaces.emplace_back(LinkedInterface( - tf_prefix + "gpio", "standard_analog_output_cmd_" + std::to_string(i), &standard_analog_output_cmd_[i])); - } - command_interfaces.emplace_back( +- tf_prefix + "gpio", "standard_analog_output_cmd_" + std::to_string(i), &standard_analog_output_cmd_[i])); +- } +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "gpio", "analog_output_domain_cmd", &analog_output_domain_cmd_)); -+ LinkedInterface(tf_prefix + "gpio", "analog_output_domain_cmd", &analog_output_domain_cmd_)); -+ -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + "gpio", "tool_voltage_cmd", &tool_voltage_cmd_)); -+ -+ command_interfaces.emplace_back( -+ LinkedInterface(tf_prefix + "zero_ftsensor", "zero_ftsensor_cmd", &zero_ftsensor_cmd_)); - - command_interfaces.emplace_back( +- +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "gpio", "tool_voltage_cmd", &tool_voltage_cmd_)); -+ LinkedInterface(tf_prefix + "zero_ftsensor", "zero_ftsensor_async_success", &zero_ftsensor_async_success_)); - - command_interfaces.emplace_back( +- +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + "zero_ftsensor", "zero_ftsensor_cmd", &zero_ftsensor_cmd_)); -+ LinkedInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "async_success", &freedrive_mode_async_success_)); - +- - command_interfaces.emplace_back(hardware_interface::CommandInterface( - tf_prefix + "zero_ftsensor", "zero_ftsensor_async_success", &zero_ftsensor_async_success_)); -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "enable", &freedrive_mode_enable_)); - +- - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "async_success", - &freedrive_mode_async_success_)); -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "abort", &freedrive_mode_abort_)); - - command_interfaces.emplace_back( +- +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "enable", &freedrive_mode_enable_)); -+ LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, "transfer_state", &passthrough_trajectory_transfer_state_)); - - command_interfaces.emplace_back( +- +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + FREEDRIVE_MODE_GPIO, "abort", &freedrive_mode_abort_)); - - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + PASSTHROUGH_GPIO, "transfer_state", @@ -747,131 +845,159 @@ index b9d3649..eadff03 100644 - - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + PASSTHROUGH_GPIO, "time_from_start", - &passthrough_trajectory_time_from_start_)); -+ LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, "time_from_start", &passthrough_trajectory_time_from_start_)); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + PASSTHROUGH_GPIO, "abort", &passthrough_trajectory_abort_)); -+ LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, "abort", &passthrough_trajectory_abort_)); ++ standard_analog_output_cmd_handles_[i] = ++ command_handle(tf_prefix + "gpio/standard_analog_output_cmd_" + std::to_string(i)); ++ } ++ analog_output_domain_cmd_handle_ = command_handle(tf_prefix + "gpio/analog_output_domain_cmd"); ++ tool_voltage_cmd_handle_ = command_handle(tf_prefix + "gpio/tool_voltage_cmd"); ++ ++ target_speed_fraction_cmd_handle_ = command_handle(tf_prefix + "speed_scaling/target_speed_fraction_cmd"); ++ scaling_async_success_handle_ = command_handle(tf_prefix + "speed_scaling/target_speed_fraction_async_success"); ++ ++ resend_robot_program_cmd_handle_ = command_handle(tf_prefix + "resend_robot_program/resend_robot_program_cmd"); ++ resend_robot_program_async_success_handle_ = command_handle(tf_prefix + "resend_robot_program/" ++ "resend_robot_program_async_success"); ++ ++ hand_back_control_cmd_handle_ = command_handle(tf_prefix + "hand_back_control/hand_back_control_cmd"); ++ hand_back_control_async_success_handle_ = command_handle(tf_prefix + "hand_back_control/" ++ "hand_back_control_async_success"); ++ ++ payload_mass_handle_ = command_handle(tf_prefix + "payload/mass"); ++ payload_cog_handles_ = { command_handle(tf_prefix + "payload/cog.x"), command_handle(tf_prefix + "payload/cog.y"), ++ command_handle(tf_prefix + "payload/cog.z") }; ++ payload_inertia_handles_ = { ++ command_handle(tf_prefix + "payload/inertia.ixx"), command_handle(tf_prefix + "payload/inertia.iyy"), ++ command_handle(tf_prefix + "payload/inertia.izz"), command_handle(tf_prefix + "payload/inertia.ixy"), ++ command_handle(tf_prefix + "payload/inertia.ixz"), command_handle(tf_prefix + "payload/inertia.iyz") ++ }; ++ payload_transition_time_handle_ = command_handle(tf_prefix + "payload/transition_time"); ++ payload_async_success_handle_ = command_handle(tf_prefix + "payload/payload_async_success"); - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + PASSTHROUGH_GPIO, "trajectory_size", - &passthrough_trajectory_size_)); -+ command_interfaces.emplace_back( -+ LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, "trajectory_size", &passthrough_trajectory_size_)); ++ gravity_vector_handles_ = { command_handle(tf_prefix + "gravity/x"), command_handle(tf_prefix + "gravity/y"), ++ command_handle(tf_prefix + "gravity/z") }; ++ gravity_async_success_handle_ = command_handle(tf_prefix + "gravity/gravity_async_success"); for (size_t i = 0; i < 6; ++i) { - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + PASSTHROUGH_GPIO, - "setpoint_positions_" + std::to_string(i), - &passthrough_trajectory_positions_[i])); -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, -+ "setpoint_positions_" + std::to_string(i), -+ &passthrough_trajectory_positions_[i])); ++ friction_viscous_handles_[i] = command_handle(tf_prefix + "friction_model/viscous_" + std::to_string(i)); ++ friction_coulomb_handles_[i] = command_handle(tf_prefix + "friction_model/coulomb_" + std::to_string(i)); ++ } ++ friction_async_success_handle_ = command_handle(tf_prefix + "friction_model/async_success"); ++ ++ zero_ftsensor_cmd_handle_ = command_handle(tf_prefix + "zero_ftsensor/zero_ftsensor_cmd"); ++ zero_ftsensor_async_success_handle_ = command_handle(tf_prefix + "zero_ftsensor/zero_ftsensor_async_success"); ++ ++ freedrive_enable_handle_ = command_handle(tf_prefix + FREEDRIVE_MODE_GPIO + "/enable"); ++ freedrive_abort_handle_ = command_handle(tf_prefix + FREEDRIVE_MODE_GPIO + "/abort"); ++ freedrive_async_success_handle_ = command_handle(tf_prefix + FREEDRIVE_MODE_GPIO + "/async_success"); ++ ++ const std::array axes = { "x", "y", "z", "rx", "ry", "rz" }; ++ for (size_t i = 0; i < axes.size(); ++i) { ++ const std::string force_mode_prefix = tf_prefix + FORCE_MODE_GPIO + "/"; ++ force_mode_task_frame_handles_[i] = command_handle(force_mode_prefix + "task_frame_" + axes[i]); ++ force_mode_selection_vector_handles_[i] = command_handle(force_mode_prefix + "selection_vector_" + axes[i]); ++ force_mode_wrench_handles_[i] = command_handle(force_mode_prefix + "wrench_" + axes[i]); ++ force_mode_limits_handles_[i] = command_handle(force_mode_prefix + "limits_" + axes[i]); ++ } ++ force_mode_type_handle_ = command_handle(tf_prefix + FORCE_MODE_GPIO + "/type"); ++ force_mode_async_success_handle_ = command_handle(tf_prefix + FORCE_MODE_GPIO + "/force_mode_async_success"); ++ force_mode_disable_cmd_handle_ = command_handle(tf_prefix + FORCE_MODE_GPIO + "/disable_cmd"); ++ force_mode_damping_handle_ = command_handle(tf_prefix + FORCE_MODE_GPIO + "/damping"); ++ force_mode_gain_scaling_handle_ = command_handle(tf_prefix + FORCE_MODE_GPIO + "/gain_scaling"); ++ ++ passthrough_transfer_state_cmd_handle_ = command_handle(tf_prefix + PASSTHROUGH_GPIO + "/transfer_state"); ++ passthrough_transfer_sequence_cmd_handle_ = command_handle(tf_prefix + PASSTHROUGH_GPIO + "/transfer_sequence"); ++ passthrough_time_from_start_handle_ = command_handle(tf_prefix + PASSTHROUGH_GPIO + "/time_from_start"); ++ passthrough_abort_cmd_handle_ = command_handle(tf_prefix + PASSTHROUGH_GPIO + "/abort"); ++ passthrough_size_handle_ = command_handle(tf_prefix + PASSTHROUGH_GPIO + "/trajectory_size"); ++ for (size_t i = 0; i < 6; ++i) { ++ passthrough_positions_handles_[i] = ++ command_handle(tf_prefix + PASSTHROUGH_GPIO + "/setpoint_positions_" + std::to_string(i)); ++ passthrough_velocities_handles_[i] = ++ command_handle(tf_prefix + PASSTHROUGH_GPIO + "/setpoint_velocities_" + std::to_string(i)); ++ passthrough_accelerations_handles_[i] = ++ command_handle(tf_prefix + PASSTHROUGH_GPIO + "/setpoint_accelerations_" + std::to_string(i)); } - for (size_t i = 0; i < 6; ++i) { +- for (size_t i = 0; i < 6; ++i) { - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + PASSTHROUGH_GPIO, - "setpoint_velocities_" + std::to_string(i), - &passthrough_trajectory_velocities_[i])); -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, -+ "setpoint_velocities_" + std::to_string(i), -+ &passthrough_trajectory_velocities_[i])); ++ const std::array twist_suffixes = { ++ "linear_velocity_x", "linear_velocity_y", "linear_velocity_z", ++ "angular_velocity_x", "angular_velocity_y", "angular_velocity_z" ++ }; ++ for (size_t i = 0; i < twist_suffixes.size(); ++i) { ++ twist_command_handles_[i] = command_handle(tf_prefix + TWIST_GPIO + "/" + twist_suffixes[i]); } - for (size_t i = 0; i < 6; ++i) { +- for (size_t i = 0; i < 6; ++i) { - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + PASSTHROUGH_GPIO, - "setpoint_accelerations_" + std::to_string(i), - &passthrough_trajectory_accelerations_[i])); -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + PASSTHROUGH_GPIO, -+ "setpoint_accelerations_" + std::to_string(i), -+ &passthrough_trajectory_accelerations_[i])); - } - - command_interfaces.emplace_back( +- } +- +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + TWIST_GPIO, "linear_velocity_x", &urcl_twist_commands_[0])); -+ LinkedInterface(tf_prefix + TWIST_GPIO, "linear_velocity_x", &urcl_twist_commands_[0])); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + TWIST_GPIO, "linear_velocity_y", &urcl_twist_commands_[1])); -+ LinkedInterface(tf_prefix + TWIST_GPIO, "linear_velocity_y", &urcl_twist_commands_[1])); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + TWIST_GPIO, "linear_velocity_z", &urcl_twist_commands_[2])); -+ LinkedInterface(tf_prefix + TWIST_GPIO, "linear_velocity_z", &urcl_twist_commands_[2])); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + TWIST_GPIO, "angular_velocity_x", &urcl_twist_commands_[3])); -+ LinkedInterface(tf_prefix + TWIST_GPIO, "angular_velocity_x", &urcl_twist_commands_[3])); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + TWIST_GPIO, "angular_velocity_y", &urcl_twist_commands_[4])); -+ LinkedInterface(tf_prefix + TWIST_GPIO, "angular_velocity_y", &urcl_twist_commands_[4])); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + TWIST_GPIO, "angular_velocity_z", &urcl_twist_commands_[5])); -+ LinkedInterface(tf_prefix + TWIST_GPIO, "angular_velocity_z", &urcl_twist_commands_[5])); - +- - command_interfaces.emplace_back(hardware_interface::CommandInterface( - tf_prefix + TOOL_CONTACT_GPIO, "tool_contact_set_state", &tool_contact_set_state_)); -+ command_interfaces.emplace_back( -+ LinkedInterface(tf_prefix + TOOL_CONTACT_GPIO, "tool_contact_set_state", &tool_contact_set_state_)); ++ tool_contact_set_state_handle_ = command_handle(tf_prefix + TOOL_CONTACT_GPIO + "/tool_contact_set_state"); - // Motion primitives stuff - // Command for motion type (motion_type) +- // Motion primitives stuff +- // Command for motion type (motion_type) - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, - "motion_type", &hw_moprim_commands_[0])); -+ command_interfaces.emplace_back( -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "motion_type", &hw_moprim_commands_[0])); - // Joint position commands (q1, q2, ..., q6) -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q1", &hw_moprim_commands_[1])); -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q2", &hw_moprim_commands_[2])); -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q3", &hw_moprim_commands_[3])); -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q4", &hw_moprim_commands_[4])); -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q5", &hw_moprim_commands_[5])); -+ command_interfaces.emplace_back(LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q6", &hw_moprim_commands_[6])); -+ // Position commands (pos_x, pos_y, pos_z, pos_qx, pos_qy, pos_qz, pos_qz) - command_interfaces.emplace_back( +- // Joint position commands (q1, q2, ..., q6) +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q1", &hw_moprim_commands_[1])); -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_x", &hw_moprim_commands_[7])); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q2", &hw_moprim_commands_[2])); -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_y", &hw_moprim_commands_[8])); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q3", &hw_moprim_commands_[3])); -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_z", &hw_moprim_commands_[9])); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q4", &hw_moprim_commands_[4])); -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_qx", &hw_moprim_commands_[10])); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q5", &hw_moprim_commands_[5])); -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_qy", &hw_moprim_commands_[11])); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "q6", &hw_moprim_commands_[6])); - // Position commands (pos_x, pos_y, pos_z, pos_qx, pos_qy, pos_qz, pos_qz) -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_qz", &hw_moprim_commands_[12])); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_x", &hw_moprim_commands_[7])); -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_qw", &hw_moprim_commands_[13])); -+ // Via Position commands for circula motion - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_y", &hw_moprim_commands_[8])); -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_via_x", &hw_moprim_commands_[14])); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_z", &hw_moprim_commands_[9])); -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_via_y", &hw_moprim_commands_[15])); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_qx", &hw_moprim_commands_[10])); -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_via_z", &hw_moprim_commands_[16])); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_qy", &hw_moprim_commands_[11])); -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_via_qx", &hw_moprim_commands_[17])); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_qz", &hw_moprim_commands_[12])); -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_via_qy", &hw_moprim_commands_[18])); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_qw", &hw_moprim_commands_[13])); - // Via Position commands for circula motion -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_via_qz", &hw_moprim_commands_[19])); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_via_x", &hw_moprim_commands_[14])); -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_via_qw", &hw_moprim_commands_[20])); -+ // Other command parameters (blend_radius, velocity, acceleration, move_time) - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_via_y", &hw_moprim_commands_[15])); -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "blend_radius", &hw_moprim_commands_[21])); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "pos_via_z", &hw_moprim_commands_[16])); - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, - "pos_via_qx", &hw_moprim_commands_[17])); @@ -884,134 +1010,2105 @@ index b9d3649..eadff03 100644 - // Other command parameters (blend_radius, velocity, acceleration, move_time) - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, - "blend_radius", &hw_moprim_commands_[21])); -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "velocity", &hw_moprim_commands_[22])); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "velocity", &hw_moprim_commands_[22])); - command_interfaces.emplace_back(hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, - "acceleration", &hw_moprim_commands_[23])); -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "acceleration", &hw_moprim_commands_[23])); - command_interfaces.emplace_back( +- command_interfaces.emplace_back( - hardware_interface::CommandInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "move_time", &hw_moprim_commands_[24])); -+ LinkedInterface(tf_prefix + HW_IF_MOTION_PRIMITIVES, "move_time", &hw_moprim_commands_[24])); - - return command_interfaces; +- +- return command_interfaces; ++ const std::array moprim_suffixes = { ++ "motion_type", "q1", "q2", "q3", "q4", "q5", "q6", ++ "pos_x", "pos_y", "pos_z", "pos_qx", "pos_qy", "pos_qz", "pos_qw", ++ "pos_via_x", "pos_via_y", "pos_via_z", "pos_via_qx", "pos_via_qy", "pos_via_qz", "pos_via_qw", ++ "blend_radius", "velocity", "acceleration", "move_time" ++ }; ++ for (size_t i = 0; i < moprim_suffixes.size(); ++i) { ++ moprim_command_handles_[i] = command_handle(tf_prefix + HW_IF_MOTION_PRIMITIVES + "/" + moprim_suffixes[i]); ++ } } -@@ -981,8 +1186,8 @@ void URPositionHardwareInterface::asyncThread() - } + + hardware_interface::CallbackReturn +@@ -849,6 +687,14 @@ URPositionHardwareInterface::on_configure(const rclcpp_lifecycle::State& previou + ur_driver_->registerToolContactResultCallback( + std::bind(&URPositionHardwareInterface::tool_contact_callback, this, std::placeholders::_1)); + ++ // Command handles already exist. Initialize every interface whose initial value does not depend on ++ // robot state here, outside the real-time loop. Position commands are seeded later from the first ++ // joint-state sample. ++ initializeCommandInterfaces(); ++ ++ int throwaway; ++ std::ignore = trajectory_result_queue_.get_latest(throwaway); // Clear any initial value in the queue ++ + return hardware_interface::CallbackReturn::SUCCESS; } --hardware_interface::return_type URPositionHardwareInterface::read(const rclcpp::Time& time, -- const rclcpp::Duration& period) -+hardware_interface::return_type URPositionHardwareInterface::read_impl(const rclcpp::Time& time, -+ const rclcpp::Duration& period) - { - // We want to start the rtde comm the latest point possible due to the delay times arising from setting up the - // communication with multiple arms -@@ -1067,13 +1272,13 @@ hardware_interface::return_type URPositionHardwareInterface::read(const rclcpp:: - urcl_position_commands_ = urcl_position_commands_old_ = urcl_joint_positions_; - urcl_velocity_commands_ = { { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } }; - urcl_torque_commands_ = { { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } }; +@@ -1012,19 +858,19 @@ hardware_interface::return_type URPositionHardwareInterface::read(const rclcpp:: + } + + if (first_pass_ && !initialized_) { +- initAsyncIO(); +- // initialize commands +- urcl_position_commands_ = urcl_position_commands_old_ = urcl_joint_positions_; +- urcl_velocity_commands_ = { { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } }; +- urcl_torque_commands_ = { { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } }; - target_speed_fraction_cmd_ = NO_NEW_CMD_; - resend_robot_program_cmd_ = NO_NEW_CMD_; - zero_ftsensor_cmd_ = NO_NEW_CMD_; - hand_back_control_cmd_ = NO_NEW_CMD_; -+ set_async(target_speed_fraction_cmd_, NO_NEW_CMD_); -+ set_async(resend_robot_program_cmd_, NO_NEW_CMD_); -+ set_async(zero_ftsensor_cmd_, NO_NEW_CMD_); -+ set_async(hand_back_control_cmd_, NO_NEW_CMD_); - force_mode_disable_cmd_ = NO_NEW_CMD_; +- force_mode_disable_cmd_ = NO_NEW_CMD_; - freedrive_mode_abort_ = NO_NEW_CMD_; - freedrive_mode_enable_ = NO_NEW_CMD_; -+ set_async(freedrive_mode_abort_, NO_NEW_CMD_); -+ set_async(freedrive_mode_enable_, NO_NEW_CMD_); - initialized_ = true; +- initialized_ = true; ++ // Position commands must match the measured joint state. This stays in read() because the ++ // sample is not available during on_configure(), and the write has to stay nonblocking. ++ urcl_position_commands_ = urcl_joint_positions_; ++ bool position_commands_initialized = true; ++ for (size_t i = 0; i < info_.joints.size(); ++i) { ++ position_commands_initialized &= ++ set_command_nonblocking(joint_position_command_handles_[i], urcl_position_commands_[i]); ++ } ++ initialized_ = position_commands_initialized; ++ if (!initialized_) { ++ RCLCPP_WARN_THROTTLE(get_logger(), *get_clock(), 1000, ++ "Could not initialize position command interfaces without blocking. Retrying."); ++ } } -@@ -1091,8 +1296,8 @@ hardware_interface::return_type URPositionHardwareInterface::read(const rclcpp:: - return hardware_interface::return_type::OK; - } + updateNonDoubleValues(); +@@ -1033,6 +879,31 @@ hardware_interface::return_type URPositionHardwareInterface::read(const rclcpp:: + hw_moprim_states_[0] = static_cast(current_moprim_execution_status_.load()); + hw_moprim_states_[1] = static_cast(ready_for_new_moprim_); --hardware_interface::return_type URPositionHardwareInterface::write(const rclcpp::Time& time, -- const rclcpp::Duration& period) -+hardware_interface::return_type URPositionHardwareInterface::write_impl(const rclcpp::Time& time, -+ const rclcpp::Duration& period) ++ bool states_updated = true; ++ for (size_t i = 0; i < info_.joints.size(); ++i) { ++ states_updated &= set_state_nonblocking(joint_position_state_handles_[i], urcl_joint_positions_[i]); ++ states_updated &= set_state_nonblocking(joint_velocity_state_handles_[i], urcl_joint_velocities_[i]); ++ states_updated &= set_state_nonblocking(joint_effort_state_handles_[i], urcl_joint_efforts_[i]); ++ } ++ for (const auto& [handle, value_ptr] : state_push_list_) { ++ states_updated &= set_state_nonblocking(handle, *value_ptr); ++ } ++ states_updated &= set_state_nonblocking(moprim_state_handles_[0], hw_moprim_states_[0]); ++ states_updated &= set_state_nonblocking(moprim_state_handles_[1], hw_moprim_states_[1]); ++ ++ states_updated &= set_state_nonblocking(tool_contact_result_handle_, tool_contact_result_.load()); ++ const bool passthrough_state_updated = ++ set_state_nonblocking(passthrough_abort_state_handle_, passthrough_trajectory_abort_) && ++ set_state_nonblocking(passthrough_transfer_state_state_handle_, passthrough_trajectory_transfer_state_); ++ // Publish the acknowledgement last. Observing it guarantees that the corresponding status was published. ++ const bool passthrough_sequence_updated = ++ passthrough_state_updated && ++ set_state_nonblocking(passthrough_transfer_sequence_state_handle_, passthrough_trajectory_transfer_sequence_); ++ states_updated &= passthrough_state_updated && passthrough_sequence_updated; ++ if (!states_updated) { ++ RCLCPP_WARN_THROTTLE(get_logger(), *get_clock(), 1000, "Could not update all state interfaces without blocking."); ++ } ++ + return hardware_interface::return_type::OK; + } + if (!non_blocking_read_) +@@ -1044,6 +915,68 @@ hardware_interface::return_type URPositionHardwareInterface::read(const rclcpp:: + hardware_interface::return_type URPositionHardwareInterface::write(const rclcpp::Time& time, + const rclcpp::Duration& period) { ++ // Position commands are seeded from the first RTDE joint-state sample in read(). Never send a ++ // motion command before that initialization has completed. ++ if (!initialized_) { ++ return hardware_interface::return_type::OK; ++ } ++ ++ bool commands_read = true; ++ bool passthrough_commands_read = true; ++ if (seeded_motion_commands_pending_) { ++ // A failed mode-switch publish must not be overwritten by the pre-switch interface values. ++ seeded_motion_commands_pending_ = !publish_seeded_motion_commands(); ++ } ++ if (!seeded_motion_commands_pending_) { ++ for (size_t i = 0; i < info_.joints.size(); ++i) { ++ commands_read &= get_command_nonblocking(joint_position_command_handles_[i], urcl_position_commands_[i]); ++ commands_read &= get_command_nonblocking(joint_velocity_command_handles_[i], urcl_velocity_commands_[i]); ++ if (joint_effort_command_handles_[i]) { ++ commands_read &= get_command_nonblocking(joint_effort_command_handles_[i], urcl_torque_commands_[i]); ++ } ++ } ++ for (size_t i = 0; i < 6; ++i) { ++ commands_read &= get_command_nonblocking(twist_command_handles_[i], urcl_twist_commands_[i]); ++ } ++ } ++ passthrough_commands_read &= get_command_nonblocking(passthrough_transfer_sequence_cmd_handle_, ++ passthrough_trajectory_transfer_sequence_command_); ++ for (size_t i = 0; i < 6; ++i) { ++ passthrough_commands_read &= ++ get_command_nonblocking(passthrough_positions_handles_[i], passthrough_trajectory_positions_[i]); ++ passthrough_commands_read &= ++ get_command_nonblocking(passthrough_velocities_handles_[i], passthrough_trajectory_velocities_[i]); ++ passthrough_commands_read &= ++ get_command_nonblocking(passthrough_accelerations_handles_[i], passthrough_trajectory_accelerations_[i]); ++ } ++ passthrough_commands_read &= ++ get_command_nonblocking(passthrough_transfer_state_cmd_handle_, passthrough_trajectory_transfer_state_command_); ++ passthrough_commands_read &= ++ get_command_nonblocking(passthrough_time_from_start_handle_, passthrough_trajectory_time_from_start_); ++ passthrough_commands_read &= ++ get_command_nonblocking(passthrough_abort_cmd_handle_, passthrough_trajectory_abort_command_); ++ passthrough_commands_read &= get_command_nonblocking(passthrough_size_handle_, passthrough_trajectory_size_); ++ commands_read &= passthrough_commands_read; ++ commands_read &= get_command_nonblocking(tool_contact_set_state_handle_, tool_contact_set_state_); ++ bool moprim_commands_read = true; ++ retryMoprimCommandReset(); ++ if (!moprim_command_reset_pending_) { ++ for (size_t i = 0; i < hw_moprim_commands_.size(); ++i) { ++ moprim_commands_read &= get_command_nonblocking(moprim_command_handles_[i], hw_moprim_commands_[i]); ++ } ++ } ++ commands_read &= moprim_commands_read; ++ if (commands_read) { ++ command_snapshot_initialized_ = true; ++ } else if (command_snapshot_initialized_) { ++ RCLCPP_WARN_THROTTLE(get_logger(), *get_clock(), 1000, ++ "Could not read all command interfaces without blocking. Reusing previous values for those " ++ "which failed reading."); ++ } else { ++ RCLCPP_WARN_THROTTLE(get_logger(), *get_clock(), 1000, ++ "Could not read the initial command snapshot without blocking. Deferring command processing."); ++ return hardware_interface::return_type::OK; ++ } // If there is no interpreting program running on the robot, we do not want to send anything. // TODO(anyone): We would still like to disable the controllers requiring a writable interface. In ROS1 -@@ -1153,26 +1358,36 @@ void URPositionHardwareInterface::handleRobotProgramState(bool program_running) + // this was done externally using the controller_stopper. +@@ -1055,6 +988,20 @@ hardware_interface::return_type URPositionHardwareInterface::write(const rclcpp: + stop_requested_ = false; + robot_program_running_ = false; // We reset that here, as well to avoid a race condition + // between the reverse interface callback and the next write. ++ } else if (freedrive_activated_ && !freedrive_mode_controller_running_) { ++ // The mode switch could not deliver FREEDRIVE_STOP. Retry it before any other control mode: leaving ++ // freedrive here and stopping later would switch the robot back into it. ++ if (ur_driver_->writeFreedriveControlMessage(urcl::control::FreedriveControlMessage::FREEDRIVE_STOP)) { ++ RCLCPP_INFO(get_logger(), "Stopping freedrive mode."); ++ freedrive_activated_ = false; ++ } else { ++ RCLCPP_WARN_THROTTLE(get_logger(), *get_clock(), 1000, ++ "Could not send FREEDRIVE_STOP. Staying in freedrive until the robot accepts it."); ++ } ++ } else if (freedrive_mode_controller_running_) { ++ if (!commandFreedriveMode()) { ++ ur_driver_->writeKeepalive(); ++ } + } else if (position_controller_running_) { + ur_driver_->writeJointCommand(urcl_position_commands_, urcl::comm::ControlMode::MODE_SERVOJ, receive_timeout_); + +@@ -1062,27 +1009,58 @@ hardware_interface::return_type URPositionHardwareInterface::write(const rclcpp: + ur_driver_->writeJointCommand(urcl_velocity_commands_, urcl::comm::ControlMode::MODE_SPEEDJ, receive_timeout_); + } else if (torque_controller_running_) { + ur_driver_->writeJointCommand(urcl_torque_commands_, urcl::comm::ControlMode::MODE_TORQUE, receive_timeout_); +- } else if (freedrive_mode_controller_running_ && freedrive_activated_) { +- ur_driver_->writeFreedriveControlMessage(urcl::control::FreedriveControlMessage::FREEDRIVE_NOOP); +- + } else if (passthrough_trajectory_controller_running_) { + ur_driver_->writeTrajectoryControlMessage( + urcl::control::TrajectoryControlMessage::TRAJECTORY_NOOP, 0, + urcl::RobotReceiveTimeout::millisec(1000 * 5.0 / static_cast(info_.rw_rate))); +- check_passthrough_trajectory_controller(); ++ if (passthrough_commands_read) { ++ check_passthrough_trajectory_controller(); ++ } + } else if (motion_primitives_forward_controller_running_) { +- handleMoprimCommands(); ++ if (passthrough_cancel_result_pending_ || moprim_command_reset_pending_) { ++ ready_for_new_moprim_ = false; ++ ur_driver_->writeKeepalive(); ++ } else { ++ handleMoprimCommands(moprim_commands_read); ++ } + } else if (twist_controller_running_) { + ur_driver_->writeJointCommand(urcl_twist_commands_, urcl::comm::ControlMode::MODE_SPEEDL, receive_timeout_); + } else { + ur_driver_->writeKeepalive(); + } + +- if (!std::isnan(force_mode_task_frame_[0]) && !std::isnan(force_mode_selection_vector_[0]) && +- !std::isnan(force_mode_wrench_[0]) && !std::isnan(force_mode_type_) && !std::isnan(force_mode_limits_[0]) && +- !std::isnan(force_mode_damping_) && !std::isnan(force_mode_gain_scaling_) && ur_driver_ != nullptr) { +- start_force_mode(); +- } else if (!std::isnan(force_mode_disable_cmd_) && ur_driver_ != nullptr && force_mode_async_success_ == 2.0) { ++ urcl::vector6d_t force_mode_task_frame{}; ++ urcl::vector6d_t force_mode_selection_vector{}; ++ urcl::vector6d_t force_mode_wrench{}; ++ urcl::vector6d_t force_mode_limits{}; ++ double force_mode_type = NO_NEW_CMD_; ++ double force_mode_damping = NO_NEW_CMD_; ++ double force_mode_gain_scaling = NO_NEW_CMD_; ++ double force_mode_async_success = NO_NEW_CMD_; ++ double force_mode_disable_cmd = NO_NEW_CMD_; ++ bool force_commands_read = true; ++ for (size_t i = 0; i < force_mode_task_frame.size(); ++i) { ++ force_commands_read &= get_command_nonblocking(force_mode_task_frame_handles_[i], force_mode_task_frame[i]); ++ force_commands_read &= ++ get_command_nonblocking(force_mode_selection_vector_handles_[i], force_mode_selection_vector[i]); ++ force_commands_read &= get_command_nonblocking(force_mode_wrench_handles_[i], force_mode_wrench[i]); ++ force_commands_read &= get_command_nonblocking(force_mode_limits_handles_[i], force_mode_limits[i]); ++ } ++ force_commands_read &= get_command_nonblocking(force_mode_type_handle_, force_mode_type); ++ force_commands_read &= get_command_nonblocking(force_mode_damping_handle_, force_mode_damping); ++ force_commands_read &= get_command_nonblocking(force_mode_gain_scaling_handle_, force_mode_gain_scaling); ++ force_commands_read &= get_command_nonblocking(force_mode_async_success_handle_, force_mode_async_success); ++ force_commands_read &= get_command_nonblocking(force_mode_disable_cmd_handle_, force_mode_disable_cmd); ++ if (!force_commands_read) { ++ RCLCPP_WARN_THROTTLE(get_logger(), *get_clock(), 1000, ++ "Could not read force mode command interfaces without blocking. Skipping force mode for " ++ "this cycle."); ++ } else if (!std::isnan(force_mode_task_frame[0]) && !std::isnan(force_mode_selection_vector[0]) && ++ !std::isnan(force_mode_wrench[0]) && !std::isnan(force_mode_type) && !std::isnan(force_mode_limits[0]) && ++ !std::isnan(force_mode_damping) && !std::isnan(force_mode_gain_scaling) && ur_driver_ != nullptr) { ++ start_force_mode(force_mode_task_frame, force_mode_selection_vector, force_mode_wrench, force_mode_type, ++ force_mode_limits, force_mode_damping, force_mode_gain_scaling); ++ } else if (!std::isnan(force_mode_disable_cmd) && ur_driver_ != nullptr && force_mode_async_success == 2.0) { + stop_force_mode(); + } + +@@ -1091,6 +1069,17 @@ hardware_interface::return_type URPositionHardwareInterface::write(const rclcpp: + } + + packet_read_ = false; ++ } else if (!robot_program_running_ && passthrough_cancel_result_pending_) { ++ // Without a running program no trajectory executes, so the awaited cancellation result cannot arrive anymore. ++ end_passthrough_cancel_wait(); ++ } ++ ++ // Apply asynchronous completion last so an in-flight transfer request cannot overwrite a terminal result. ++ process_trajectory_result(); ++ // Terminal acknowledgements must progress even when robot command transmission is disabled. ++ // This branch returns before any upload or motion processing. ++ if (passthrough_terminal_result_pending_ && passthrough_commands_read) { ++ check_passthrough_trajectory_controller(); + } + + return hardware_interface::return_type::OK; +@@ -1101,28 +1090,65 @@ void URPositionHardwareInterface::handleRobotProgramState(bool program_running) + robot_program_running_ = program_running; + } ++void URPositionHardwareInterface::initializeCommandInterfaces() ++{ ++ initialized_ = false; ++ command_snapshot_initialized_ = false; ++ ++ for (size_t i = 0; i < info_.joints.size(); ++i) { ++ set_command(joint_velocity_command_handles_[i], 0.0, true); ++ if (joint_effort_command_handles_[i]) { ++ set_command(joint_effort_command_handles_[i], 0.0, true); ++ } ++ } ++ ++ for (const auto& handle : twist_command_handles_) { ++ set_command(handle, 0.0, true); ++ } ++ ++ set_command(target_speed_fraction_cmd_handle_, NO_NEW_CMD_, true); ++ set_command(resend_robot_program_cmd_handle_, NO_NEW_CMD_, true); ++ set_command(zero_ftsensor_cmd_handle_, NO_NEW_CMD_, true); ++ set_command(hand_back_control_cmd_handle_, NO_NEW_CMD_, true); ++ set_command(force_mode_disable_cmd_handle_, NO_NEW_CMD_, true); ++ set_command(freedrive_abort_handle_, NO_NEW_CMD_, true); ++ set_command(freedrive_enable_handle_, NO_NEW_CMD_, true); ++ set_command(passthrough_transfer_state_cmd_handle_, passthrough_trajectory_transfer_state_command_, true); ++ set_command(passthrough_transfer_sequence_cmd_handle_, passthrough_trajectory_transfer_sequence_command_, true); ++ set_command(passthrough_abort_cmd_handle_, passthrough_trajectory_abort_command_, true); ++ ++ initAsyncIO(); ++} ++ void URPositionHardwareInterface::initAsyncIO() { -- for (size_t i = 0; i < 18; ++i) { + for (size_t i = 0; i < 18; ++i) { - standard_dig_out_bits_cmd_[i] = NO_NEW_CMD_; -+ for (const auto& v : standard_dig_out_bits_cmd_) { -+ set_async(v, NO_NEW_CMD_); ++ set_command(standard_dig_out_bits_cmd_handles_[i], NO_NEW_CMD_, true); } -- for (size_t i = 0; i < 2; ++i) { + for (size_t i = 0; i < 2; ++i) { - standard_analog_output_cmd_[i] = NO_NEW_CMD_; -+ for (const auto& v : standard_analog_output_cmd_) { -+ set_async(v, NO_NEW_CMD_); ++ set_command(standard_analog_output_cmd_handles_[i], NO_NEW_CMD_, true); } - analog_output_domain_cmd_ = NO_NEW_CMD_; -+ set_async(analog_output_domain_cmd_, NO_NEW_CMD_); - +- - tool_voltage_cmd_ = NO_NEW_CMD_; -+ set_async(tool_voltage_cmd_, NO_NEW_CMD_); ++ set_command(analog_output_domain_cmd_handle_, NO_NEW_CMD_, true); ++ set_command(tool_voltage_cmd_handle_, NO_NEW_CMD_, true); - payload_mass_ = NO_NEW_CMD_; - payload_center_of_gravity_ = { NO_NEW_CMD_, NO_NEW_CMD_, NO_NEW_CMD_ }; - payload_inertia_ = { NO_NEW_CMD_, NO_NEW_CMD_, NO_NEW_CMD_, NO_NEW_CMD_, NO_NEW_CMD_, NO_NEW_CMD_ }; - payload_transition_time_ = NO_NEW_CMD_; -+ set_async(payload_mass_, NO_NEW_CMD_); -+ for (const auto& v : payload_center_of_gravity_) { -+ set_async(v, NO_NEW_CMD_); ++ set_command(payload_mass_handle_, NO_NEW_CMD_, true); ++ for (size_t i = 0; i < 3; ++i) { ++ set_command(payload_cog_handles_[i], NO_NEW_CMD_, true); + } -+ for (const auto& v : payload_inertia_) { -+ set_async(v, NO_NEW_CMD_); ++ for (size_t i = 0; i < 6; ++i) { ++ set_command(payload_inertia_handles_[i], NO_NEW_CMD_, true); + } -+ set_async(payload_transition_time_, NO_NEW_CMD_); ++ set_command(payload_transition_time_handle_, NO_NEW_CMD_, true); - gravity_vector_ = { NO_NEW_CMD_, NO_NEW_CMD_, NO_NEW_CMD_ }; - friction_model_viscous_.fill(NO_NEW_CMD_); - friction_model_coulomb_.fill(NO_NEW_CMD_); -+ for (const auto& v : gravity_vector_) { -+ set_async(v, NO_NEW_CMD_); ++ for (size_t i = 0; i < 3; ++i) { ++ set_command(gravity_vector_handles_[i], NO_NEW_CMD_, true); + } -+ for (const auto& v : friction_model_viscous_) { -+ set_async(v, NO_NEW_CMD_); -+ } -+ for (const auto& v : friction_model_coulomb_) { -+ set_async(v, NO_NEW_CMD_); ++ for (size_t i = 0; i < 6; ++i) { ++ set_command(friction_viscous_handles_[i], NO_NEW_CMD_, true); ++ set_command(friction_coulomb_handles_[i], NO_NEW_CMD_, true); + } } void URPositionHardwareInterface::checkAsyncIO() -@@ -1180,6 +1395,9 @@ void URPositionHardwareInterface::checkAsyncIO() +@@ -1130,106 +1156,246 @@ void URPositionHardwareInterface::checkAsyncIO() if (!rtde_comm_has_been_started_) { return; } -+ if (!pull_async()) { -+ return; // a handle was locked: try again next cycle +- for (size_t i = 0; i < 18; ++i) { +- if (!std::isnan(standard_dig_out_bits_cmd_[i]) && ur_driver_ != nullptr) { ++ ++ std::array standard_dig_out_bits_cmd; ++ for (size_t i = 0; i < standard_dig_out_bits_cmd.size(); ++i) { ++ standard_dig_out_bits_cmd[i] = get_command_blocking(standard_dig_out_bits_cmd_handles_[i]); + } - for (size_t i = 0; i < 18; ++i) { - if (!std::isnan(standard_dig_out_bits_cmd_[i]) && ur_driver_ != nullptr) { ++ std::array standard_analog_output_cmd; ++ for (size_t i = 0; i < standard_analog_output_cmd.size(); ++i) { ++ standard_analog_output_cmd[i] = get_command_blocking(standard_analog_output_cmd_handles_[i]); ++ } ++ double analog_output_domain_cmd = get_command_blocking(analog_output_domain_cmd_handle_); ++ const double tool_voltage_cmd = get_command_blocking(tool_voltage_cmd_handle_); ++ const double target_speed_fraction_cmd = get_command_blocking(target_speed_fraction_cmd_handle_); ++ const double resend_robot_program_cmd = get_command_blocking(resend_robot_program_cmd_handle_); ++ const double hand_back_control_cmd = get_command_blocking(hand_back_control_cmd_handle_); ++ const double payload_mass = get_command_blocking(payload_mass_handle_); ++ urcl::vector3d_t payload_center_of_gravity; ++ for (size_t i = 0; i < payload_center_of_gravity.size(); ++i) { ++ payload_center_of_gravity[i] = get_command_blocking(payload_cog_handles_[i]); ++ } ++ urcl::vector6d_t payload_inertia; ++ urcl::vector6d_t friction_model_viscous; ++ urcl::vector6d_t friction_model_coulomb; ++ for (size_t i = 0; i < payload_inertia.size(); ++i) { ++ payload_inertia[i] = get_command_blocking(payload_inertia_handles_[i]); ++ friction_model_viscous[i] = get_command_blocking(friction_viscous_handles_[i]); ++ friction_model_coulomb[i] = get_command_blocking(friction_coulomb_handles_[i]); ++ } ++ const double payload_transition_time = get_command_blocking(payload_transition_time_handle_); ++ urcl::vector3d_t gravity_vector; ++ for (size_t i = 0; i < gravity_vector.size(); ++i) { ++ gravity_vector[i] = get_command_blocking(gravity_vector_handles_[i]); ++ } ++ const double zero_ftsensor_cmd = get_command_blocking(zero_ftsensor_cmd_handle_); ++ ++ for (size_t i = 0; i < standard_dig_out_bits_cmd.size(); ++i) { ++ if (!std::isnan(standard_dig_out_bits_cmd[i]) && ur_driver_ != nullptr) { ++ double io_async_success = 0.0; if (i <= 7) { -@@ -1280,6 +1498,7 @@ void URPositionHardwareInterface::checkAsyncIO() +- io_async_success_ = +- ur_driver_->getRTDEWriter().sendStandardDigitalOutput(i, static_cast(standard_dig_out_bits_cmd_[i])); ++ io_async_success = ++ ur_driver_->getRTDEWriter().sendStandardDigitalOutput(i, static_cast(standard_dig_out_bits_cmd[i])); + } else if (i <= 15) { +- io_async_success_ = ur_driver_->getRTDEWriter().sendConfigurableDigitalOutput( +- static_cast(i - 8), static_cast(standard_dig_out_bits_cmd_[i])); ++ io_async_success = ur_driver_->getRTDEWriter().sendConfigurableDigitalOutput( ++ static_cast(i - 8), static_cast(standard_dig_out_bits_cmd[i])); + } else { +- io_async_success_ = ur_driver_->getRTDEWriter().sendToolDigitalOutput( +- static_cast(i - 16), static_cast(standard_dig_out_bits_cmd_[i])); ++ io_async_success = ur_driver_->getRTDEWriter().sendToolDigitalOutput( ++ static_cast(i - 16), static_cast(standard_dig_out_bits_cmd[i])); + } +- standard_dig_out_bits_cmd_[i] = NO_NEW_CMD_; ++ set_command(standard_dig_out_bits_cmd_handles_[i], NO_NEW_CMD_, true); ++ set_command(io_async_success_handle_, io_async_success, true); + } + } + +- for (size_t i = 0; i < 2; ++i) { +- if (!std::isnan(standard_analog_output_cmd_[i]) && ur_driver_ != nullptr) { ++ for (size_t i = 0; i < standard_analog_output_cmd.size(); ++i) { ++ if (!std::isnan(standard_analog_output_cmd[i]) && ur_driver_ != nullptr) { + urcl::AnalogOutputType domain = urcl::AnalogOutputType::SET_ON_TEACH_PENDANT; +- if (!std::isnan(analog_output_domain_cmd_) && ur_driver_ != nullptr) { +- domain = static_cast(analog_output_domain_cmd_); +- analog_output_domain_cmd_ = NO_NEW_CMD_; ++ if (!std::isnan(analog_output_domain_cmd) && ur_driver_ != nullptr) { ++ domain = static_cast(analog_output_domain_cmd); ++ analog_output_domain_cmd = NO_NEW_CMD_; ++ set_command(analog_output_domain_cmd_handle_, NO_NEW_CMD_, true); + } +- io_async_success_ = +- ur_driver_->getRTDEWriter().sendStandardAnalogOutput(i, standard_analog_output_cmd_[i], domain); +- standard_analog_output_cmd_[i] = NO_NEW_CMD_; ++ const double io_async_success = ++ ur_driver_->getRTDEWriter().sendStandardAnalogOutput(i, standard_analog_output_cmd[i], domain); ++ set_command(standard_analog_output_cmd_handles_[i], NO_NEW_CMD_, true); ++ set_command(io_async_success_handle_, io_async_success, true); + } + } + +- if (!std::isnan(tool_voltage_cmd_) && ur_driver_ != nullptr) { +- io_async_success_ = ur_driver_->setToolVoltage(static_cast(tool_voltage_cmd_)); +- tool_voltage_cmd_ = NO_NEW_CMD_; ++ if (!std::isnan(tool_voltage_cmd) && ur_driver_ != nullptr) { ++ const double io_async_success = ur_driver_->setToolVoltage(static_cast(tool_voltage_cmd)); ++ set_command(tool_voltage_cmd_handle_, NO_NEW_CMD_, true); ++ set_command(io_async_success_handle_, io_async_success, true); + } + +- if (!std::isnan(target_speed_fraction_cmd_) && ur_driver_ != nullptr) { +- scaling_async_success_ = ur_driver_->getRTDEWriter().sendSpeedSlider(target_speed_fraction_cmd_); +- target_speed_fraction_cmd_ = NO_NEW_CMD_; ++ if (!std::isnan(target_speed_fraction_cmd) && ur_driver_ != nullptr) { ++ const double scaling_async_success = ur_driver_->getRTDEWriter().sendSpeedSlider(target_speed_fraction_cmd); ++ set_command(target_speed_fraction_cmd_handle_, NO_NEW_CMD_, true); ++ set_command(scaling_async_success_handle_, scaling_async_success, true); + } + +- if (!std::isnan(resend_robot_program_cmd_) && ur_driver_ != nullptr) { ++ if (!std::isnan(resend_robot_program_cmd) && ur_driver_ != nullptr) { ++ double resend_robot_program_async_success = false; + try { +- resend_robot_program_async_success_ = ur_driver_->sendRobotProgram(); ++ resend_robot_program_async_success = ur_driver_->sendRobotProgram(); + } catch (const urcl::UrException& e) { + RCLCPP_ERROR(rclcpp::get_logger("URPositionHardwareInterface"), "Service Call failed: '%s'", e.what()); + } +- resend_robot_program_cmd_ = NO_NEW_CMD_; ++ set_command(resend_robot_program_cmd_handle_, NO_NEW_CMD_, true); ++ set_command(resend_robot_program_async_success_handle_, resend_robot_program_async_success, true); + } + +- if (!std::isnan(hand_back_control_cmd_) && ur_driver_ != nullptr) { ++ if (!std::isnan(hand_back_control_cmd) && ur_driver_ != nullptr) { + stop_requested_ = true; +- hand_back_control_async_success_ = true; +- hand_back_control_cmd_ = NO_NEW_CMD_; ++ set_command(hand_back_control_cmd_handle_, NO_NEW_CMD_, true); ++ set_command(hand_back_control_async_success_handle_, 1.0, true); + } + +- if (!std::isnan(payload_mass_) && !std::isnan(payload_center_of_gravity_[0]) && +- !std::isnan(payload_center_of_gravity_[1]) && !std::isnan(payload_center_of_gravity_[2]) && +- !std::isnan(payload_inertia_[0]) && !std::isnan(payload_inertia_[1]) && !std::isnan(payload_inertia_[2]) && +- !std::isnan(payload_inertia_[3]) && !std::isnan(payload_inertia_[4]) && !std::isnan(payload_inertia_[5]) && +- !std::isnan(payload_transition_time_) && ur_driver_ != nullptr) { +- payload_async_success_ = ur_driver_->setTargetPayload(payload_mass_, payload_center_of_gravity_, payload_inertia_, +- payload_transition_time_); ++ if (!std::isnan(payload_mass) && !std::isnan(payload_center_of_gravity[0]) && ++ !std::isnan(payload_center_of_gravity[1]) && !std::isnan(payload_center_of_gravity[2]) && ++ !std::isnan(payload_inertia[0]) && !std::isnan(payload_inertia[1]) && !std::isnan(payload_inertia[2]) && ++ !std::isnan(payload_inertia[3]) && !std::isnan(payload_inertia[4]) && !std::isnan(payload_inertia[5]) && ++ !std::isnan(payload_transition_time) && ur_driver_ != nullptr) { ++ const double payload_async_success = ++ ur_driver_->setTargetPayload(payload_mass, payload_center_of_gravity, payload_inertia, payload_transition_time); + +- payload_mass_ = NO_NEW_CMD_; +- payload_center_of_gravity_ = { NO_NEW_CMD_, NO_NEW_CMD_, NO_NEW_CMD_ }; +- payload_inertia_ = { NO_NEW_CMD_, NO_NEW_CMD_, NO_NEW_CMD_, NO_NEW_CMD_, NO_NEW_CMD_, NO_NEW_CMD_ }; +- payload_transition_time_ = NO_NEW_CMD_; ++ set_command(payload_mass_handle_, NO_NEW_CMD_, true); ++ for (size_t i = 0; i < payload_center_of_gravity.size(); ++i) { ++ set_command(payload_cog_handles_[i], NO_NEW_CMD_, true); ++ } ++ for (size_t i = 0; i < payload_inertia.size(); ++i) { ++ set_command(payload_inertia_handles_[i], NO_NEW_CMD_, true); ++ } ++ set_command(payload_transition_time_handle_, NO_NEW_CMD_, true); ++ set_command(payload_async_success_handle_, payload_async_success, true); + } + +- if (!std::isnan(gravity_vector_[0]) && !std::isnan(gravity_vector_[1]) && !std::isnan(gravity_vector_[2]) && ++ if (!std::isnan(gravity_vector[0]) && !std::isnan(gravity_vector[1]) && !std::isnan(gravity_vector[2]) && + ur_driver_ != nullptr) { +- gravity_async_success_ = ur_driver_->setGravity(gravity_vector_); +- gravity_vector_ = { NO_NEW_CMD_, NO_NEW_CMD_, NO_NEW_CMD_ }; ++ const double gravity_async_success = ur_driver_->setGravity(gravity_vector); ++ for (size_t i = 0; i < gravity_vector.size(); ++i) { ++ set_command(gravity_vector_handles_[i], NO_NEW_CMD_, true); ++ } ++ set_command(gravity_async_success_handle_, gravity_async_success, true); ++ } ++ if (!std::isnan(friction_model_viscous[0]) && ur_driver_ != nullptr) { ++ const double friction_model_async_success = ++ ur_driver_->setFrictionScales(friction_model_viscous, friction_model_coulomb); ++ for (size_t i = 0; i < friction_model_viscous.size(); ++i) { ++ set_command(friction_viscous_handles_[i], NO_NEW_CMD_, true); ++ set_command(friction_coulomb_handles_[i], NO_NEW_CMD_, true); ++ } ++ set_command(friction_async_success_handle_, friction_model_async_success, true); + } +- if (!std::isnan(friction_model_viscous_[0]) && ur_driver_ != nullptr) { +- friction_model_async_success_ = ur_driver_->setFrictionScales(friction_model_viscous_, friction_model_coulomb_); +- friction_model_viscous_.fill(NO_NEW_CMD_); +- friction_model_coulomb_.fill(NO_NEW_CMD_); ++ ++ if (!std::isnan(zero_ftsensor_cmd) && ur_driver_ != nullptr) { ++ const double zero_ftsensor_async_success = ur_driver_->zeroFTSensor(); ++ set_command(zero_ftsensor_cmd_handle_, NO_NEW_CMD_, true); ++ set_command(zero_ftsensor_async_success_handle_, zero_ftsensor_async_success, true); + } ++} + +- if (!std::isnan(zero_ftsensor_cmd_) && ur_driver_ != nullptr) { +- zero_ftsensor_async_success_ = ur_driver_->zeroFTSensor(); +- zero_ftsensor_cmd_ = NO_NEW_CMD_; ++bool URPositionHardwareInterface::commandFreedriveMode() ++{ ++ if (ur_driver_ == nullptr) { ++ return false; + } + +- if (!std::isnan(freedrive_mode_enable_) && ur_driver_ != nullptr) { +- RCLCPP_INFO(get_logger(), "Starting freedrive mode."); +- freedrive_mode_async_success_ = +- ur_driver_->writeFreedriveControlMessage(urcl::control::FreedriveControlMessage::FREEDRIVE_START); +- freedrive_mode_enable_ = NO_NEW_CMD_; +- freedrive_activated_ = true; ++ double freedrive_enable = NO_NEW_CMD_; ++ double freedrive_abort = NO_NEW_CMD_; ++ const bool commands_read = get_command_nonblocking(freedrive_enable_handle_, freedrive_enable) && ++ get_command_nonblocking(freedrive_abort_handle_, freedrive_abort); ++ if (!commands_read) { ++ RCLCPP_WARN_THROTTLE(get_logger(), *get_clock(), 1000, ++ "Could not read freedrive command interfaces without blocking. Skipping new freedrive " ++ "commands for this cycle."); + } + +- if (!std::isnan(freedrive_mode_abort_) && freedrive_mode_abort_ == 1.0 && freedrive_activated_ && +- ur_driver_ != nullptr) { +- RCLCPP_INFO(get_logger(), "Stopping freedrive mode."); +- freedrive_mode_async_success_ = ++ const bool enable_requested = commands_read && !std::isnan(freedrive_enable); ++ const bool abort_commanded = commands_read && !std::isnan(freedrive_abort) && freedrive_abort == 1.0; ++ ++ if (abort_commanded && freedrive_activated_) { ++ const bool stop_sent = + ur_driver_->writeFreedriveControlMessage(urcl::control::FreedriveControlMessage::FREEDRIVE_STOP); ++ if (!set_command_nonblocking(freedrive_async_success_handle_, stop_sent ? 1.0 : 0.0)) { ++ RCLCPP_WARN_THROTTLE(get_logger(), *get_clock(), 1000, ++ "Could not write freedrive async_success without blocking."); ++ } ++ if (!stop_sent) { ++ // Claim the cycle. A failed write may already have put bytes on the socket, so do not keepalive as well. ++ RCLCPP_WARN_THROTTLE(get_logger(), *get_clock(), 1000, ++ "Could not send FREEDRIVE_STOP. Retrying until the robot accepts it."); ++ return true; ++ } ++ ++ RCLCPP_INFO(get_logger(), "Stopping freedrive mode."); freedrive_activated_ = false; - freedrive_mode_abort_ = NO_NEW_CMD_; +- freedrive_mode_abort_ = NO_NEW_CMD_; ++ // Drop a start that was requested and then cancelled before the next cycle can send it. Leave the abort set ++ // when that clear fails so the next cycle still treats the enable as cancelled. ++ if (enable_requested && !set_command_nonblocking(freedrive_enable_handle_, NO_NEW_CMD_)) { ++ RCLCPP_WARN_THROTTLE(get_logger(), *get_clock(), 1000, ++ "Could not clear the freedrive enable command without blocking."); ++ return true; ++ } ++ if (!set_command_nonblocking(freedrive_abort_handle_, NO_NEW_CMD_)) { ++ RCLCPP_WARN_THROTTLE(get_logger(), *get_clock(), 1000, ++ "Could not clear the freedrive abort command without blocking."); ++ } ++ return true; } -+ push_async(); ++ ++ if (abort_commanded) { ++ // Freedrive is not active. Acknowledge the stop without sending FREEDRIVE_START for a cancelled enable. ++ // The caller keepalives; this branch does not write the reverse interface. ++ if (enable_requested && !set_command_nonblocking(freedrive_enable_handle_, NO_NEW_CMD_)) { ++ RCLCPP_WARN_THROTTLE(get_logger(), *get_clock(), 1000, ++ "Could not clear the freedrive enable command without blocking."); ++ return false; ++ } ++ bool interfaces_updated = set_command_nonblocking(freedrive_abort_handle_, NO_NEW_CMD_); ++ interfaces_updated &= set_command_nonblocking(freedrive_async_success_handle_, 1.0); ++ if (!interfaces_updated) { ++ RCLCPP_WARN_THROTTLE(get_logger(), *get_clock(), 1000, ++ "Could not update freedrive command interfaces without blocking."); ++ } ++ return false; ++ } ++ ++ if (enable_requested && !freedrive_activated_) { ++ const bool started = ++ ur_driver_->writeFreedriveControlMessage(urcl::control::FreedriveControlMessage::FREEDRIVE_START); ++ if (!started) { ++ RCLCPP_WARN_THROTTLE(get_logger(), *get_clock(), 1000, ++ "Could not send FREEDRIVE_START. Retrying until the robot accepts it."); ++ return true; ++ } ++ RCLCPP_INFO(get_logger(), "Starting freedrive mode."); ++ bool interfaces_updated = set_command_nonblocking(freedrive_enable_handle_, NO_NEW_CMD_); ++ interfaces_updated &= set_command_nonblocking(freedrive_async_success_handle_, 1.0); ++ if (!interfaces_updated) { ++ RCLCPP_WARN_THROTTLE(get_logger(), *get_clock(), 1000, ++ "Could not update freedrive command interfaces without blocking."); ++ } ++ freedrive_activated_ = true; ++ return true; ++ } ++ ++ if (enable_requested && !set_command_nonblocking(freedrive_enable_handle_, NO_NEW_CMD_)) { ++ // Start was already sent. Keep clearing enable so a later stop cannot be followed by another start. ++ RCLCPP_WARN_THROTTLE(get_logger(), *get_clock(), 1000, ++ "Could not clear the freedrive enable command without blocking."); ++ } ++ ++ if (freedrive_activated_) { ++ // Another control mode would leave freedrive, and a later stop would switch the robot back into it. ++ if (!ur_driver_->writeFreedriveControlMessage(urcl::control::FreedriveControlMessage::FREEDRIVE_NOOP)) { ++ RCLCPP_WARN_THROTTLE(get_logger(), *get_clock(), 1000, "Could not send freedrive keepalive."); ++ } ++ return true; ++ } ++ ++ return false; } void URPositionHardwareInterface::check_tool_contact_controller() -@@ -1583,7 +1802,7 @@ hardware_interface::return_type URPositionHardwareInterface::perform_command_mod +@@ -1262,6 +1428,10 @@ void URPositionHardwareInterface::check_tool_contact_controller() + tool_contact_state_ = cmd_state; + } + } ++ const bool state_updated = set_state_nonblocking(tool_contact_state_handle_, tool_contact_state_); ++ if (!state_updated) { ++ RCLCPP_WARN_THROTTLE(get_logger(), *get_clock(), 1000, "Could not update tool contact state without blocking."); ++ } + } + + void URPositionHardwareInterface::tool_contact_callback(urcl::control::ToolContactResult result) +@@ -1355,7 +1525,7 @@ hardware_interface::return_type URPositionHardwareInterface::prepare_command_mod + { + hardware_interface::return_type ret_val = hardware_interface::return_type::OK; + +- start_modes_ = std::vector>(info_.joints.size()); ++ start_modes_ = std::vector>(info_.joints.size()); + stop_modes_ = std::vector>(info_.joints.size()); + std::vector> control_modes(info_.joints.size()); + const std::string tf_prefix = info_.hardware_parameters.at("tf_prefix"); +@@ -1391,7 +1561,7 @@ hardware_interface::return_type URPositionHardwareInterface::prepare_command_mod + } + } + +- auto is_mode_compatible = [this](const std::string& mode, const std::vector& other_modes) { ++ auto is_mode_compatible = [this](const std::string& mode, const auto& other_modes) { + for (auto& other : other_modes) { + if (mode == other) + continue; +@@ -1426,7 +1596,7 @@ hardware_interface::return_type URPositionHardwareInterface::prepare_command_mod + if (!is_mode_compatible(item.second, start_modes_[i])) { + return hardware_interface::return_type::ERROR; + } +- start_modes_[i].push_back(item.second); ++ start_modes_[i].insert(item.second); + continue; + } + } +@@ -1434,7 +1604,7 @@ hardware_interface::return_type URPositionHardwareInterface::prepare_command_mod + } + + // effort control is only available from 5.23.0 / 10.10.0 +- if (std::any_of(start_modes_.begin(), start_modes_.end(), [&](const std::vector& modes) { ++ if (std::any_of(start_modes_.begin(), start_modes_.end(), [&](const std::set& modes) { + return std::any_of(modes.begin(), modes.end(), + [&](const std::string& mode) { return mode == hardware_interface::HW_IF_EFFORT; }); + })) { +@@ -1447,7 +1617,7 @@ hardware_interface::return_type URPositionHardwareInterface::prepare_command_mod + } + + if (!std::all_of(start_modes_.begin() + 1, start_modes_.end(), +- [&](const std::vector& other) { return other == start_modes_[0]; })) { ++ [&](const std::set& other) { return other == start_modes_[0]; })) { + RCLCPP_ERROR(get_logger(), "Start modes of all joints have to be the same."); + return hardware_interface::return_type::ERROR; + } +@@ -1504,7 +1674,7 @@ hardware_interface::return_type URPositionHardwareInterface::perform_command_mod + if (stop_modes_[0].size() != 0 && std::find(stop_modes_[0].begin(), stop_modes_[0].end(), + StoppingInterface::STOP_POSITION) != stop_modes_[0].end()) { + position_controller_running_ = false; +- urcl_position_commands_ = urcl_position_commands_old_ = urcl_joint_positions_; ++ urcl_position_commands_ = urcl_joint_positions_; + } + if (stop_modes_[0].size() != 0 && std::find(stop_modes_[0].begin(), stop_modes_[0].end(), + StoppingInterface::STOP_VELOCITY) != stop_modes_[0].end()) { +@@ -1525,6 +1695,11 @@ hardware_interface::return_type URPositionHardwareInterface::perform_command_mod + StoppingInterface::STOP_PASSTHROUGH) != stop_modes_[0].end()) { + passthrough_trajectory_controller_running_ = false; + passthrough_trajectory_abort_ = 1.0; ++ // Only a started trajectory is answered with a result. Track that answer so it cannot terminate the next ++ // session. Without a started trajectory there may never be an answer, so do not wait for one. ++ passthrough_cancel_result_pending_ = passthrough_cancel_result_pending_ || passthrough_trajectory_execution_active_; ++ passthrough_trajectory_execution_active_ = false; ++ ur_driver_->writeTrajectoryControlMessage(urcl::control::TrajectoryControlMessage::TRAJECTORY_CANCEL); + trajectory_joint_positions_.clear(); + trajectory_joint_accelerations_.clear(); + trajectory_joint_velocities_.clear(); +@@ -1532,14 +1707,23 @@ hardware_interface::return_type URPositionHardwareInterface::perform_command_mod + if (stop_modes_.size() != 0 && std::find(stop_modes_[0].begin(), stop_modes_[0].end(), StoppingInterface::STOP_FREEDRIVE) != stop_modes_[0].end()) { freedrive_mode_controller_running_ = false; - freedrive_activated_ = false; +- freedrive_activated_ = false; - freedrive_mode_abort_ = 1.0; -+ set_async(freedrive_mode_abort_, 1.0); ++ // Send the stop before write() chooses the next control mode. A later FREEDRIVE_STOP would switch the ++ // robot back into freedrive. A failed write leaves freedrive_activated_ set so write() retries it. ++ if (freedrive_activated_ && ur_driver_ != nullptr) { ++ if (ur_driver_->writeFreedriveControlMessage(urcl::control::FreedriveControlMessage::FREEDRIVE_STOP)) { ++ RCLCPP_INFO(get_logger(), "Stopping freedrive mode."); ++ freedrive_activated_ = false; ++ } else { ++ RCLCPP_WARN(get_logger(), "Could not send FREEDRIVE_STOP while stopping the freedrive controller."); ++ } ++ } } if (stop_modes_.size() != 0 && std::find(stop_modes_[0].begin(), stop_modes_[0].end(), + StoppingInterface::STOP_MOTION_PRIMITIVES) != stop_modes_[0].end()) { + motion_primitives_forward_controller_running_ = false; +- resetMoprimCmdInterfaces(); ++ moprim_command_reset_pending_ = !resetMoprimCmdInterfaces(); ++ moprim_command_pending_ = false; + current_moprim_execution_status_ = MoprimExecutionState::IDLE; + ready_for_new_moprim_ = false; + } +@@ -1562,7 +1746,7 @@ hardware_interface::return_type URPositionHardwareInterface::perform_command_mod + torque_controller_running_ = false; + passthrough_trajectory_controller_running_ = false; + motion_primitives_forward_controller_running_ = false; +- urcl_position_commands_ = urcl_position_commands_old_ = urcl_joint_positions_; ++ urcl_position_commands_ = urcl_joint_positions_; + position_controller_running_ = true; + + } else if (start_modes_[0].size() != 0 && std::find(start_modes_[0].begin(), start_modes_[0].end(), +@@ -1594,6 +1778,9 @@ hardware_interface::return_type URPositionHardwareInterface::perform_command_mod + torque_controller_running_ = false; + passthrough_trajectory_controller_running_ = true; + passthrough_trajectory_abort_ = 0.0; ++ passthrough_terminal_result_pending_ = false; ++ passthrough_trajectory_execution_active_ = false; ++ passthrough_trajectory_transfer_state_ = 0; + } + if (start_modes_[0].size() != 0 && + std::find(start_modes_[0].begin(), start_modes_[0].end(), FREEDRIVE_MODE_GPIO) != start_modes_[0].end()) { +@@ -1612,9 +1799,10 @@ hardware_interface::return_type URPositionHardwareInterface::perform_command_mod + passthrough_trajectory_controller_running_ = false; + force_mode_controller_running_ = false; + +- resetMoprimCmdInterfaces(); ++ moprim_command_reset_pending_ = !resetMoprimCmdInterfaces(); ++ moprim_command_pending_ = false; + current_moprim_execution_status_ = MoprimExecutionState::IDLE; +- ready_for_new_moprim_ = true; ++ ready_for_new_moprim_ = !passthrough_cancel_result_pending_ && !moprim_command_reset_pending_; + motion_primitives_forward_controller_running_ = true; + + RCLCPP_INFO(get_logger(), "Motion primitives mode started."); +@@ -1632,20 +1820,31 @@ hardware_interface::return_type URPositionHardwareInterface::perform_command_mod + start_modes_.clear(); + stop_modes_.clear(); + ++ // Push the joint and twist commands this function just stored. write() keeps those stored values ++ // and retries the publish until it lands, so a locked interface cannot restore the pre-switch command. ++ seeded_motion_commands_pending_ = !publish_seeded_motion_commands(); ++ if (seeded_motion_commands_pending_) { ++ RCLCPP_WARN_THROTTLE(get_logger(), *get_clock(), 1000, ++ "Could not update all interfaces during command mode switch without blocking."); ++ } ++ + return ret_val; + } + +-void URPositionHardwareInterface::start_force_mode() ++void URPositionHardwareInterface::start_force_mode(const urcl::vector6d_t& task_frame, ++ const urcl::vector6d_t& selection_vector, ++ const urcl::vector6d_t& wrench, double type, ++ const urcl::vector6d_t& limits, double damping, double gain_scaling) + { +- for (size_t i = 0; i < force_mode_selection_vector_.size(); i++) { +- force_mode_selection_vector_copy_[i] = force_mode_selection_vector_[i]; ++ urcl::vector6uint32_t selection_vector_copy{}; ++ for (size_t i = 0; i < selection_vector.size(); ++i) { ++ selection_vector_copy[i] = static_cast(selection_vector[i]); + } ++ double async_success = 0.0; + /* Check version of robot to ensure that the correct startForceMode is called. */ + if (ur_driver_->getVersion().major < 5) { +- force_mode_async_success_ = +- ur_driver_->startForceMode(force_mode_task_frame_, force_mode_selection_vector_copy_, force_mode_wrench_, +- force_mode_type_, force_mode_limits_, force_mode_damping_); +- if (force_mode_gain_scaling_ != 0.5) { ++ async_success = ur_driver_->startForceMode(task_frame, selection_vector_copy, wrench, type, limits, damping); ++ if (gain_scaling != 0.5) { + RCLCPP_WARN(rclcpp::get_logger("URPositionHardwareInterface"), "Force mode gain scaling cannot be used on " + "CB3 " + "robots. Starting force mode, but " +@@ -1653,26 +1852,46 @@ void URPositionHardwareInterface::start_force_mode() + "gain scaling."); + } + } else { +- force_mode_async_success_ = +- ur_driver_->startForceMode(force_mode_task_frame_, force_mode_selection_vector_copy_, force_mode_wrench_, +- force_mode_type_, force_mode_limits_, force_mode_damping_, force_mode_gain_scaling_); ++ async_success = ++ ur_driver_->startForceMode(task_frame, selection_vector_copy, wrench, type, limits, damping, gain_scaling); ++ } ++ ++ // Publish the result before clearing the request. A failed publish must leave the request in ++ // place, or async_success stays at ASYNC_WAITING with nothing for write() to retry. ++ if (!set_command_nonblocking(force_mode_async_success_handle_, async_success)) { ++ RCLCPP_WARN_THROTTLE(get_logger(), *get_clock(), 1000, "Could not publish the force mode result without blocking."); ++ return; + } + +- for (size_t i = 0; i < 6; i++) { +- force_mode_task_frame_[i] = NO_NEW_CMD_; +- force_mode_selection_vector_[i] = static_cast(NO_NEW_CMD_); +- force_mode_wrench_[i] = NO_NEW_CMD_; +- force_mode_limits_[i] = NO_NEW_CMD_; ++ bool commands_updated = true; ++ for (size_t i = 0; i < task_frame.size(); ++i) { ++ commands_updated &= set_command_nonblocking(force_mode_task_frame_handles_[i], NO_NEW_CMD_); ++ commands_updated &= set_command_nonblocking(force_mode_selection_vector_handles_[i], NO_NEW_CMD_); ++ commands_updated &= set_command_nonblocking(force_mode_wrench_handles_[i], NO_NEW_CMD_); ++ commands_updated &= set_command_nonblocking(force_mode_limits_handles_[i], NO_NEW_CMD_); ++ } ++ commands_updated &= set_command_nonblocking(force_mode_type_handle_, NO_NEW_CMD_); ++ commands_updated &= set_command_nonblocking(force_mode_damping_handle_, NO_NEW_CMD_); ++ commands_updated &= set_command_nonblocking(force_mode_gain_scaling_handle_, NO_NEW_CMD_); ++ if (!commands_updated) { ++ RCLCPP_WARN_THROTTLE(get_logger(), *get_clock(), 1000, ++ "Could not update all force mode command interfaces without blocking."); + } +- force_mode_type_ = static_cast(NO_NEW_CMD_); +- force_mode_damping_ = NO_NEW_CMD_; +- force_mode_gain_scaling_ = NO_NEW_CMD_; + } + + void URPositionHardwareInterface::stop_force_mode() + { +- force_mode_async_success_ = ur_driver_->endForceMode(); +- force_mode_disable_cmd_ = NO_NEW_CMD_; ++ const double async_success = ur_driver_->endForceMode(); ++ // Leave disable_cmd set when the result cannot be published, so the next write retries the stop. ++ if (!set_command_nonblocking(force_mode_async_success_handle_, async_success)) { ++ RCLCPP_WARN_THROTTLE(get_logger(), *get_clock(), 1000, ++ "Could not publish the force mode stop result without blocking."); ++ return; ++ } ++ if (!set_command_nonblocking(force_mode_disable_cmd_handle_, NO_NEW_CMD_)) { ++ RCLCPP_WARN_THROTTLE(get_logger(), *get_clock(), 1000, ++ "Could not clear the force mode disable command without blocking."); ++ } + } + + void URPositionHardwareInterface::check_passthrough_trajectory_controller() +@@ -1683,10 +1902,52 @@ void URPositionHardwareInterface::check_passthrough_trajectory_controller() + static bool trajectory_started = false; + // See passthrough_trajectory_controller.hpp for an explanation of the passthrough_trajectory_transfer_state_ values. + ++ const bool has_new_request = ++ passthrough_trajectory_transfer_sequence_command_ != passthrough_trajectory_transfer_sequence_; ++ ++ // A terminal result remains authoritative until the controller acknowledges it with an IDLE request. A request ++ // already in flight is acknowledged so the controller can stop waiting, but it must not overwrite the result. ++ // This runs before the cancellation gate so that acknowledgement is not blocked while the matching CANCELED ++ // callback is still outstanding. ++ if (passthrough_terminal_result_pending_) { ++ if (has_new_request) { ++ passthrough_trajectory_transfer_sequence_ = passthrough_trajectory_transfer_sequence_command_; ++ if (passthrough_trajectory_transfer_state_command_ == 0) { ++ passthrough_terminal_result_pending_ = false; ++ passthrough_trajectory_execution_active_ = false; ++ passthrough_trajectory_abort_ = 0.0; ++ passthrough_trajectory_transfer_state_ = 0; ++ } ++ } ++ return; ++ } ++ ++ // Do not start a new session until the cancellation callback from the previous mode has been consumed. ++ if (passthrough_cancel_result_pending_) { ++ return; ++ } ++ + // We should abort and are not in state IDLE +- if (passthrough_trajectory_abort_ == 1.0 && passthrough_trajectory_transfer_state_ != 0.0) { +- ur_driver_->writeTrajectoryControlMessage(urcl::control::TrajectoryControlMessage::TRAJECTORY_CANCEL); +- } else if (passthrough_trajectory_transfer_state_ == 6.0) { ++ if (passthrough_trajectory_abort_command_ == 1.0 && passthrough_trajectory_transfer_state_ != 0.0) { ++ passthrough_trajectory_transfer_sequence_ = passthrough_trajectory_transfer_sequence_command_; ++ if (passthrough_trajectory_execution_active_) { ++ // trajectory_started is the streaming latch. It is cleared once TRAJECTORY_CANCEL has been sent, so the ++ // cancel is retried in later cycles until a write succeeds. Returning here keeps buffered spline points ++ // from being forwarded while the robot's result is still outstanding. That result publishes DONE. ++ if (trajectory_started && ur_driver_ != nullptr && ++ ur_driver_->writeTrajectoryControlMessage(urcl::control::TrajectoryControlMessage::TRAJECTORY_CANCEL)) { ++ trajectory_started = false; ++ } ++ return; ++ } else { ++ // Point upload has not started a trajectory, so TRAJECTORY_CANCEL has nothing to cancel and may never be ++ // answered. Publish DONE immediately so the controller can return to IDLE. ++ passthrough_trajectory_abort_ = 1.0; ++ passthrough_trajectory_transfer_state_ = 5; ++ passthrough_terminal_result_pending_ = true; ++ return; ++ } ++ } else if (has_new_request && passthrough_trajectory_transfer_state_command_ == 6) { + if (passthrough_trajectory_size_ != trajectory_joint_positions_.size()) { + trajectory_joint_positions_.resize(passthrough_trajectory_size_); + trajectory_joint_velocities_.resize(passthrough_trajectory_size_); +@@ -1699,8 +1960,21 @@ void URPositionHardwareInterface::check_passthrough_trajectory_controller() + point_index_sent = 0; + trajectory_started = false; + last_time = 0.0; +- passthrough_trajectory_transfer_state_ = 1.0; +- } else if (passthrough_trajectory_transfer_state_ == 2.0) { ++ passthrough_trajectory_transfer_state_ = 1; ++ passthrough_trajectory_abort_ = 0.0; ++ passthrough_trajectory_transfer_sequence_ = passthrough_trajectory_transfer_sequence_command_; ++ } else if (has_new_request && passthrough_trajectory_transfer_state_command_ == 2) { ++ if (point_index_received >= trajectory_joint_positions_.size()) { ++ RCLCPP_ERROR(get_logger(), "Received more passthrough trajectory points than announced."); ++ passthrough_trajectory_abort_ = 1.0; ++ passthrough_trajectory_execution_active_ = false; ++ passthrough_trajectory_transfer_state_ = 5; ++ passthrough_terminal_result_pending_ = true; ++ passthrough_trajectory_transfer_sequence_ = passthrough_trajectory_transfer_sequence_command_; ++ // Cancel any in-flight trajectory on the robot ++ ur_driver_->writeTrajectoryControlMessage(urcl::control::TrajectoryControlMessage::TRAJECTORY_CANCEL); ++ return; ++ } + passthrough_trajectory_abort_ = 0.0; + trajectory_joint_positions_[point_index_received] = passthrough_trajectory_positions_; + +@@ -1711,7 +1985,8 @@ void URPositionHardwareInterface::check_passthrough_trajectory_controller() + trajectory_joint_accelerations_[point_index_received] = passthrough_trajectory_accelerations_; + + point_index_received++; +- passthrough_trajectory_transfer_state_ = 1.0; ++ passthrough_trajectory_transfer_state_ = 1; ++ passthrough_trajectory_transfer_sequence_ = passthrough_trajectory_transfer_sequence_command_; + + // Once we received enough points so we can move for at least 5 cycles, we start executing + if ((passthrough_trajectory_time_from_start_ > 5.0 / static_cast(info_.rw_rate) || +@@ -1720,11 +1995,25 @@ void URPositionHardwareInterface::check_passthrough_trajectory_controller() + ur_driver_->writeTrajectoryControlMessage(urcl::control::TrajectoryControlMessage::TRAJECTORY_START, + trajectory_joint_positions_.size()); + trajectory_started = true; ++ passthrough_trajectory_execution_active_ = true; + } +- } else if (passthrough_trajectory_transfer_state_ == 3.0) { ++ } else if (has_new_request && passthrough_trajectory_transfer_state_command_ == 3) { + passthrough_trajectory_abort_ = 0.0; +- passthrough_trajectory_transfer_state_ = 4.0; +- } else if (passthrough_trajectory_transfer_state_ == 4.0) { ++ passthrough_trajectory_transfer_state_ = 4; ++ passthrough_trajectory_transfer_sequence_ = passthrough_trajectory_transfer_sequence_command_; ++ } else if (has_new_request && passthrough_trajectory_transfer_state_command_ == 0) { ++ passthrough_trajectory_abort_ = 0.0; ++ passthrough_trajectory_transfer_state_ = 0; ++ passthrough_trajectory_transfer_sequence_ = passthrough_trajectory_transfer_sequence_command_; ++ } else if (has_new_request) { ++ RCLCPP_ERROR(get_logger(), "Received invalid passthrough trajectory transfer state: %f", ++ passthrough_trajectory_transfer_state_command_); ++ passthrough_trajectory_abort_ = 1.0; ++ passthrough_trajectory_execution_active_ = false; ++ passthrough_trajectory_transfer_state_ = 5; ++ passthrough_terminal_result_pending_ = true; ++ passthrough_trajectory_transfer_sequence_ = passthrough_trajectory_transfer_sequence_command_; ++ } else if (passthrough_trajectory_transfer_state_ == 4) { + if (point_index_sent == trajectory_joint_positions_.size()) { + trajectory_joint_positions_.clear(); + trajectory_joint_accelerations_.clear(); +@@ -1770,77 +2059,142 @@ void URPositionHardwareInterface::check_passthrough_trajectory_controller() + point_index_sent++; + } + if (error) { ++ // TRAJECTORY_START already happened, and the terminal result below returns before the abort ++ // branch can cancel. Hold the robot's result so it cannot complete the next session. + passthrough_trajectory_abort_ = 1.0; +- passthrough_trajectory_transfer_state_ = 5.0; ++ passthrough_cancel_result_pending_ = ++ passthrough_cancel_result_pending_ || passthrough_trajectory_execution_active_; ++ passthrough_trajectory_execution_active_ = false; ++ passthrough_trajectory_transfer_state_ = 5; ++ passthrough_terminal_result_pending_ = true; ++ trajectory_started = false; ++ if (ur_driver_ != nullptr) { ++ ur_driver_->writeTrajectoryControlMessage(urcl::control::TrajectoryControlMessage::TRAJECTORY_CANCEL); ++ } + return; + } + } + } + ++void URPositionHardwareInterface::process_trajectory_result() ++{ ++ int result_value = 0; ++ if (!trajectory_result_queue_.pop(result_value)) { ++ return; ++ } ++ const auto result = static_cast(result_value); ++ if (passthrough_cancel_result_pending_) { ++ // Any result ends the canceled trajectory. It may have finished on its own before the cancel was processed. ++ // The result belongs to the stopped passthrough session, so it must not change the motion primitive state. ++ end_passthrough_cancel_wait(); ++ return; ++ } ++ if (result == urcl::control::TrajectoryResult::TRAJECTORY_RESULT_CANCELED) { ++ current_moprim_execution_status_ = MoprimExecutionState::STOPPED; ++ } ++ if (!passthrough_trajectory_execution_active_) { ++ return; ++ } ++ ++ passthrough_trajectory_abort_ = result != urcl::control::TrajectoryResult::TRAJECTORY_RESULT_SUCCESS ? 1.0 : 0.0; ++ passthrough_trajectory_execution_active_ = false; ++ passthrough_trajectory_transfer_state_ = 5; ++ passthrough_terminal_result_pending_ = true; ++} ++ + void URPositionHardwareInterface::trajectory_done_callback(urcl::control::TrajectoryResult result) + { + RCLCPP_INFO(get_logger(), "Trajectory done callback called with result: %d", static_cast(result)); +- if (result == urcl::control::TrajectoryResult::TRAJECTORY_RESULT_FAILURE) { +- passthrough_trajectory_abort_ = 1.0; +- } else { +- passthrough_trajectory_abort_ = 0.0; ++ if (!trajectory_result_queue_.push(static_cast(result))) { ++ RCLCPP_ERROR(get_logger(), "Trajectory result queue is full. Dropping result %d.", static_cast(result)); + } +- passthrough_trajectory_transfer_state_ = 5.0; + + if (result == urcl::control::TrajectoryResult::TRAJECTORY_RESULT_CANCELED) { + RCLCPP_INFO(get_logger(), "Robot stopped, TRAJECTORY_RESULT_CANCELED"); +- current_moprim_execution_status_ = MoprimExecutionState::STOPPED; + } + return; + } + ++void URPositionHardwareInterface::end_passthrough_cancel_wait() ++{ ++ passthrough_cancel_result_pending_ = false; ++ if (motion_primitives_forward_controller_running_ && !moprim_command_reset_pending_) { ++ ready_for_new_moprim_ = true; ++ } ++} ++ + bool URPositionHardwareInterface::is_valid_joint_information(std::vector> data) + { + return (data.size() > 0 && !std::isnan(data[0][0])); + } + +-void URPositionHardwareInterface::handleMoprimCommands() ++void URPositionHardwareInterface::handleMoprimCommands(const bool accept_new_command) + { +- // Check if we have a new command +- if (!std::isnan(hw_moprim_commands_[0])) { ++ const auto push_pending_command = [this]() { ++ if (moprim_cmd_queue_.push(pending_moprim_command_)) { ++ moprim_command_pending_ = false; ++ ready_for_new_moprim_ = true; ++ } else { ++ ready_for_new_moprim_ = false; ++ RCLCPP_WARN_THROTTLE(get_logger(), *get_clock(), 1000, ++ "Motion primitive command queue is full. Deferring the claimed command."); ++ } ++ }; ++ ++ // Retry a previously claimed command before accepting a new one. ++ if (moprim_command_pending_) { ++ push_pending_command(); ++ } else if (accept_new_command && !std::isnan(hw_moprim_commands_[0])) { ++ // Only claim a command from a complete snapshot, otherwise its payload could mix in stale fields. ++ const auto command = hw_moprim_commands_; + ready_for_new_moprim_ = false; // set to false to indicate that the driver is busy handling a command + // set state interface immediately + // --> if waiting for next read() cycle it happens sometimes that a command is overwritten + hw_moprim_states_[1] = static_cast(ready_for_new_moprim_); +- +- switch (static_cast(hw_moprim_commands_[0])) { +- case static_cast(MoprimMotionHelperType::STOP_MOTION): +- { +- RCLCPP_INFO(rclcpp::get_logger("URPositionHardwareInterface"), "Received Motion Primitives STOP command"); +- resetMoprimCmdInterfaces(); +- build_moprim_sequence_ = false; +- moprim_sequence_.clear(); // delete motion sequence +- ur_driver_->writeTrajectoryControlMessage(urcl::control::TrajectoryControlMessage::TRAJECTORY_CANCEL, -1, +- urcl::RobotReceiveTimeout::millisec(2000)); +- current_moprim_execution_status_ = MoprimExecutionState::STOPPING; +- ready_for_new_moprim_ = false; +- break; +- } +- case static_cast(MoprimMotionHelperType::RESET_STOP): +- { +- RCLCPP_INFO(rclcpp::get_logger("URPositionHardwareInterface"), "Received RESET_STOP command"); +- resetMoprimCmdInterfaces(); +- current_moprim_execution_status_ = MoprimExecutionState::IDLE; +- ready_for_new_moprim_ = true; // set to true to allow sending new commands +- break; +- } +- default: +- { +- RCLCPP_DEBUG(rclcpp::get_logger("URPositionHardwareInterface"), "Received moprim command"); +- // Push command to thread-safe queue +- if (!moprim_cmd_queue_.push(hw_moprim_commands_)) { +- RCLCPP_ERROR(rclcpp::get_logger("URPositionHardwareInterface"), "Failed to push command to " +- "moprim_cmd_queue_"); +- return; ++ if (!set_state_nonblocking(moprim_state_handles_[1], hw_moprim_states_[1])) { ++ RCLCPP_WARN_THROTTLE(get_logger(), *get_clock(), 1000, ++ "Could not update motion primitive state without blocking."); ++ } else { ++ // motion_type is the command's trigger. Clear it before producing any side effects so a failed clear can never ++ // cause this command to be consumed twice. While ready_for_new_moprim_ is false, the controller must not replace ++ // the pending command, so trying the claim again in a later cycle is safe. ++ const double no_new_command = std::numeric_limits::quiet_NaN(); ++ if (!set_command_nonblocking(moprim_command_handles_[0], no_new_command)) { ++ RCLCPP_WARN_THROTTLE(get_logger(), *get_clock(), 1000, ++ "Could not claim motion primitive command without blocking."); ++ } else { ++ hw_moprim_commands_[0] = no_new_command; ++ // The trigger is already cleared. The remaining fields are payload and cannot cause a command replay. ++ resetMoprimCmdInterfaces(1); ++ ++ switch (static_cast(command[0])) { ++ case static_cast(MoprimMotionHelperType::STOP_MOTION): ++ { ++ RCLCPP_INFO(rclcpp::get_logger("URPositionHardwareInterface"), "Received Motion Primitives STOP command"); ++ build_moprim_sequence_ = false; ++ moprim_sequence_.clear(); // delete motion sequence ++ ur_driver_->writeTrajectoryControlMessage(urcl::control::TrajectoryControlMessage::TRAJECTORY_CANCEL, -1, ++ urcl::RobotReceiveTimeout::millisec(2000)); ++ current_moprim_execution_status_ = MoprimExecutionState::STOPPING; ++ ready_for_new_moprim_ = false; ++ break; ++ } ++ case static_cast(MoprimMotionHelperType::RESET_STOP): ++ { ++ RCLCPP_INFO(rclcpp::get_logger("URPositionHardwareInterface"), "Received RESET_STOP command"); ++ current_moprim_execution_status_ = MoprimExecutionState::IDLE; ++ ready_for_new_moprim_ = true; // set to true to allow sending new commands ++ break; ++ } ++ default: ++ { ++ RCLCPP_DEBUG(rclcpp::get_logger("URPositionHardwareInterface"), "Received moprim command"); ++ pending_moprim_command_ = command; ++ moprim_command_pending_ = true; ++ push_pending_command(); ++ break; ++ } + } +- resetMoprimCmdInterfaces(); +- ready_for_new_moprim_ = true; // set to true to allow sending new commands +- break; + } + } + } +@@ -1850,16 +2204,55 @@ void URPositionHardwareInterface::handleMoprimCommands() + } + } + +-void URPositionHardwareInterface::resetMoprimCmdInterfaces() ++bool URPositionHardwareInterface::publish_seeded_motion_commands() + { +- std::fill(hw_moprim_commands_.begin(), hw_moprim_commands_.end(), std::numeric_limits::quiet_NaN()); ++ bool interfaces_updated = true; ++ for (size_t i = 0; i < info_.joints.size(); ++i) { ++ interfaces_updated &= set_command_nonblocking(joint_position_command_handles_[i], urcl_position_commands_[i]); ++ interfaces_updated &= set_command_nonblocking(joint_velocity_command_handles_[i], urcl_velocity_commands_[i]); ++ if (joint_effort_command_handles_[i]) { ++ interfaces_updated &= set_command_nonblocking(joint_effort_command_handles_[i], urcl_torque_commands_[i]); ++ } ++ } ++ for (size_t i = 0; i < 6; ++i) { ++ interfaces_updated &= set_command_nonblocking(twist_command_handles_[i], urcl_twist_commands_[i]); ++ } ++ return interfaces_updated; ++} ++ ++void URPositionHardwareInterface::retryMoprimCommandReset() ++{ ++ if (!moprim_command_reset_pending_) { ++ return; ++ } ++ moprim_command_reset_pending_ = !resetMoprimCmdInterfaces(); ++ // The reset fills the trigger with NaN, so a later command read cannot restore readiness. ++ if (!moprim_command_reset_pending_ && motion_primitives_forward_controller_running_ && ++ !passthrough_cancel_result_pending_) { ++ ready_for_new_moprim_ = true; ++ } ++} ++ ++bool URPositionHardwareInterface::resetMoprimCmdInterfaces(const size_t start_index) ++{ ++ std::fill(hw_moprim_commands_.begin() + start_index, hw_moprim_commands_.end(), ++ std::numeric_limits::quiet_NaN()); ++ bool commands_updated = true; ++ for (size_t i = start_index; i < hw_moprim_commands_.size(); ++i) { ++ commands_updated &= set_command_nonblocking(moprim_command_handles_[i], hw_moprim_commands_[i]); ++ } ++ if (!commands_updated) { ++ RCLCPP_WARN_THROTTLE(get_logger(), *get_clock(), 1000, ++ "Could not reset all motion primitive commands without blocking."); ++ } ++ return commands_updated; + } + + void URPositionHardwareInterface::asyncMoprimCmdThread() + { + while (!async_moprim_thread_shutdown_) { + // Check for new commands +- if (moprim_cmd_queue_.pop(current_moprim_command_)) { ++ if (!passthrough_cancel_result_pending_ && moprim_cmd_queue_.pop(current_moprim_command_)) { + processMoprimMotionCmd(current_moprim_command_); + } + // Small sleep to prevent busy waiting +diff --git a/test/test_hardware_interface_exports.cpp b/test/test_hardware_interface_exports.cpp +new file mode 100644 +index 0000000..0792f67 +--- /dev/null ++++ b/test/test_hardware_interface_exports.cpp +@@ -0,0 +1,810 @@ ++// Copyright 2026, b»robotized group ++// ++// Redistribution and use in source and binary forms, with or without ++// modification, are permitted provided that the following conditions are met: ++// ++// * Redistributions of source code must retain the above copyright ++// notice, this list of conditions and the following disclaimer. ++// ++// * Redistributions in binary form must reproduce the above copyright ++// notice, this list of conditions and the following disclaimer in the ++// documentation and/or other materials provided with the distribution. ++// ++// * Neither the name of the {copyright_holder} nor the names of its ++// contributors may be used to endorse or promote products derived from ++// this software without specific prior written permission. ++// ++// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" ++// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE ++// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ++// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ++// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS ++// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN ++// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ++// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ++// POSSIBILITY OF SUCH DAMAGE. ++ ++// Regression test for the deprecated-Handle-API migration: the exported state/command ++// interface *names* must exactly match what the old raw-pointer export_state_interfaces()/ ++// export_command_interfaces() used to export, one-for-one. Nothing here exercises hardware - ++// only on_init() + export via the hardware_interface::System wrapper (which runs the same ++// old-export-empty -> on_export_state_interfaces() fallback the real resource_manager uses). ++// ++// The HardwareInfo below transcribes every joint/sensor/gpio declared in ++// ur.ros2_control.xacro (plus ur_description's ur_joint_control.xacro/ur_sensors.xacro), since ++// every interface this driver exports turned out to already be URDF-declared - there is no ++// export_unlisted_*_interface_descriptions() override to test separately. ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "hardware_interface/system.hpp" ++#include "hardware_interface/types/hardware_component_params.hpp" ++#include "hardware_interface/types/hardware_interface_type_values.hpp" ++#include "ur_robot_driver/hardware_interface.hpp" ++ ++constexpr size_t kJointCount = 6; ++constexpr const char* kTfPrefix = ""; ++ ++class TestableURPositionHardwareInterface : public ur_robot_driver::URPositionHardwareInterface ++{ ++public: ++ void prepare_moprim_command(const double motion_type) ++ { ++ hw_moprim_commands_.fill(std::numeric_limits::quiet_NaN()); ++ hw_moprim_commands_[0] = motion_type; ++ } ++ ++ bool fill_moprim_queue() ++ { ++ std::array command{}; ++ for (size_t i = 0; i < 10000; ++i) { ++ if (!moprim_cmd_queue_.push(command)) { ++ return true; ++ } ++ } ++ return false; ++ } ++ ++ bool pop_moprim_command() ++ { ++ std::array command{}; ++ return moprim_cmd_queue_.pop(command); ++ } ++ ++ void handle_moprim_commands() ++ { ++ handleMoprimCommands(true); ++ } ++ ++ bool moprim_command_pending() const ++ { ++ return moprim_command_pending_; ++ } ++ ++ bool ready_for_new_moprim() const ++ { ++ return ready_for_new_moprim_; ++ } ++ ++ void mark_moprim_reset_pending() ++ { ++ motion_primitives_forward_controller_running_ = true; ++ ready_for_new_moprim_ = false; ++ moprim_command_reset_pending_ = true; ++ } ++ ++ void retry_moprim_reset() ++ { ++ retryMoprimCommandReset(); ++ } ++ ++ bool moprim_reset_pending() const ++ { ++ return moprim_command_reset_pending_; ++ } ++ ++ void set_passthrough_sequence(const uint32_t acknowledged_sequence) ++ { ++ passthrough_trajectory_transfer_sequence_ = acknowledged_sequence; ++ } ++ ++ void set_passthrough_request(const uint32_t sequence, const uint8_t state) ++ { ++ passthrough_trajectory_transfer_sequence_command_ = sequence; ++ passthrough_trajectory_transfer_state_command_ = state; ++ } ++ ++ void process_passthrough_request() ++ { ++ check_passthrough_trajectory_controller(); ++ } ++ ++ void queue_passthrough_result(const urcl::control::TrajectoryResult result, const bool execution_active = true) ++ { ++ passthrough_trajectory_execution_active_ = execution_active; ++ ASSERT_TRUE(trajectory_result_queue_.push(static_cast(result))); ++ } ++ ++ void request_passthrough_abort() ++ { ++ passthrough_trajectory_abort_command_ = true; ++ } ++ ++ void process_passthrough_result() ++ { ++ process_trajectory_result(); ++ } ++ ++ uint32_t acknowledged_passthrough_sequence() const ++ { ++ return static_cast(passthrough_trajectory_transfer_sequence_); ++ } ++ ++ uint8_t passthrough_state() const ++ { ++ return static_cast(passthrough_trajectory_transfer_state_); ++ } ++ ++ bool passthrough_aborted() const ++ { ++ return passthrough_trajectory_abort_ == 1.0; ++ } ++ ++ bool passthrough_terminal_pending() const ++ { ++ return passthrough_terminal_result_pending_; ++ } ++ ++ void set_passthrough_cancel_pending() ++ { ++ passthrough_cancel_result_pending_ = true; ++ } ++ ++ bool passthrough_cancel_pending() const ++ { ++ return passthrough_cancel_result_pending_.load(); ++ } ++ ++ motion_primitives_controllers::ExecutionState moprim_execution_status() const ++ { ++ return current_moprim_execution_status_.load(); ++ } ++}; ++ ++hardware_interface::HardwareInfo BuildTestHardwareInfo() ++{ ++ hardware_interface::HardwareInfo info; ++ info.type = "system"; ++ info.hardware_parameters["tf_prefix"] = kTfPrefix; ++ ++ auto make_interface = [](const std::string& name) { ++ hardware_interface::InterfaceInfo iface{}; ++ iface.name = name; ++ return iface; ++ }; ++ ++ for (size_t i = 1; i <= kJointCount; ++i) { ++ hardware_interface::ComponentInfo joint; ++ joint.name = "joint_" + std::to_string(i); ++ joint.command_interfaces = { make_interface(hardware_interface::HW_IF_POSITION), ++ make_interface(hardware_interface::HW_IF_VELOCITY), ++ make_interface(hardware_interface::HW_IF_EFFORT) }; ++ joint.state_interfaces = { make_interface(hardware_interface::HW_IF_POSITION), ++ make_interface(hardware_interface::HW_IF_VELOCITY), ++ make_interface(hardware_interface::HW_IF_EFFORT) }; ++ info.joints.push_back(joint); ++ } ++ ++ auto make_sensor = [&](const std::string& name, const std::vector& state_names) { ++ hardware_interface::ComponentInfo sensor; ++ sensor.name = std::string(kTfPrefix) + name; ++ for (const auto& state_name : state_names) { ++ sensor.state_interfaces.push_back(make_interface(state_name)); ++ } ++ info.sensors.push_back(sensor); ++ }; ++ make_sensor("tcp_fts_sensor", { "force.x", "force.y", "force.z", "torque.x", "torque.y", "torque.z" }); ++ make_sensor("tcp_pose", { "position.x", "position.y", "position.z", "orientation.x", "orientation.y", "orientation.z", ++ "orientation.w" }); ++ ++ auto make_gpio = [&](const std::string& name, const std::vector& command_names, ++ const std::vector& state_names) { ++ hardware_interface::ComponentInfo gpio; ++ gpio.name = std::string(kTfPrefix) + name; ++ for (const auto& command_name : command_names) { ++ gpio.command_interfaces.push_back(make_interface(command_name)); ++ } ++ for (const auto& state_name : state_names) { ++ gpio.state_interfaces.push_back(make_interface(state_name)); ++ } ++ info.gpios.push_back(gpio); ++ }; ++ ++ make_gpio("speed_scaling", { "target_speed_fraction_cmd", "target_speed_fraction_async_success" }, ++ { "speed_scaling_factor" }); ++ ++ std::vector gpio_cmds; ++ for (size_t i = 0; i < 18; ++i) { ++ gpio_cmds.push_back("standard_digital_output_cmd_" + std::to_string(i)); ++ } ++ gpio_cmds.push_back("standard_analog_output_cmd_0"); ++ gpio_cmds.push_back("standard_analog_output_cmd_1"); ++ gpio_cmds.push_back("analog_output_domain_cmd"); ++ gpio_cmds.push_back("tool_voltage_cmd"); ++ gpio_cmds.push_back("io_async_success"); ++ std::vector gpio_states; ++ for (size_t i = 0; i < 18; ++i) { ++ gpio_states.push_back("digital_output_" + std::to_string(i)); ++ } ++ for (size_t i = 0; i < 18; ++i) { ++ gpio_states.push_back("digital_input_" + std::to_string(i)); ++ } ++ gpio_states.push_back("standard_analog_output_0"); ++ gpio_states.push_back("standard_analog_output_1"); ++ gpio_states.push_back("standard_analog_input_0"); ++ gpio_states.push_back("standard_analog_input_1"); ++ for (size_t i = 0; i < 4; ++i) { ++ gpio_states.push_back("analog_io_type_" + std::to_string(i)); ++ } ++ gpio_states.push_back("tool_mode"); ++ gpio_states.push_back("tool_output_voltage"); ++ gpio_states.push_back("tool_output_current"); ++ gpio_states.push_back("tool_temperature"); ++ gpio_states.push_back("tool_analog_input_0"); ++ gpio_states.push_back("tool_analog_input_1"); ++ gpio_states.push_back("tool_analog_input_type_0"); ++ gpio_states.push_back("tool_analog_input_type_1"); ++ gpio_states.push_back("robot_mode"); ++ for (size_t i = 0; i < 4; ++i) { ++ gpio_states.push_back("robot_status_bit_" + std::to_string(i)); ++ } ++ gpio_states.push_back("safety_mode"); ++ for (size_t i = 0; i < 11; ++i) { ++ gpio_states.push_back("safety_status_bit_" + std::to_string(i)); ++ } ++ gpio_states.push_back("program_running"); ++ make_gpio("gpio", gpio_cmds, gpio_states); ++ ++ make_gpio("payload", ++ { "mass", "cog.x", "cog.y", "cog.z", "inertia.ixx", "inertia.iyy", "inertia.izz", "inertia.ixy", ++ "inertia.ixz", "inertia.iyz", "transition_time", "payload_async_success" }, ++ { "mass", "cog.x", "cog.y", "cog.z", "inertia.ixx", "inertia.iyy", "inertia.izz", "inertia.ixy", ++ "inertia.ixz", "inertia.iyz" }); ++ ++ make_gpio("gravity", { "x", "y", "z", "gravity_async_success" }, {}); ++ ++ std::vector friction_cmds; ++ for (size_t i = 0; i < 6; ++i) { ++ friction_cmds.push_back("viscous_" + std::to_string(i)); ++ } ++ for (size_t i = 0; i < 6; ++i) { ++ friction_cmds.push_back("coulomb_" + std::to_string(i)); ++ } ++ friction_cmds.push_back("async_success"); ++ make_gpio("friction_model", friction_cmds, {}); ++ ++ make_gpio("resend_robot_program", { "resend_robot_program_cmd", "resend_robot_program_async_success" }, {}); ++ make_gpio("hand_back_control", { "hand_back_control_cmd", "hand_back_control_async_success" }, {}); ++ make_gpio("zero_ftsensor", { "zero_ftsensor_cmd", "zero_ftsensor_async_success" }, {}); ++ make_gpio("freedrive_mode", { "async_success", "enable", "abort" }, {}); ++ make_gpio("tool_contact", { "tool_contact_set_state" }, { "tool_contact_result", "tool_contact_state" }); ++ make_gpio("system_interface", {}, { "initialized" }); ++ ++ std::vector force_mode_cmds = { "task_frame_x", ++ "task_frame_y", ++ "task_frame_z", ++ "task_frame_rx", ++ "task_frame_ry", ++ "task_frame_rz", ++ "selection_vector_x", ++ "selection_vector_y", ++ "selection_vector_z", ++ "selection_vector_rx", ++ "selection_vector_ry", ++ "selection_vector_rz", ++ "wrench_x", ++ "wrench_y", ++ "wrench_z", ++ "wrench_rx", ++ "wrench_ry", ++ "wrench_rz", ++ "limits_x", ++ "limits_y", ++ "limits_z", ++ "limits_rx", ++ "limits_ry", ++ "limits_rz", ++ "type", ++ "damping", ++ "gain_scaling", ++ "disable_cmd", ++ "force_mode_async_success" }; ++ make_gpio("force_mode", force_mode_cmds, {}); ++ ++ std::vector passthrough_cmds; ++ for (size_t i = 0; i < 6; ++i) { ++ passthrough_cmds.push_back("setpoint_positions_" + std::to_string(i)); ++ } ++ for (size_t i = 0; i < 6; ++i) { ++ passthrough_cmds.push_back("setpoint_velocities_" + std::to_string(i)); ++ } ++ for (size_t i = 0; i < 6; ++i) { ++ passthrough_cmds.push_back("setpoint_accelerations_" + std::to_string(i)); ++ } ++ passthrough_cmds.push_back("transfer_state"); ++ passthrough_cmds.push_back("transfer_sequence"); ++ passthrough_cmds.push_back("time_from_start"); ++ passthrough_cmds.push_back("abort"); ++ passthrough_cmds.push_back("trajectory_size"); ++ make_gpio("trajectory_passthrough", passthrough_cmds, { "transfer_state", "transfer_sequence", "abort" }); ++ ++ make_gpio("twist", ++ { "linear_velocity_x", "linear_velocity_y", "linear_velocity_z", "angular_velocity_x", "angular_velocity_y", ++ "angular_velocity_z" }, ++ {}); ++ ++ make_gpio("get_robot_software_version", {}, ++ { "get_version_major", "get_version_minor", "get_version_build", "get_version_bugfix" }); ++ ++ std::vector moprim_cmds = { "motion_type", "q1", "q2", "q3", "q4", ++ "q5", "q6", "pos_x", "pos_y", "pos_z", ++ "pos_qx", "pos_qy", "pos_qz", "pos_qw", "pos_via_x", ++ "pos_via_y", "pos_via_z", "pos_via_qx", "pos_via_qy", "pos_via_qz", ++ "pos_via_qw", "blend_radius", "velocity", "acceleration", "move_time" }; ++ make_gpio("motion_primitive", moprim_cmds, { "execution_status", "ready_for_new_primitive" }); ++ ++ return info; ++} ++ ++std::vector GetNames(const std::vector& interfaces) ++{ ++ std::vector names; ++ names.reserve(interfaces.size()); ++ for (const auto& interface : interfaces) { ++ names.push_back(interface->get_name()); ++ } ++ return names; ++} ++ ++std::vector GetNames(const std::vector& interfaces) ++{ ++ std::vector names; ++ names.reserve(interfaces.size()); ++ for (const auto& interface : interfaces) { ++ names.push_back(interface->get_name()); ++ } ++ return names; ++} ++ ++class URHardwareInterfaceExportTest : public ::testing::Test ++{ ++protected: ++ void SetUp() override ++ { ++ hardware_interface::HardwareComponentParams params; ++ params.hardware_info = BuildTestHardwareInfo(); ++ params.clock = std::make_shared(); ++ params.logger = rclcpp::get_logger("test_ur_hardware_interface_exports"); ++ ++ hw_ = ++ std::make_unique(std::make_unique()); ++ const auto state = hw_->initialize(params); ++ ASSERT_EQ(state.id(), lifecycle_msgs::msg::State::PRIMARY_STATE_UNCONFIGURED) << "on_init() did not succeed - " ++ "check the test HardwareInfo " ++ "matches what " ++ "URPositionHardwareInterface::on_" ++ "init() validates."; ++ } ++ ++ std::unique_ptr hw_; ++}; ++ ++class URHardwareInterfaceProtocolTest : public ::testing::Test ++{ ++protected: ++ void SetUp() override ++ { ++ hardware_interface::HardwareComponentParams params; ++ params.hardware_info = BuildTestHardwareInfo(); ++ params.clock = std::make_shared(); ++ params.logger = rclcpp::get_logger("test_ur_hardware_interface_protocol"); ++ ++ hw_ = std::make_unique(); ++ ASSERT_EQ(hw_->init(params), hardware_interface::CallbackReturn::SUCCESS); ++ hw_->on_export_state_interfaces(); ++ hw_->on_export_command_interfaces(); ++ } ++ ++ std::unique_ptr hw_; ++}; ++ ++TEST_F(URHardwareInterfaceExportTest, DefersWritesUntilPositionCommandsAreSeeded) ++{ ++ EXPECT_EQ(hw_->write(rclcpp::Time(0), rclcpp::Duration(0, 0)), hardware_interface::return_type::OK); ++} ++ ++TEST_F(URHardwareInterfaceProtocolTest, KeepsTerminalPassthroughResultUntilIdleIsAcknowledged) ++{ ++ hw_->set_passthrough_sequence(1); ++ hw_->set_passthrough_request(2, 3); ++ hw_->process_passthrough_request(); ++ EXPECT_EQ(hw_->passthrough_state(), 4U); ++ ++ hw_->queue_passthrough_result(urcl::control::TrajectoryResult::TRAJECTORY_RESULT_FAILURE); ++ hw_->process_passthrough_result(); ++ EXPECT_EQ(hw_->passthrough_state(), 5U); ++ ++ hw_->set_passthrough_request(3, 3); ++ hw_->process_passthrough_request(); ++ EXPECT_EQ(hw_->acknowledged_passthrough_sequence(), 3U); ++ EXPECT_EQ(hw_->passthrough_state(), 5U); ++ EXPECT_TRUE(hw_->passthrough_aborted()); ++ EXPECT_TRUE(hw_->passthrough_terminal_pending()); ++ ++ hw_->set_passthrough_request(4, 0); ++ hw_->process_passthrough_request(); ++ ++ EXPECT_EQ(hw_->acknowledged_passthrough_sequence(), 4U); ++ EXPECT_EQ(hw_->passthrough_state(), 0U); ++ EXPECT_FALSE(hw_->passthrough_aborted()); ++ EXPECT_FALSE(hw_->passthrough_terminal_pending()); ++} ++ ++TEST_F(URHardwareInterfaceProtocolTest, RestoresReadyForNewMoprimAfterRetriedCommandReset) ++{ ++ hw_->mark_moprim_reset_pending(); ++ hw_->retry_moprim_reset(); ++ ++ EXPECT_FALSE(hw_->moprim_reset_pending()); ++ EXPECT_TRUE(hw_->ready_for_new_moprim()); ++} ++ ++TEST_F(URHardwareInterfaceProtocolTest, KeepsMoprimBlockedWhilePassthroughCancellationIsOutstanding) ++{ ++ hw_->mark_moprim_reset_pending(); ++ hw_->set_passthrough_cancel_pending(); ++ hw_->retry_moprim_reset(); ++ ++ EXPECT_FALSE(hw_->moprim_reset_pending()); ++ EXPECT_FALSE(hw_->ready_for_new_moprim()); ++} ++ ++TEST_F(URHardwareInterfaceProtocolTest, DefersClaimedMoprimCommandWhileQueueIsFull) ++{ ++ ASSERT_TRUE(hw_->fill_moprim_queue()); ++ hw_->prepare_moprim_command(42.0); ++ hw_->handle_moprim_commands(); ++ ++ EXPECT_TRUE(hw_->moprim_command_pending()); ++ EXPECT_FALSE(hw_->ready_for_new_moprim()); ++ ++ ASSERT_TRUE(hw_->pop_moprim_command()); ++ hw_->handle_moprim_commands(); ++ ++ EXPECT_FALSE(hw_->moprim_command_pending()); ++ EXPECT_TRUE(hw_->ready_for_new_moprim()); ++} ++ ++TEST_F(URHardwareInterfaceProtocolTest, ReportsCanceledPassthroughTrajectoryAsAborted) ++{ ++ hw_->queue_passthrough_result(urcl::control::TrajectoryResult::TRAJECTORY_RESULT_CANCELED); ++ hw_->process_passthrough_result(); ++ ++ EXPECT_EQ(hw_->passthrough_state(), 5U); ++ EXPECT_TRUE(hw_->passthrough_aborted()); ++} ++ ++TEST_F(URHardwareInterfaceProtocolTest, WaitsForPriorCancellationBeforeProcessingNewSession) ++{ ++ hw_->set_passthrough_sequence(1); ++ hw_->set_passthrough_cancel_pending(); ++ hw_->set_passthrough_request(2, 6); ++ hw_->process_passthrough_request(); ++ EXPECT_EQ(hw_->acknowledged_passthrough_sequence(), 1U); ++ ++ hw_->process_passthrough_request(); ++ EXPECT_EQ(hw_->acknowledged_passthrough_sequence(), 1U); ++ ++ // The canceled trajectory may finish on its own before the cancel is processed. Any result ends the wait. ++ hw_->queue_passthrough_result(urcl::control::TrajectoryResult::TRAJECTORY_RESULT_SUCCESS, false); ++ hw_->process_passthrough_result(); ++ EXPECT_FALSE(hw_->passthrough_cancel_pending()); ++ EXPECT_EQ(hw_->passthrough_state(), 0U); ++ ++ hw_->process_passthrough_request(); ++ EXPECT_EQ(hw_->acknowledged_passthrough_sequence(), 2U); ++ EXPECT_EQ(hw_->passthrough_state(), 1U); ++} ++ ++TEST_F(URHardwareInterfaceProtocolTest, PassthroughCancellationResultDoesNotStopMotionPrimitives) ++{ ++ hw_->set_passthrough_cancel_pending(); ++ hw_->queue_passthrough_result(urcl::control::TrajectoryResult::TRAJECTORY_RESULT_CANCELED, false); ++ hw_->process_passthrough_result(); ++ ++ EXPECT_FALSE(hw_->passthrough_cancel_pending()); ++ EXPECT_EQ(hw_->moprim_execution_status(), motion_primitives_controllers::ExecutionState::IDLE); ++} ++ ++TEST_F(URHardwareInterfaceProtocolTest, UnrelatedCanceledResultStopsMotionPrimitives) ++{ ++ hw_->queue_passthrough_result(urcl::control::TrajectoryResult::TRAJECTORY_RESULT_CANCELED, false); ++ hw_->process_passthrough_result(); ++ ++ EXPECT_EQ(hw_->moprim_execution_status(), motion_primitives_controllers::ExecutionState::STOPPED); ++} ++ ++TEST_F(URHardwareInterfaceProtocolTest, PublishesDoneWhenUploadIsAbortedBeforeExecution) ++{ ++ hw_->set_passthrough_request(1, 6); ++ hw_->process_passthrough_request(); ++ EXPECT_EQ(hw_->passthrough_state(), 1U); ++ ++ hw_->request_passthrough_abort(); ++ hw_->set_passthrough_request(2, 2); ++ hw_->process_passthrough_request(); ++ ++ EXPECT_EQ(hw_->acknowledged_passthrough_sequence(), 2U); ++ EXPECT_EQ(hw_->passthrough_state(), 5U); ++ EXPECT_TRUE(hw_->passthrough_aborted()); ++ EXPECT_TRUE(hw_->passthrough_terminal_pending()); ++ EXPECT_FALSE(hw_->passthrough_cancel_pending()); ++ ++ hw_->queue_passthrough_result(urcl::control::TrajectoryResult::TRAJECTORY_RESULT_CANCELED, false); ++ hw_->process_passthrough_result(); ++ EXPECT_EQ(hw_->passthrough_state(), 5U); ++ EXPECT_TRUE(hw_->passthrough_terminal_pending()); ++ ++ hw_->set_passthrough_request(3, 0); ++ hw_->process_passthrough_request(); ++ EXPECT_EQ(hw_->passthrough_state(), 0U); ++ EXPECT_FALSE(hw_->passthrough_terminal_pending()); ++} ++ ++TEST_F(URHardwareInterfaceProtocolTest, AppliesPassthroughResultsInArrivalOrder) ++{ ++ hw_->queue_passthrough_result(urcl::control::TrajectoryResult::TRAJECTORY_RESULT_FAILURE); ++ hw_->queue_passthrough_result(urcl::control::TrajectoryResult::TRAJECTORY_RESULT_SUCCESS); ++ hw_->process_passthrough_result(); ++ ++ EXPECT_EQ(hw_->passthrough_state(), 5U); ++ EXPECT_TRUE(hw_->passthrough_aborted()); ++ EXPECT_TRUE(hw_->passthrough_terminal_pending()); ++ ++ hw_->process_passthrough_result(); ++ EXPECT_EQ(hw_->passthrough_state(), 5U); ++ EXPECT_TRUE(hw_->passthrough_aborted()); ++ EXPECT_TRUE(hw_->passthrough_terminal_pending()); ++} ++ ++// Interfaces exported by the removed raw-pointer export_state_interfaces(), for comparison. ++TEST_F(URHardwareInterfaceExportTest, ExportsExpectedStateInterfaces) ++{ ++ const auto exported_names = GetNames(hw_->export_state_interfaces()); ++ ++ std::vector expected_names; ++ for (size_t i = 1; i <= kJointCount; ++i) { ++ const std::string joint = "joint_" + std::to_string(i); ++ expected_names.push_back(joint + "/" + hardware_interface::HW_IF_POSITION); ++ expected_names.push_back(joint + "/" + hardware_interface::HW_IF_VELOCITY); ++ expected_names.push_back(joint + "/" + hardware_interface::HW_IF_EFFORT); ++ } ++ expected_names.push_back(std::string(kTfPrefix) + "speed_scaling/speed_scaling_factor"); ++ for (const char* name : { "force.x", "force.y", "force.z", "torque.x", "torque.y", "torque.z" }) { ++ expected_names.push_back(std::string(kTfPrefix) + "tcp_fts_sensor/" + name); ++ } ++ for (size_t i = 0; i < 18; ++i) { ++ expected_names.push_back(std::string(kTfPrefix) + "gpio/digital_output_" + std::to_string(i)); ++ expected_names.push_back(std::string(kTfPrefix) + "gpio/digital_input_" + std::to_string(i)); ++ } ++ for (size_t i = 0; i < 11; ++i) { ++ expected_names.push_back(std::string(kTfPrefix) + "gpio/safety_status_bit_" + std::to_string(i)); ++ } ++ for (size_t i = 0; i < 4; ++i) { ++ expected_names.push_back(std::string(kTfPrefix) + "gpio/analog_io_type_" + std::to_string(i)); ++ expected_names.push_back(std::string(kTfPrefix) + "gpio/robot_status_bit_" + std::to_string(i)); ++ } ++ for (size_t i = 0; i < 2; ++i) { ++ expected_names.push_back(std::string(kTfPrefix) + "gpio/tool_analog_input_type_" + std::to_string(i)); ++ expected_names.push_back(std::string(kTfPrefix) + "gpio/tool_analog_input_" + std::to_string(i)); ++ expected_names.push_back(std::string(kTfPrefix) + "gpio/standard_analog_input_" + std::to_string(i)); ++ expected_names.push_back(std::string(kTfPrefix) + "gpio/standard_analog_output_" + std::to_string(i)); ++ } ++ for (const char* name : { "tool_output_voltage", "robot_mode", "safety_mode", "tool_mode", "tool_output_current", ++ "tool_temperature", "program_running" }) { ++ expected_names.push_back(std::string(kTfPrefix) + "gpio/" + name); ++ } ++ expected_names.push_back(std::string(kTfPrefix) + "system_interface/initialized"); ++ for (const char* name : { "position.x", "position.y", "position.z", "orientation.x", "orientation.y", "orientation.z", ++ "orientation.w" }) { ++ expected_names.push_back(std::string(kTfPrefix) + "tcp_pose/" + name); ++ } ++ for (const char* name : { "get_version_major", "get_version_minor", "get_version_bugfix", "get_version_build" }) { ++ expected_names.push_back(std::string(kTfPrefix) + "get_robot_software_version/" + name); ++ } ++ expected_names.push_back(std::string(kTfPrefix) + "tool_contact/tool_contact_result"); ++ expected_names.push_back(std::string(kTfPrefix) + "tool_contact/tool_contact_state"); ++ expected_names.push_back(std::string(kTfPrefix) + "trajectory_passthrough/transfer_state"); ++ expected_names.push_back(std::string(kTfPrefix) + "trajectory_passthrough/transfer_sequence"); ++ expected_names.push_back(std::string(kTfPrefix) + "trajectory_passthrough/abort"); ++ for (const char* name : { "mass", "cog.x", "cog.y", "cog.z", "inertia.ixx", "inertia.iyy", "inertia.izz", ++ "inertia.ixy", "inertia.ixz", "inertia.iyz" }) { ++ expected_names.push_back(std::string(kTfPrefix) + "payload/" + name); ++ } ++ expected_names.push_back(std::string(kTfPrefix) + "motion_primitive/execution_status"); ++ expected_names.push_back(std::string(kTfPrefix) + "motion_primitive/ready_for_new_primitive"); ++ ++ EXPECT_THAT(exported_names, ::testing::UnorderedElementsAreArray(expected_names)); ++} ++ ++// Interfaces exported by the removed raw-pointer export_command_interfaces(), for comparison. ++TEST_F(URHardwareInterfaceExportTest, ExportsExpectedCommandInterfaces) ++{ ++ const auto exported_names = GetNames(hw_->export_command_interfaces()); ++ ++ std::vector expected_names; ++ for (size_t i = 1; i <= kJointCount; ++i) { ++ const std::string joint = "joint_" + std::to_string(i); ++ expected_names.push_back(joint + "/" + hardware_interface::HW_IF_POSITION); ++ expected_names.push_back(joint + "/" + hardware_interface::HW_IF_VELOCITY); ++ expected_names.push_back(joint + "/" + hardware_interface::HW_IF_EFFORT); ++ } ++ expected_names.push_back(std::string(kTfPrefix) + "gpio/io_async_success"); ++ expected_names.push_back(std::string(kTfPrefix) + "speed_scaling/target_speed_fraction_cmd"); ++ expected_names.push_back(std::string(kTfPrefix) + "speed_scaling/target_speed_fraction_async_success"); ++ expected_names.push_back(std::string(kTfPrefix) + "resend_robot_program/resend_robot_program_cmd"); ++ expected_names.push_back(std::string(kTfPrefix) + "resend_robot_program/resend_robot_program_async_success"); ++ expected_names.push_back(std::string(kTfPrefix) + "hand_back_control/hand_back_control_cmd"); ++ expected_names.push_back(std::string(kTfPrefix) + "hand_back_control/hand_back_control_async_success"); ++ for (const char* name : { "mass", "cog.x", "cog.y", "cog.z", "inertia.ixx", "inertia.iyy", "inertia.izz", ++ "inertia.ixy", "inertia.ixz", "inertia.iyz", "transition_time", "payload_async_success" }) { ++ expected_names.push_back(std::string(kTfPrefix) + "payload/" + name); ++ } ++ for (size_t i = 0; i < 6; ++i) { ++ expected_names.push_back(std::string(kTfPrefix) + "friction_model/viscous_" + std::to_string(i)); ++ } ++ for (size_t i = 0; i < 6; ++i) { ++ expected_names.push_back(std::string(kTfPrefix) + "friction_model/coulomb_" + std::to_string(i)); ++ } ++ expected_names.push_back(std::string(kTfPrefix) + "friction_model/async_success"); ++ for (const char* name : { "task_frame_x", ++ "task_frame_y", ++ "task_frame_z", ++ "task_frame_rx", ++ "task_frame_ry", ++ "task_frame_rz", ++ "selection_vector_x", ++ "selection_vector_y", ++ "selection_vector_z", ++ "selection_vector_rx", ++ "selection_vector_ry", ++ "selection_vector_rz", ++ "wrench_x", ++ "wrench_y", ++ "wrench_z", ++ "wrench_rx", ++ "wrench_ry", ++ "wrench_rz", ++ "type", ++ "limits_x", ++ "limits_y", ++ "limits_z", ++ "limits_rx", ++ "limits_ry", ++ "limits_rz", ++ "force_mode_async_success", ++ "disable_cmd", ++ "damping", ++ "gain_scaling" }) { ++ expected_names.push_back(std::string(kTfPrefix) + "force_mode/" + name); ++ } ++ for (const char* name : { "x", "y", "z", "gravity_async_success" }) { ++ expected_names.push_back(std::string(kTfPrefix) + "gravity/" + name); ++ } ++ for (size_t i = 0; i < 18; ++i) { ++ expected_names.push_back(std::string(kTfPrefix) + "gpio/standard_digital_output_cmd_" + std::to_string(i)); ++ } ++ for (size_t i = 0; i < 2; ++i) { ++ expected_names.push_back(std::string(kTfPrefix) + "gpio/standard_analog_output_cmd_" + std::to_string(i)); ++ } ++ expected_names.push_back(std::string(kTfPrefix) + "gpio/analog_output_domain_cmd"); ++ expected_names.push_back(std::string(kTfPrefix) + "gpio/tool_voltage_cmd"); ++ expected_names.push_back(std::string(kTfPrefix) + "zero_ftsensor/zero_ftsensor_cmd"); ++ expected_names.push_back(std::string(kTfPrefix) + "zero_ftsensor/zero_ftsensor_async_success"); ++ expected_names.push_back(std::string(kTfPrefix) + "freedrive_mode/async_success"); ++ expected_names.push_back(std::string(kTfPrefix) + "freedrive_mode/enable"); ++ expected_names.push_back(std::string(kTfPrefix) + "freedrive_mode/abort"); ++ expected_names.push_back(std::string(kTfPrefix) + "trajectory_passthrough/transfer_state"); ++ expected_names.push_back(std::string(kTfPrefix) + "trajectory_passthrough/transfer_sequence"); ++ expected_names.push_back(std::string(kTfPrefix) + "trajectory_passthrough/time_from_start"); ++ expected_names.push_back(std::string(kTfPrefix) + "trajectory_passthrough/abort"); ++ expected_names.push_back(std::string(kTfPrefix) + "trajectory_passthrough/trajectory_size"); ++ for (size_t i = 0; i < 6; ++i) { ++ expected_names.push_back(std::string(kTfPrefix) + "trajectory_passthrough/setpoint_positions_" + std::to_string(i)); ++ } ++ for (size_t i = 0; i < 6; ++i) { ++ expected_names.push_back(std::string(kTfPrefix) + "trajectory_passthrough/setpoint_velocities_" + ++ std::to_string(i)); ++ } ++ for (size_t i = 0; i < 6; ++i) { ++ expected_names.push_back(std::string(kTfPrefix) + "trajectory_passthrough/setpoint_accelerations_" + ++ std::to_string(i)); ++ } ++ for (const char* name : { "linear_velocity_x", "linear_velocity_y", "linear_velocity_z", "angular_velocity_x", ++ "angular_velocity_y", "angular_velocity_z" }) { ++ expected_names.push_back(std::string(kTfPrefix) + "twist/" + name); ++ } ++ expected_names.push_back(std::string(kTfPrefix) + "tool_contact/tool_contact_set_state"); ++ for (const char* name : ++ { "motion_type", "q1", "q2", "q3", "q4", "q5", "q6", ++ "pos_x", "pos_y", "pos_z", "pos_qx", "pos_qy", "pos_qz", "pos_qw", ++ "pos_via_x", "pos_via_y", "pos_via_z", "pos_via_qx", "pos_via_qy", "pos_via_qz", "pos_via_qw", ++ "blend_radius", "velocity", "acceleration", "move_time" }) { ++ expected_names.push_back(std::string(kTfPrefix) + "motion_primitive/" + name); ++ } ++ ++ EXPECT_THAT(exported_names, ::testing::UnorderedElementsAreArray(expected_names)); ++} ++ ++TEST_F(URHardwareInterfaceExportTest, ExportsPassthroughProtocolInterfacesAsDoubles) ++{ ++ const auto command_interfaces = hw_->export_command_interfaces(); ++ const auto state_interfaces = hw_->export_state_interfaces(); ++ const auto find_interface = [](const auto& interfaces, const std::string& name) { ++ return std::find_if(interfaces.begin(), interfaces.end(), ++ [&name](const auto& interface) { return interface->get_name() == name; }); ++ }; ++ ++ const std::string prefix = std::string(kTfPrefix) + "trajectory_passthrough/"; ++ EXPECT_TRUE((*find_interface(command_interfaces, prefix + "transfer_state"))->get_optional()); ++ EXPECT_TRUE((*find_interface(command_interfaces, prefix + "transfer_sequence"))->get_optional()); ++ EXPECT_TRUE((*find_interface(command_interfaces, prefix + "trajectory_size"))->get_optional()); ++ EXPECT_TRUE((*find_interface(command_interfaces, prefix + "abort"))->get_optional()); ++ EXPECT_TRUE((*find_interface(state_interfaces, prefix + "transfer_state"))->get_optional()); ++ EXPECT_TRUE((*find_interface(state_interfaces, prefix + "transfer_sequence"))->get_optional()); ++ EXPECT_TRUE((*find_interface(state_interfaces, prefix + "abort"))->get_optional()); ++} ++ ++TEST(URHardwareInterfaceExport, SupportsDescriptionsWithoutEffortCommands) ++{ ++ auto info = BuildTestHardwareInfo(); ++ for (auto& joint : info.joints) { ++ joint.command_interfaces.erase( ++ std::remove_if(joint.command_interfaces.begin(), joint.command_interfaces.end(), ++ [](const auto& interface) { return interface.name == hardware_interface::HW_IF_EFFORT; }), ++ joint.command_interfaces.end()); ++ } ++ ++ hardware_interface::HardwareComponentParams params; ++ params.hardware_info = info; ++ params.clock = std::make_shared(); ++ params.logger = rclcpp::get_logger("test_ur_hardware_interface_without_effort_commands"); ++ ++ hardware_interface::System hardware(std::make_unique()); ++ const auto state = hardware.initialize(params); ++ ASSERT_EQ(state.id(), lifecycle_msgs::msg::State::PRIMARY_STATE_UNCONFIGURED); ++ ++ const auto exported_names = GetNames(hardware.export_command_interfaces()); ++ for (size_t i = 1; i <= kJointCount; ++i) { ++ EXPECT_THAT(exported_names, ::testing::Not(::testing::Contains("joint_" + std::to_string(i) + "/" + ++ hardware_interface::HW_IF_EFFORT))); ++ } ++} ++ ++int main(int argc, char** argv) ++{ ++ rclcpp::init(argc, argv); ++ testing::InitGoogleMock(&argc, argv); ++ int result = RUN_ALL_TESTS(); ++ rclcpp::shutdown(); ++ return result; ++} +diff --git a/urdf/ur.ros2_control.xacro b/urdf/ur.ros2_control.xacro +index 3d336e2..12087a1 100644 +--- a/urdf/ur.ros2_control.xacro ++++ b/urdf/ur.ros2_control.xacro +@@ -352,9 +352,19 @@ + + + ++ + + + ++ ++ 0.0 ++ ++ ++ 0.0 ++ ++ ++ 0.0 ++ + + +