|
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 | get_inverse_dynamics (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 is_3dof) | |
| Constructs the dynamics base and sets the DOF flag. More... | |
| virtual | ~SystemDynamicsBase ()=default |
| Virtual destructor. More... | |
| const Matrix6d & | get_m () const |
| Returns the total mass matrix M = Mrb + Ma. More... | |
| const Matrix6d & | get_mrb () const |
| Returns the rigid-body mass matrix Mrb. More... | |
| const Matrix6d & | get_ma_matrix () const |
| Returns the added-mass matrix Ma. More... | |
| const Matrix6d & | get_dl_matrix () const |
| Returns the linear damping matrix Dl. More... | |
| const Matrix6d & | get_dnl_matrix () const |
| Returns the quadratic damping matrix Dnl. More... | |
| const Vector3d & | get_rgb_vec () const |
| Returns the centre of gravity in the body frame. More... | |
| const Vector3d & | get_rbb_vec () const |
| Returns the centre of buoyancy in the body frame. More... | |
| const Vector3d & | get_fgn () const |
| Returns the gravitational force vector in the world frame. More... | |
| const Vector3d & | get_fbn () const |
| Returns the buoyancy force vector in the world frame. More... | |
| double | get_mass_value () const |
| Returns the vehicle mass in kg. More... | |
| double | get_weight () const |
| Returns the vehicle weight in N. More... | |
| double | get_buoyancy_value () const |
| Returns the net buoyancy force in N. More... | |
| Matrix6d | get_d (const Vector6d &velocity) const |
| Evaluates the total damping matrix D(v) = Dl + Dnl*diag(|v|) More... | |
| Matrix6d | get_crb (const Vector6d &velocity) const |
| Evaluates the rigid-body Coriolis matrix Crb(v) More... | |
| Matrix6d | get_ca (const Vector6d &velocity) const |
| Evaluates the added-mass Coriolis matrix Ca(v) More... | |
| Matrix6d | get_c (const Vector6d &velocity) const |
| Evaluates the total Coriolis matrix C(v) = Crb(v) + Ca(v) More... | |
| Vector6d | get_g (const Quaterniond &q) const |
| Evaluates the 6DOF gravitational and buoyancy restoring vector G(q) More... | |
| Vector6d | get_g (const Vector3d &rpy) const |
| Evaluates the 6DOF gravitational and buoyancy restoring vector G(rpy) More... | |
| void | set_mass (double m) |
| Sets vehicle mass and recomputes weight, buoyancy, and the rigid-body mass matrix. More... | |
| void | set_buoyancy (double factor) |
| Sets the buoyancy force as a scale factor relative to vehicle weight. More... | |
| void | set_i (const std::array< double, 6 > &I) |
| Sets the rigid-body inertia tensor. More... | |
| void | set_ma (const std::array< double, 6 > &m) |
| Sets the diagonal added-mass coefficients. More... | |
| void | set_dl (const std::array< double, 6 > &d) |
| Sets the diagonal linear damping coefficients. More... | |
| void | set_dnl (const std::array< double, 6 > &d) |
| Sets the diagonal quadratic (nonlinear) damping coefficients. More... | |
| void | set_rbb (const std::array< double, 3 > &rbb) |
| Sets the centre-of-buoyancy position in the body frame. More... | |
| void | set_rgb (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 | is_system_3dof_ |
| 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 is_system_3dof_ = true and overrides get_inverse_dynamics() 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.