No version for distro humble showing github. Known supported distros are highlighted in the buttons above.
Package symbol

layered_hardware package from layered_hardware repo

layered_hardware

ROS Distro
github

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

The layered_hardware package

Additional Links

No additional links.

Maintainers

  • Yoshito Okada

Authors

No additional 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)

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

______ (yaml, optional)

  • map of parameter names and values for this layer

___.robot_description_topic___ (string, default: '/robot_description')

  • 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

______ (yaml, required)

  • map of parameter names and values for this layer

___.actuators___ (map<string, map>, required)

  • map of parameters for each mock actuator

___.actuators..command_mode_map___ (map<string, string>, required)

  • 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

File truncated at 100 lines see the full file

CHANGELOG

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged layered_hardware at Robotics Stack Exchange

No version for distro jazzy showing github. Known supported distros are highlighted in the buttons above.
Package symbol

layered_hardware package from layered_hardware repo

layered_hardware

ROS Distro
github

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

The layered_hardware package

Additional Links

No additional links.

Maintainers

  • Yoshito Okada

Authors

No additional 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)

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

______ (yaml, optional)

  • map of parameter names and values for this layer

___.robot_description_topic___ (string, default: '/robot_description')

  • 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

______ (yaml, required)

  • map of parameter names and values for this layer

___.actuators___ (map<string, map>, required)

  • map of parameters for each mock actuator

___.actuators..command_mode_map___ (map<string, string>, required)

  • 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

File truncated at 100 lines see the full file

CHANGELOG

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged layered_hardware at Robotics Stack Exchange

No version for distro kilted showing github. Known supported distros are highlighted in the buttons above.
Package symbol

layered_hardware package from layered_hardware repo

layered_hardware

ROS Distro
github

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

The layered_hardware package

Additional Links

No additional links.

Maintainers

  • Yoshito Okada

Authors

No additional 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)

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

______ (yaml, optional)

  • map of parameter names and values for this layer

___.robot_description_topic___ (string, default: '/robot_description')

  • 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

______ (yaml, required)

  • map of parameter names and values for this layer

___.actuators___ (map<string, map>, required)

  • map of parameters for each mock actuator

___.actuators..command_mode_map___ (map<string, string>, required)

  • 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

File truncated at 100 lines see the full file

CHANGELOG

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged layered_hardware at Robotics Stack Exchange

No version for distro rolling showing github. Known supported distros are highlighted in the buttons above.
Package symbol

layered_hardware package from layered_hardware repo

layered_hardware

ROS Distro
github

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

The layered_hardware package

Additional Links

No additional links.

Maintainers

  • Yoshito Okada

Authors

No additional 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)

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

______ (yaml, optional)

  • map of parameter names and values for this layer

___.robot_description_topic___ (string, default: '/robot_description')

  • 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

______ (yaml, required)

  • map of parameter names and values for this layer

___.actuators___ (map<string, map>, required)

  • map of parameters for each mock actuator

___.actuators..command_mode_map___ (map<string, string>, required)

  • 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

File truncated at 100 lines see the full file

CHANGELOG

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged layered_hardware at Robotics Stack Exchange

Package symbol

layered_hardware package from layered_hardware repo

layered_hardware

ROS Distro
github

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

The layered_hardware package

Additional Links

No additional links.

Maintainers

  • Yoshito Okada

Authors

No additional 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)

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

______ (yaml, optional)

  • map of parameter names and values for this layer

___.robot_description_topic___ (string, default: '/robot_description')

  • 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

______ (yaml, required)

  • map of parameter names and values for this layer

___.actuators___ (map<string, map>, required)

  • map of parameters for each mock actuator

___.actuators..command_mode_map___ (map<string, string>, required)

  • 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

File truncated at 100 lines see the full file

CHANGELOG

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged layered_hardware at Robotics Stack Exchange

No version for distro galactic showing github. Known supported distros are highlighted in the buttons above.
Package symbol

layered_hardware package from layered_hardware repo

layered_hardware

ROS Distro
github

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

The layered_hardware package

Additional Links

No additional links.

Maintainers

  • Yoshito Okada

Authors

No additional 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)

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

______ (yaml, optional)

  • map of parameter names and values for this layer

___.robot_description_topic___ (string, default: '/robot_description')

  • 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

______ (yaml, required)

  • map of parameter names and values for this layer

___.actuators___ (map<string, map>, required)

  • map of parameters for each mock actuator

___.actuators..command_mode_map___ (map<string, string>, required)

  • 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

File truncated at 100 lines see the full file

CHANGELOG

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged layered_hardware at Robotics Stack Exchange

No version for distro iron showing github. Known supported distros are highlighted in the buttons above.
Package symbol

layered_hardware package from layered_hardware repo

layered_hardware

ROS Distro
github

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

The layered_hardware package

Additional Links

No additional links.

Maintainers

  • Yoshito Okada

Authors

No additional 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)

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

______ (yaml, optional)

  • map of parameter names and values for this layer

___.robot_description_topic___ (string, default: '/robot_description')

  • 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

______ (yaml, required)

  • map of parameter names and values for this layer

___.actuators___ (map<string, map>, required)

  • map of parameters for each mock actuator

___.actuators..command_mode_map___ (map<string, string>, required)

  • 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

File truncated at 100 lines see the full file

CHANGELOG

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged layered_hardware at Robotics Stack Exchange

No version for distro melodic showing github. Known supported distros are highlighted in the buttons above.
Package symbol

layered_hardware package from layered_hardware repo

layered_hardware

ROS Distro
github

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

The layered_hardware package

Additional Links

No additional links.

Maintainers

  • Yoshito Okada

Authors

No additional 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)

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

______ (yaml, optional)

  • map of parameter names and values for this layer

___.robot_description_topic___ (string, default: '/robot_description')

  • 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

______ (yaml, required)

  • map of parameter names and values for this layer

___.actuators___ (map<string, map>, required)

  • map of parameters for each mock actuator

___.actuators..command_mode_map___ (map<string, string>, required)

  • 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

File truncated at 100 lines see the full file

CHANGELOG

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged layered_hardware at Robotics Stack Exchange

No version for distro noetic showing github. Known supported distros are highlighted in the buttons above.
Package symbol

layered_hardware package from layered_hardware repo

layered_hardware

ROS Distro
github

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

The layered_hardware package

Additional Links

No additional links.

Maintainers

  • Yoshito Okada

Authors

No additional 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)

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

______ (yaml, optional)

  • map of parameter names and values for this layer

___.robot_description_topic___ (string, default: '/robot_description')

  • 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

______ (yaml, required)

  • map of parameter names and values for this layer

___.actuators___ (map<string, map>, required)

  • map of parameters for each mock actuator

___.actuators..command_mode_map___ (map<string, string>, required)

  • 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

File truncated at 100 lines see the full file

CHANGELOG

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged layered_hardware at Robotics Stack Exchange