-
 

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

Hardware Interface base class.

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:

Note that \ref hardware_interface::JointCommandInterface allows both reading joint state and commanding [effort|velocity|position]-based joints (see this answer).

CHANGELOG

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.

    - 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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

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

Hardware Interface base class.

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:

Note that \ref hardware_interface::JointCommandInterface allows both reading joint state and commanding [effort|velocity|position]-based joints (see this answer).

CHANGELOG

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.

    - 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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged hardware_interface at Robotics Stack Exchange