No version for distro humble. Known supported distros are highlighted in the buttons above.
No version for distro jazzy. Known supported distros are highlighted in the buttons above.
No version for distro rolling. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.1.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description A collection of control algorithms for autonomous underwater vehicles implemented using ros2_control.
Checkout URI https://github.com/robotic-decision-making-lab/auv_controllers.git
VCS Type git
VCS Version main
Last Updated 2025-04-27
Dev Status UNKNOWN
CI status No Continuous Integration
Released UNRELEASED
Tags robotics underwater-robotics robotic-control ros2 ros2-controllers ros2-rolling ros2-jazzy
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

A collection of thruster controllers for AUV control

Additional Links

Maintainers

  • Evan Palmer

Authors

  • Evan Palmer

Thruster Controllers

This package provides a collection of chainable thruster controllers, which compute a hardware-level command (e.g., a PWM) that tracks a thruster reference signal.

Polynomial Thrust Curve Controller

A Chainable controller that calculates the PWM command required to track a thrust reference using an N-degree polynomial thrust curve.

Plugin Library

thruster_controllers/polynomial_thrust_curve_controller

References

The input to this controller is thrust [double].

Commands

The output of this controller is the PWM value required by the thruster to perform the action [double].

Subscribers

polynomial_thrust_curve_controller/reference [std_msgs::msg::Float64]

Publishers

polynomial_thrust_curve_controller/status [control_msgs::msg::SingleDOFStateStamped]

Gazebo Passthrough Controller

A Chainable controller that publishes a reference thrust value to a topic. To use with Gazebo, set the published topic to be the <prefix>/cmd_thrust topic subscribed to by Gazebo and launch a ROS-Gazebo bridge to proxy messages between the two interfaces.

For example, given the thruster plugin configuration

<!-- example plugin configuration for a thruster -->
<plugin filename="gz-sim-thruster-system" name="gz::sim::systems::Thruster">
  <namespace>my_auv_model</namespace>
  <joint_name>thruster_joint</joint_name>
  <thrust_coefficient>-0.02</thrust_coefficient>
  <fluid_density>1000.0</fluid_density>
  <propeller_diameter>0.1</propeller_diameter>
  <velocity_control>true</velocity_control>
  <use_angvel_cmd>false</use_angvel_cmd>
</plugin>

the controller topic would be set to

/model/my_auv_model/joint/thruster_joint/cmd_thrust

with the ROS-Gazebo bridge:

/model/my_auv_model/joint/thruster_joint/cmd_thrust@std_msgs/msg/Float64]gz.msgs.Double

Plugin Library

thruster_controllers/gz_passthrough_controller

References

The input to this controller is thrust [double].

Commands

There are no command interfaces for this controller.

Subscribers

gz_passthrough_controller/reference [std_msgs::msg::Float64]

Publishers

gz_passthrough_controller/status [control_msgs::msg::SingleDOFStateStamped]

[std_msgs::msg::Float64] ## Rotation Rate Controller A chainable controller that calculates the angular velocity required to achieve a reference thrust value. The control law is given as follows ```math \omega = \sqrt{\frac{T_{\text{ref}}}{K_T \cdot \rho \cdot D^4}}, ``` where $\omega$ is the thruster angular velocity, $T_\text{ref}$ is the is the reference thrust, $K_T$ is the thrust coefficient, $\rho$ is the water density, and $D$ is the propeller diameter. ### Plugin Library thruster_controllers/rotation_rate_controller ### References The input to this controller is thrust [double]. ### Commands The output of this controller is the thruster angular velocity [double] needed to achieve the thrust reference. ### Subscribers rotation_rate_controller/reference [std_msgs::msg::Float64] ### Publishers rotation_rate_controller/status [control_msgs::msg::SingleDOFStateStamped]
CHANGELOG

Changelog for package thruster_controllers

0.1.0 (2025-04-27)

  • Implements the Gazebo passthrough thruster controller
  • Implements the thruster rotation rate controller
  • Updates the API to use C++ 23
  • Bumps the minimum CMake version to CMake 23

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged thruster_controllers at Robotics Stack Exchange

No version for distro noetic. Known supported distros are highlighted in the buttons above.
No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro eloquent. Known supported distros are highlighted in the buttons above.
No version for distro dashing. Known supported distros are highlighted in the buttons above.
No version for distro galactic. Known supported distros are highlighted in the buttons above.
No version for distro foxy. Known supported distros are highlighted in the buttons above.
No version for distro iron. Known supported distros are highlighted in the buttons above.
No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.
No version for distro kinetic. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.