159             float x_vel = vel(0);
   189             bool transition_to_fw = 
false;
   191             if (minimum_trans_time_elapsed) {
   192                 if (airspeed_triggers_transition) {
   196                     transition_to_fw = 
true;
   202             if (transition_to_fw) {
   238     float mc_weight = 1.0f;
   251         } 
else if (_pusher_throttle <= _params->front_trans_throttle) {
   350     const Eulerf euler_sp(R_sp);
   354     Vector3f body_z_sp(R_sp(0, 2), R_sp(1, 2), R_sp(2, 2));
   359     body_z_sp = R_yaw * body_z_sp;
   364     float pitch_forward = atan2f(body_z_sp(0), body_z_sp(2));
   370         float roll_new = -asinf(body_z_sp(1));
   376         float pitch_new = 0.0f;
   379         const Dcmf R_tmp = 
Eulerf(roll_new, pitch_new, 0.0
f);
   380         Vector3f tilt_new(R_tmp(0, 2), R_tmp(1, 2), R_tmp(2, 2));
   384         const float yaw_error = 
wrap_pi(euler_sp(2) - euler(2));
   385         const Dcmf R_yaw_correction = 
Eulerf(0.0
f, 0.0
f, -yaw_error);
   386         tilt_new = R_yaw_correction * tilt_new;
 hrt_abstime _trans_finished_ts
constexpr _Tp constrain(_Tp val, _Tp min_val, _Tp max_val)
float _airspeed_trans_blend_margin
float equivalent_airspeed_m_s
float front_trans_timeout
void waiting_on_tecs() override
Special handling opportunity for the time right after transition to FW before TECS is running...
__EXPORT int param_get(param_t param, void *val)
Copy the value of a parameter. 
struct Standard::@138 _vtol_schedule
struct actuator_controls_s * _actuators_mc_in
struct vehicle_attitude_s * _v_att
void copyTo(Type dst[M *N]) const
VtolAttitudeControl * _attc
struct actuator_controls_s * _actuators_out_0
bool vtol_transition_failsafe
struct position_setpoint_s current
struct vehicle_local_position_s * _local_pos
virtual void update_fw_state()
Update fixed wing state. 
void update_vtol_state() override
Update vtol state. 
struct actuator_controls_s * _actuators_fw_in
float _mc_throttle_weight
struct vehicle_attitude_setpoint_s * _v_att_sp
constexpr T radians(T degrees)
Vector< float, 6 > f(float t, const Matrix< float, 6, 1 > &, const Matrix< float, 3, 1 > &)
void update_fw_state() override
Update fixed wing state. 
void parameters_update() override
struct vehicle_attitude_setpoint_s * _mc_virtual_att_sp
void update_mc_state() override
Update multicopter state. 
motor_state set_motor_state(const motor_state current_state, const motor_state next_state, const int value=0)
Sets state of a selection of motors, see struct motor_state. 
struct Standard::@137 _params_handles_standard
uint64_t timestamp_sample
struct Standard::@136 _params_standard
struct vtol_vehicle_status_s * get_vtol_vehicle_status()
Type wrap_pi(Type x)
Wrap value in range [-π, π) 
__EXPORT param_t param_find(const char *name)
Look up a parameter by name. 
float back_trans_duration
struct vehicle_control_mode_s * _v_control_mode
Vector3< float > Vector3f
bool flag_control_position_enabled
float transition_airspeed
Quaternion< float > Quatf
virtual void update_mc_state()
Update multicopter state. 
void fill_actuator_outputs() override
Prepare message to acutators with data from mc and fw attitude controllers. 
float back_trans_throttle
struct airspeed_validated_s * _airspeed_validated
virtual void update_transition_state()=0
Update transition state. 
struct actuator_controls_s * _actuators_out_1
struct position_setpoint_triplet_s * get_pos_sp_triplet()
float front_trans_time_min
void abort_front_transition(const char *reason)
bool is_fixed_wing_requested()
struct vtol_vehicle_status_s * _vtol_vehicle_status
bool can_transition_on_ground()
Returns true if we're allowed to do a mode transition on the ground. 
VTOL with fixed multirotor motor configurations (such as quad) and a pusher (or puller aka tractor) m...
__EXPORT hrt_abstime hrt_absolute_time(void)
Get absolute time in [us] (does not wrap). 
void update_transition_state() override
Update transition state. 
float front_trans_throttle
Standard(VtolAttitudeControl *_att_controller)