|
controls
3.0.0
|
3DOF hydrodynamic model for the autonomous surface vehicle More...
#include <AsvSystemDynamics.h>
Public Member Functions | |
| AsvSystemDynamics () | |
| Constructs the ASV dynamics model as a 3DOF (XY-Yaw) system. More... | |
| Vector6d | getInverseDynamics (const Vector6d &velocity, const Vector6d &acceleration, const Quaterniond &orientation) const override |
| Computes inverse dynamics and zeros the Z, Roll, and Pitch components. 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 Matrix6d & | getM () const |
| Returns the total mass matrix M = Mrb + Ma. More... | |
| const Matrix6d & | getMrb () const |
| Returns the rigid-body mass matrix Mrb. More... | |
| const Matrix6d & | getMaMatrix () const |
| Returns the added-mass matrix Ma. More... | |
| const Matrix6d & | getDlMatrix () const |
| Returns the linear damping matrix Dl. More... | |
| const Matrix6d & | getDnlMatrix () 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... | |
| 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... | |
3DOF hydrodynamic model for the autonomous surface vehicle
Inherits the dynamics from SystemDynamicsBase with isSystem3DOF = true and overrides getInverseDynamics() to zero the Z, Roll, and Pitch force components, constraining the vehicle to the XY-Yaw plane. Parameters are loaded at runtime via ROS parameters in ControlsROS2Wrapper.
| AsvSystemDynamics::AsvSystemDynamics | ( | ) |
Constructs the ASV dynamics model as a 3DOF (XY-Yaw) system.
|
overridevirtual |
Computes inverse dynamics and zeros the Z, Roll, and Pitch components.
| velocity | [in] 6DOF body-frame velocity |
| acceleration | [in] 6DOF body-frame acceleration |
| orientation | [in] Vehicle orientation as a unit quaternion |
Reimplemented from SystemDynamicsBase.