ros2_control chainable controllers

The bota_payload_utils package implements two ros2_control chainable controllers:

  • bota_payload_compensator_controller (see below)

  • bota_payload_estimator_controller (see below)

These controllers follow the Bota Control Toolkit architecture, allowing them to be easily integrated into processing chains with other Bota Control ros2_control controllers, such as the Bota Driver ros2_control hardware_interface.


Bota Payload Compensator Controller

Parameters

The controller requires the following parameters:

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

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

Parameters

The controller requires the following parameters:

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

  • The controller exposes an output state interface as described in the table below:

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:

Service

Service Type

Description

/<CONTROLLER_NAME>/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:

ros2 service call /<CONTROLLER_NAME>/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.

  1. 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 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.

Found the packages implementation in our official GitLab repository.

bota_demo_ros2_control on GitLab