|
Package Summary
Tags | No category tags. |
Version | 2.44.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros-controls/ros2_control.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2024-11-22 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Bence Magyar
- Denis Štogl
Authors
Overview
For detailed information about this package, please see the ros2_control Documentation!
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]{.title-ref} 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]{.title-ref} 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)
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)
- 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)
2.25.3 (2023-04-29)
2.25.2 (2023-04-20)
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)
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)
- 🔧 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)
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 (]{.title-ref}#737 <<https://github.com/ros-controls/ros2_control/issues/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
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
rcutils | |
ament_cmake | |
ament_cmake_gmock | |
ros2_control_test_assets | |
control_msgs | |
lifecycle_msgs | |
pluginlib | |
rclcpp_lifecycle | |
rcpputils | |
tinyxml2_vendor |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged hardware_interface at Robotics Stack Exchange
|
Package Summary
Tags | No category tags. |
Version | 3.30.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros-controls/ros2_control.git |
VCS Type | git |
VCS Version | iron |
Last Updated | 2024-11-14 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Bence Magyar
- Denis Štogl
Authors
Overview
For detailed information about this package, please see the ros2_control Documentation!
Changelog for package hardware_interface
3.30.0 (2024-11-12)
3.29.0 (2024-11-02)
- Add resources_lock_ lock_guards to avoid race condition when loading robot_description through topic (backport #1451) (#1600)
- Contributors: mergify[bot]
3.28.1 (2024-09-11)
3.28.0 (2024-08-22)
3.27.0 (2024-07-23)
- Small improvements to the error output in component parser to make debugging easier. (backport #1580) (#1582)
- Contributors: mergify[bot]
3.26.0 (2024-07-09)
- Fix link to gazebosim.org (#1563) (#1565)
- Add doc page about joint kinematics (#1497) (#1560)
- Bump version of pre-commit hooks (backport #1556) (#1558)
- Contributors: mergify[bot]
3.25.0 (2024-04-30)
- Add missing calculate_dynamics (#1498) (#1512)
- [Doc] Add documentation about initial_value regarding mock_hw (#1352) (#1514)
- Move migration notes (#1481)
- Bump version of pre-commit hooks (backport #1430) (#1435)
- Contributors: Christoph Fröhlich, Felix Exner
3.24.0 (2024-03-02)
- [CI] Code coverage + pre-commit (backport #1413) (#1415)
- Move hardware interface README content to sphinx documentation (#1342) (#1381)
- Contributors: mergify[bot]
3.23.0 (2024-02-01)
- Move [test_components]{.title-ref} to own package (backport #1325) (#1341)
- Contributors: Christoph Fröhlich
3.22.1 (2024-01-25)
- [CM] Fix controller parameter loading issue in different cases (#1293) (#1331)
- Contributors: Sai Kishor Kothakota
3.22.0 (2024-01-20)
- [RM] Fix crash for missing urdf in resource manager (#1301) (#1313)
- Add additional checks for non existing and not available interfaces. (backport #1218) (#1292)
- Adding backward compatibility for string-to-double conversion (#1284) (#1289)
- Fix return of ERROR and calls of cleanup when system is unconfigured of finalized (#1279) (#1287)
- fix the multiple definitions of lexical casts methods (#1281) (#1283)
- Use portable version for string-to-double conversion (backport #1257) (#1269)
- [ResourceManager] adds test for uninitialized hardware (#1243) (#1270)
- Fix typo in docs (#1219) (#1222)
- Contributors: mergify[bot]
3.21.2 (2023-12-05)
3.21.1 (2023-11-14)
3.21.0 (2023-11-06)
- [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)
- Fix potential deadlock in ResourceManager (#925)
- Contributors: Christopher Wecht, Dr. Denis
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)
- [MockHardware] Added dynamic simulation functionality. (#1028)
- Add GPIO tag description to docs (#1109)
- Contributors: Christoph Fröhlich, Dr. Denis
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)
- Enable setting of initial state in HW compoments (#1046)
- Ensure instantiation of hardware classes work for python bindings (#1058)
- Contributors: Dr. Denis, Olivier Stasse
3.14.0 (2023-06-14)
- Add -Wconversion flag to protect future developments (#1053)
- [CM] Use [robot_description]{.title-ref} 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)
- Fix CMake install so overriding works (#926)
- Async params (#927)
- Contributors: Márk Szitanics, Tyler Weaver
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)
- ResourceManager doesn't always log an error on shutdown anymore (#867)
- Rename class type to plugin name #api-breaking #abi-breaking (#780)
- Contributors: Bence Magyar, Christopher Wecht
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)
- [MockComponents] Rename 'fake_sensor_commands' to 'mock_sensor_commands' (#782)
- fix broken links (issue #831) (#833)
- Contributors: Kvk Praneeth, Manuel Muth, Bence Magyar, Denis Štogl
3.1.0 (2022-10-05)
- Cleanup Resource Manager a bit to increase clarity. (#816)
- Handle hardware errors in Resource Manager
(#805)
- Add code for deactivating controller when hardware gets an error on read and write.
- Contributors: Denis Štogl
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)
- 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 (]{.title-ref}#737 <<https://github.com/ros-controls/ros2_control/issues/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
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
rcutils | |
ament_cmake | |
ament_cmake_gmock | |
ros2_control_test_assets | |
control_msgs | |
lifecycle_msgs | |
pluginlib | |
rclcpp_lifecycle | |
rcpputils | |
tinyxml2_vendor |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged hardware_interface at Robotics Stack Exchange
|
Package Summary
Tags | No category tags. |
Version | 4.20.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros-controls/ros2_control.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2024-11-22 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Bence Magyar
- Denis Štogl
Authors
Overview
For detailed information about this package, please see the ros2_control Documentation!
Changelog for package hardware_interface
4.20.0 (2024-11-08)
- Add Support for SDF (#1763)
- [HW_IF] Prepare the handles for async operations (#1750)
- Contributors: Aarav Gupta, Sai Kishor Kothakota
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]{.title-ref} 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]{.title-ref} and [set_state]{.title-ref} Functions to [get/set_lifecylce_state]{.title-ref} (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]{.title-ref} 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)
- [RM] Add [get_hardware_info]{.title-ref} method to the Hardware Components (#1643)
- add missing rclcpp logging include for Humble compatibility build (#1635)
- Contributors: Sai Kishor Kothakota
4.14.0 (2024-07-23)
- Unused header cleanup (#1627)
- [ResourceManager] Make destructor virtual for use in derived classes (#1607)
- Contributors: Henry Moore, Sai Kishor Kothakota
4.13.0 (2024-07-08)
- [ResourceManager] Propagate access to logger and clock interfaces to HardwareComponent (#1585)
- [ControllerChaining] Export state interfaces from chainable controllers (#1021)
- Remove mimic parameter from ros2_control tag (#1553)
- Contributors: Christoph Fröhlich, Sai Kishor Kothakota
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]{.title-ref} method to [load_and_initialize_components]{.title-ref} 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)
- Add find_package for ament_cmake_gen_version_h (#1534)
- Parse URDF soft_limits into the HardwareInfo structure (#1488)
- Contributors: Christoph Fröhlich, adriaroig
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)
- Add missing calculate_dynamics (#1498)
- Component parser: Get mimic information from URDF (#1256)
- Contributors: Christoph Fröhlich
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)
- Add -Werror=missing-braces to compile options (#1423)
- [CI] Code coverage + pre-commit (#1413)
- Contributors: Christoph Fröhlich, Sai Kishor Kothakota
4.5.0 (2024-02-12)
- Add missing export macros in lexical_casts.hpp (#1382)
- Move hardware interface README content to sphinx documentation (#1342)
- [Doc] Add documentation about initial_value regarding mock_hw (#1352)
- Contributors: Felix Exner (fexner), Mateus Menezes, Silvio Traversaro
4.4.0 (2024-01-31)
- Move [test_components]{.title-ref} to own package (#1325)
- Fix controller parameter loading issue in different cases (#1293)
- Contributors: Christoph Fröhlich, Sai Kishor Kothakota
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)
- [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)
- Fix potential deadlock in ResourceManager (#925)
- Contributors: Christopher Wecht, Dr. Denis
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)
- [MockHardware] Added dynamic simulation functionality. (#1028)
- Add GPIO tag description to docs (#1109)
- Contributors: Christoph Fröhlich, Dr. Denis
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)
- Enable setting of initial state in HW compoments (#1046)
- Ensure instantiation of hardware classes work for python bindings (#1058)
- Contributors: Dr. Denis, Olivier Stasse
3.14.0 (2023-06-14)
- Add -Wconversion flag to protect future developments (#1053)
- [CM] Use [robot_description]{.title-ref} 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)
- Fix CMake install so overriding works (#926)
- Async params (#927)
- Contributors: Márk Szitanics, Tyler Weaver
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)
- ResourceManager doesn't always log an error on shutdown anymore (#867)
- Rename class type to plugin name #api-breaking #abi-breaking (#780)
- Contributors: Bence Magyar, Christopher Wecht
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)
- [MockComponents] Rename 'fake_sensor_commands' to 'mock_sensor_commands' (#782)
- fix broken links (issue #831) (#833)
- Contributors: Kvk Praneeth, Manuel Muth, Bence Magyar, Denis Štogl
3.1.0 (2022-10-05)
- Cleanup Resource Manager a bit to increase clarity. (#816)
- Handle hardware errors in Resource Manager
(#805)
- Add code for deactivating controller when hardware gets an error on read and write.
- Contributors: Denis Štogl
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)
- 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 (]{.title-ref}#737 <<https://github.com/ros-controls/ros2_control/issues/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
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged hardware_interface at Robotics Stack Exchange
|
Package Summary
Tags | No category tags. |
Version | 4.20.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros-controls/ros2_control.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2024-11-22 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Bence Magyar
- Denis Štogl
Authors
Overview
For detailed information about this package, please see the ros2_control Documentation!
Changelog for package hardware_interface
4.20.0 (2024-11-08)
- Add Support for SDF (#1763)
- [HW_IF] Prepare the handles for async operations (#1750)
- Contributors: Aarav Gupta, Sai Kishor Kothakota
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]{.title-ref} 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]{.title-ref} and [set_state]{.title-ref} Functions to [get/set_lifecylce_state]{.title-ref} (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]{.title-ref} 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)
- [RM] Add [get_hardware_info]{.title-ref} method to the Hardware Components (#1643)
- add missing rclcpp logging include for Humble compatibility build (#1635)
- Contributors: Sai Kishor Kothakota
4.14.0 (2024-07-23)
- Unused header cleanup (#1627)
- [ResourceManager] Make destructor virtual for use in derived classes (#1607)
- Contributors: Henry Moore, Sai Kishor Kothakota
4.13.0 (2024-07-08)
- [ResourceManager] Propagate access to logger and clock interfaces to HardwareComponent (#1585)
- [ControllerChaining] Export state interfaces from chainable controllers (#1021)
- Remove mimic parameter from ros2_control tag (#1553)
- Contributors: Christoph Fröhlich, Sai Kishor Kothakota
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]{.title-ref} method to [load_and_initialize_components]{.title-ref} 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)
- Add find_package for ament_cmake_gen_version_h (#1534)
- Parse URDF soft_limits into the HardwareInfo structure (#1488)
- Contributors: Christoph Fröhlich, adriaroig
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)
- Add missing calculate_dynamics (#1498)
- Component parser: Get mimic information from URDF (#1256)
- Contributors: Christoph Fröhlich
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)
- Add -Werror=missing-braces to compile options (#1423)
- [CI] Code coverage + pre-commit (#1413)
- Contributors: Christoph Fröhlich, Sai Kishor Kothakota
4.5.0 (2024-02-12)
- Add missing export macros in lexical_casts.hpp (#1382)
- Move hardware interface README content to sphinx documentation (#1342)
- [Doc] Add documentation about initial_value regarding mock_hw (#1352)
- Contributors: Felix Exner (fexner), Mateus Menezes, Silvio Traversaro
4.4.0 (2024-01-31)
- Move [test_components]{.title-ref} to own package (#1325)
- Fix controller parameter loading issue in different cases (#1293)
- Contributors: Christoph Fröhlich, Sai Kishor Kothakota
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)
- [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)
- Fix potential deadlock in ResourceManager (#925)
- Contributors: Christopher Wecht, Dr. Denis
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)
- [MockHardware] Added dynamic simulation functionality. (#1028)
- Add GPIO tag description to docs (#1109)
- Contributors: Christoph Fröhlich, Dr. Denis
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)
- Enable setting of initial state in HW compoments (#1046)
- Ensure instantiation of hardware classes work for python bindings (#1058)
- Contributors: Dr. Denis, Olivier Stasse
3.14.0 (2023-06-14)
- Add -Wconversion flag to protect future developments (#1053)
- [CM] Use [robot_description]{.title-ref} 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)
- Fix CMake install so overriding works (#926)
- Async params (#927)
- Contributors: Márk Szitanics, Tyler Weaver
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)
- ResourceManager doesn't always log an error on shutdown anymore (#867)
- Rename class type to plugin name #api-breaking #abi-breaking (#780)
- Contributors: Bence Magyar, Christopher Wecht
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)
- [MockComponents] Rename 'fake_sensor_commands' to 'mock_sensor_commands' (#782)
- fix broken links (issue #831) (#833)
- Contributors: Kvk Praneeth, Manuel Muth, Bence Magyar, Denis Štogl
3.1.0 (2022-10-05)
- Cleanup Resource Manager a bit to increase clarity. (#816)
- Handle hardware errors in Resource Manager
(#805)
- Add code for deactivating controller when hardware gets an error on read and write.
- Contributors: Denis Štogl
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)
- 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 (]{.title-ref}#737 <<https://github.com/ros-controls/ros2_control/issues/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
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged hardware_interface at Robotics Stack Exchange
|
Package Summary
Tags | No category tags. |
Version | 0.20.0 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros-controls/ros_control.git |
VCS Type | git |
VCS Version | noetic-devel |
Last Updated | 2024-10-12 |
Dev Status | MAINTAINED |
CI status |
|
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Bence Magyar
- Enrique Fernandez
- Mathias Lüdtke
Authors
- Wim Meeussen
- Adolfo Rodriguez Tsouroukdissian
Hardware Interfaces
Hardware interfaces are used by ROS control in conjunction with one of the available ROS controllers to send (\ref hardware_interface::RobotHW::write) commands to the hardware and receive (\ref hardware_interface::RobotHW::read) states from the robot’s resources (joints, sensors, actuators).
A list of available hardware interfaces (provided via the HardwareResourceManager) as of this writing are:
-
JointCommandInterface:
hardware interface to support commanding and reading the state of an array of
joints. Note that these commands can have any semantic meaning as long as each
can be represented by a single double, they are not necessarily effort commands.
To specify a meaning to this command, see the derived classes:
- EffortJointInterface: for commanding and reading effort-based joints.
- VelocityJointInterface: for commanding and reading velocity-based joints.
- PositionJointInterface: for commanding and reading position-based joints.
- JointStateInterfaces: hardware interface to support reading the state of an array of named joints, each of which has some position, velocity, and effort (force or torque).
- ActuatorStateInterfaces: hardware interface to support reading the state of an array of named actuators, each of which has some position, velocity, and effort (force or torque).
- ActuatorCommandInterfaces
- PosVelJointInterface
- PosVelAccJointInterface
- Force-torque sensor Interface
- IMU sensor Interface
Note that \ref hardware_interface::JointCommandInterface allows both reading joint state and commanding [effort|velocity|position]-based joints (see this answer).
Changelog for package hardware_interface
0.20.0 (2023-10-27)
- Add JPVTPIDGains-like interface (#515)
- Contributors: Bence Magyar, Wolfgang Merkt
0.19.6 (2022-10-21)
- Update mainpage.dox (#496)
- Contributors: PaddyCube
0.19.5 (2021-06-16)
- Correct exception msg for missing abs pos ptr
- fix broken links by making them relative
- Contributors: G.A. vd. Hoorn, Mikael Arguedas
0.19.4 (2020-12-05)
- Clarified documentation for InterfaceManager sub-manager handling
- Updated InterfaceManager documentation
- Removed duplicate error message Previously, trying to combine two non-ResourceManager interfaces yielded two identical error messages.
- Remove inconsistent InterfaceManager manager registering behavior All InterfaceManager now handle registered InterfaceManagers transparently. This allows chains of multiple InterfaceManagers registered to each other to work corectly, mostly relevant for registering a manager from a combined_robot_hw RobotHW. Resolves #452
- Contributors: Robert Wilbrandt
0.19.3 (2020-10-11)
- Update mainpage.dox
- Explain JointStateInterface and PositionJointInterface
- Explain how to use potential software transmissions
- Link to transmission_interface examples
- Update doc of robot_hw.h
- Use JointStateHandle in case of read-only operations
- doc: add README.md for hardware_interface
- doc: add mainpage.dox including examples
- doc: update robot_hw.h docstrings update docstring of class and init method.
- Contributors: Franz Pucher, Bence Magyar
0.19.2 (2020-08-17)
0.19.1 (2020-05-10)
- Function specifiers noetic
(#453)
- Add override specifiers & default constructors
- Delete ControllerBase copy & move ctors
- Remove unnecessary default constructors
- Modernize additional constructors
- Revert ImuSensorHandle::<Data::Data>() = default
- Remove unnecessary default overridden constructors
* Remove semicolon after function body Co-authored-by: Matt Reynolds <<mtreynolds@uwaterloo.ca>>
- [hardware_interface::RobotHW] doc: update read and write, fix: group names (#444) (#454)
- Use setuptools instead of distutils (#429)
- Contributors: Bence Magyar, Matt Reynolds
0.19.0 (2020-04-23)
- Remove deprecated ForceTorqueHandle ctor (#437)
- Replace enums with enum classes (#412)
- Use CamelCase for ResourceManagerType typedef (#438)
- Contributors: Matt Reynolds
0.18.0 (2020-04-16)
- Bump CMake version to avoid CMP0048 (#427)
- Contributors: Shane Loretz
0.17.0 (2020-02-24)
- Use default member initializers
- Use braces for member initializers
- Replace boost with std
- Replace boost::ptr_vector<T> with std::vector<T*>
- Contributors: AbhinavSingh, Bence Magyar, Matt Reynolds
0.16.0 (2020-01-27)
- Merge pull request #413 from matthew-reynolds/range-for Use range-based for loop
- Use more meaningful pair iterator names
- Correct typo in interface_manager.h Co-Authored-By: Bence Magyar <<bence.magyar.robotics@gmail.com>>
- Merge pull request #404 from matthew-reynolds/catkin-lint Update CMakeLists.txt and package.xml
- Use range-based for loops in hardware_interface
- Resolve Boost dependency issues
- Update dependencies
- Dependencies needed to compile are <build_depend>
- Dependencies used in public headers are <build_export_depend>
- Dependencies needed to link or run are <exec_depend>
- Merge branch 'melodic-devel' into catkin-lint
- Update package dependencies
- Remove rosunit test_depend from package.xml
- Merge pull request #405 from matthew-reynolds/use-nullptr Use nullptr
- Use nullptr in tests
- Prefer nullptr for null pointers
- Merge pull request #406 from matthew-reynolds/pragma-once Use #pragma once
- Replace header guard with #pragma once
- Merge pull request #395 from pal-robotics-forks/extend-interfaces-melodic Extend interfaces
- Extend joint mode interface
- Add torque sensor and absolute encoder support to transmissions and adjust tests Add pointer accessors for torque sensor and absoute position encoders
- Modified structures to have absolute encoder and torque sensor parameters
- Fix argument types to use enum
- hardware_interface: fix initialization order
- Created new hardware interface for switching between controller modes
- Remove unnecessary rosunit/rostest dependencies
- Add missing Boost dependency
- Remove redundant rosconsole dependency
- Apply consistent style to CMakeLists.txt files
- Apply consistent style to package.xml files
- Merge pull request #399 from mvieth/melodic-devel Fix compiler warnings
- Fix compiler warnings
- Comment out unused parameters
- Make some integer literals unsigned to avoid comparison between signed and unsigned
- Remove unnecessary semicolons
- Make const void return type to void
- Merge pull request #398 from matthew-reynolds/revert-cmake Revert CMake include_directories as SYSTEM
- Revert CMake include_directories as SYSTEM
- Merge pull request #396 from pal-robotics-forks/small-fixes Small fixes
- Fix shadowed variables
- Multi-update cycle mode switch
(#391)
For more info:
https://github.com/pal-robotics-forks/ros_control2/pull/5
- Added tests for ControllerManager update
- Mocks for controllers and controller loader in update test
- Divided in tests with and without controllers
- Controller state initialized in mock
- Moved mocks to test class
- All tests using mock class
- Test for multiple updates in a single controller
* Added new switchResult() function to RobotHW interface ControllerManager uses this function to wait for the result of the doSwitch() before starting the new set of controllers
- Using ranged based loops
- Switch is now managed in a separate function
- Option to start controllers as soon as their joints are ready after a switch
- Tests for controller_interface API
- Added new STOPPED, WAITING and ABORTED states to ControllerBase
- Split manageSwitch() into smaller functions
- Abort pending controllers in case of switch error
* Changed default behaviour of new switch param This way if it not set it will be the same behaviour as previous version
- Added timeout parameter to switch controller
- Removed unnecessary includes
- Using target_include_directories for the test
- std::all_of instead of std::count_if
- Deleted autogenerated file
- Adapted tests to changes in controller_manager
- Adapted python implementation to new parameters in SwitchController
- Added missing parameter description docstring
- Moved all parameters used for switching to a separate object
- Moved error messages to controller_base
- State check functions are now const
- Removed unnecessary comments
- Added constants for start_asap and timeout default parameters values
- Option to start controllers as soon as their joints are ready after a switch
- Switch is now managed in a separate function
- Added new switchResult() function to RobotHW interface ControllerManager uses this function to wait for the result of the doSwitch() before starting the new set of controllers
- Contributors: Bence Magyar, Dave Coleman, Hilario Tome, Jordan Palacios, Markus Vieth, Matt Reynolds, Paul Mathieu, Victor Lopez
0.15.1 (2018-09-30)
0.15.0 (2018-05-28)
- boost::shared_ptr -> std::shared_ptr
- Introduce shared_ptr typedefs
- Contributors: Bence Magyar
0.14.2 (2018-04-26)
- Update maintainers
- Fix catkin_lint errors and warnings
- Contributors: Bence Magyar
0.14.1 (2018-04-16)
0.14.0 (2018-03-26)
0.13.0 (2017-12-23)
- move CheckIsResourceManager into internal namespace
- remove unused CheckIsResourceManager::value
- do not require default constructors for HardwareInterface classes ResourceManager-based interfaces still need a default constructor.
- get rid of warnings for functions returning no values
- test for HW interface without default constructor
- fix constness in ImuSensorHandle
- fix constness in ForceTorqueSensorHandle
- Contributors: Mathias Lüdtke
0.12.0 (2017-08-05)
0.11.5 (2017-06-28)
0.11.4 (2017-02-14)
0.11.3 (2016-12-07)
0.11.2 (2016-11-28)
- Add Enrique and Bence to maintainer list
- Clean up export leftovers from rosbuild
- Convert to format2, fix dependency in cmake
- Contributors: Bence Magyar
0.11.1 (2016-08-18)
0.11.0 (2016-05-23)
- Allow the InterfaceManager class to register other InterfaceManagers. This will make it possible to combine several RobotHW objects into a single one.
- Contributors: Toni Oliver
0.10.1 (2016-04-23)
- Fix rosconsole errors from test build
- Contributors: Bence Magyar
0.10.0 (2015-11-20)
- Fix doSwitch execution point The doSwitch method needs to be executed in the update() method, that is, in the real-time path, which is where controller switching actually takes place. It was previously done in the switchController callback, which is non real-time.
- Introduce prepareSwitch, replacement of canSwitch
- Add InterfaceManager::getNames Add new method that allows to query the names of all interfaces managed by an InterfaceManager instance.
- Multi-interface controllers
- C++ API break.
- Modify ControllerInfo class to allow controllers to claim resources from multiple hardware interfaces. - Propagate changes to RobotHW::checkForConflict: Default resource ownsership policy is aware of controllers claiming resources from multiple hardware interfaces.
- Update and extend the corresponding test suite.
- Address -Wunused-parameter warnings
- Contributors: Adolfo Rodriguez Tsouroukdissian, Mathias Lüdtke
0.9.3 (2015-05-05)
0.9.2 (2015-05-04)
- Add HW interface switch feature
- Contributors: Mathias Lüdtke
0.9.1 (2014-11-03)
- Update package maintainers
- Contributors: Adolfo Rodriguez Tsouroukdissian
0.9.0 (2014-10-31)
- Add PosVel and PosVelAcc command interfaces
- Documentation fixes
- Contributors: Igorec, shadowmanos
0.8.2 (2014-06-25)
0.8.1 (2014-06-24)
0.8.0 (2014-05-12)
- Fix doc typo.
- Remove rosbuild artifacts. Fix #154.
- Contributors: Adolfo Rodriguez Tsouroukdissian
0.7.2 (2014-04-01)
0.7.1 (2014-03-31)
0.7.0 (2014-03-28)
- Add ResourceHandle typedef
- add name to anonymous objects to avoid cppcheck error
- Contributors: Daniel Pinyol, Igorec
0.6.0 (2014-02-05)
- Update interface_manager.h Trivial doc fix
- Add raw data accessors to actuators interface. Write access to the raw actuator data will be needed for automatic transmission loading.
- Fix doc typo.
- Migrate RobotHW class to use InterfaceManager.
- Factor out interface management parts of RobotHW.
- Interface management is needed in the transmission_interface package as well.
- Add new InterfaceManager internal class, with tests.
- RobotHW remains untouched.
- Contributors: Adolfo Rodriguez Tsouroukdissian
0.5.8 (2013-10-11)
- Renamed manifest.xml to prevent conflicts with rosdep
- Move from postfix to prefix increment in loops. Detected by cppcheck 'postfixOperator' warning.
- CMakeLists fix to fit with OpenEmbedded/Yocto meta-ros layer. Increase the compatibility of the ros_control code with meta-ros, an OpenEmbedded/Yocto layer that provides recipes for ROS packages disabling catking checking the variable CATKIN_ENABLE_TESTING.
0.5.7 (2013-07-30)
- Updated changelogs
- Author/maintainer list update.
0.5.6 (2013-07-29)
0.5.5 (2013-07-23)
0.5.4 (2013-07-23)
0.5.3 (2013-07-22)
0.5.2 (2013-07-22)
0.5.1 (2013-07-19)
- Typo fix
0.5.0 (2013-07-16)
- Add meta tags to packages not specifying them.
- Website, bugtracker, repository.
- Merged hydro-devel into master
- Fix compiler warnings (-Wreorder)
- Remove unused headers.
- Unit test sensor interfaces.
- Add default constructors to sensor handles.
- Tests build.
- Reneamed Github repo in documentation to ros-controls
- Add missing brace.
- Update sensor interfaces implementation.
- Use resource managing classes introduced in recent hardware interface rework.
- Conform to unified public API.
- Remove Eigen dependency from hardware_interface.
- Expose force-torque and IMU sensor data as const pointers to the raw data.
- Client code should wrap raw data however they prefer.
- Explicitly initialize IMU sensor handle members.
- Scrape orientation interface prototype.
- Add sensor ref frame field and capability queries.
- Add sensor reference frame field.
- First draft of sensor interfaces.
- Force/torque (wrench)
- Orientation
- IMU (very crude approximation)
0.4.0 (2013-06-25)
- Version 0.4.0
- 1.0.1
- Add another convenience symbol demangling method. We already had: string foo_name = demangledTypeName<FooType>(); which works great for typenames, but we were missing the equivalent for specific instances: FooType foo; string foo_name = demangledTypeName(foo); ...which works well for polymorphic types, returning the derived-most name.
- Fix duplicate header guard.
- Fix package URL in package.xml
- Fix compiler warning (-Wreorder).
- Restore documentation of handle parameters. Documentation that was previously in the interface classes before the hardware interface rework has been moved to the handle classes.
-
Fix ResourceManager exception messages. - Print derived class name instead of the less descriptive and more cryptic base class name. Eg. "hardware_interface::JointCommandInterface" instead of "hardware_interface::ResourceManager<hardware_interface::JointStateHandle>"
- Trivial doc/whitespace fix.
- Merge branch 'master' into hardware_interface_rework Conflicts: hardware_interface/CMakeLists.txt
- Separate resource manager in two classes.
- Refs #45.
- HardwareInterface specifics (ie. resource claiming) has been factored out. We now have the non-polymorphic ResourceManager class for registering and getting handles, and the polymorphic HardwareResourceManager that additionally implements the HardwareInterface and takes care of resource claiming. - The above change is required if the transmission interface is to leverage the resource management code, but without the hardware interface specifics. - Move files back to the internal folder. They are building blocks of the public API of hardware interfaces, but should not be directly #included by end users, so it's best they don't share the same location as user-facing headers.
- Update unit tests.
- Add missing include statement.
- Validate raw data wrapped by hardware interfaces.
- Initialize raw data pointers to 0 in default handle constructors, otherwise they evaluate to nonzero and there is no way to distinguish an uninitialized state (ie. dangling pointers) from a properly initialized one. - For non-empty handle constructors, validate input raw data, throw if invalid pointers are found. - Add assertions on handle accessors. Invalid reads will trigger the assertions instead of causing a segfault (in debug mode).
- Update unit tests.
- Warn when replacing a handle/interface. It is legitimate to change the underlying data associated to a handle/interface name, but it might also be a common programming error. Having the logs reflect this situation would allow to spot it easily.
- Make error message more explicit in test. Output with ROS_ERROR_STREAM instead of std::cout
- Add RobotHW class test.
- Add virtual destructor, protected internals.
- ResourceManager inherits from HardwareInterface, which has
virtual methods, so a virtual destructor is required.
- Internal members are protected instead of private.
- Unit test hardware_interfaces.
- More uniform hardware_interface API. Refs #45.
- adding install targets
- Restore joint resource claiming!. It had been mistakenly removed in a previous commit.
- merging CMakeLists.txt files from rosbuild and catkin
- adding hybrid-buildsystem makefiles
- Fix package URLs.
- Fix exception throwing.
- Harmonize how variables are quoted in logs.
- Unify to using 'single quotes'.
- Fixes #42.
- Merge branch 'master' of https://github.com/willowgarage/ros_control Conflicts: hardware_interface/include/hardware_interface/joint_command_interface.h
-
Add explicit actuator hardware interfaces. - These classes are similar to the existing joint equivalents, and are useful in setups leveraging the transmission_interface.
-
Refactor named resource management code. - In preparation for the explicitly typed actuators interface, code for managing named resources has been refactored into a separate class. This code consists of convenience methods wrapping a std::map container, and occur often enough that factoring it out to prevent duplication makes sense. - Code that is not part of the public API, and hence with no stability guarantees has been moved to the internal folder/namespace. It only affects the named resource management and symbol demanglind methods so far.
- catkinizing, could still be cleaned up
- add accessor for command
- Remove redundant semicolons.
- Use demangled type names when available. Fixes #36. Type names are used in different interfaces such as hardware_interface and controller_interface. When symbol demangling is available (currently gcc 3.0+), operate on demangled names, as they are more convenient for human reading, eg. hardware_interface::VelocityJointInterface instead of N18hardware_interface22VelocityJointInterfaceE
- Fix typo in rosdoc config files.
- Fixing error message in JointCommandInterface
- More documentation in hardware_interface
- Adding template parameter doc
- Changing @ commands to commands
- Adding lots of inline documentation, rosdoc files adding inline doc to robot_hw adding inline doc to robot_hw adding inline doc to robot_hw more doc more documentation more doc more doc more doc more doc formatting adding more doc groups in controller manager adding more doc groups in controller manager Adding doc for controllerspec adding hardware interface docs adding doc to joint interfaces adding rosdoc for controller_interface Adding / reformatting doc for controller interface
- Add missing explicit header dependency. Don't get required header transitively, but explicitly.
- Add mising roscpp dependency.
- cleanup
- move realtime tools in ros control, and create empty constructors for handles
- Doing resource conflict check on switchControllers call
- Adding in resource/claim infrastructure
- Refactoring joint command interfaces. Also added getJointNames()
- Switching to owned interfaces, instead of multiple virtual inheritance
- Changing interface names
- joint interfaces now throw on null joint value ptrs
- JointState is now JointMeasurement, to prevent naming collisions with pr2_mechanism
- Fixing copyright header text
- Joint interfaces now operate on pointers, instead of refs
- Tweaking inheritance to be virtual so it compiles. dummy app with controller manager compiles
- started controller_manager_tests. untested
- all pkgs now ported to fuerte
- hardware interface ported to fuerte
- more renaming
- new naming scheme
- running controller with casting. Pluginlib still messed up
- add macro
- running version, with latest pluginlib
- compiling version
- untested stuff, debians are screwed up
- compiling version
- first catkin stuff
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged hardware_interface at Robotics Stack Exchange
|
Package Summary
Tags | No category tags. |
Version | 1.6.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros-controls/ros2_control.git |
VCS Type | git |
VCS Version | galactic |
Last Updated | 2022-08-03 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Karsten Knese
- Bence Magyar
Authors
robot agnostic hardware_interface package. This package will eventually be moved into its own repo.
Changelog for package hardware_interface
1.6.0 (2022-08-03)
1.5.1 (2022-05-31)
1.5.0 (2022-04-29)
- Require lifecycle-msgs in hardware_interface package (#675)
- Contributors: Martin Wudenka
1.4.0 (2022-02-18)
1.3.0 (2021-12-21)
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
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
rcutils | |
ament_cmake | |
ament_cmake_gmock | |
ament_lint_auto | |
ament_lint_common | |
ros2_control_test_assets | |
control_msgs | |
lifecycle_msgs | |
pluginlib | |
rclcpp_lifecycle | |
rcpputils | |
tinyxml2_vendor |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged hardware_interface at Robotics Stack Exchange
|
Package Summary
Tags | No category tags. |
Version | 0.18.4 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros-controls/ros_control.git |
VCS Type | git |
VCS Version | melodic-devel |
Last Updated | 2023-10-27 |
Dev Status | MAINTAINED |
CI status |
|
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Bence Magyar
- Enrique Fernandez
- Mathias Lüdtke
Authors
- Wim Meeussen
- Adolfo Rodriguez Tsouroukdissian
Hardware Interfaces
Hardware interfaces are used by ROS control in conjunction with one of the available ROS controllers to send (\ref hardware_interface::RobotHW::write) commands to the hardware and receive (\ref hardware_interface::RobotHW::read) states from the robot’s resources (joints, sensors, actuators).
A list of available hardware interfaces (provided via the HardwareResourceManager) as of this writing are:
-
JointCommandInterface:
hardware interface to support commanding and reading the state of an array of
joints. Note that these commands can have any semantic meaning as long as each
can be represented by a single double, they are not necessarily effort commands.
To specify a meaning to this command, see the derived classes:
- EffortJointInterface: for commanding and reading effort-based joints.
- VelocityJointInterface: for commanding and reading velocity-based joints.
- PositionJointInterface: for commanding and reading position-based joints.
- JointStateInterfaces: hardware interface to support reading the state of an array of named joints, each of which has some position, velocity, and effort (force or torque).
- ActuatorStateInterfaces: hardware interface to support reading the state of an array of named actuators, each of which has some position, velocity, and effort (force or torque).
- ActuatorCommandInterfaces
- PosVelJointInterface
- PosVelAccJointInterface
- Force-torque sensor Interface
- IMU sensor Interface
Note that \ref hardware_interface::JointCommandInterface allows both reading joint state and commanding [effort|velocity|position]-based joints (see this answer).
Changelog for package hardware_interface
0.18.4 (2021-06-16)
0.18.3 (2020-12-05)
- [hardware_interface] Update documentation
(#457)
* doc: update robot_hw.h docstrings update docstring of class and
init method.
- doc: add mainpage.dox including examples
- doc: add README.md for hardware_interface
- Update hardware_interface/mainpage.dox
- Use JointStateHandle in case of read-only operations
- Explain JointStateInterface and PositionJointInterface
- Explain how to use potential software transmissions
- Link to transmission_interface examples
- remove whitespace
- Update mainpage.dox with comments from \@bmagyar
- Explain JointStateInterface and PositionJointInterface
- Explain how to use potential software transmissions
- Link to transmission_interface examples
- Update doc of robot_hw.h with comments of \@bmagyar
- Use JointStateHandle in case of read-only operations
- Clarified documentation for InterfaceManager sub-manager handling
- Updated InterfaceManager documentation
- Removed duplicate error message Previously, trying to combine two non-ResourceManager interfaces yielded two identical error messages.
- Remove inconsistent InterfaceManager manager registering behavior All InterfaceManager now handle registered InterfaceManagers transparently. This allows chains of multiple InterfaceManagers registered to each other to work corectly, mostly relevant for registering a manager from a combined_robot_hw RobotHW.
- doc: add README.md for hardware_interface
- doc: add mainpage.dox including examples
- doc: update robot_hw.h docstrings update docstring of class and init method.
- Contributors: Bence Magyar, Franz Pucher, Robert Wilbrandt
0.18.2 (2020-08-17)
0.18.1 (2020-05-09)
- Add function specifiers and modernize constructors
(#430)
- Add override specifiers & default constructors
- Delete ControllerBase copy & move ctors
- Remove unnecessary default constructors
- Modernize additional constructors
- Revert ImuSensorHandle::<Data::Data>() = default
- Remove unnecessary default overridden constructors
- Remove semicolon after function body
- [hardware_interface::RobotHW] doc: update read and write, fix: group names (#444)
- Contributors: Franz, Matt Reynolds
0.18.0 (2020-04-16)
- Bump CMake version to avoid CMP0048 (#427)
- Contributors: Shane Loretz
0.17.0 (2020-02-24)
- Use default member initializers
- Use braces for member initializers
- Replace boost with std
- Replace boost::ptr_vector<T> with std::vector<T*>
- Contributors: AbhinavSingh, Bence Magyar, Matt Reynolds
0.16.0 (2020-01-27)
- Merge pull request #413 from matthew-reynolds/range-for Use range-based for loop
- Use more meaningful pair iterator names
- Correct typo in interface_manager.h Co-Authored-By: Bence Magyar <<bence.magyar.robotics@gmail.com>>
- Merge pull request #404 from matthew-reynolds/catkin-lint Update CMakeLists.txt and package.xml
- Use range-based for loops in hardware_interface
- Resolve Boost dependency issues
- Update dependencies
- Dependencies needed to compile are <build_depend>
- Dependencies used in public headers are <build_export_depend>
- Dependencies needed to link or run are <exec_depend>
- Merge branch 'melodic-devel' into catkin-lint
- Update package dependencies
- Remove rosunit test_depend from package.xml
- Merge pull request #405 from matthew-reynolds/use-nullptr Use nullptr
- Use nullptr in tests
- Prefer nullptr for null pointers
- Merge pull request #406 from matthew-reynolds/pragma-once Use #pragma once
- Replace header guard with #pragma once
- Merge pull request #395 from pal-robotics-forks/extend-interfaces-melodic Extend interfaces
- Extend joint mode interface
- Add torque sensor and absolute encoder support to transmissions and adjust tests Add pointer accessors for torque sensor and absoute position encoders
- Modified structures to have absolute encoder and torque sensor parameters
- Fix argument types to use enum
- hardware_interface: fix initialization order
- Created new hardware interface for switching between controller modes
- Remove unnecessary rosunit/rostest dependencies
- Add missing Boost dependency
- Remove redundant rosconsole dependency
- Apply consistent style to CMakeLists.txt files
- Apply consistent style to package.xml files
- Merge pull request #399 from mvieth/melodic-devel Fix compiler warnings
- Fix compiler warnings
- Comment out unused parameters
- Make some integer literals unsigned to avoid comparison between signed and unsigned
- Remove unnecessary semicolons
- Make const void return type to void
- Merge pull request #398 from matthew-reynolds/revert-cmake Revert CMake include_directories as SYSTEM
- Revert CMake include_directories as SYSTEM
- Merge pull request #396 from pal-robotics-forks/small-fixes Small fixes
- Fix shadowed variables
- Multi-update cycle mode switch
(#391)
For more info:
https://github.com/pal-robotics-forks/ros_control2/pull/5
- Added tests for ControllerManager update
- Mocks for controllers and controller loader in update test
- Divided in tests with and without controllers
- Controller state initialized in mock
- Moved mocks to test class
- All tests using mock class
- Test for multiple updates in a single controller
* Added new switchResult() function to RobotHW interface ControllerManager uses this function to wait for the result of the doSwitch() before starting the new set of controllers
- Using ranged based loops
- Switch is now managed in a separate function
- Option to start controllers as soon as their joints are ready after a switch
- Tests for controller_interface API
- Added new STOPPED, WAITING and ABORTED states to ControllerBase
- Split manageSwitch() into smaller functions
- Abort pending controllers in case of switch error
* Changed default behaviour of new switch param This way if it not set it will be the same behaviour as previous version
- Added timeout parameter to switch controller
- Removed unnecessary includes
- Using target_include_directories for the test
- std::all_of instead of std::count_if
- Deleted autogenerated file
- Adapted tests to changes in controller_manager
- Adapted python implementation to new parameters in SwitchController
- Added missing parameter description docstring
- Moved all parameters used for switching to a separate object
- Moved error messages to controller_base
- State check functions are now const
- Removed unnecessary comments
- Added constants for start_asap and timeout default parameters values
- Option to start controllers as soon as their joints are ready after a switch
- Switch is now managed in a separate function
- Added new switchResult() function to RobotHW interface ControllerManager uses this function to wait for the result of the doSwitch() before starting the new set of controllers
- Contributors: Bence Magyar, Dave Coleman, Hilario Tome, Jordan Palacios, Markus Vieth, Matt Reynolds, Paul Mathieu, Victor Lopez
0.15.1 (2018-09-30)
0.15.0 (2018-05-28)
- boost::shared_ptr -> std::shared_ptr
- Introduce shared_ptr typedefs
- Contributors: Bence Magyar
0.14.2 (2018-04-26)
- Update maintainers
- Fix catkin_lint errors and warnings
- Contributors: Bence Magyar
0.14.1 (2018-04-16)
0.14.0 (2018-03-26)
0.13.0 (2017-12-23)
- move CheckIsResourceManager into internal namespace
- remove unused CheckIsResourceManager::value
- do not require default constructors for HardwareInterface classes ResourceManager-based interfaces still need a default constructor.
- get rid of warnings for functions returning no values
- test for HW interface without default constructor
- fix constness in ImuSensorHandle
- fix constness in ForceTorqueSensorHandle
- Contributors: Mathias Lüdtke
0.12.0 (2017-08-05)
0.11.5 (2017-06-28)
0.11.4 (2017-02-14)
0.11.3 (2016-12-07)
0.11.2 (2016-11-28)
- Add Enrique and Bence to maintainer list
- Clean up export leftovers from rosbuild
- Convert to format2, fix dependency in cmake
- Contributors: Bence Magyar
0.11.1 (2016-08-18)
0.11.0 (2016-05-23)
- Allow the InterfaceManager class to register other InterfaceManagers. This will make it possible to combine several RobotHW objects into a single one.
- Contributors: Toni Oliver
0.10.1 (2016-04-23)
- Fix rosconsole errors from test build
- Contributors: Bence Magyar
0.10.0 (2015-11-20)
- Fix doSwitch execution point The doSwitch method needs to be executed in the update() method, that is, in the real-time path, which is where controller switching actually takes place. It was previously done in the switchController callback, which is non real-time.
- Introduce prepareSwitch, replacement of canSwitch
- Add InterfaceManager::getNames Add new method that allows to query the names of all interfaces managed by an InterfaceManager instance.
- Multi-interface controllers
- C++ API break.
- Modify ControllerInfo class to allow controllers to claim resources from multiple hardware interfaces. - Propagate changes to RobotHW::checkForConflict: Default resource ownsership policy is aware of controllers claiming resources from multiple hardware interfaces.
- Update and extend the corresponding test suite.
- Address -Wunused-parameter warnings
- Contributors: Adolfo Rodriguez Tsouroukdissian, Mathias Lüdtke
0.9.3 (2015-05-05)
0.9.2 (2015-05-04)
- Add HW interface switch feature
- Contributors: Mathias Lüdtke
0.9.1 (2014-11-03)
- Update package maintainers
- Contributors: Adolfo Rodriguez Tsouroukdissian
0.9.0 (2014-10-31)
- Add PosVel and PosVelAcc command interfaces
- Documentation fixes
- Contributors: Igorec, shadowmanos
0.8.2 (2014-06-25)
0.8.1 (2014-06-24)
0.8.0 (2014-05-12)
- Fix doc typo.
- Remove rosbuild artifacts. Fix #154.
- Contributors: Adolfo Rodriguez Tsouroukdissian
0.7.2 (2014-04-01)
0.7.1 (2014-03-31)
0.7.0 (2014-03-28)
- Add ResourceHandle typedef
- add name to anonymous objects to avoid cppcheck error
- Contributors: Daniel Pinyol, Igorec
0.6.0 (2014-02-05)
- Update interface_manager.h Trivial doc fix
- Add raw data accessors to actuators interface. Write access to the raw actuator data will be needed for automatic transmission loading.
- Fix doc typo.
- Migrate RobotHW class to use InterfaceManager.
- Factor out interface management parts of RobotHW.
- Interface management is needed in the transmission_interface package as well.
- Add new InterfaceManager internal class, with tests.
- RobotHW remains untouched.
- Contributors: Adolfo Rodriguez Tsouroukdissian
0.5.8 (2013-10-11)
- Renamed manifest.xml to prevent conflicts with rosdep
- Move from postfix to prefix increment in loops. Detected by cppcheck 'postfixOperator' warning.
- CMakeLists fix to fit with OpenEmbedded/Yocto meta-ros layer. Increase the compatibility of the ros_control code with meta-ros, an OpenEmbedded/Yocto layer that provides recipes for ROS packages disabling catking checking the variable CATKIN_ENABLE_TESTING.
0.5.7 (2013-07-30)
- Updated changelogs
- Author/maintainer list update.
0.5.6 (2013-07-29)
0.5.5 (2013-07-23)
0.5.4 (2013-07-23)
0.5.3 (2013-07-22)
0.5.2 (2013-07-22)
0.5.1 (2013-07-19)
- Typo fix
0.5.0 (2013-07-16)
- Add meta tags to packages not specifying them.
- Website, bugtracker, repository.
- Merged hydro-devel into master
- Fix compiler warnings (-Wreorder)
- Remove unused headers.
- Unit test sensor interfaces.
- Add default constructors to sensor handles.
- Tests build.
- Reneamed Github repo in documentation to ros-controls
- Add missing brace.
- Update sensor interfaces implementation.
- Use resource managing classes introduced in recent hardware interface rework.
- Conform to unified public API.
- Remove Eigen dependency from hardware_interface.
- Expose force-torque and IMU sensor data as const pointers to the raw data.
- Client code should wrap raw data however they prefer.
- Explicitly initialize IMU sensor handle members.
- Scrape orientation interface prototype.
- Add sensor ref frame field and capability queries.
- Add sensor reference frame field.
- First draft of sensor interfaces.
- Force/torque (wrench)
- Orientation
- IMU (very crude approximation)
0.4.0 (2013-06-25)
- Version 0.4.0
- 1.0.1
- Add another convenience symbol demangling method. We already had: string foo_name = demangledTypeName<FooType>(); which works great for typenames, but we were missing the equivalent for specific instances: FooType foo; string foo_name = demangledTypeName(foo); ...which works well for polymorphic types, returning the derived-most name.
- Fix duplicate header guard.
- Fix package URL in package.xml
- Fix compiler warning (-Wreorder).
- Restore documentation of handle parameters. Documentation that was previously in the interface classes before the hardware interface rework has been moved to the handle classes.
-
Fix ResourceManager exception messages. - Print derived class name instead of the less descriptive and more cryptic base class name. Eg. "hardware_interface::JointCommandInterface" instead of "hardware_interface::ResourceManager<hardware_interface::JointStateHandle>"
- Trivial doc/whitespace fix.
- Merge branch 'master' into hardware_interface_rework Conflicts: hardware_interface/CMakeLists.txt
- Separate resource manager in two classes.
- Refs #45.
- HardwareInterface specifics (ie. resource claiming) has been factored out. We now have the non-polymorphic ResourceManager class for registering and getting handles, and the polymorphic HardwareResourceManager that additionally implements the HardwareInterface and takes care of resource claiming. - The above change is required if the transmission interface is to leverage the resource management code, but without the hardware interface specifics. - Move files back to the internal folder. They are building blocks of the public API of hardware interfaces, but should not be directly #included by end users, so it's best they don't share the same location as user-facing headers.
- Update unit tests.
- Add missing include statement.
- Validate raw data wrapped by hardware interfaces.
- Initialize raw data pointers to 0 in default handle constructors, otherwise they evaluate to nonzero and there is no way to distinguish an uninitialized state (ie. dangling pointers) from a properly initialized one. - For non-empty handle constructors, validate input raw data, throw if invalid pointers are found. - Add assertions on handle accessors. Invalid reads will trigger the assertions instead of causing a segfault (in debug mode).
- Update unit tests.
- Warn when replacing a handle/interface. It is legitimate to change the underlying data associated to a handle/interface name, but it might also be a common programming error. Having the logs reflect this situation would allow to spot it easily.
- Make error message more explicit in test. Output with ROS_ERROR_STREAM instead of std::cout
- Add RobotHW class test.
- Add virtual destructor, protected internals.
- ResourceManager inherits from HardwareInterface, which has
virtual methods, so a virtual destructor is required.
- Internal members are protected instead of private.
- Unit test hardware_interfaces.
- More uniform hardware_interface API. Refs #45.
- adding install targets
- Restore joint resource claiming!. It had been mistakenly removed in a previous commit.
- merging CMakeLists.txt files from rosbuild and catkin
- adding hybrid-buildsystem makefiles
- Fix package URLs.
- Fix exception throwing.
- Harmonize how variables are quoted in logs.
- Unify to using 'single quotes'.
- Fixes #42.
- Merge branch 'master' of https://github.com/willowgarage/ros_control Conflicts: hardware_interface/include/hardware_interface/joint_command_interface.h
-
Add explicit actuator hardware interfaces. - These classes are similar to the existing joint equivalents, and are useful in setups leveraging the transmission_interface.
-
Refactor named resource management code. - In preparation for the explicitly typed actuators interface, code for managing named resources has been refactored into a separate class. This code consists of convenience methods wrapping a std::map container, and occur often enough that factoring it out to prevent duplication makes sense. - Code that is not part of the public API, and hence with no stability guarantees has been moved to the internal folder/namespace. It only affects the named resource management and symbol demanglind methods so far.
- catkinizing, could still be cleaned up
- add accessor for command
- Remove redundant semicolons.
- Use demangled type names when available. Fixes #36. Type names are used in different interfaces such as hardware_interface and controller_interface. When symbol demangling is available (currently gcc 3.0+), operate on demangled names, as they are more convenient for human reading, eg. hardware_interface::VelocityJointInterface instead of N18hardware_interface22VelocityJointInterfaceE
- Fix typo in rosdoc config files.
- Fixing error message in JointCommandInterface
- More documentation in hardware_interface
- Adding template parameter doc
- Changing @ commands to commands
- Adding lots of inline documentation, rosdoc files adding inline doc to robot_hw adding inline doc to robot_hw adding inline doc to robot_hw more doc more documentation more doc more doc more doc more doc formatting adding more doc groups in controller manager adding more doc groups in controller manager Adding doc for controllerspec adding hardware interface docs adding doc to joint interfaces adding rosdoc for controller_interface Adding / reformatting doc for controller interface
- Add missing explicit header dependency. Don't get required header transitively, but explicitly.
- Add mising roscpp dependency.
- cleanup
- move realtime tools in ros control, and create empty constructors for handles
- Doing resource conflict check on switchControllers call
- Adding in resource/claim infrastructure
- Refactoring joint command interfaces. Also added getJointNames()
- Switching to owned interfaces, instead of multiple virtual inheritance
- Changing interface names
- joint interfaces now throw on null joint value ptrs
- JointState is now JointMeasurement, to prevent naming collisions with pr2_mechanism
- Fixing copyright header text
- Joint interfaces now operate on pointers, instead of refs
- Tweaking inheritance to be virtual so it compiles. dummy app with controller manager compiles
- started controller_manager_tests. untested
- all pkgs now ported to fuerte
- hardware interface ported to fuerte
- more renaming
- new naming scheme
- running controller with casting. Pluginlib still messed up
- add macro
- running version, with latest pluginlib
- compiling version
- untested stuff, debians are screwed up
- compiling version
- first catkin stuff