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)
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)
[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)
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)
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)
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)
2.41.0 (2024-04-30)
2.40.0 (2024-03-02)
2.39.1 (2024-02-14)
2.39.0 (2024-02-12)
2.38.0 (2024-01-25)
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)
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)
2.36.0 (2023-12-12)
2.35.1 (2023-11-27)
2.35.0 (2023-11-14)
2.34.0 (2023-11-08)
2.33.0 (2023-10-11)
2.32.0 (2023-10-03)
2.31.0 (2023-09-11)
2.30.0 (2023-08-14)
2.29.0 (2023-07-09)
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)
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)
2.23.0 (2023-02-20)
2.22.0 (2023-01-31)
2.21.0 (2023-01-24)
2.20.0 (2023-01-12)
2.19.0 (2023-01-06)
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)
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)
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)
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)
2.6.0 (2022-04-20)
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)
2.3.0 (2022-02-18)
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)
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)
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