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
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]
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
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
rclcpp | |
ros2_control | |
pluginlib | |
controller_interface | |
hardware_interface | |
rclcpp_lifecycle | |
generate_parameter_library | |
control_msgs | |
controller_common |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
auv_controllers |