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

6DOF hydrodynamic model for the autonomous underwater vehicle More...

#include <AuvSystemDynamics.h>

Inheritance diagram for AuvSystemDynamics:
SystemDynamicsBase

Public Member Functions

 AuvSystemDynamics ()
 Constructs the AUV dynamics model as a full 6DOF system. More...
 
- Public Member Functions inherited from SystemDynamicsBase
 SystemDynamicsBase (const bool is3DOF)
 Constructs the dynamics base and sets the DOF flag. More...
 
virtual ~SystemDynamicsBase ()=default
 Virtual destructor. More...
 
const Matrix6dgetM () const
 Returns the total mass matrix M = Mrb + Ma. More...
 
const Matrix6dgetMrb () const
 Returns the rigid-body mass matrix Mrb. More...
 
const Matrix6dgetMaMatrix () const
 Returns the added-mass matrix Ma. More...
 
const Matrix6dgetDlMatrix () const
 Returns the linear damping matrix Dl. More...
 
const Matrix6dgetDnlMatrix () const
 Returns the quadratic damping matrix Dnl. More...
 
const Vector3d & getRgbVec () const
 Returns the centre of gravity in the body frame. More...
 
const Vector3d & getRbbVec () const
 Returns the centre of buoyancy in the body frame. More...
 
const Vector3d & getFgn () const
 Returns the gravitational force vector in the world frame. More...
 
const Vector3d & getFbn () const
 Returns the buoyancy force vector in the world frame. More...
 
double getMassValue () const
 Returns the vehicle mass in kg. More...
 
double getWeight () const
 Returns the vehicle weight in N. More...
 
double getBuoyancyValue () const
 Returns the net buoyancy force in N. More...
 
Matrix6d getD (const Vector6d &velocity) const
 Evaluates the total damping matrix D(v) = Dl + Dnl*diag(|v|) More...
 
Matrix6d getCrb (const Vector6d &velocity) const
 Evaluates the rigid-body Coriolis matrix Crb(v) More...
 
Matrix6d getCa (const Vector6d &velocity) const
 Evaluates the added-mass Coriolis matrix Ca(v) More...
 
Matrix6d getC (const Vector6d &velocity) const
 Evaluates the total Coriolis matrix C(v) = Crb(v) + Ca(v) More...
 
Vector6d getG (const Quaterniond &q) const
 Evaluates the 6DOF gravitational and buoyancy restoring vector G(q) More...
 
Vector6d getG (const Vector3d &rpy) const
 Evaluates the 6DOF gravitational and buoyancy restoring vector G(rpy) More...
 
virtual Vector6d getInverseDynamics (const Vector6d &velocity, const Vector6d &acceleration, const Quaterniond &orientation) const
 Computes the inertial + Coriolis + damping force M*a + C(v)*v + D(v)*v. More...
 
void setMass (double m)
 Sets vehicle mass and recomputes weight, buoyancy, and the rigid-body mass matrix. More...
 
void setBuoyancy (double factor)
 Sets the buoyancy force as a scale factor relative to vehicle weight. More...
 
void setI (const std::array< double, 6 > &I)
 Sets the rigid-body inertia tensor. More...
 
void setMa (const std::array< double, 6 > &m)
 Sets the diagonal added-mass coefficients. More...
 
void setDl (const std::array< double, 6 > &d)
 Sets the diagonal linear damping coefficients. More...
 
void setDnl (const std::array< double, 6 > &d)
 Sets the diagonal quadratic (nonlinear) damping coefficients. More...
 
void setRbb (const std::array< double, 3 > &rbb)
 Sets the centre-of-buoyancy position in the body frame. More...
 
void setRgb (const std::array< double, 3 > &rgb)
 Sets the centre-of-gravity position in the body frame. More...
 

Additional Inherited Members

- Public Attributes inherited from SystemDynamicsBase
const bool isSystem3DOF
 True if the vehicle is constrained to the XY-Yaw plane (3DOF surface vehicle) More...
 

Detailed Description

6DOF hydrodynamic model for the autonomous underwater vehicle

Inherits all dynamics from SystemDynamicsBase with isSystem3DOF = false. Parameters are loaded at runtime via ROS parameters in ControlsROS2Wrapper.

Constructor & Destructor Documentation

◆ AuvSystemDynamics()

AuvSystemDynamics::AuvSystemDynamics ( )

Constructs the AUV dynamics model as a full 6DOF system.


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