controls  3.0.0
Public Member Functions | List of all members
BuoyancyController Class Reference

Buoyancy/gravity restoring compensation with optional adaptive bias. More...

#include <BuoyancyController.h>

Inheritance diagram for BuoyancyController:
BaseControllerInterface

Public Member Functions

void reset () override
 Resets the adaptive buoyancy bias to zero. More...
 
void set_stationkeeping (bool stationkeeping)
 Sets whether the vehicle is stationkeeping (gates adaptation on/off) More...
 
Vector6d get_force (const State &goal, const State &curr, double dt) override
 Computes the buoyancy compensation wrench. More...
 
 BaseControllerInterface ()=default
 
 BaseControllerInterface (std::shared_ptr< SystemDynamicsBase > auv, std::shared_ptr< ControllerConfig > config)
 Constructs a controller with the given dynamics model and config. More...
 
- Public Member Functions inherited from BaseControllerInterface
 BaseControllerInterface ()=default
 
 BaseControllerInterface (std::shared_ptr< SystemDynamicsBase > auv, std::shared_ptr< ControllerConfig > config)
 Constructs a controller with the given dynamics model and config. More...
 
virtual ~BaseControllerInterface ()=default
 

Additional Inherited Members

- Protected Attributes inherited from BaseControllerInterface
std::shared_ptr< SystemDynamicsBaseauv_
 Vehicle dynamics model shared with all controllers in a stack. More...
 
std::shared_ptr< ControllerConfigconfig_
 Tuning parameters shared with all controllers in a stack. More...
 

Detailed Description

Buoyancy/gravity restoring compensation with optional adaptive bias.

Heave outputs static G(q) plus an adaptive bias (buoyancy_adaptive_z). Roll/pitch output only an adaptive bias (buoyancy_adaptive_rp); their static G(q) torque is dropped to preserve the passive metacentric righting. X/Y and yaw are uncompensated. The bias is a conditional integrator updated only while stationkeeping. Outputs zero near the surface under gain scheduling.

Member Function Documentation

◆ BaseControllerInterface() [1/2]

BaseControllerInterface::BaseControllerInterface
default

◆ BaseControllerInterface() [2/2]

BaseControllerInterface::BaseControllerInterface
inline

Constructs a controller with the given dynamics model and config.

Parameters
auv[in] Shared vehicle dynamics model
config[in] Shared controller tuning parameters

◆ get_force()

Vector6d BuoyancyController::get_force ( const State goal,
const State curr,
double  dt 
)
overridevirtual

Computes the buoyancy compensation wrench.

Parameters
goal[in] Desired vehicle state
curr[in] Current vehicle state
dt[in] Time step in seconds
Returns
6-element force/torque vector [Fx, Fy, Fz, Tx, Ty, Tz] in N and Nm

Implements BaseControllerInterface.

◆ reset()

void BuoyancyController::reset ( )
overridevirtual

Resets the adaptive buoyancy bias to zero.

Reimplemented from BaseControllerInterface.

◆ set_stationkeeping()

void BuoyancyController::set_stationkeeping ( bool  stationkeeping)

Sets whether the vehicle is stationkeeping (gates adaptation on/off)


The documentation for this class was generated from the following files: