49 #ifndef VTOL_ATT_CONTROL_MAIN_H 50 #define VTOL_ATT_CONTROL_MAIN_H 57 #include <arch/board/board.h> 59 #include <drivers/drv_pwm_output.h> 60 #include <lib/ecl/geo/geo.h> 62 #include <matrix/math.hpp> 65 #include <uORB/topics/actuator_controls.h> 66 #include <uORB/topics/airspeed.h> 67 #include <uORB/topics/manual_control_setpoint.h> 68 #include <uORB/topics/parameter_update.h> 69 #include <uORB/topics/tecs_status.h> 70 #include <uORB/topics/vehicle_attitude.h> 71 #include <uORB/topics/vehicle_attitude_setpoint.h> 72 #include <uORB/topics/vehicle_command.h> 73 #include <uORB/topics/vehicle_command_ack.h> 74 #include <uORB/topics/vehicle_control_mode.h> 75 #include <uORB/topics/vehicle_land_detected.h> 76 #include <uORB/topics/vehicle_local_position.h> 77 #include <uORB/topics/vehicle_local_position_setpoint.h> 78 #include <uORB/topics/position_setpoint_triplet.h> 79 #include <uORB/topics/vtol_vehicle_status.h> 86 extern "C" __EXPORT int vtol_att_control_main(
int argc,
char *argv[]);
97 bool is_fixed_wing_requested();
98 void abort_front_transition(
const char *reason);
100 struct actuator_controls_s *get_actuators_fw_in() {
return &_actuators_fw_in;}
101 struct actuator_controls_s *get_actuators_mc_in() {
return &_actuators_mc_in;}
102 struct actuator_controls_s *get_actuators_out0() {
return &_actuators_out_0;}
103 struct actuator_controls_s *get_actuators_out1() {
return &_actuators_out_1;}
104 struct airspeed_s *get_airspeed() {
return &_airspeed;}
105 struct position_setpoint_triplet_s *get_pos_sp_triplet() {
return &_pos_sp_triplet;}
106 struct tecs_status_s *get_tecs_status() {
return &_tecs_status;}
107 struct vehicle_attitude_s *get_att() {
return &_v_att;}
108 struct vehicle_attitude_setpoint_s *get_att_sp() {
return &_v_att_sp;}
109 struct vehicle_attitude_setpoint_s *get_fw_virtual_att_sp() {
return &_fw_virtual_att_sp;}
110 struct vehicle_attitude_setpoint_s *get_mc_virtual_att_sp() {
return &_mc_virtual_att_sp;}
111 struct vehicle_control_mode_s *get_control_mode() {
return &_v_control_mode;}
112 struct vehicle_land_detected_s *get_land_detected() {
return &_land_detected;}
113 struct vehicle_local_position_s *get_local_pos() {
return &_local_pos;}
114 struct vehicle_local_position_setpoint_s *get_local_pos_sp() {
return &_local_pos_sp;}
115 struct vtol_vehicle_status_s *get_vtol_vehicle_status() {
return &_vtol_vehicle_status;}
117 struct Params *get_params() {
return &_params;}
122 bool _task_should_exit{
false};
123 int _control_task{-1};
126 int _actuator_inputs_fw{-1};
127 int _actuator_inputs_mc{-1};
128 int _airspeed_sub{-1};
129 int _fw_virtual_att_sp_sub{-1};
130 int _land_detected_sub{-1};
131 int _local_pos_sp_sub{-1};
132 int _local_pos_sub{-1};
133 int _manual_control_sp_sub{-1};
134 int _mc_virtual_att_sp_sub{-1};
136 int _pos_sp_triplet_sub{-1};
137 int _tecs_status_sub{-1};
139 int _v_control_mode_sub{-1};
140 int _vehicle_cmd_sub{-1};
152 vehicle_attitude_setpoint_s _v_att_sp{};
153 vehicle_attitude_setpoint_s _fw_virtual_att_sp{};
154 vehicle_attitude_setpoint_s _mc_virtual_att_sp{};
156 actuator_controls_s _actuators_fw_in{};
157 actuator_controls_s _actuators_mc_in{};
158 actuator_controls_s _actuators_out_0{};
159 actuator_controls_s _actuators_out_1{};
161 airspeed_s _airspeed{};
162 manual_control_setpoint_s _manual_control_sp{};
163 position_setpoint_triplet_s _pos_sp_triplet{};
164 tecs_status_s _tecs_status{};
165 vehicle_attitude_s _v_att{};
166 vehicle_command_s _vehicle_cmd{};
167 vehicle_control_mode_s _v_control_mode{};
168 vehicle_land_detected_s _land_detected{};
169 vehicle_local_position_s _local_pos{};
170 vehicle_local_position_setpoint_s _local_pos_sp{};
171 vtol_vehicle_status_s _vtol_vehicle_status{};
178 param_t vtol_fw_permanent_stab;
185 param_t front_trans_time_openloop;
205 int _transition_command{vtol_vehicle_status_s::VEHICLE_VTOL_STATE_MC};
206 bool _abort_front_transition{
false};
213 static int task_main_trampoline(
int argc,
char *argv[]);
215 void land_detected_poll();
216 void tecs_status_poll();
217 void vehicle_attitude_poll();
218 void vehicle_cmd_poll();
219 void vehicle_control_mode_poll();
220 void vehicle_manual_poll();
221 void actuator_controls_fw_poll();
222 void actuator_controls_mc_poll();
223 void fw_virtual_att_sp_poll();
224 void mc_virtual_att_sp_poll();
225 void pos_sp_triplet_poll();
226 void vehicle_airspeed_poll();
227 void vehicle_local_pos_poll();
228 void vehicle_local_pos_sp_poll();
230 int parameters_update();
232 void handle_command();
~VtolAttitudeControl()
Destructor.
Definition: vtol_att_control_main.cpp:114
Configuration flags used in code.
Includes POSIX-like functions for virtual character devices.
__BEGIN_DECLS typedef void * orb_advert_t
ORB topic advertiser handle.
Definition: uORB.h:134
High-resolution timer with callouts and timekeeping.
Definition: vtol_type.h:50
Generally used magic defines.
Global flash based parameter store.
Definition: vtol_type.h:111
VtolAttitudeControl()
Constructor.
Definition: vtol_att_control_main.cpp:60
Common header for mathlib exports.
Definition: vtol_att_control_main.h:89
VTOL with fixed multirotor motor configurations (such as quad) and a pusher (or puller aka tractor) m...
uint32_t param_t
Parameter handle.
Definition: param.h:98