CHANGELOG
Changelog for package hardware_interface
4.22.0 (2024-12-20)
Propagate read/write rate to the HardwareInfo properly (#1928)
Async Hardware Components (#1567)
Add controller node options args to be able to set controller specific node arguments (#1713)
Make get_name() return a const reference (#1952)
Let sensors also export state interfaces of joints (#1885)
[CI] Add clang job, setup concurrency, use rt_tools humble branch (#1910)
Contributors: Christoph Fröhlich, Sai Kishor Kothakota, Takashi Sato
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)
4.19.0 (2024-10-26)
[RM/HW] Constify the exported state interfaces using ConstSharedPtr (#1767)
Contributors: Sai Kishor Kothakota
4.18.0 (2024-10-07)
Adapt controller Reference/StateInterfaces to New Way of Exporting (variant support) (#1689)
Automatic Creation of Handles in HW, Adding Getters/Setters (variant support) (#1688)
[RM] Execute error callback of component on returning ERROR or with exception (#1730)
Contributors: Manuel Muth, Sai Kishor Kothakota
4.17.0 (2024-09-11)
Log exception type when catching the exception (#1749)
Fix spam of logs on failed hardware component initialization (#1719)
[HWItfs] Add key-value-storage to the InterfaceInfo (#1421)
Rename get_state and set_state Functions to get/set_lifecylce_state (variant support) (#1683)
Contributors: Manuel Muth, Sai Kishor Kothakota
4.16.1 (2024-08-24)
4.16.0 (2024-08-22)
Use handle_name_ variable instead of allocating for every get_name call (#1706)
Introduce Creation of Handles with InterfaceDescription (variant support) (#1679)
Preparation of Handles for Variant Support (#1678)
[RM] Decouple read/write cycles of each component with mutex to not block other components (#1646)
Contributors: Manuel Muth, Sai Kishor Kothakota
4.15.0 (2024-08-05)
4.14.0 (2024-07-23)
4.13.0 (2024-07-08)
4.12.0 (2024-07-01)
Add resources_lock_ lock_guards to avoid race condition when loading robot_description through topic (#1451)
[RM] Rename load_urdf method to load_and_initialize_components and add error handling there to avoid stack crashing when error happens. (#1354)
Small improvements to the error output in component parser to make debugging easier. (#1580)
Fix link to gazebosim.org (#1563)
Add doc page about joint kinematics (#1497)
Bump version of pre-commit hooks (#1556)
[Feature] Hardware Components Grouping (#1458)
Contributors: Christoph Fröhlich, Dr. Denis, Sai Kishor Kothakota, github-actions[bot]
4.11.0 (2024-05-14)
4.10.0 (2024-05-08)
Add hardware components exception handling in resource manager (#1508)
Working async controllers and components [not synchronized] (#1041)
Parse URDF joint hard limits into the HardwareInfo structure (#1472)
Add fallback controllers list to the ControllerInfo (#1503)
Add more common hardware interface type constants (#1500)
Contributors: Márk Szitanics, Sai Kishor Kothakota
4.9.0 (2024-04-30)
4.8.0 (2024-03-27)
generate version.h file per package using the ament_generate_version_header (#1449)
Contributors: Sai Kishor Kothakota
4.7.0 (2024-03-22)
Codeformat from new pre-commit config (#1433)
Contributors: Christoph Fröhlich
4.6.0 (2024-03-02)
4.5.0 (2024-02-12)
4.4.0 (2024-01-31)
4.3.0 (2024-01-20)
[RM] Fix crash for missing urdf in resource manager (#1301)
Add additional checks for non existing and not available interfaces. (#1218)
Adding backward compatibility for string-to-double conversion (#1284)
[Doc] Make interface comments clearer in the doc strings. (#1288)
Fix return of ERROR and calls of cleanup when system is unconfigured of finalized (#1279)
fix the multiple definitions of lexical casts methods (#1281)
[ResourceManager] adds test for uninitialized hardware (#1243)
Use portable version for string-to-double conversion (#1257)
Fix typo in docs (#1219)
Contributors: Christoph Fröhlich, Dr. Denis, Maximilian Schik, Sai Kishor Kothakota, Stephanie Eng, bailaC
4.2.0 (2023-12-12)
4.1.0 (2023-11-30)
Add few warning compiler options to error (#1181)
Contributors: Sai Kishor Kothakota
4.0.0 (2023-11-21)
[MockHardware] Remove all deprecated options and deprecated plugins from the library. (#1150)
Contributors: Dr. Denis
3.21.0 (2023-11-06)
3.20.0 (2023-10-31)
[ResourceManager] deactivate hardware from read/write return value (#884)
Contributors: Felix Exner (fexner)
3.19.1 (2023-10-04)
3.19.0 (2023-10-03)
3.18.0 (2023-08-17)
3.17.0 (2023-08-07)
Add checks if hardware is initialized. (#1054)
Contributors: Dr. Denis
3.16.0 (2023-07-09)
3.15.0 (2023-06-23)
3.14.0 (2023-06-14)
Add -Wconversion flag to protect future developments (#1053)
[CM] Use robot_description topic instead of parameter and don’t crash on empty URDF 🦿 (#940)
[MockHardware] Enable disabling of command to simulate HW failures. (#1027)
enable ReflowComments to also use ColumnLimit on comments (#1037)
Docs: Use branch name substitution for all links (#1031)
[URDF Parser] Allow empty urdf tag, e.g., parameter (#1017)
Use consequently ‘mock’ instead of ‘fake’. (#1026)
Contributors: Christoph Fröhlich, Dr. Denis, Felix Exner (fexner), Manuel Muth, Sai Kishor Kothakota, gwalck
3.13.0 (2023-05-18)
Add class for thread management of async hw interfaces (#981)
Fix github links on control.ros.org (#1019)
Update precommit libraries(#1020)
Implement parse_bool and refactor a few (#1014)
docs: Fix link to hardware_components (#1009)
Contributors: Alejandro Bordallo, Christoph Fröhlich, Felix Exner (fexner), Márk Szitanics, mosfet80
3.12.2 (2023-04-29)
3.12.1 (2023-04-14)
3.12.0 (2023-04-02)
3.11.0 (2023-03-22)
Check for missing hardware interfaces that use the gpio tag. (#975)
Contributors: Ryan Sandzimier
3.10.0 (2023-03-16)
Split transmission interfaces (#938)
Contributors: Noel Jiménez García
3.9.1 (2023-03-09)
3.9.0 (2023-02-28)
3.8.0 (2023-02-10)
3.7.0 (2023-01-24)
Make double parsing locale independent (#921)
Contributors: Henning Kayser
3.6.0 (2023-01-12)
🔧 Fixes and updated on pre-commit hooks and their action (#890)
Contributors: Denis Štogl
3.5.1 (2023-01-06)
3.5.0 (2022-12-06)
3.4.0 (2022-11-27)
3.3.0 (2022-11-15)
[MockHardware] Enalbe initialization non-joint components(#822)
Contributors: Felix Exner
3.2.0 (2022-10-15)
3.1.0 (2022-10-05)
3.0.0 (2022-09-19)
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)
2.12.1 (2022-07-14)
Fix fake components deprecation and add test for it (#771)
Contributors: Bence Magyar
2.12.0 (2022-07-09)
2.11.0 (2022-07-03)
[Interfaces] Improved
`get_name()`
method of hardware interfaces #api-breaking (#737)Update maintainers of packages (#753)
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
Contributors: Bence Magyar, Denis Štogl, Lucas Schulze
2.10.0 (2022-06-18)
2.9.0 (2022-05-19)
Resource Manager extension to support management of reference interfaces from chained controllers. (#664) * Extend resource manager to manage reference interfaces from controllers. * Adjust interface between CM and RM for managing controllers’ reference interfaces.
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)
Make URDF available to HW components on initialize (#709)
Contributors: Bence Magyar
2.6.0 (2022-04-20)
2.5.0 (2022-03-25)
Require lifecycle-msgs in hardware_interface package (#675) (#678)
Using should be inside namespace and not global scope. (#673)
Modernize C++: Use for-each loops in Resource Manager. (#659)
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
2.4.0 (2022-02-23)
Fix transmission loader tests (#642)
Contributors: Bence Magyar, Denis Štogl
2.3.0 (2022-02-18)
Add a warning if an initial_value is not found for any interface (#623)
Contributors: AndyZe
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>
Doc 📓: Add detailed explanation about writing new hardware interface. (#615)
Contributors: Denis Štogl
2.1.0 (2022-01-11)
2.0.0 (2021-12-29)
Adding support for ‘initial_value’ parameter. (#593)
fix copy paste error in documentation (#594)
Use lambda functions in ros2_control generic_system for repetitive tasks (#579) Co-authored-by: Denis Štogl <destogl@users.noreply.github.com>
Extend FakeHardware to support <gpio>-tag (#574)
Contributors: Michael, bailaC, Denis Štogl
1.2.0 (2021-11-05)
Import and Initialize components (#566)
Contributors: Alejandro Hernández Cordero
1.1.0 (2021-10-25)
Handle errors of hardware that happen on read and write. (#546)
Contributors: Denis Štogl, Mathias Aarbo
1.0.0 (2021-09-29)
Hardware components extension for lifecycle support (#503)
add M_PI macro for windows in test_component_parser.cpp (#502)
Extend GenericSystem by adding mapping of position with offset to custom interface. (#469)
Remove BOOST compiler definitions for pluginlib from CMakeLists (#514)
Do not manually set C++ version to 14 (#516)
Contributors: Bence Magyar, Denis Štogl, dzyGIT
0.8.0 (2021-08-28)
Use clang format as code formatter (#491)
Fixup doc typo (#492)
Add docs for fake components (#466)
sort interfaces in resource manager (#483)
fix format (#484)
Transmission parsing v2 (#471) * move parsing responsibility to hardware_interface * parse transmission type * Cleanup unused parser
Add pre-commit setup. (#473)
Extended GenericSystem with state offset options for testing some special control cases. (#350) * Extended GenericSystem with state offset options for testing some special control cases. * Better parameter name * Apply offset only to position interfaces.
Added GPIO parsing and test (#436)
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
Contributors: Akash, Bence Magyar, Denis Štogl, Karsten Knese, Mathias Arbo, Jafar Abdi
0.7.1 (2021-06-15)
[FakeSystem] Set default command interface to NaN (#424)
Contributors: Denis Štogl, Bence Magyar
0.7.0 (2021-06-06)
Add FTS as first semantic components to simplify controllers. (#370)
Contributors: bailaC, Denis Štogl, Jordan Palacios
0.6.1 (2021-05-31)
0.6.0 (2021-05-23)
0.5.0 (2021-05-03)
Make hardware interface types as const char array rather than const char pointer (#408)
use auto instead of uint (#398)
hardware_interface mode switching using prepareSwitch doSwitch approach (#348)
avoid deprecations (#393)
move deprecation note before function definition instead of inside (#381)
Replace standard interfaces’ hard-coded strings by constants (#376)
add deprecation note for with_value_ptr (#378)
Contributors: El Jawad Alaa, Jafar Abdi, Karsten Knese, Mateus Amarante, Mathias Hauan Arbo, Bence Magyar
0.4.0 (2021-04-07)
0.3.0 (2021-03-21)
Capatalized error message and put the controllers name and resource name inside quote (#338)
Parse True and true in fakesystem, touch up variable name
Contributors: Denis Štogl, suab321321
0.2.1 (2021-03-02)
Remove unused include (#336)
Contributors: Bence Magyar
0.2.0 (2021-02-26)
Add “Fake” components for simple integration of framework (#323)
Contributors: Denis Štogl
0.1.6 (2021-02-05)
correct hardware interface validation in resource manager. (#317)
Contributors: Karsten Knese
0.1.5 (2021-02-04)
0.1.4 (2021-02-03)
0.1.3 (2021-01-21)
0.1.2 (2021-01-06)
0.1.1 (2020-12-23)
0.1.0 (2020-12-22)
Added starting of resources into CM and RM (#240)
Use resource manager (#236)
Use constants instead of strings in tests (#241)
resource loaning (#224)
Allocate memory for components and handles (#207)
rename command/state handles to command/state interfaces (#223)
Remodel component interfaces (#203)
adapt component parser to new xml schema (#209)
remove logical components, move hardware resources (#201)
Replace rclcpp by rcutils logging tools in hardware_interface pkg (#205)
Add a struct for Interface information, update the test URDF (#167)
Add virtual modifier to the functions of Joint and Sensor component (#178)
Hide component parser api (#157)
Remove old joint state and joint command handles (#134)
New version of component parser (#127)
Dynamic joint handles (#125)
Hardware component interfaces (#121)
Add ActuatorHandle and Implement string-based interface handle-handling using DynamicJointState message (#112)
Change Hardware return type to enum class (#114)
Replace RCUTILS_ with RCLCPP_ for logging (#62)
import hardware_interface
Contributors: Andreas Klintberg, Andy Zelenak, Bence Magyar, Colin MacKenzie, Denis Štogl, Jafar Abdi, Jordan Palacios, Karsten Knese, Mateus Amarante, Matthew Reynolds, Victor Lopez, Yutaka Kondo