From f660da4e7a771851003aab11f41b619a5c047495 Mon Sep 17 00:00:00 2001 From: Christoph Froehlich Date: Mon, 3 Feb 2025 18:19:00 +0000 Subject: [PATCH 1/3] Add semantic components --- .../doc/hardware_components_userdoc.rst | 1 + .../doc/hardware_interface_types_userdoc.rst | 5 +---- .../doc/semantic_components.rst | 20 +++++++++++++++++++ 3 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 hardware_interface/doc/semantic_components.rst diff --git a/hardware_interface/doc/hardware_components_userdoc.rst b/hardware_interface/doc/hardware_components_userdoc.rst index 3870433ef0..6b6d40914b 100644 --- a/hardware_interface/doc/hardware_components_userdoc.rst +++ b/hardware_interface/doc/hardware_components_userdoc.rst @@ -18,6 +18,7 @@ Guidelines and Best Practices Writing a Hardware Component Different Update Rates Asynchronous Execution + Semantic Components Handling of errors that happen during read() and write() calls diff --git a/hardware_interface/doc/hardware_interface_types_userdoc.rst b/hardware_interface/doc/hardware_interface_types_userdoc.rst index 45141e5479..f0b7ce36ae 100644 --- a/hardware_interface/doc/hardware_interface_types_userdoc.rst +++ b/hardware_interface/doc/hardware_interface_types_userdoc.rst @@ -54,10 +54,7 @@ Sensors ***************************** ````-tag groups multiple state interfaces describing, e.g., internal states of hardware. -Depending on the type of sensor, there exist a couple of specific semantic components with broadcasters shipped with ros2_controllers, e.g. - -- :ref:`Imu Sensor Broadcaster ` -- :ref:`Force Torque Sensor Broadcaster ` +Depending on the type of sensor, there exist a couple of specific semantic components with broadcasters shipped with ros2_controllers, see details in the :ref:`semantic_components `. GPIOs ***************************** diff --git a/hardware_interface/doc/semantic_components.rst b/hardware_interface/doc/semantic_components.rst new file mode 100644 index 0000000000..91b7daa3b1 --- /dev/null +++ b/hardware_interface/doc/semantic_components.rst @@ -0,0 +1,20 @@ +:github_url: https://github.com/ros-controls/ros2_control/blob/{REPOS_FILE_BRANCH}/hardware_interface/doc/semantic_components.rst + +.. _semantic_components: + +Semantic Components +--------------------------------------------------------- + +In order to streamline the configuration of commonly used hardware interface, so-called semantic components can be used to wrap mechanisms to claim / release the interfaces. The base components ``semantic_components::SemanticComponentInterface`` and ``semantic_components::SemanticComponentCommandInterface`` are used to define semantic components for read-only and write-only devices, respectively. + +List of existing ``SemanticComponentInterface`` and associated broadcaster, if any: + + * IMUSensor, used by :ref:`IMU Sensor Broadcaster ` + * ForceTorqueSensor, used by :ref:`Force Torque Sensor Broadcaster ` + * GPSSensor + * PoseSensor, used by :ref:`Pose Broadcaster ` + * RangeSensor, used by :ref:`Range Sensor Broadcaster ` + +List of existing ``SemanticComponentCommandInterface`` and associated controller, if any: + + * LedRgbDevice From 503a98dd6f03d598ab7aca040ca9d691a3663f1b Mon Sep 17 00:00:00 2001 From: Christoph Froehlich Date: Mon, 3 Feb 2025 18:19:09 +0000 Subject: [PATCH 2/3] Fix gh link --- hardware_interface/doc/asynchronous_components.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hardware_interface/doc/asynchronous_components.rst b/hardware_interface/doc/asynchronous_components.rst index c73281c3fe..d0a8f1ed2c 100644 --- a/hardware_interface/doc/asynchronous_components.rst +++ b/hardware_interface/doc/asynchronous_components.rst @@ -1,4 +1,4 @@ -:github_url: https://github.com/ros-controls/ros2_control/blob/{REPOS_FILE_BRANCH}/hardware_interface/doc/different_update_rates_userdoc.rst +:github_url: https://github.com/ros-controls/ros2_control/blob/{REPOS_FILE_BRANCH}/hardware_interface/doc/asynchronous_components.rst .. _asynchronous_components: From 6a08fd64017e66de04d1715ac4dc03f4aed13d3e Mon Sep 17 00:00:00 2001 From: Christoph Froehlich Date: Tue, 4 Feb 2025 18:31:07 +0000 Subject: [PATCH 3/3] Add links to header files --- hardware_interface/doc/semantic_components.rst | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/hardware_interface/doc/semantic_components.rst b/hardware_interface/doc/semantic_components.rst index 91b7daa3b1..1991270170 100644 --- a/hardware_interface/doc/semantic_components.rst +++ b/hardware_interface/doc/semantic_components.rst @@ -7,14 +7,14 @@ Semantic Components In order to streamline the configuration of commonly used hardware interface, so-called semantic components can be used to wrap mechanisms to claim / release the interfaces. The base components ``semantic_components::SemanticComponentInterface`` and ``semantic_components::SemanticComponentCommandInterface`` are used to define semantic components for read-only and write-only devices, respectively. -List of existing ``SemanticComponentInterface`` and associated broadcaster, if any: +List of existing ``SemanticComponentInterface`` `(link to header file) `__ and associated broadcaster, if any: - * IMUSensor, used by :ref:`IMU Sensor Broadcaster ` - * ForceTorqueSensor, used by :ref:`Force Torque Sensor Broadcaster ` - * GPSSensor - * PoseSensor, used by :ref:`Pose Broadcaster ` - * RangeSensor, used by :ref:`Range Sensor Broadcaster ` + * `IMUSensor `__, used by :ref:`IMU Sensor Broadcaster ` + * `ForceTorqueSensor `__, used by :ref:`Force Torque Sensor Broadcaster ` + * `GPSSensor `__ + * `PoseSensor `__, used by :ref:`Pose Broadcaster ` + * `RangeSensor `__, used by :ref:`Range Sensor Broadcaster ` -List of existing ``SemanticComponentCommandInterface`` and associated controller, if any: +List of existing ``SemanticComponentCommandInterface`` `(link to header file) `__ and associated controller, if any: - * LedRgbDevice + * `LedRgbDevice `__