ros2_control chainable controllers =============================== The ``bota_payload_utils`` package implements two **ros2_control chainable controllers**: - **bota_payload_compensator_controller** (:ref:`see below `) - **bota_payload_estimator_controller** (:ref:`see below `) These controllers follow the `Bota Control Toolkit architecture <../bota_control_toolkit/bota_control_toolkit.html>`__, allowing them to be easily integrated into processing chains with other `Bota Control ros2_control controllers <../bota_control_toolkit/bota_control_toolkit_ros2.html>`__, such as the `Bota Driver ros2_control hardware_interface <../driver/driver_ros2_control_hw_interface.html>`__. ---- .. _bota-payload-compensator-controller: Bota Payload Compensator Controller ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Parameters --------------------------- The controller requires the following parameters: .. list-table:: :widths: 15 35 :header-rows: 1 :class: highlight * - Parameter - Description * - ``config_file`` - Configuration file path for the block * - ``input_block_name`` - The name of the previous block in the processing chain. * - ``imu_offset`` - Offset between the Wrench frame and the IMU frame. * - ``tare_on_activation`` - If true, the output wrench is zeroed during controller activation (see below). .. note:: The ``input_block_name`` parameter should match the **controller name** of the previous block in the processing chain. .. warning:: The ``imu_offset`` parameter will be deprecated in future releases as the IMU data will be published by the driver in the same frame as the wrench. Interfaces --------------------------- - The controller claims an input state interface as the one described in the `Bota Control ros2_control controllers <../bota_control_toolkit/bota_control_toolkit_ros2.html>`__ - The controller exposes an output state interface as the one described in the `Bota Control ros2_control controllers <../bota_control_toolkit/bota_control_toolkit_ros2.html>`__ Taring procedure ----------------- The output wrench is zeroed during controller **activation** if the parameter ``tare_on_activation`` is set to ``true`` in the controller configuration. To perform a taring procedure, the compensator controller needs to be **deactivated** and then **re-activated**. It is important to ensure that no controller is actively using the compensator output during this process, as it will be automatically deactivated. ------------------------ .. _bota-payload-estimator-controller: Bota Payload Estimator Controller ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Parameters --------------------------- The controller requires the following parameters: .. list-table:: :widths: 15 35 :header-rows: 1 :class: highlight * - Parameter - Description * - ``config_file`` - Configuration file path for the block * - ``input_block_name`` - The name of the previous block in the processing chain. * - ``imu_offset`` - Offset between the Wrench frame and the IMU frame. .. note:: The ``input_block_name`` parameter should match the **controller name** of the previous block in the processing chain. .. warning:: The ``imu_offset`` parameter will be deprecated in future releases as the IMU data will be published by the driver in the same frame as the wrench. Interfaces --------------------------- - The controller claims an input state interface as the one described in the `Bota Control ros2_control controllers <../bota_control_toolkit/bota_control_toolkit_ros2.html>`__ - The controller exposes an output state interface as described in the table below: .. list-table:: :widths: 25 19 40 :header-rows: 1 :class: highlight * - Interface Name - Type - Description * - ``is_estimator_running`` - Status - Indicates if the estimator is currently running * - ``is_estimator_successful`` - Status - Indicates if the estimator was successful Services ----------------- The controller exposes the following service: .. list-table:: :widths: 60 30 40 :header-rows: 1 :class: highlight * - Service - Service Type - Description * - ``//start_payload_estimation`` - ``std_srvs/srv/Trigger`` - Start the payload estimation routine It can be called while the controller is active to start the estimation process with the following command: .. code-block:: bash ros2 service call //start_payload_estimation std_srvs/srv/Trigger {} ---- Safety Guidelines ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ A proper use of the Bota Control Toolkit ros2_control controllers requires monitoring two distinct safety aspects: 1. **Controller Status** The status flag output by the controller indicates if the data being provided is valid and reliable. Always monitor this flag in your control logic and react accordingly to ensure safe operation. 2. **Sensor hardware interface Status Flags** The sensor hardware interface provides status flags that indicate data quality and operational conditions. Always monitor these flags in your control logic and react accordingly to ensure safe operation. The same recommendations provided in the `Bota Driver ros2_control hardware_interface documentation <../driver/driver_ros2_control_hw_interface.html>`__ apply here as well. ---- Getting Started ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Bota Systems provides a ROS2 set of demo packages to get yourself started with the **Bota Payload Utilities in ros2_control**. .. raw:: html

Found the packages implementation in our official GitLab repository.

bota_demo_ros2_control on GitLab