CHANGELOG

Changelog for package controller_manager

2.46.0 (2024-12-16)

  • Add service call timeout argument in spawner (#1808) (#1886)

  • Fix the spawner to support full wildcard parameter entries (backport #1933) (#1939)

  • generate version.h file per package using the ament_generate_version_header (backport #1449) (#1938)

  • Add documentation on ros2_control_node and make lock_memory false by default (backport #1890) (#1895)

  • [Spawner] Accept parsing multiple –param-file arguments to spawner (backport #1805) (#1894)

  • Contributors: mergify[bot]

2.45.0 (2024-12-03)

  • Add CM switch_controller service timeout as parameter to spawner.py (backport #1790) (#1879)

  • Fix Hardware spawner and add tests for it (backport #1759) (#1827)

  • Contributors: mergify[bot]

2.44.0 (2024-11-09)

  • [ros2_control_node] Handle simulation environment clocks (backport #1810) (#1862)

  • Change from thread_priority.hpp to realtime_helpers.hpp (backport #1829) (#1866)

  • [ros2_control_node] Add option to set the CPU affinity (backport #1852) (#1856)

  • [ros2_control_node] Add the realtime_tools lock_memory method to prevent page faults (backport #1822) (#1850)

  • fix: typo use thread_priority (backport #1844) (#1847)

  • [Spawner] Add support for wildcard entries in the controller param files (#1724) (#1835)

  • Add test coverage for params_file parameter in spawner/unspawner tests (#1754) (#1838)

  • Fix unload of controllers when spawned with –unload-on-kill (#1717) (#1842)

  • add thread_priority option to the ros2_control_node (#1820) (#1824)

  • Add few warning compiler options to error (backport #1181) (#1816)

  • Add -Wconversion flag to protect future developments (#1053) (#1815)

  • Fix timeout value in std output (backport #1807) (#1812)

  • Improve launch utils to support the multiple controller names (#1782) (#1783)

  • allow extra spawner arguments to not declare every argument in launch utils (#1505) (#1792)

  • Refactor spawner to be able to reuse code for ros2controlcli (backport #1661) (#1695)

  • [rqt_controller_manager] Add hardware components (#1455) (#1586)

  • [CM] Handle other exceptions while loading the controller plugin (#1731) (#1733)

  • [CM] Throw an exception when the components initially fail to be in the required state (backport #1729) (#1777)

  • Fix spawner tests timeout on source builds (backport #1692) (#1697)

  • Contributors: mergify[bot]

2.43.1 (2024-09-11)

  • controller_manager: Add space to string literal concatenation (#1245) (#1747)

  • fix: the print of the information in control node was in wrong order (#1726)

  • Contributors: Manuel Muth, roscan-tech

2.43.0 (2024-08-22)

  • Infrom user why rt policy could not be set, infrom if is set. (backport #1705) (#1708)

  • Make list controller and list hardware components immediately visualize the state. (backport #1606) (#1690)

  • Robustify spawner (backport #1501) (#1686)

  • [CI] Backport #1636 #1668 and fix coverage on jammy (#1677)

  • Handle on waiting (backport #1562) (#1680)

  • refactor SwitchParams to fix the incosistencies in the spawner tests (backport #1638) (#1659)

  • Contributors: Christoph Fröhlich, mergify[bot]

2.42.0 (2024-07-23)

  • Remove noqa (#1626) (#1628)

  • Bump version of pre-commit hooks (backport #1556) (#1557)

  • Contributors: mergify[bot]

2.41.0 (2024-04-30)

  • check for state of the controller node before cleanup (backport #1363) (#1378)

  • Bump version of pre-commit hooks (backport #1430) (#1434)

  • Contributors: mergify[bot]

2.40.0 (2024-03-02)

  • Fix multiple chainable controller activation bug (backport #1401) (#1411)

  • [CI] Code coverage + pre-commit (backport #1413) (#1414)

  • Contributors: mergify[bot]

2.39.1 (2024-02-14)

2.39.0 (2024-02-12)

  • [Spawners] Remove walrus operator (#1366)

  • [CM] Use explicit constants in controller tests. (#1356) (#1359)

  • Move test_components to own package (backport #1325) (#1340)

  • Contributors: Christoph Fröhlich, Dr Denis

2.38.0 (2024-01-25)

  • [CM] Fix controller parameter loading issue in different cases (#1293) (#1332)

  • Enable setting of initial state in HW components (backport #1046) (#1064)

  • Contributors: Sai Kishor Kothakota, mergify[bot]

2.37.0 (2024-01-20)

  • Add additional checks for non existing and not available interfaces. (backport #1218) (#1291)

  • [ControllerManager] Fix all warnings from the latets features. (backport #1174) (#1309)

  • Reformat with braces added (backport #1209) (#1306)

  • Add spawner for hardware (backport #941) (#1216)

  • Initialize the controller manager services after initializing resource manager (#1272)

  • Fix rqt controller manager crash on ros2_control restart (#1273) (#1280)

  • Contributors: David Yackzan, Sai Kishor Kothakota, mergify[bot]

2.36.1 (2024-01-08)

  • [docs] Remove joint_state_controller (#1263) (#1264)

  • [CI] Increase timeout for controller_managers_srv test (backport #1224) (#1225)

  • Contributors: mergify[bot]

2.36.0 (2023-12-12)

  • Fix controller sorting issue while loading large number of controllers (#1180) (#1186)

  • Contributors: mergify[bot]

2.35.1 (2023-11-27)

2.35.0 (2023-11-14)

  • Fix the controller sorting bug when the interfaces are not configured (fixes #1164) (#1165) (#1166)

  • [CM] Use robot_description topic instead of parameter and don’t crash on empty URDF 🦿 (backport #940) (#1052)

  • Contributors: Sai Kishor Kothakota, Denis Stogl

2.34.0 (2023-11-08)

  • [Humble] Controller sorting (#1157)

  • Update spawner to accept controllers list and start them in sequence (backport #1139) (#1149)

  • Create doc file for chained controllers (backport #985) (#1131)

  • Contributors: Sai Kishor Kothakota, mergify[bot]

2.33.0 (2023-10-11)

  • Export of the get_cm_node_options() from robostack (#1129) (#1130)

  • Contributors: mergify[bot]

2.32.0 (2023-10-03)

  • Fix multiple calls to export reference interfaces (backport #1108) (#1114)

  • Contributors: Sai Kishor Kothakota, Dr Denis

2.31.0 (2023-09-11)

  • [Docs] Fix information about activation and deactivation of chainable controllers (#1104) (#1106)

  • Contributors: mergify[bot]

2.30.0 (2023-08-14)

  • [CM] Fixes the issue with individual controller’s update rate (#1082) (#1097)

  • Contributors: Sai Kishor Kothakota

2.29.0 (2023-07-09)

  • [CM] Make error message after trying to active controller more informative. (#1066) (#1072)

  • added controller manager runner to have update cycles (#1075) (#1076)

  • Fix equal and higher controller update rate (backport #1070) (#1071)

  • Contributors: Sai Kishor Kothakota, Dr Denis

2.28.0 (2023-06-23)

2.27.0 (2023-06-14)

  • Docs: Use branch name substitution for all links (backport #1031) (#1042)

  • [Humble] enable ReflowComments to also use ColumnLimit on comments (#1038)

  • controller_manager_srvs tests: Add text to assertions (backport #1023) (#1029)

  • Contributors: Sai Kishor Kothakota, Christoph Fröhlich, Bence Magyar, Felix Exner

2.26.0 (2023-05-20)

  • Revert “Add diagnostics (#1015) #abi-breaking

  • Fix GitHub link on control.ros.org (#1022) (#1024)

  • Contributors: Joseph Schornak, Christoph Fröhlich

2.25.3 (2023-04-29)

2.25.2 (2023-04-20)

2.25.1 (2023-04-14)

2.25.0 (2023-04-02)

2.24.1 (2023-03-09)

2.24.0 (2023-02-28)

  • fix AttributeError: Parameter object attribute name is read-only (#957) (#958)

  • Expose node options to controller manager (#942) (#946)

  • Contributors: Bence Magyar, methylDragon,Noel Jiménez García

2.23.0 (2023-02-20)

  • Adds list_hardware_components to CLI #796 - Adds list_hardware_components to CLI (#891) (#937)

  • Do not use CLI calls but direct API for setting parameters. (backport #910) (#913)

  • Contributors: Andy McEvoy, Denis Stogl

2.22.0 (2023-01-31)

  • Optimize output of controller spawner (backport #909) (#911)

  • Namespace Loaded Controllers (#852) (#914)

  • Add diagnostics (backport #820) (#922)

  • Contributors: Bence Magyar, Denis Stogl, Tony Najjar

2.21.0 (2023-01-24)

  • ControllerManager: catch exception by reference (#906) (#907)

  • Fix update rate setting from gazebo_ros2_control (backport #874) (#904)

  • Contributors: Christopher Wecht, Tony Najjar, Denis Stogl

2.20.0 (2023-01-12)

  • Add backward_ros to controller_manager (#886) (#892)

  • Contributors: Bence Magyar

2.19.0 (2023-01-06)

  • Prevent controller manager from crashing when controller’s plugin has error during loading. (#881) (#882)

  • Contributors: Denis Štogl

2.18.0 (2022-12-03)

  • Use a thread priority library from realtime_tools (#794) (#868)

  • Fix const-ness in std::chrono::time_point construction and explicitly use std::chrono::nanoseconds as std::chrono::time_point template parameter to help compilation on macOS as its std::chrono::system_clock::time_point defaults to std::chrono::milliseconds for duration type (#848) (#866)

  • Contributors: Andy Zelenak, light-tech

2.17.0 (2022-11-27)

2.16.0 (2022-10-17)

  • Search for controller manager in the same namespace as spawner (#810) (#839)

  • Don’t ask to export reference interface if controller not ‘inactive’ or ‘active’ (#824) (#843)

  • Contributors: Denis Štogl, Tony Najjar

2.15.0 (2022-09-19)

2.14.0 (2022-09-04)

  • Add doxygen comments (#777)

  • Contributors: Bence Magyar, Denis Štogl

2.13.0 (2022-08-03)

  • Clang tidy: delete a redundant return (#790)

  • Add chained controllers information in list controllers service #abi-braking (#758) * add chained controllers in ros2controlcli * remove controller_group from service * added comments to ControllerState message * added comments to ChainedConnection message

  • spawner.py: Fix python logging on deprecation warning (#787)

  • Add documentation for realtime permission (#781)

  • Fix bug in spawner with getter for node’s logger (#776)

  • Contributors: Andy Zelenak, Felix Exner, Paul Gesel, Bijou Abraham

2.12.1 (2022-07-14)

  • Rename CM members from start/stop to activate/deactivate nomenclature. (#756)

  • Fix spelling in comment (#769)

  • Contributors: Denis Štogl, Tyler Weaver

2.12.0 (2022-07-09)

  • Deprecate and rename start and stop nomenclature toward user to activate and deactivate #ABI-breaking (#755) * Rename fields and deprecate old nomenclature. * Add new defines to SwitchController.srv * Deprecated start/stop nomenclature in all CLI commands. * Deprecate ‘start_asap’ too as other fields.

  • [ros2_control_node] Automatically detect if RT kernel is used and opportunistically enable SCHED_FIFO (#748)

  • Contributors: Denis Štogl, Tyler Weaver

2.11.0 (2022-07-03)

  • Remove hybrid services in controller manager. (#761)

  • [Interfaces] Improved `get_name()` method of hardware interfaces #api-breaking (#737)

  • Update maintainers of packages (#753)

  • Fix test dependency for chainable test (#751)

  • Remove ament autolint (#749)

  • Full functionality of chainable controllers in controller manager (#667) * auto-switching of chained mode in controllers * interface-matching approach for managing chaining controllers

  • Fixup spanwer and unspawner tests. It changes spawner a bit to handle interupts internally. (#745)

  • Add missing field to initializer lists in tests (#746)

  • Small but useful output update on controller manager. (#741)

  • Fixed period passed to hardware components always 0 (#738)

  • Contributors: Bence Magyar, Denis Štogl, Maciej Bednarczyk, Lucas Schulze

2.10.0 (2022-06-18)

  • Make RHEL CI happy! (#730)

  • CMakeLists cleanup (#733)

  • Update to clang format 12 (#731)

  • Contributors: Andy Zelenak, Bence Magyar, Márk Szitanics

2.9.0 (2022-05-19)

  • Adding base class for chained controllers: ChainedControllersInterface (#663) * Extending ControllerInterface with methods for chainable controllers. * Switching to chained_mode is only forbidden if controller is active. * Default implementation for ‘on_set_chained_mode’ method. * Use two internal methods instead of ‘update’ directly on chained controllers.

  • Add ControllerInterfaceBase class with methods for chainable controller (#717)

  • Contributors: Denis Štogl

2.8.0 (2022-05-13)

  • Pass time and period to read() and write() (#715)

  • Contributors: Bence Magyar

2.7.0 (2022-04-29)

  • Update ControllerManager documenation describing some concepts (#677)

  • Make node private in ControllerInterface (#699)

  • Contributors: Chen Bainian, Denis Štogl, Jack Center, Bence Magyar

2.6.0 (2022-04-20)

  • Add controller_manager_msgs dependency to test_hardware_management_srvs (#702)

  • Remove unused variable from the test (#700)

  • Enable namespaces for controllers. (#693)

  • Spawner waits for services (#683)

  • Contributors: Denis Štogl, Rufus Wong, Tyler Weaver

2.5.0 (2022-03-25)

  • Make ControllerManager tests more flexible and reusable for different scenarios. Use more parameterized tests regarding strictness. (#661)

  • Use lifecycle nodes in controllers again (#538) * Add lifecycle nodes * Add custom ‘configure’ to controller interface to get ‘update_rate’ parameter. * Disable external interfaces of LifecycleNode.

  • Small fixes in controller manager tests. (#660)

  • Enable controller manager services to control hardware lifecycle #abi-breaking (#637) * Implement CM services for hardware lifecycle management. * Added default behavior to activate all controller and added description of CM parameters.

  • Contributors: Denis Štogl, Vatan Aksoy Tezer, Bence Magyar

2.4.0 (2022-02-23)

  • Fixes of issue with seg-fault when checking interfaces on unconfigured controllers. (#580)

  • Update CM service QoS so that we don’t lose service calls when using many controllers. (#643)

  • Contributors: Denis Štogl, Bence Magyar

2.3.0 (2022-02-18)

  • added a fixed control period to loop (#647)

  • install spawner/unspawner using console_script entrypoint (#607)

  • Add BEST_EFFORT in the controller switch tests. (#582)

  • Resolve unused parameter warnings (#636)

  • Contributors: Bence Magyar, Denis Štogl, Jack Center, Melvin Wang, Xi-Huang

2.2.0 (2022-01-24)

  • Resource Manager API changes for hardware lifecycle #api-breaking #abi-breaking (#589) * Towards selective starting and stoping of hardware components. Cleaning and renaming. * Move Lifecycle of hardware component to the bottom for better overview. * Use the same nomenclature as for controllers. ‘start’ -> ‘activate’; ‘stop’ -> ‘deactivate’ * Add selective starting and stopping of hardware resources. Add HardwareComponentInfo structure in resource manager. Use constants for HW parameters in tests of resource_manager. Add list hardware components in CM to get details about them and check their status. Use clear name for ‘guard’ and move release cmd itfs for better readability. RM: Add lock for accesing maps with stored interfaces. Separate hardware components-related services after controllers-related services. Add service for activate/deactive hardware components. Add activation and deactivation through ResourceStorage. This helps to manage available command interfaces. * Use lifecycle_msgs/State in ListHardwareCompoents for state representation. * Simplify repeatable code in methods. * Add HW shutdown structure into ResouceManager. * Fill out service callback in CM and add parameter for auto-configure. * Move claimed_command_itf_map to ResourceStorage from ResourceManager. * Do not automatically configure hardware in RM. * Lifecycle and claiming in Resource Manager is working. * Extend controller manager to support HW lifecycle. * Add also available and claimed status into list components service output. * Add SetHardwareComponentState service. * Make all output in services debug-output. * Remove specific services for hardware lifecycle management and leave only ‘set_hardware_component_state’ service. * Make init_resource_manager less stateful. * Keep old api to start/activate all components per default. * Remove ‘moving’/’non-moving’ interface-handling. * Remove obsolete ‘import_components’ methods without hardware info and fix post_initialization test. Co-authored-by: Bence Magyar <bence.magyar.robotics@gmail.com>

  • Contributors: Denis Štogl

2.1.0 (2022-01-11)

2.0.0 (2021-12-29)

  • Add service-skeletons for controlling hardware lifecycle. (#585)

  • fix get_update_rate visibility in windows (#586)

  • Make output of not available controller nicer and make it informational. (#577)

  • Contributors: Denis Štogl, Melvin Wang

1.2.0 (2021-11-05)

1.1.0 (2021-10-25)

  • feat: add colored output into spawner.py (#560)

  • Added timeout argument for service_caller timeout (#552)

  • controller_manager: Use command_interface_configuration for the claimed interfaces when calling list_controllers (#544)

  • Clean up test_load_controller (#532)

  • Contributors: Jack Center, Jafar Abdi, Michael, Nour Saeed

1.0.0 (2021-09-29)

  • Use ControllerManager node clock for control loop timepoints (#542)

  • Per controller update rate(#513)

  • added dt to controller interface and controller manager #438 (#520)

  • Update nomenclature in CM for better code and output understanding (#517)

  • Methods controlling the lifecycle of controllers all have on_ prefix

  • Controller Manager should not crash when trying to start finalized or unconfigured controller (#461)

  • Fix deprecation warning from rclcpp::Duration (#511)

  • Remove BOOST compiler definitions for pluginlib from CMakeLists (#514)

  • Do not manually set C++ version to 14 (#516)

  • Refactor INSTANTIATE_TEST_CASE_P -> INSTANTIATE_TEST_SUITE_P (#515) Also removed the duplicated format & compiler fixes as on Galactic this shouldn’t be an issue

  • rename get_current_state() to get_state() (#512)

  • Fix spawner tests (#509)

  • Removed deprecated CLI verbs (#420)

  • Remove extensions from executable nodes (#453)

  • Contributors: Bence Magyar, Denis Štogl, Dmitri Ignakov, Joseph Schornak, Márk Szitanics, Tim Clephas, bailaC, Mathias Aarbo

0.8.0 (2021-08-28)

  • Use clang format as code formatter (#491)

  • Use example urdf from the test_assests package. (#495)

  • Separate controller manager test cases (#476)

  • Add Controller Manager docs (#467)

  • sort interfaces in resource manager (#483)

  • Add pre-commit setup. (#473)

  • Make controller_manager set controller’s use_sim_time param when use_sim_time=True (#468) * potential solution to controller_manager use_sim_time sharing issue * removed debug print statements * added INFO message to warn user that use_sim_time is being set automatically

  • Add load-only option into controller spawner (#427)

  • Fixes for windows (#443) * Fix building on windows * Fix MSVC linker error when building tests * Fix hang when loading controller on windows * Use better log for configuring controller * Be consistent with visibility control * Use try_lock throw exception on failure

  • Add an argument to define controller manager timeout (#444)

  • Contributors: Akash, Bence Magyar, Darko Lukić, Denis Štogl, Karsten Knese, Simon Honigmann

0.7.1 (2021-06-15)

  • Use namespace in controller_manager (#435)

  • Contributors: Jonatan Olofsson

0.7.0 (2021-06-06)

0.6.1 (2021-05-31)

  • Add missing dependency on controller_manager_msgs (#426)

  • Contributors: Denis Štogl

0.6.0 (2021-05-23)

  • List controller claimed interfaces (#407) * List controllers now also shows the claimed interfaces * Fixed tests that perform switches Successfull controller switches require more than one call to update() in order to update the controller list * Can now set the command interface configuration * Added checks for the claimed interfaces

  • Contributors: Jordan Palacios

0.5.0 (2021-05-03)

  • Make controller manager update rate optional (#404)

  • Bump wait_for_service timeout to 10 seconds (#403)

  • introduce –stopped for spawner (#402)

  • hardware_interface mode switching using prepareSwitch doSwitch approach (#348)

  • Avoid std::stringstream (#391)

  • avoid deprecations (#393)

  • Use RCLCPP_DEBUG_STREAM for char * (#389)

  • Check controller_interface::init return value when loading (#386)

  • Do not throw when controller type is not found, return nullptr instead (#387)

  • Contributors: Auguste Bourgois, Karsten Knese, Matt Reynolds, Tyler Weaver, Mathias Hauan Arbo, Bence Magyar

0.4.0 (2021-04-07)

  • Fix deprecation warnings: SUCCESS -> OK (#375)

  • Don’t use FileType for param-file (#351)

  • Remodel ros2controlcli, refactor spawner/unspawner and fix test (#349)

  • Add spawner and unspawner scripts (#310)

  • Contributors: Bence Magyar, Jordan Palacios, Karsten Knese, Victor Lopez

0.3.0 (2021-03-21)

  • release_interfaces when stopping controller (#343) * release_interfaces when stopping controller * Moved release_interfaces after deactivate * First attempt at test_release_interfaces * Switched to std::async with cm_->update

  • Capatalized error message and put the controllers name and resource name inside quote (#338)

  • Contributors: mahaarbo, suab321321

0.2.1 (2021-03-02)

0.2.0 (2021-02-26)

  • Add “Fake” components for simple integration of framework (#323)

  • Contributors: Denis Štogl

0.1.6 (2021-02-05)

0.1.5 (2021-02-04)

0.1.4 (2021-02-03)

  • fix float conversion warning (#312)

  • update doxygen style according to ros2 core standard (#300)

  • Capitalized messages in controller_manager.cpp upto line669 (#285)

  • Sleep accurate duration on ros2_control_node (#302)

  • Contributors: Achinta-Choudhury, João Victor Torres Borges, Karsten Knese, Yutaka Kondo

0.1.3 (2021-01-21)

  • Fix building on macOS with clang (#292)

ail.com> * Contributors: Karsten Knese

0.1.2 (2021-01-06)

  • Fix update rate issues by working around MutliThreadedExecutor (#275) * Fix update rate issues by working around MutliThreadedExecutor Currently the MutliThreadedExecutor performance is very bad. This leads to controllers not meeting their update rate. This PR is a temporary workaround for these issues. The current approach uses a rclcpp timer to execute the control loop. When used in combination with the MutliThreadedExecutor, the timers are not execute at their target frequency. I’ve converted the control loop to a while loop on a separate thread that uses nanosleep to execute the correct update rate. This means that rclcpp is not involved in the execution and leads to much better performance. * Address review comments by rewriting several comments

  • Contributors: Ramon Wijnands

0.1.1 (2020-12-23)

0.1.0 (2020-12-22)

  • Add configure controller service (#272)

  • Remove lifecycle node (#261)

  • Added starting of resources into CM and RM (#240)

  • Use resource manager (#236)

  • Remove pluginlib warnings on reload test (#237)

  • resource loaning (#224)

  • Allocate memory for components and handles (#207)

  • Add controller manager services (#139)

  • Change Hardware return type to enum class (#114)

  • Use rclcpp::Executor instead of rclcpp::executor::Executor(deprecated) (#82)

  • Replace RCUTILS_ with RCLCPP_ for logging (#62)

  • dont include pluginlib header in controller manager header (#63)

  • export controller_interface (#58)

  • Use pluginlib instead of class_loader for loading controllers (#41)

  • import controller_manager

  • Contributors: Bence Magyar, Denis Štogl, Jafar Abdi, Jordan Palacios, Karsten Knese, Parth Chopra, Victor Lopez