1#ifndef QUADROTOR_DYNAMICS_H
2#define QUADROTOR_DYNAMICS_H
181 real_t phi() const noexcept {
return get_euler_angles_from_state_()[0]; }
186 real_t theta() const noexcept {
return get_euler_angles_from_state_()[1]; }
191 real_t psi() const noexcept {
return get_euler_angles_from_state_()[2]; }
229 void update_position_();
234 void update_rotation_matrix_();
236 void update_euler_angles_();
244inline RealColVec3d QuadrotorDynamics::get_velocity_from_state_()
const
254inline RealColVec3d QuadrotorDynamics::get_position_from_state_()
const
264inline RealColVec3d QuadrotorDynamics::get_angular_velocity_from_state_()
const
274inline RealColVec3d QuadrotorDynamics::get_euler_angles_from_state_()
const
The DynamicsMatrixDescriptor class. Helper class to model the matrix representon of dynamical systems...
Definition dynamics_matrix_descriptor.h:19
Base class for deriving motion models. Motion models describe the dynamics or kinematics of a rigid b...
Definition motion_model_base.h:24
RealVec input_type
Definition motion_model_base.h:28
matrix_descriptor_type::matrix_type matrix_type
Definition motion_model_base.h:30
matrix_descriptor_type::vector_type vector_type
Definition motion_model_base.h:31
real_t get_state_property(const std::string &name) const
Returns the state property with the given name.
Definition motion_model_base.h:111
The QuadrotorDynamics class. Implements quadrotor dynamics The implementation of this class follows t...
Definition quadrotor_dynamics.h:96
RealColVec3d get_velocity() const
Returns the current linear velocity (body frame)
Definition quadrotor_dynamics.h:166
real_t phi() const noexcept
The phi Euler angle in rad.
Definition quadrotor_dynamics.h:181
real_t theta() const noexcept
The theta Euler angle in rad.
Definition quadrotor_dynamics.h:186
MotionModelDynamicsBase< SysState< 12 >, DynamicsMatrixDescriptor, RealVec > base_type
Definition quadrotor_dynamics.h:98
base_type::input_type input_type
input_t The type of the input for solving the dynamics
Definition quadrotor_dynamics.h:108
void translational_dynamics(const RealVec &motor_w)
Implements the translational dynamics. It accepts the motors angular velocities. Notice that this mod...
Definition quadrotor_dynamics.cpp:168
base_type::vector_type vector_type
vector_t
Definition quadrotor_dynamics.h:118
void rotational_dynamics(const RealVec &motor_w)
Implements the translational dynamics. It accepts the motors angular velocities. Notice that this mod...
Definition quadrotor_dynamics.cpp:117
base_type::state_type state_type
The type of the state handled by this dynamics object.
Definition quadrotor_dynamics.h:103
RealColVec3d get_angular_velocity() const
Returns the current angular velocity (body frame)
Definition quadrotor_dynamics.h:171
real_t psi() const noexcept
The psi Euler angle in rad.
Definition quadrotor_dynamics.h:191
void integrate(const RealVec &motor_w)
Integrate the new state. It also uses error terms.
Definition quadrotor_dynamics.cpp:32
RealColVec3d get_euler_angles() const
Returns the Euler angles (0: phi, 1: theta, 2:psi)
Definition quadrotor_dynamics.h:176
RealColVec3d get_position() const
Returns the current position NED frame. Note that the z-coordinate has to be multiplied with -1 in or...
Definition quadrotor_dynamics.h:161
base_type::matrix_type matrix_type
matrix_t Matrix type that describes the dynamics
Definition quadrotor_dynamics.h:113
virtual state_type & evaluate(const input_type &input) override
Evaluate the new state using the given input it also updates the various matrices if needed.
Definition quadrotor_dynamics.cpp:26
Definition bicycle_vehicle_model_dynamics.cpp:7
Eigen::Matrix3< real_t > RealMat3d
DynamicĂ—3 matrix of type double.
Definition bitrl_types.h:64
double real_t
real_t
Definition bitrl_types.h:23
Eigen::Vector3d RealColVec3d
3D column vector
Definition bitrl_types.h:115
DynVec< real_t > RealVec
double precision floating point vector
Definition bitrl_types.h:84
Definition quadrotor_dynamics.h:15
bool use_description_matrices
Definition quadrotor_dynamics.h:24
real_t k_1
Proportionality constant to scale the morot velocity.
Definition quadrotor_dynamics.h:40
real_t Jz
Definition quadrotor_dynamics.h:67
real_t Jx
Definition quadrotor_dynamics.h:57
real_t Jy
Definition quadrotor_dynamics.h:62
real_t mass
mass
Definition quadrotor_dynamics.h:29
real_t l
the arm length
Definition quadrotor_dynamics.h:34
bool use_gravity
flag indicating if gravity is used
Definition quadrotor_dynamics.h:19
real_t k_2
Proportionality constant to scale the morot velocity used when calculating torques.
Definition quadrotor_dynamics.h:47
real_t dt
The time step to ise.
Definition quadrotor_dynamics.h:52