CHANGELOG

Changelog for package hardware_interface

2.44.0 (2024-11-09)

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

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

  • Add resources_lock_ lock_guards to avoid race condition when loading robot_description through topic (backport #1451) (#1599)

  • Contributors: mergify[bot]

2.43.1 (2024-09-11)

2.43.0 (2024-08-22)

2.42.0 (2024-07-23)

  • Small improvements to the error output in component parser to make debugging easier. (backport #1580) (#1581)

  • Update joints_userdoc.rst (#1604)

  • Fix link to gazebosim.org (#1563) (#1564)

  • Add doc page about joint kinematics (#1497) (#1559)

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

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

2.41.0 (2024-04-30)

  • Add missing calculate_dynamics (#1498) (#1511)

  • [Doc] Add documentation about initial_value regarding mock_hw (#1352) (#1513)

  • Move migration notes (#1481) (#1515)

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

  • Contributors: mergify[bot]

2.40.0 (2024-03-02)

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

  • Move hardware interface README content to sphinx documentation (#1342) (#1380)

  • Contributors: mergify[bot]

2.39.1 (2024-02-14)

  • readd activate_all_components method to not break API (#1392)

  • Contributors: Sai Kishor Kothakota

2.39.0 (2024-02-12)

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

  • Contributors: mergify[bot]

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)

  • [RM] Fix crash for missing urdf in resource manager (#1301) (#1316)

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

  • Fix return of ERROR and calls of cleanup when system is unconfigured of finalized (#1279) (#1286)

  • fix the multiple definitions of lexical casts methods (#1281) (#1282)

  • Contributors: Sai Kishor Kothakota, mergify[bot]

2.36.1 (2024-01-08)

  • [ResourceManager] adds test for uninitialized hardware (#1243) (#1274)

  • Use portable version for string-to-double conversion (backport #1257) (#1268)

  • Fix typo in docs (#1219) (#1221)

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

2.36.0 (2023-12-12)

  • Cleanup Resource Manager a bit to increase clarity. (backport #816) (#1191)

  • Handle hardware errors in Resource Manager (#805) (#837) #ABI-breaking

  • Contributors: mergify[bot]

2.35.1 (2023-11-27)

  • [MockHardware] Fix the issues where hardware with multiple interfaces can not be started because of a logical bug added when adding dynamics calculation functionality. (#1151) (#1178)

  • Contributors: Dr Denis

2.35.0 (2023-11-14)

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

  • Contributors: mergify[bot]

2.34.0 (2023-11-08)

2.33.0 (2023-10-11)

  • [MockHardware] Added dynamic simulation functionality. (#1028) (#1125)

  • Contributors: mergify[bot]

2.32.0 (2023-10-03)

  • Add GPIO tag description to docs (#1109) (#1120)

  • Contributors: Christoph Froehlich

2.31.0 (2023-09-11)

2.30.0 (2023-08-14)

  • Add checks if hardware is initialized. (backport #1054) (#1081)

  • Contributors: Denis Stogl

2.29.0 (2023-07-09)

2.28.0 (2023-06-23)

  • Ensure instantiation of hardware classes work for python bindings (#1058) (#1062)

  • Contributors: Olivier Stasse

2.27.0 (2023-06-14)

  • [MockHardware] Enable disabling of command to simulate HW failures. (backport #1027) (#1050)

  • Empty urdf tag humble (backport of #1017) (#1036)

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

  • Issue 339: Implement parse_bool and refactor a few (backport #1014) (#1018)

  • Contributors: Felix Exner (fexner), Sai Kishor Kothakota, Christoph Fröhlich, Bence Magyar, Alejandro Bordallo

2.26.0 (2023-05-20)

  • docs: Fix link to hardware_components (#1009) (#1011)

  • Contributors: Christoph Fröhlich

2.25.3 (2023-04-29)

2.25.2 (2023-04-20)

  • Also initialize non-joint components (backport #822) (#991)

  • Contributors: Felix Exner, Denis Štogl

2.25.1 (2023-04-14)

2.25.0 (2023-04-02)

  • Check for missing hardware interfaces that use the gpio tag. (#953)

  • Split transmission interfaces (backport #938) (#968)

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

2.24.1 (2023-03-09)

  • Revert “Make double parsing locale independent (#921)” (#966)

  • Contributors: Bence Magyar

2.24.0 (2023-02-28)

2.23.0 (2023-02-20)

2.22.0 (2023-01-31)

  • Make double parsing locale independent (#921) (#924)

  • Contributors: Henning Kayser

2.21.0 (2023-01-24)

2.20.0 (2023-01-12)

  • 🔧 Fixes and updated on pre-commit hooks and their action (backport #890) (#895)

  • Contributors: Denis Štogl

2.19.0 (2023-01-06)

  • ResourceManager doesn’t always log an error on shutdown anymore (#867) (#871)

  • Contributors: Christopher Wecht

2.18.0 (2022-12-03)

2.17.0 (2022-11-27)

2.16.0 (2022-10-17)

  • fix broken links (issue #831) (#833) (#845)

  • Contributors: Manuel Muth

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)

  • Hardware interface specific update rate and best practices about it (#716)

  • Deprecate fake components, long live mock components (#762)

  • Contributors: Bence Magyar, Lovro Ivanov

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)

  • Make RHEL CI happy! (#730)

  • CMakeLists cleanup (#733)

  • Refactored error handling when hardware name is duplicated (#724)

  • Update to clang format 12 (#731)

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

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)

  • Error if a hardware name is duplicated (#672)

  • Port four bar linkage and differential transmission loaders from ROS1 (#656)

  • Contributors: Andy Zelenak, Márk Szitanics

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)

  • Removing ‘auto’ from function definition to support pre c++ 20 (#608)

  • Support of “initial_value” for the ‘FakeSystem’ (#598)

  • Contributors: bailaC, Denis Štogl

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)

  • Remove the with_value_ptr and class templatization for ReadOnlyHandle (#379)

  • fake_components: Add mimic joint to generic system (#409)

  • List controller claimed interfaces (#407)

  • Contributors: El Jawad Alaa, Jafar Abdi, Jordan Palacios, Bence Magyar

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)

  • [ros2_control_test_assets] Fix typo (#371)

  • uint -> size_t, 0u and auto (#346)

  • Contributors: Karsten Knese, Yutaka Kondo

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)

  • Add test assets package (#289)

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

  • Move test_components from test_robot_hardware to hardware_interface package (#288)

  • Contributors: Denis Štogl, João Victor Torres Borges

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