diff --git a/controller_interface/CHANGELOG.rst b/controller_interface/CHANGELOG.rst index 665b0175f6..9e77ef15b1 100644 --- a/controller_interface/CHANGELOG.rst +++ b/controller_interface/CHANGELOG.rst @@ -2,6 +2,11 @@ Changelog for package controller_interface ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +4.21.0 (2024-12-06) +------------------- +* [Diagnostics] Add diagnostics of execution time and periodicity of the controllers and controller_manager (`#1871 `_) +* Contributors: Sai Kishor Kothakota + 4.20.0 (2024-11-08) ------------------- * reset the async variables upon activation to work post exceptions (`#1860 `_) diff --git a/controller_interface/package.xml b/controller_interface/package.xml index ca3fc2af49..c0ebc15b08 100644 --- a/controller_interface/package.xml +++ b/controller_interface/package.xml @@ -2,7 +2,7 @@ controller_interface - 4.20.0 + 4.21.0 Description of controller_interface Bence Magyar Denis Štogl diff --git a/controller_manager/CHANGELOG.rst b/controller_manager/CHANGELOG.rst index 376b15014d..26e56883b8 100644 --- a/controller_manager/CHANGELOG.rst +++ b/controller_manager/CHANGELOG.rst @@ -2,6 +2,22 @@ Changelog for package controller_manager ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +4.21.0 (2024-12-06) +------------------- +* Use the .hpp headers from realtime_tools package (`#1916 `_) +* CM: Check if a valid time is received (`#1901 `_) +* Lock memory by default on a realtime system setup (`#1896 `_) +* Fix the launch_utils regression (`#1909 `_) +* [Diagnostics] Add diagnostics of execution time and periodicity of the controllers and controller_manager (`#1871 `_) +* Add more parameter overriding tests by parsing multiple parameter files (`#1899 `_) +* add logic for 'params_file' to handle both string and string_array (`#1898 `_) +* [Spawner] Accept parsing multiple `--param-file` arguments to spawner (`#1805 `_) +* Add documentation on `ros2_control_node` and make lock_memory false by default (`#1890 `_) +* Add service call timeout argument in spawner (`#1808 `_) +* Add CM `switch_controller` service timeout as parameter to spawner.py (`#1790 `_) +* Fix the missing bcolors.ENDC in hardware_spawner log prints (`#1870 `_) +* Contributors: Christoph Fröhlich, Sai Kishor Kothakota, Tony Najjar + 4.20.0 (2024-11-08) ------------------- * change from thread_priority.hpp to realtime_helpers.hpp (`#1829 `_) diff --git a/controller_manager/doc/userdoc.rst b/controller_manager/doc/userdoc.rst index fb69753ee2..3df3697dc7 100644 --- a/controller_manager/doc/userdoc.rst +++ b/controller_manager/doc/userdoc.rst @@ -331,9 +331,10 @@ lock_memory (optional; bool; default: false for a non-realtime kernel, true for Find more information about the setup for memory locking in the following link : `How to set ulimit values `_ The following command can be used to set the memory locking limit temporarily : ``ulimit -l unlimited``. -cpu_affinity (optional; int; default: -1) +cpu_affinity (optional; int (or) int_array;) Sets the CPU affinity of the ``controller_manager`` node to the specified CPU core. - The value of -1 means that the CPU affinity is not set. + If it is an integer, the node's affinity will be set to the specified CPU core. + If it is an array of integers, the node's affinity will be set to the specified set of CPU cores. thread_priority (optional; int; default: 50) Sets the thread priority of the ``controller_manager`` node to the specified value. The value must be between 0 and 99. diff --git a/controller_manager/package.xml b/controller_manager/package.xml index 42211e4e40..5447040537 100644 --- a/controller_manager/package.xml +++ b/controller_manager/package.xml @@ -2,7 +2,7 @@ controller_manager - 4.20.0 + 4.21.0 Description of controller_manager Bence Magyar Denis Štogl diff --git a/controller_manager/src/ros2_control_node.cpp b/controller_manager/src/ros2_control_node.cpp index af8d26d8b1..4cec3368b7 100644 --- a/controller_manager/src/ros2_control_node.cpp +++ b/controller_manager/src/ros2_control_node.cpp @@ -67,10 +67,22 @@ int main(int argc, char ** argv) RCLCPP_WARN(cm->get_logger(), "Unable to lock the memory : '%s'", message.c_str()); } - const int cpu_affinity = cm->get_parameter_or("cpu_affinity", -1); - if (cpu_affinity >= 0) + rclcpp::Parameter cpu_affinity_param; + if (cm->get_parameter("cpu_affinity", cpu_affinity_param)) { - const auto affinity_result = realtime_tools::set_current_thread_affinity(cpu_affinity); + std::vector cpus = {}; + if (cpu_affinity_param.get_type() == rclcpp::ParameterType::PARAMETER_INTEGER) + { + cpus = {cpu_affinity_param.as_int()}; + } + else if (cpu_affinity_param.get_type() == rclcpp::ParameterType::PARAMETER_INTEGER_ARRAY) + { + const auto cpu_affinity_param_array = cpu_affinity_param.as_integer_array(); + std::for_each( + cpu_affinity_param_array.begin(), cpu_affinity_param_array.end(), + [&cpus](int cpu) { cpus.push_back(static_cast(cpu)); }); + } + const auto affinity_result = realtime_tools::set_current_thread_affinity(cpus); if (!affinity_result.first) { RCLCPP_WARN( diff --git a/controller_manager/test/test_chainable_controller/test_chainable_controller.hpp b/controller_manager/test/test_chainable_controller/test_chainable_controller.hpp index f4f59ad9df..018f78b457 100644 --- a/controller_manager/test/test_chainable_controller/test_chainable_controller.hpp +++ b/controller_manager/test/test_chainable_controller/test_chainable_controller.hpp @@ -22,7 +22,7 @@ #include "controller_interface/chainable_controller_interface.hpp" #include "controller_manager/visibility_control.h" #include "rclcpp/subscription.hpp" -#include "realtime_tools/realtime_buffer.h" +#include "realtime_tools/realtime_buffer.hpp" #include "semantic_components/imu_sensor.hpp" #include "std_msgs/msg/float64_multi_array.hpp" diff --git a/controller_manager_msgs/CHANGELOG.rst b/controller_manager_msgs/CHANGELOG.rst index 46ecc7ab6e..79b2ca739a 100644 --- a/controller_manager_msgs/CHANGELOG.rst +++ b/controller_manager_msgs/CHANGELOG.rst @@ -2,6 +2,9 @@ Changelog for package controller_manager_msgs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +4.21.0 (2024-12-06) +------------------- + 4.20.0 (2024-11-08) ------------------- diff --git a/controller_manager_msgs/package.xml b/controller_manager_msgs/package.xml index 78a9f99591..1d9a26d3d1 100644 --- a/controller_manager_msgs/package.xml +++ b/controller_manager_msgs/package.xml @@ -2,7 +2,7 @@ controller_manager_msgs - 4.20.0 + 4.21.0 Messages and services for the controller manager. Bence Magyar Denis Štogl diff --git a/doc/release_notes.rst b/doc/release_notes.rst index efdcd00d3d..b1ccf5491b 100644 --- a/doc/release_notes.rst +++ b/doc/release_notes.rst @@ -85,6 +85,7 @@ controller_manager * The ``ros2_control_node`` node has a new ``cpu_affinity`` parameter to bind the process to a specific CPU core. By default, this is not enabled. (`#1852 `_). * The ``--service-call-timeout`` was added as parameter to the helper scripts ``spawner.py``. Useful when the CPU load is high at startup and the service call does not return immediately (`#1808 `_). * The ``pal_statistics`` is now integrated into the controller_manager, so that the controllers, hardware components and the controller_manager can be easily introspected and monitored using the topics ``~/introspection_data/names`` and ``~/introspection_data/values`` (`#1918 `_). +* The ``cpu_affinity`` parameter can now accept of types ``int`` or ``int_array`` to bind the process to a specific CPU core or multiple CPU cores. (`#1915 `_). hardware_interface ****************** diff --git a/hardware_interface/CHANGELOG.rst b/hardware_interface/CHANGELOG.rst index 17e276bc93..41152d6eaa 100644 --- a/hardware_interface/CHANGELOG.rst +++ b/hardware_interface/CHANGELOG.rst @@ -2,6 +2,15 @@ Changelog for package hardware_interface ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +4.21.0 (2024-12-06) +------------------- +* [Feature] Choose different read and write rate for the hardware components (`#1570 `_) +* add logic for 'params_file' to handle both string and string_array (`#1898 `_) +* [Spawner] Accept parsing multiple `--param-file` arguments to spawner (`#1805 `_) +* Fix missing virtual of on_export\_[state|command]_interfaces methods (`#1888 `_) +* Refactor: add parse_state_interface_descriptions and parse_command_interface_descriptions to import the components (`#1768 `_) +* Contributors: Sai Kishor Kothakota, Takashi Sato + 4.20.0 (2024-11-08) ------------------- * Add Support for SDF (`#1763 `_) diff --git a/hardware_interface/package.xml b/hardware_interface/package.xml index 5174175429..4476d1808a 100644 --- a/hardware_interface/package.xml +++ b/hardware_interface/package.xml @@ -1,7 +1,7 @@ hardware_interface - 4.20.0 + 4.21.0 ros2_control hardware interface Bence Magyar Denis Štogl diff --git a/hardware_interface_testing/CHANGELOG.rst b/hardware_interface_testing/CHANGELOG.rst index 8daf6bab93..fca3037f04 100644 --- a/hardware_interface_testing/CHANGELOG.rst +++ b/hardware_interface_testing/CHANGELOG.rst @@ -2,6 +2,11 @@ Changelog for package hardware_interface_testing ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +4.21.0 (2024-12-06) +------------------- +* [Feature] Choose different read and write rate for the hardware components (`#1570 `_) +* Contributors: Sai Kishor Kothakota + 4.20.0 (2024-11-08) ------------------- diff --git a/hardware_interface_testing/package.xml b/hardware_interface_testing/package.xml index 3966cbc993..dfccd23a19 100644 --- a/hardware_interface_testing/package.xml +++ b/hardware_interface_testing/package.xml @@ -1,7 +1,7 @@ hardware_interface_testing - 4.20.0 + 4.21.0 ros2_control hardware interface testing Bence Magyar Denis Štogl diff --git a/joint_limits/CHANGELOG.rst b/joint_limits/CHANGELOG.rst index 6b00437dd1..5fbf3a44fa 100644 --- a/joint_limits/CHANGELOG.rst +++ b/joint_limits/CHANGELOG.rst @@ -2,6 +2,11 @@ Changelog for package joint_limits ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +4.21.0 (2024-12-06) +------------------- +* Use the .hpp headers from realtime_tools package (`#1916 `_) +* Contributors: Christoph Fröhlich + 4.20.0 (2024-11-08) ------------------- diff --git a/joint_limits/include/joint_limits/joint_limiter_interface.hpp b/joint_limits/include/joint_limits/joint_limiter_interface.hpp index 42403d56ae..17bffed021 100644 --- a/joint_limits/include/joint_limits/joint_limiter_interface.hpp +++ b/joint_limits/include/joint_limits/joint_limiter_interface.hpp @@ -24,7 +24,7 @@ #include "joint_limits/visibility_control.h" #include "rclcpp/node.hpp" #include "rclcpp_lifecycle/lifecycle_node.hpp" -#include "realtime_tools/realtime_buffer.h" +#include "realtime_tools/realtime_buffer.hpp" #include "trajectory_msgs/msg/joint_trajectory_point.hpp" namespace joint_limits diff --git a/joint_limits/package.xml b/joint_limits/package.xml index c7fca5f2af..129551a8b8 100644 --- a/joint_limits/package.xml +++ b/joint_limits/package.xml @@ -1,6 +1,6 @@ joint_limits - 4.20.0 + 4.21.0 Package with interfaces for handling of joint limits in controllers or in hardware. The package also implements Saturation Joint Limiter for position-velocity-acceleration set and other individual interfaces. Bence Magyar diff --git a/ros2_control/CHANGELOG.rst b/ros2_control/CHANGELOG.rst index 5b57ddc2e2..b448c0996f 100644 --- a/ros2_control/CHANGELOG.rst +++ b/ros2_control/CHANGELOG.rst @@ -2,6 +2,9 @@ Changelog for package ros2_control ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +4.21.0 (2024-12-06) +------------------- + 4.20.0 (2024-11-08) ------------------- diff --git a/ros2_control/package.xml b/ros2_control/package.xml index 925ad6e23f..c883f00b14 100644 --- a/ros2_control/package.xml +++ b/ros2_control/package.xml @@ -1,7 +1,7 @@ ros2_control - 4.20.0 + 4.21.0 Metapackage for ROS2 control related packages Bence Magyar Denis Štogl diff --git a/ros2_control_test_assets/CHANGELOG.rst b/ros2_control_test_assets/CHANGELOG.rst index cad5325b2e..5f9b6bd6b9 100644 --- a/ros2_control_test_assets/CHANGELOG.rst +++ b/ros2_control_test_assets/CHANGELOG.rst @@ -2,6 +2,11 @@ Changelog for package ros2_control_test_assets ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +4.21.0 (2024-12-06) +------------------- +* [Feature] Choose different read and write rate for the hardware components (`#1570 `_) +* Contributors: Sai Kishor Kothakota + 4.20.0 (2024-11-08) ------------------- * Add Support for SDF (`#1763 `_) diff --git a/ros2_control_test_assets/package.xml b/ros2_control_test_assets/package.xml index bb818063ab..5632af7ef3 100644 --- a/ros2_control_test_assets/package.xml +++ b/ros2_control_test_assets/package.xml @@ -2,7 +2,7 @@ ros2_control_test_assets - 4.20.0 + 4.21.0 The package provides shared test resources for ros2_control stack Bence Magyar diff --git a/ros2controlcli/CHANGELOG.rst b/ros2controlcli/CHANGELOG.rst index 894bbb8ea3..b8545c80da 100644 --- a/ros2controlcli/CHANGELOG.rst +++ b/ros2controlcli/CHANGELOG.rst @@ -2,6 +2,11 @@ Changelog for package ros2controlcli ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +4.21.0 (2024-12-06) +------------------- +* [Spawner] Accept parsing multiple `--param-file` arguments to spawner (`#1805 `_) +* Contributors: Sai Kishor Kothakota + 4.20.0 (2024-11-08) ------------------- diff --git a/ros2controlcli/package.xml b/ros2controlcli/package.xml index ddb904c432..7e12a15665 100644 --- a/ros2controlcli/package.xml +++ b/ros2controlcli/package.xml @@ -2,7 +2,7 @@ ros2controlcli - 4.20.0 + 4.21.0 The ROS 2 command line tools for ROS2 Control. diff --git a/ros2controlcli/setup.py b/ros2controlcli/setup.py index 949445ec59..57783e838f 100644 --- a/ros2controlcli/setup.py +++ b/ros2controlcli/setup.py @@ -19,7 +19,7 @@ setup( name=package_name, - version="4.20.0", + version="4.21.0", packages=find_packages(exclude=["test"]), data_files=[ ("share/" + package_name, ["package.xml"]), diff --git a/rqt_controller_manager/CHANGELOG.rst b/rqt_controller_manager/CHANGELOG.rst index 1f9ad52f22..d345ad040f 100644 --- a/rqt_controller_manager/CHANGELOG.rst +++ b/rqt_controller_manager/CHANGELOG.rst @@ -2,6 +2,9 @@ Changelog for package rqt_controller_manager ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +4.21.0 (2024-12-06) +------------------- + 4.20.0 (2024-11-08) ------------------- diff --git a/rqt_controller_manager/package.xml b/rqt_controller_manager/package.xml index 1611ce05a3..d504a8a0fd 100644 --- a/rqt_controller_manager/package.xml +++ b/rqt_controller_manager/package.xml @@ -2,7 +2,7 @@ rqt_controller_manager - 4.20.0 + 4.21.0 Graphical frontend for interacting with the controller manager. Bence Magyar Denis Štogl diff --git a/rqt_controller_manager/setup.py b/rqt_controller_manager/setup.py index 76d8c706c2..0c6898c126 100644 --- a/rqt_controller_manager/setup.py +++ b/rqt_controller_manager/setup.py @@ -20,7 +20,7 @@ setup( name=package_name, - version="4.20.0", + version="4.21.0", packages=[package_name], data_files=[ ("share/ament_index/resource_index/packages", ["resource/" + package_name]), diff --git a/transmission_interface/CHANGELOG.rst b/transmission_interface/CHANGELOG.rst index 842cc76488..41e6d0f10c 100644 --- a/transmission_interface/CHANGELOG.rst +++ b/transmission_interface/CHANGELOG.rst @@ -2,6 +2,9 @@ Changelog for package transmission_interface ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +4.21.0 (2024-12-06) +------------------- + 4.20.0 (2024-11-08) ------------------- diff --git a/transmission_interface/package.xml b/transmission_interface/package.xml index 7ae2f2eda7..a5fad4f86c 100644 --- a/transmission_interface/package.xml +++ b/transmission_interface/package.xml @@ -2,7 +2,7 @@ transmission_interface - 4.20.0 + 4.21.0 transmission_interface contains data structures for representing mechanical transmissions, methods for propagating values between actuator and joint spaces and tooling to support this. Bence Magyar Denis Štogl