![]() |
layered_hardware package from layered_hardware repolayered_hardware |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.0 |
License | MIT |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | A ros_control implementation that adopts layered scheme |
Checkout URI | https://github.com/yoshito-n-students/layered_hardware.git |
VCS Type | git |
VCS Version | jazzy |
Last Updated | 2025-02-04 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Yoshito Okada
Authors
layered_hardware
A ros2_control implementation that adopts layered scheme
The layered scheme
- every ros2_control’s component (ex. joint_limits, transmissions) is implemented as a layer plugin (base_class: layered_hardware::LayerInterface)
- plugins of non-actuator-specific layers can be reused for different actuators
- multiple layers for different vendors’ actuators can be used in the same hardware
Hardware Plugin: layered_hardware/LayeredHardware
Hardware parameters
layers (yaml, required)
- sequence of layers to be loaded by this ros2_control hardware
layers[*].name (string, required)
- arbitary name of the layer
layers[*].type (string, required)
- valid type name of the layer
- the type must be exported to the layered_hardware package
- the base class of the type must be layered_hardware::LayerInterface
Example of ros2_control
tag in your robot description
<ros2_control name="LayeredHardware" type="system">
<hardware>
<plugin>layered_hardware/LayeredHardware</plugin>
<param name="layers">
- name: example_layer_1
type: layered_hardware/ExampleLayer
- name: example_layer_2
...
...
</param>
...
</hardware>
...
</ros2_control>
Layer plugin: layered_hardware/CommandClamperLayer
- loads lower and upper limits on command interfaces of joints, sensors and gpios from the
ros2_control
tag in the robot description - clamps commands within the
write()
function (e.g. limits position command using only min and max position limits, ignoring velocity and acceleration limits)
Layer plugin: layered_hardware/JointSaturationLimiterLayer
- based on
joint_limits::JointSaturationLimiter<joint_limits::JointLimits>
- applies limits to all joint command interfaces within the
write()
function
Hardware parameters
___
- map of parameter names and values for this layer
___
- topic name for robot description, from which joint limits are loaded
Layer plugin: layered_hardware/TransmissionLayer
- based on
transmittion_interface::Transmission
- converts joint commands to actuator commands based on reduction ratio of transmission within
write()
function - converts actuator states to joint states within
read()
function
Layer plugin: layered_hardware/MockActuatorLayer
- implements mock {position, velocity, effort}-controlled actuators
- switches mock actuators’ command modes within
perform_command_mode_swtich()
function when controllers using associated interfaces activate - changes actuator states based on commands within
write()
function - useful to debug your command generation, state visualization nodes, or transmissions without physical actuators and dynamics simulators
Hardware parameters
___
- map of parameter names and values for this layer
___
- map of parameters for each mock actuator
___
- map to actuator command mode names (
position
,velocity
,effort
) from associated interface names (typically joint interfaces)
Example of parameter description
<param name="example_mock_actuator_layer">
actuators:
example_actuator_1:
command_mode_map:
example_joint_1/position: position
...
example_actuator_2:
...
</param>
Layer plugin: layered_hardware/MonitorLayer
- prints changes on commands and states within
read()
function for debug or logging purpose
Examples
Related packages
File truncated at 100 lines see the full file
Changelog for package layered_hardware
0.0.9 (2021-02-28)
- c++11
- Destruct layer instances before unloading layer plugins
0.0.8 (2020-05-05)
- Refactor LayeredHardware to be used as a parent class
0.0.7 (2020-05-03)
- Reset position-based joint limits when switching controllers
0.0.6 (2020-04-28)
- Add accessor methods to layers (LayeredHardware::{size(), layer()})
- Add link to layered_hardware_gazebo package in README
0.0.5 (2020-02-28)
- Enable a link to layered_hardware_epos in README
- Make robot description optional
0.0.4 (2019-12-25)
- Support soft joint limits
0.0.3 (2019-12-25)
- Updated example
- support LayerBase::prepareSwitch()
0.0.2 (2019-12-24)
- Refactored layers
- Updated README
0.0.1 (2019-12-13)
- Initial version
- Compilable on kinetic & melodic
- Tested with launch/example.launch
- Contributors: Yoshito Okada
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged layered_hardware at Robotics Stack Exchange
![]() |
layered_hardware package from layered_hardware repolayered_hardware |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.0 |
License | MIT |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | A ros_control implementation that adopts layered scheme |
Checkout URI | https://github.com/yoshito-n-students/layered_hardware.git |
VCS Type | git |
VCS Version | jazzy |
Last Updated | 2025-02-04 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Yoshito Okada
Authors
layered_hardware
A ros2_control implementation that adopts layered scheme
The layered scheme
- every ros2_control’s component (ex. joint_limits, transmissions) is implemented as a layer plugin (base_class: layered_hardware::LayerInterface)
- plugins of non-actuator-specific layers can be reused for different actuators
- multiple layers for different vendors’ actuators can be used in the same hardware
Hardware Plugin: layered_hardware/LayeredHardware
Hardware parameters
layers (yaml, required)
- sequence of layers to be loaded by this ros2_control hardware
layers[*].name (string, required)
- arbitary name of the layer
layers[*].type (string, required)
- valid type name of the layer
- the type must be exported to the layered_hardware package
- the base class of the type must be layered_hardware::LayerInterface
Example of ros2_control
tag in your robot description
<ros2_control name="LayeredHardware" type="system">
<hardware>
<plugin>layered_hardware/LayeredHardware</plugin>
<param name="layers">
- name: example_layer_1
type: layered_hardware/ExampleLayer
- name: example_layer_2
...
...
</param>
...
</hardware>
...
</ros2_control>
Layer plugin: layered_hardware/CommandClamperLayer
- loads lower and upper limits on command interfaces of joints, sensors and gpios from the
ros2_control
tag in the robot description - clamps commands within the
write()
function (e.g. limits position command using only min and max position limits, ignoring velocity and acceleration limits)
Layer plugin: layered_hardware/JointSaturationLimiterLayer
- based on
joint_limits::JointSaturationLimiter<joint_limits::JointLimits>
- applies limits to all joint command interfaces within the
write()
function
Hardware parameters
___
- map of parameter names and values for this layer
___
- topic name for robot description, from which joint limits are loaded
Layer plugin: layered_hardware/TransmissionLayer
- based on
transmittion_interface::Transmission
- converts joint commands to actuator commands based on reduction ratio of transmission within
write()
function - converts actuator states to joint states within
read()
function
Layer plugin: layered_hardware/MockActuatorLayer
- implements mock {position, velocity, effort}-controlled actuators
- switches mock actuators’ command modes within
perform_command_mode_swtich()
function when controllers using associated interfaces activate - changes actuator states based on commands within
write()
function - useful to debug your command generation, state visualization nodes, or transmissions without physical actuators and dynamics simulators
Hardware parameters
___
- map of parameter names and values for this layer
___
- map of parameters for each mock actuator
___
- map to actuator command mode names (
position
,velocity
,effort
) from associated interface names (typically joint interfaces)
Example of parameter description
<param name="example_mock_actuator_layer">
actuators:
example_actuator_1:
command_mode_map:
example_joint_1/position: position
...
example_actuator_2:
...
</param>
Layer plugin: layered_hardware/MonitorLayer
- prints changes on commands and states within
read()
function for debug or logging purpose
Examples
Related packages
File truncated at 100 lines see the full file
Changelog for package layered_hardware
0.0.9 (2021-02-28)
- c++11
- Destruct layer instances before unloading layer plugins
0.0.8 (2020-05-05)
- Refactor LayeredHardware to be used as a parent class
0.0.7 (2020-05-03)
- Reset position-based joint limits when switching controllers
0.0.6 (2020-04-28)
- Add accessor methods to layers (LayeredHardware::{size(), layer()})
- Add link to layered_hardware_gazebo package in README
0.0.5 (2020-02-28)
- Enable a link to layered_hardware_epos in README
- Make robot description optional
0.0.4 (2019-12-25)
- Support soft joint limits
0.0.3 (2019-12-25)
- Updated example
- support LayerBase::prepareSwitch()
0.0.2 (2019-12-24)
- Refactored layers
- Updated README
0.0.1 (2019-12-13)
- Initial version
- Compilable on kinetic & melodic
- Tested with launch/example.launch
- Contributors: Yoshito Okada
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged layered_hardware at Robotics Stack Exchange
![]() |
layered_hardware package from layered_hardware repolayered_hardware |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.0 |
License | MIT |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | A ros_control implementation that adopts layered scheme |
Checkout URI | https://github.com/yoshito-n-students/layered_hardware.git |
VCS Type | git |
VCS Version | jazzy |
Last Updated | 2025-02-04 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Yoshito Okada
Authors
layered_hardware
A ros2_control implementation that adopts layered scheme
The layered scheme
- every ros2_control’s component (ex. joint_limits, transmissions) is implemented as a layer plugin (base_class: layered_hardware::LayerInterface)
- plugins of non-actuator-specific layers can be reused for different actuators
- multiple layers for different vendors’ actuators can be used in the same hardware
Hardware Plugin: layered_hardware/LayeredHardware
Hardware parameters
layers (yaml, required)
- sequence of layers to be loaded by this ros2_control hardware
layers[*].name (string, required)
- arbitary name of the layer
layers[*].type (string, required)
- valid type name of the layer
- the type must be exported to the layered_hardware package
- the base class of the type must be layered_hardware::LayerInterface
Example of ros2_control
tag in your robot description
<ros2_control name="LayeredHardware" type="system">
<hardware>
<plugin>layered_hardware/LayeredHardware</plugin>
<param name="layers">
- name: example_layer_1
type: layered_hardware/ExampleLayer
- name: example_layer_2
...
...
</param>
...
</hardware>
...
</ros2_control>
Layer plugin: layered_hardware/CommandClamperLayer
- loads lower and upper limits on command interfaces of joints, sensors and gpios from the
ros2_control
tag in the robot description - clamps commands within the
write()
function (e.g. limits position command using only min and max position limits, ignoring velocity and acceleration limits)
Layer plugin: layered_hardware/JointSaturationLimiterLayer
- based on
joint_limits::JointSaturationLimiter<joint_limits::JointLimits>
- applies limits to all joint command interfaces within the
write()
function
Hardware parameters
___
- map of parameter names and values for this layer
___
- topic name for robot description, from which joint limits are loaded
Layer plugin: layered_hardware/TransmissionLayer
- based on
transmittion_interface::Transmission
- converts joint commands to actuator commands based on reduction ratio of transmission within
write()
function - converts actuator states to joint states within
read()
function
Layer plugin: layered_hardware/MockActuatorLayer
- implements mock {position, velocity, effort}-controlled actuators
- switches mock actuators’ command modes within
perform_command_mode_swtich()
function when controllers using associated interfaces activate - changes actuator states based on commands within
write()
function - useful to debug your command generation, state visualization nodes, or transmissions without physical actuators and dynamics simulators
Hardware parameters
___
- map of parameter names and values for this layer
___
- map of parameters for each mock actuator
___
- map to actuator command mode names (
position
,velocity
,effort
) from associated interface names (typically joint interfaces)
Example of parameter description
<param name="example_mock_actuator_layer">
actuators:
example_actuator_1:
command_mode_map:
example_joint_1/position: position
...
example_actuator_2:
...
</param>
Layer plugin: layered_hardware/MonitorLayer
- prints changes on commands and states within
read()
function for debug or logging purpose
Examples
Related packages
File truncated at 100 lines see the full file
Changelog for package layered_hardware
0.0.9 (2021-02-28)
- c++11
- Destruct layer instances before unloading layer plugins
0.0.8 (2020-05-05)
- Refactor LayeredHardware to be used as a parent class
0.0.7 (2020-05-03)
- Reset position-based joint limits when switching controllers
0.0.6 (2020-04-28)
- Add accessor methods to layers (LayeredHardware::{size(), layer()})
- Add link to layered_hardware_gazebo package in README
0.0.5 (2020-02-28)
- Enable a link to layered_hardware_epos in README
- Make robot description optional
0.0.4 (2019-12-25)
- Support soft joint limits
0.0.3 (2019-12-25)
- Updated example
- support LayerBase::prepareSwitch()
0.0.2 (2019-12-24)
- Refactored layers
- Updated README
0.0.1 (2019-12-13)
- Initial version
- Compilable on kinetic & melodic
- Tested with launch/example.launch
- Contributors: Yoshito Okada
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged layered_hardware at Robotics Stack Exchange
![]() |
layered_hardware package from layered_hardware repolayered_hardware |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.0 |
License | MIT |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | A ros_control implementation that adopts layered scheme |
Checkout URI | https://github.com/yoshito-n-students/layered_hardware.git |
VCS Type | git |
VCS Version | jazzy |
Last Updated | 2025-02-04 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Yoshito Okada
Authors
layered_hardware
A ros2_control implementation that adopts layered scheme
The layered scheme
- every ros2_control’s component (ex. joint_limits, transmissions) is implemented as a layer plugin (base_class: layered_hardware::LayerInterface)
- plugins of non-actuator-specific layers can be reused for different actuators
- multiple layers for different vendors’ actuators can be used in the same hardware
Hardware Plugin: layered_hardware/LayeredHardware
Hardware parameters
layers (yaml, required)
- sequence of layers to be loaded by this ros2_control hardware
layers[*].name (string, required)
- arbitary name of the layer
layers[*].type (string, required)
- valid type name of the layer
- the type must be exported to the layered_hardware package
- the base class of the type must be layered_hardware::LayerInterface
Example of ros2_control
tag in your robot description
<ros2_control name="LayeredHardware" type="system">
<hardware>
<plugin>layered_hardware/LayeredHardware</plugin>
<param name="layers">
- name: example_layer_1
type: layered_hardware/ExampleLayer
- name: example_layer_2
...
...
</param>
...
</hardware>
...
</ros2_control>
Layer plugin: layered_hardware/CommandClamperLayer
- loads lower and upper limits on command interfaces of joints, sensors and gpios from the
ros2_control
tag in the robot description - clamps commands within the
write()
function (e.g. limits position command using only min and max position limits, ignoring velocity and acceleration limits)
Layer plugin: layered_hardware/JointSaturationLimiterLayer
- based on
joint_limits::JointSaturationLimiter<joint_limits::JointLimits>
- applies limits to all joint command interfaces within the
write()
function
Hardware parameters
___
- map of parameter names and values for this layer
___
- topic name for robot description, from which joint limits are loaded
Layer plugin: layered_hardware/TransmissionLayer
- based on
transmittion_interface::Transmission
- converts joint commands to actuator commands based on reduction ratio of transmission within
write()
function - converts actuator states to joint states within
read()
function
Layer plugin: layered_hardware/MockActuatorLayer
- implements mock {position, velocity, effort}-controlled actuators
- switches mock actuators’ command modes within
perform_command_mode_swtich()
function when controllers using associated interfaces activate - changes actuator states based on commands within
write()
function - useful to debug your command generation, state visualization nodes, or transmissions without physical actuators and dynamics simulators
Hardware parameters
___
- map of parameter names and values for this layer
___
- map of parameters for each mock actuator
___
- map to actuator command mode names (
position
,velocity
,effort
) from associated interface names (typically joint interfaces)
Example of parameter description
<param name="example_mock_actuator_layer">
actuators:
example_actuator_1:
command_mode_map:
example_joint_1/position: position
...
example_actuator_2:
...
</param>
Layer plugin: layered_hardware/MonitorLayer
- prints changes on commands and states within
read()
function for debug or logging purpose
Examples
Related packages
File truncated at 100 lines see the full file
Changelog for package layered_hardware
0.0.9 (2021-02-28)
- c++11
- Destruct layer instances before unloading layer plugins
0.0.8 (2020-05-05)
- Refactor LayeredHardware to be used as a parent class
0.0.7 (2020-05-03)
- Reset position-based joint limits when switching controllers
0.0.6 (2020-04-28)
- Add accessor methods to layers (LayeredHardware::{size(), layer()})
- Add link to layered_hardware_gazebo package in README
0.0.5 (2020-02-28)
- Enable a link to layered_hardware_epos in README
- Make robot description optional
0.0.4 (2019-12-25)
- Support soft joint limits
0.0.3 (2019-12-25)
- Updated example
- support LayerBase::prepareSwitch()
0.0.2 (2019-12-24)
- Refactored layers
- Updated README
0.0.1 (2019-12-13)
- Initial version
- Compilable on kinetic & melodic
- Tested with launch/example.launch
- Contributors: Yoshito Okada
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged layered_hardware at Robotics Stack Exchange
![]() |
layered_hardware package from layered_hardware repolayered_hardware |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.0 |
License | MIT |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | A ros_control implementation that adopts layered scheme |
Checkout URI | https://github.com/yoshito-n-students/layered_hardware.git |
VCS Type | git |
VCS Version | jazzy |
Last Updated | 2025-02-04 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Yoshito Okada
Authors
layered_hardware
A ros2_control implementation that adopts layered scheme
The layered scheme
- every ros2_control’s component (ex. joint_limits, transmissions) is implemented as a layer plugin (base_class: layered_hardware::LayerInterface)
- plugins of non-actuator-specific layers can be reused for different actuators
- multiple layers for different vendors’ actuators can be used in the same hardware
Hardware Plugin: layered_hardware/LayeredHardware
Hardware parameters
layers (yaml, required)
- sequence of layers to be loaded by this ros2_control hardware
layers[*].name (string, required)
- arbitary name of the layer
layers[*].type (string, required)
- valid type name of the layer
- the type must be exported to the layered_hardware package
- the base class of the type must be layered_hardware::LayerInterface
Example of ros2_control
tag in your robot description
<ros2_control name="LayeredHardware" type="system">
<hardware>
<plugin>layered_hardware/LayeredHardware</plugin>
<param name="layers">
- name: example_layer_1
type: layered_hardware/ExampleLayer
- name: example_layer_2
...
...
</param>
...
</hardware>
...
</ros2_control>
Layer plugin: layered_hardware/CommandClamperLayer
- loads lower and upper limits on command interfaces of joints, sensors and gpios from the
ros2_control
tag in the robot description - clamps commands within the
write()
function (e.g. limits position command using only min and max position limits, ignoring velocity and acceleration limits)
Layer plugin: layered_hardware/JointSaturationLimiterLayer
- based on
joint_limits::JointSaturationLimiter<joint_limits::JointLimits>
- applies limits to all joint command interfaces within the
write()
function
Hardware parameters
___
- map of parameter names and values for this layer
___
- topic name for robot description, from which joint limits are loaded
Layer plugin: layered_hardware/TransmissionLayer
- based on
transmittion_interface::Transmission
- converts joint commands to actuator commands based on reduction ratio of transmission within
write()
function - converts actuator states to joint states within
read()
function
Layer plugin: layered_hardware/MockActuatorLayer
- implements mock {position, velocity, effort}-controlled actuators
- switches mock actuators’ command modes within
perform_command_mode_swtich()
function when controllers using associated interfaces activate - changes actuator states based on commands within
write()
function - useful to debug your command generation, state visualization nodes, or transmissions without physical actuators and dynamics simulators
Hardware parameters
___
- map of parameter names and values for this layer
___
- map of parameters for each mock actuator
___
- map to actuator command mode names (
position
,velocity
,effort
) from associated interface names (typically joint interfaces)
Example of parameter description
<param name="example_mock_actuator_layer">
actuators:
example_actuator_1:
command_mode_map:
example_joint_1/position: position
...
example_actuator_2:
...
</param>
Layer plugin: layered_hardware/MonitorLayer
- prints changes on commands and states within
read()
function for debug or logging purpose
Examples
Related packages
File truncated at 100 lines see the full file
Changelog for package layered_hardware
0.0.9 (2021-02-28)
- c++11
- Destruct layer instances before unloading layer plugins
0.0.8 (2020-05-05)
- Refactor LayeredHardware to be used as a parent class
0.0.7 (2020-05-03)
- Reset position-based joint limits when switching controllers
0.0.6 (2020-04-28)
- Add accessor methods to layers (LayeredHardware::{size(), layer()})
- Add link to layered_hardware_gazebo package in README
0.0.5 (2020-02-28)
- Enable a link to layered_hardware_epos in README
- Make robot description optional
0.0.4 (2019-12-25)
- Support soft joint limits
0.0.3 (2019-12-25)
- Updated example
- support LayerBase::prepareSwitch()
0.0.2 (2019-12-24)
- Refactored layers
- Updated README
0.0.1 (2019-12-13)
- Initial version
- Compilable on kinetic & melodic
- Tested with launch/example.launch
- Contributors: Yoshito Okada
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged layered_hardware at Robotics Stack Exchange
![]() |
layered_hardware package from layered_hardware repolayered_hardware |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.0 |
License | MIT |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | A ros_control implementation that adopts layered scheme |
Checkout URI | https://github.com/yoshito-n-students/layered_hardware.git |
VCS Type | git |
VCS Version | jazzy |
Last Updated | 2025-02-04 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Yoshito Okada
Authors
layered_hardware
A ros2_control implementation that adopts layered scheme
The layered scheme
- every ros2_control’s component (ex. joint_limits, transmissions) is implemented as a layer plugin (base_class: layered_hardware::LayerInterface)
- plugins of non-actuator-specific layers can be reused for different actuators
- multiple layers for different vendors’ actuators can be used in the same hardware
Hardware Plugin: layered_hardware/LayeredHardware
Hardware parameters
layers (yaml, required)
- sequence of layers to be loaded by this ros2_control hardware
layers[*].name (string, required)
- arbitary name of the layer
layers[*].type (string, required)
- valid type name of the layer
- the type must be exported to the layered_hardware package
- the base class of the type must be layered_hardware::LayerInterface
Example of ros2_control
tag in your robot description
<ros2_control name="LayeredHardware" type="system">
<hardware>
<plugin>layered_hardware/LayeredHardware</plugin>
<param name="layers">
- name: example_layer_1
type: layered_hardware/ExampleLayer
- name: example_layer_2
...
...
</param>
...
</hardware>
...
</ros2_control>
Layer plugin: layered_hardware/CommandClamperLayer
- loads lower and upper limits on command interfaces of joints, sensors and gpios from the
ros2_control
tag in the robot description - clamps commands within the
write()
function (e.g. limits position command using only min and max position limits, ignoring velocity and acceleration limits)
Layer plugin: layered_hardware/JointSaturationLimiterLayer
- based on
joint_limits::JointSaturationLimiter<joint_limits::JointLimits>
- applies limits to all joint command interfaces within the
write()
function
Hardware parameters
___
- map of parameter names and values for this layer
___
- topic name for robot description, from which joint limits are loaded
Layer plugin: layered_hardware/TransmissionLayer
- based on
transmittion_interface::Transmission
- converts joint commands to actuator commands based on reduction ratio of transmission within
write()
function - converts actuator states to joint states within
read()
function
Layer plugin: layered_hardware/MockActuatorLayer
- implements mock {position, velocity, effort}-controlled actuators
- switches mock actuators’ command modes within
perform_command_mode_swtich()
function when controllers using associated interfaces activate - changes actuator states based on commands within
write()
function - useful to debug your command generation, state visualization nodes, or transmissions without physical actuators and dynamics simulators
Hardware parameters
___
- map of parameter names and values for this layer
___
- map of parameters for each mock actuator
___
- map to actuator command mode names (
position
,velocity
,effort
) from associated interface names (typically joint interfaces)
Example of parameter description
<param name="example_mock_actuator_layer">
actuators:
example_actuator_1:
command_mode_map:
example_joint_1/position: position
...
example_actuator_2:
...
</param>
Layer plugin: layered_hardware/MonitorLayer
- prints changes on commands and states within
read()
function for debug or logging purpose
Examples
Related packages
File truncated at 100 lines see the full file
Changelog for package layered_hardware
0.0.9 (2021-02-28)
- c++11
- Destruct layer instances before unloading layer plugins
0.0.8 (2020-05-05)
- Refactor LayeredHardware to be used as a parent class
0.0.7 (2020-05-03)
- Reset position-based joint limits when switching controllers
0.0.6 (2020-04-28)
- Add accessor methods to layers (LayeredHardware::{size(), layer()})
- Add link to layered_hardware_gazebo package in README
0.0.5 (2020-02-28)
- Enable a link to layered_hardware_epos in README
- Make robot description optional
0.0.4 (2019-12-25)
- Support soft joint limits
0.0.3 (2019-12-25)
- Updated example
- support LayerBase::prepareSwitch()
0.0.2 (2019-12-24)
- Refactored layers
- Updated README
0.0.1 (2019-12-13)
- Initial version
- Compilable on kinetic & melodic
- Tested with launch/example.launch
- Contributors: Yoshito Okada
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged layered_hardware at Robotics Stack Exchange
![]() |
layered_hardware package from layered_hardware repolayered_hardware |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.0 |
License | MIT |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | A ros_control implementation that adopts layered scheme |
Checkout URI | https://github.com/yoshito-n-students/layered_hardware.git |
VCS Type | git |
VCS Version | jazzy |
Last Updated | 2025-02-04 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Yoshito Okada
Authors
layered_hardware
A ros2_control implementation that adopts layered scheme
The layered scheme
- every ros2_control’s component (ex. joint_limits, transmissions) is implemented as a layer plugin (base_class: layered_hardware::LayerInterface)
- plugins of non-actuator-specific layers can be reused for different actuators
- multiple layers for different vendors’ actuators can be used in the same hardware
Hardware Plugin: layered_hardware/LayeredHardware
Hardware parameters
layers (yaml, required)
- sequence of layers to be loaded by this ros2_control hardware
layers[*].name (string, required)
- arbitary name of the layer
layers[*].type (string, required)
- valid type name of the layer
- the type must be exported to the layered_hardware package
- the base class of the type must be layered_hardware::LayerInterface
Example of ros2_control
tag in your robot description
<ros2_control name="LayeredHardware" type="system">
<hardware>
<plugin>layered_hardware/LayeredHardware</plugin>
<param name="layers">
- name: example_layer_1
type: layered_hardware/ExampleLayer
- name: example_layer_2
...
...
</param>
...
</hardware>
...
</ros2_control>
Layer plugin: layered_hardware/CommandClamperLayer
- loads lower and upper limits on command interfaces of joints, sensors and gpios from the
ros2_control
tag in the robot description - clamps commands within the
write()
function (e.g. limits position command using only min and max position limits, ignoring velocity and acceleration limits)
Layer plugin: layered_hardware/JointSaturationLimiterLayer
- based on
joint_limits::JointSaturationLimiter<joint_limits::JointLimits>
- applies limits to all joint command interfaces within the
write()
function
Hardware parameters
___
- map of parameter names and values for this layer
___
- topic name for robot description, from which joint limits are loaded
Layer plugin: layered_hardware/TransmissionLayer
- based on
transmittion_interface::Transmission
- converts joint commands to actuator commands based on reduction ratio of transmission within
write()
function - converts actuator states to joint states within
read()
function
Layer plugin: layered_hardware/MockActuatorLayer
- implements mock {position, velocity, effort}-controlled actuators
- switches mock actuators’ command modes within
perform_command_mode_swtich()
function when controllers using associated interfaces activate - changes actuator states based on commands within
write()
function - useful to debug your command generation, state visualization nodes, or transmissions without physical actuators and dynamics simulators
Hardware parameters
___
- map of parameter names and values for this layer
___
- map of parameters for each mock actuator
___
- map to actuator command mode names (
position
,velocity
,effort
) from associated interface names (typically joint interfaces)
Example of parameter description
<param name="example_mock_actuator_layer">
actuators:
example_actuator_1:
command_mode_map:
example_joint_1/position: position
...
example_actuator_2:
...
</param>
Layer plugin: layered_hardware/MonitorLayer
- prints changes on commands and states within
read()
function for debug or logging purpose
Examples
Related packages
File truncated at 100 lines see the full file
Changelog for package layered_hardware
0.0.9 (2021-02-28)
- c++11
- Destruct layer instances before unloading layer plugins
0.0.8 (2020-05-05)
- Refactor LayeredHardware to be used as a parent class
0.0.7 (2020-05-03)
- Reset position-based joint limits when switching controllers
0.0.6 (2020-04-28)
- Add accessor methods to layers (LayeredHardware::{size(), layer()})
- Add link to layered_hardware_gazebo package in README
0.0.5 (2020-02-28)
- Enable a link to layered_hardware_epos in README
- Make robot description optional
0.0.4 (2019-12-25)
- Support soft joint limits
0.0.3 (2019-12-25)
- Updated example
- support LayerBase::prepareSwitch()
0.0.2 (2019-12-24)
- Refactored layers
- Updated README
0.0.1 (2019-12-13)
- Initial version
- Compilable on kinetic & melodic
- Tested with launch/example.launch
- Contributors: Yoshito Okada
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged layered_hardware at Robotics Stack Exchange
![]() |
layered_hardware package from layered_hardware repolayered_hardware |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.0 |
License | MIT |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | A ros_control implementation that adopts layered scheme |
Checkout URI | https://github.com/yoshito-n-students/layered_hardware.git |
VCS Type | git |
VCS Version | jazzy |
Last Updated | 2025-02-04 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Yoshito Okada
Authors
layered_hardware
A ros2_control implementation that adopts layered scheme
The layered scheme
- every ros2_control’s component (ex. joint_limits, transmissions) is implemented as a layer plugin (base_class: layered_hardware::LayerInterface)
- plugins of non-actuator-specific layers can be reused for different actuators
- multiple layers for different vendors’ actuators can be used in the same hardware
Hardware Plugin: layered_hardware/LayeredHardware
Hardware parameters
layers (yaml, required)
- sequence of layers to be loaded by this ros2_control hardware
layers[*].name (string, required)
- arbitary name of the layer
layers[*].type (string, required)
- valid type name of the layer
- the type must be exported to the layered_hardware package
- the base class of the type must be layered_hardware::LayerInterface
Example of ros2_control
tag in your robot description
<ros2_control name="LayeredHardware" type="system">
<hardware>
<plugin>layered_hardware/LayeredHardware</plugin>
<param name="layers">
- name: example_layer_1
type: layered_hardware/ExampleLayer
- name: example_layer_2
...
...
</param>
...
</hardware>
...
</ros2_control>
Layer plugin: layered_hardware/CommandClamperLayer
- loads lower and upper limits on command interfaces of joints, sensors and gpios from the
ros2_control
tag in the robot description - clamps commands within the
write()
function (e.g. limits position command using only min and max position limits, ignoring velocity and acceleration limits)
Layer plugin: layered_hardware/JointSaturationLimiterLayer
- based on
joint_limits::JointSaturationLimiter<joint_limits::JointLimits>
- applies limits to all joint command interfaces within the
write()
function
Hardware parameters
___
- map of parameter names and values for this layer
___
- topic name for robot description, from which joint limits are loaded
Layer plugin: layered_hardware/TransmissionLayer
- based on
transmittion_interface::Transmission
- converts joint commands to actuator commands based on reduction ratio of transmission within
write()
function - converts actuator states to joint states within
read()
function
Layer plugin: layered_hardware/MockActuatorLayer
- implements mock {position, velocity, effort}-controlled actuators
- switches mock actuators’ command modes within
perform_command_mode_swtich()
function when controllers using associated interfaces activate - changes actuator states based on commands within
write()
function - useful to debug your command generation, state visualization nodes, or transmissions without physical actuators and dynamics simulators
Hardware parameters
___
- map of parameter names and values for this layer
___
- map of parameters for each mock actuator
___
- map to actuator command mode names (
position
,velocity
,effort
) from associated interface names (typically joint interfaces)
Example of parameter description
<param name="example_mock_actuator_layer">
actuators:
example_actuator_1:
command_mode_map:
example_joint_1/position: position
...
example_actuator_2:
...
</param>
Layer plugin: layered_hardware/MonitorLayer
- prints changes on commands and states within
read()
function for debug or logging purpose
Examples
Related packages
File truncated at 100 lines see the full file
Changelog for package layered_hardware
0.0.9 (2021-02-28)
- c++11
- Destruct layer instances before unloading layer plugins
0.0.8 (2020-05-05)
- Refactor LayeredHardware to be used as a parent class
0.0.7 (2020-05-03)
- Reset position-based joint limits when switching controllers
0.0.6 (2020-04-28)
- Add accessor methods to layers (LayeredHardware::{size(), layer()})
- Add link to layered_hardware_gazebo package in README
0.0.5 (2020-02-28)
- Enable a link to layered_hardware_epos in README
- Make robot description optional
0.0.4 (2019-12-25)
- Support soft joint limits
0.0.3 (2019-12-25)
- Updated example
- support LayerBase::prepareSwitch()
0.0.2 (2019-12-24)
- Refactored layers
- Updated README
0.0.1 (2019-12-13)
- Initial version
- Compilable on kinetic & melodic
- Tested with launch/example.launch
- Contributors: Yoshito Okada
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged layered_hardware at Robotics Stack Exchange
![]() |
layered_hardware package from layered_hardware repolayered_hardware |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.0 |
License | MIT |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | A ros_control implementation that adopts layered scheme |
Checkout URI | https://github.com/yoshito-n-students/layered_hardware.git |
VCS Type | git |
VCS Version | jazzy |
Last Updated | 2025-02-04 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Yoshito Okada
Authors
layered_hardware
A ros2_control implementation that adopts layered scheme
The layered scheme
- every ros2_control’s component (ex. joint_limits, transmissions) is implemented as a layer plugin (base_class: layered_hardware::LayerInterface)
- plugins of non-actuator-specific layers can be reused for different actuators
- multiple layers for different vendors’ actuators can be used in the same hardware
Hardware Plugin: layered_hardware/LayeredHardware
Hardware parameters
layers (yaml, required)
- sequence of layers to be loaded by this ros2_control hardware
layers[*].name (string, required)
- arbitary name of the layer
layers[*].type (string, required)
- valid type name of the layer
- the type must be exported to the layered_hardware package
- the base class of the type must be layered_hardware::LayerInterface
Example of ros2_control
tag in your robot description
<ros2_control name="LayeredHardware" type="system">
<hardware>
<plugin>layered_hardware/LayeredHardware</plugin>
<param name="layers">
- name: example_layer_1
type: layered_hardware/ExampleLayer
- name: example_layer_2
...
...
</param>
...
</hardware>
...
</ros2_control>
Layer plugin: layered_hardware/CommandClamperLayer
- loads lower and upper limits on command interfaces of joints, sensors and gpios from the
ros2_control
tag in the robot description - clamps commands within the
write()
function (e.g. limits position command using only min and max position limits, ignoring velocity and acceleration limits)
Layer plugin: layered_hardware/JointSaturationLimiterLayer
- based on
joint_limits::JointSaturationLimiter<joint_limits::JointLimits>
- applies limits to all joint command interfaces within the
write()
function
Hardware parameters
___
- map of parameter names and values for this layer
___
- topic name for robot description, from which joint limits are loaded
Layer plugin: layered_hardware/TransmissionLayer
- based on
transmittion_interface::Transmission
- converts joint commands to actuator commands based on reduction ratio of transmission within
write()
function - converts actuator states to joint states within
read()
function
Layer plugin: layered_hardware/MockActuatorLayer
- implements mock {position, velocity, effort}-controlled actuators
- switches mock actuators’ command modes within
perform_command_mode_swtich()
function when controllers using associated interfaces activate - changes actuator states based on commands within
write()
function - useful to debug your command generation, state visualization nodes, or transmissions without physical actuators and dynamics simulators
Hardware parameters
___
- map of parameter names and values for this layer
___
- map of parameters for each mock actuator
___
- map to actuator command mode names (
position
,velocity
,effort
) from associated interface names (typically joint interfaces)
Example of parameter description
<param name="example_mock_actuator_layer">
actuators:
example_actuator_1:
command_mode_map:
example_joint_1/position: position
...
example_actuator_2:
...
</param>
Layer plugin: layered_hardware/MonitorLayer
- prints changes on commands and states within
read()
function for debug or logging purpose
Examples
Related packages
File truncated at 100 lines see the full file
Changelog for package layered_hardware
0.0.9 (2021-02-28)
- c++11
- Destruct layer instances before unloading layer plugins
0.0.8 (2020-05-05)
- Refactor LayeredHardware to be used as a parent class
0.0.7 (2020-05-03)
- Reset position-based joint limits when switching controllers
0.0.6 (2020-04-28)
- Add accessor methods to layers (LayeredHardware::{size(), layer()})
- Add link to layered_hardware_gazebo package in README
0.0.5 (2020-02-28)
- Enable a link to layered_hardware_epos in README
- Make robot description optional
0.0.4 (2019-12-25)
- Support soft joint limits
0.0.3 (2019-12-25)
- Updated example
- support LayerBase::prepareSwitch()
0.0.2 (2019-12-24)
- Refactored layers
- Updated README
0.0.1 (2019-12-13)
- Initial version
- Compilable on kinetic & melodic
- Tested with launch/example.launch
- Contributors: Yoshito Okada