Paparazzi UAS
v5.14.0_stable-0-g3f680d1
Paparazzi is a free software Unmanned Aircraft System.
|
Core autopilot interface common to all firmwares. More...
#include "std.h"
#include "paparazzi.h"
#include "generated/airframe.h"
#include "state.h"
#include "autopilot_utils.h"
#include "autopilot_firmware.h"
#include "autopilot_static.h"
Go to the source code of this file.
Data Structures | |
struct | pprz_autopilot |
PPRZ Autopilot structure definition. More... | |
Macros | |
#define | USE_GENERATED_AUTOPILOT FALSE |
#define | autopilot_ResetFlightTimeAndLaunch(_) autopilot_reset_flight_time() |
#define | autopilot_KillThrottle(_kill) autopilot_set_kill_throttle(_kill) |
#define | autopilot_SetPowerSwitch(_ps) autopilot_set_power_switch(_ps) |
#define | autopilot_StoreSettings(_) autopilot_store_settings() |
#define | autopilot_ClearSettings(_) autopilot_clear_settings() |
Functions | |
void | autopilot_init (void) |
Autopilot initialization function. More... | |
void | autopilot_periodic (void) |
Autopilot periodic call at PERIODIC_FREQUENCY. More... | |
void | autopilot_event (void) |
Autopilot event check function. More... | |
void | autopilot_on_rc_frame (void) |
Autopilot RC input event hadler. More... | |
bool | autopilot_set_mode (uint8_t new_autopilot_mode) |
Set new autopilot mode. More... | |
void | autopilot_SetModeHandler (float new_autopilot_mode) |
Handler for setter function with dl_setting. More... | |
uint8_t | autopilot_get_mode (void) |
Get autopilot mode. More... | |
void | autopilot_reset_flight_time (void) |
Reset flight time and launch status Also provide macro for dl_setting backward compatibility. More... | |
void | autopilot_set_motors_on (bool motors_on) |
Start or stop motors May have no effect if motors has auto-start based on throttle setpoint. More... | |
bool | autopilot_get_motors_on (void) |
Get motor status. More... | |
void | autopilot_set_kill_throttle (bool kill) |
Enable or disable motor control from autopilot Also provide macro for dl_setting backward compatibility. More... | |
bool | autopilot_throttle_killed (void) |
Get kill status. More... | |
void | autopilot_check_in_flight (bool motors_on) |
Check if airframe is in flight. More... | |
void | autopilot_set_in_flight (bool in_flight) |
Set in flight status. More... | |
bool | autopilot_in_flight (void) |
Get in flight status. More... | |
void | autopilot_reset_in_flight_counter (void) |
reset in_flight counter actual implementation is firmware dependent More... | |
void | autopilot_set_power_switch (bool power_switch) |
Set power switch state This will actually enable the switch if POWER_SWITCH_GPIO is defined Also provide macro for dl_setting backward compatibility. More... | |
void | autopilot_store_settings (void) |
Store marked settings in flash Try to make sure that we don't write to flash while flying Also provide macro for dl_setting backward compatibility. More... | |
void | autopilot_clear_settings (void) |
Clear marked settings in flash try to make sure that we don't write to flash while flying Also provide macro for dl_setting backward compatibility. More... | |
void | autopilot_send_version (void) |
Report autopilot version on default downlink channel. More... | |
void | autopilot_send_mode (void) |
Report autopilot mode on default downlink channel. More... | |
Variables | |
struct pprz_autopilot | autopilot |
Global autopilot structure. More... | |
Core autopilot interface common to all firmwares.
Using either static or generated autopilot logic, which depends on the firmware.
Definition in file autopilot.h.
struct pprz_autopilot |
PPRZ Autopilot structure definition.
Definition at line 58 of file autopilot.h.
Data Fields | ||
---|---|---|
uint8_t | arming_status | |
bool | detect_ground_once | enable automatic detection of ground (one shot) |
uint16_t | flight_time | flight time in seconds |
bool | ground_detected | automatic detection of landing |
bool | in_flight | in flight status |
bool | kill_throttle | allow autopilot to use throttle |
bool | launch | request launch |
uint8_t | mode | current autopilot mode |
uint8_t | mode_auto2 | FIXME hide this in a private part ? |
bool | motors_on |
arming status motor status |
bool | power_switch | enable/disable power from power switch (if any) |
bool | use_rc | enable/disable RC input |
#define autopilot_ClearSettings | ( | _ | ) | autopilot_clear_settings() |
Definition at line 188 of file autopilot.h.
#define autopilot_KillThrottle | ( | _kill | ) | autopilot_set_kill_throttle(_kill) |
Definition at line 136 of file autopilot.h.
#define autopilot_ResetFlightTimeAndLaunch | ( | _ | ) | autopilot_reset_flight_time() |
Definition at line 115 of file autopilot.h.
#define autopilot_SetPowerSwitch | ( | _ps | ) | autopilot_set_power_switch(_ps) |
Definition at line 174 of file autopilot.h.
#define autopilot_StoreSettings | ( | _ | ) | autopilot_store_settings() |
Definition at line 181 of file autopilot.h.
#define USE_GENERATED_AUTOPILOT FALSE |
Definition at line 47 of file autopilot.h.
void autopilot_check_in_flight | ( | bool | motors_on | ) |
Check if airframe is in flight.
[in] | motors_on | motors status |
Check if airframe is in flight.
Definition at line 237 of file autopilot.c.
References autopilot, autopilot_in_flight_counter, AUTOPILOT_IN_FLIGHT_MIN_ACCEL, AUTOPILOT_IN_FLIGHT_MIN_SPEED, AUTOPILOT_IN_FLIGHT_MIN_THRUST, AUTOPILOT_IN_FLIGHT_TIME, pprz_autopilot::in_flight, stabilization_cmd, stateGetAccelNed_f(), stateGetSpeedNed_f(), and NedCoor_f::z.
Referenced by failsafe_check().
void autopilot_clear_settings | ( | void | ) |
Clear marked settings in flash try to make sure that we don't write to flash while flying Also provide macro for dl_setting backward compatibility.
Clear marked settings in flash try to make sure that we don't write to flash while flying Also provide macro for dl_setting backward compatibility.
Definition at line 287 of file autopilot.c.
References autopilot, pprz_autopilot::kill_throttle, settings_clear(), and settings_clear_flag.
void autopilot_event | ( | void | ) |
Autopilot event check function.
Autopilot event check function.
Autopilot event check function.
used for automatic ground detection
Definition at line 145 of file autopilot.c.
References AP_MODE_FAILSAFE, autopilot, pprz_autopilot::detect_ground_once, pprz_autopilot::ground_detected, pprz_autopilot::mode, stateGetAccelNed_f(), THRESHOLD_GROUND_DETECT, and NedCoor_f::z.
Referenced by event_task_ap(), and main_event().
uint8_t autopilot_get_mode | ( | void | ) |
Get autopilot mode.
Get autopilot mode.
Definition at line 183 of file autopilot.c.
References autopilot, and pprz_autopilot::mode.
Referenced by attitude_loop(), autopilot_arming_check_motors_on(), autopilot_arming_check_valid(), autopilot_arming_set(), autopilot_guided_goto_body_relative(), autopilot_guided_goto_ned(), autopilot_guided_goto_ned_relative(), autopilot_guided_move_ned(), autopilot_guided_update(), autopilot_static_on_rc_frame(), cam_periodic(), distributed_circular(), failsafe_check(), generic_com_periodic(), guidance_flip_enter(), gvf_control_2D(), h_ctl_pitch_loop(), h_ctl_roll_loop(), main_periodic(), mavlink_common_message_handler(), mavlink_send_heartbeat(), navigation_task(), NavKillThrottle(), NavResurrect(), periodic_auto1_commands(), pprz_mode_update(), stabilization_opticflow_vel_cb(), takeoff_detect_periodic(), v_ctl_set_pitch(), v_ctl_set_throttle(), and vPoint().
bool autopilot_get_motors_on | ( | void | ) |
Get motor status.
Get motor status.
Definition at line 211 of file autopilot.c.
References autopilot, and pprz_autopilot::motors_on.
Referenced by actuators_ardrone_motor_status(), actuators_bebop_commit(), actuators_esc32_commit(), failsafe_check(), hott_check_serial_data(), hott_update_eam_msg(), hott_update_gam_msg(), intermcu_set_actuators(), mavlink_common_message_handler(), nps_autopilot_run_step(), sdlogger_spi_direct_periodic(), stabilization_attitude_run(), and throttle_curve_run().
bool autopilot_in_flight | ( | void | ) |
Get in flight status.
Get in flight status.
Definition at line 256 of file autopilot.c.
References autopilot, and pprz_autopilot::in_flight.
Referenced by autopilot_generated_periodic(), autopilot_static_on_rc_frame(), autopilot_static_periodic(), gps_sim_hitl_event(), guidance_flip_run(), main_periodic(), nav_home(), and nav_is_in_flight().
void autopilot_init | ( | void | ) |
Autopilot initialization function.
Definition at line 91 of file autopilot.c.
References autopilot, autopilot_firmware_init(), autopilot_set_power_switch(), DefaultPeriodic, pprz_autopilot::detect_ground_once, pprz_autopilot::flight_time, gpio_clear(), gpio_setup_output(), pprz_autopilot::ground_detected, pprz_autopilot::in_flight, pprz_autopilot::kill_throttle, pprz_autopilot::mode_auto2, MODE_AUTO2, pprz_autopilot::motors_on, pprz_autopilot::power_switch, POWER_SWITCH_GPIO, register_periodic_telemetry(), send_actuators(), send_alive(), send_attitude(), send_autopilot_version(), send_dl_value(), send_rc(), and pprz_autopilot::use_rc.
Referenced by init_ap(), and main_init().
void autopilot_on_rc_frame | ( | void | ) |
Autopilot RC input event hadler.
Autopilot RC input event hadler.
Definition at line 149 of file autopilot.c.
References autopilot_generated_on_rc_frame(), and autopilot_static_on_rc_frame().
Referenced by event_task_ap(), and main_event().
void autopilot_periodic | ( | void | ) |
Autopilot periodic call at PERIODIC_FREQUENCY.
Autopilot periodic call at PERIODIC_FREQUENCY.
Definition at line 134 of file autopilot.c.
References autopilot_generated_periodic(), and autopilot_static_periodic().
Referenced by handle_periodic_tasks_ap(), main_periodic(), and sim_periodic_task().
void autopilot_reset_flight_time | ( | void | ) |
Reset flight time and launch status Also provide macro for dl_setting backward compatibility.
Reset flight time and launch status Also provide macro for dl_setting backward compatibility.
Definition at line 190 of file autopilot.c.
References autopilot, pprz_autopilot::flight_time, and pprz_autopilot::launch.
void autopilot_reset_in_flight_counter | ( | void | ) |
reset in_flight counter actual implementation is firmware dependent
reset in_flight counter actual implementation is firmware dependent
Definition at line 242 of file autopilot.c.
References autopilot_in_flight_counter.
Referenced by autopilot_set_in_flight().
void autopilot_send_mode | ( | void | ) |
Report autopilot mode on default downlink channel.
Report autopilot mode on default downlink channel.
Definition at line 305 of file autopilot.c.
References DefaultChannel, DefaultDevice, and send_mode().
Referenced by autopilot_static_on_rc_frame(), and navigation_task().
void autopilot_send_version | ( | void | ) |
Report autopilot version on default downlink channel.
Report autopilot version on default downlink channel.
Definition at line 297 of file autopilot.c.
References DefaultChannel, DefaultDevice, and send_autopilot_version().
Referenced by reporting_task(), and telemetry_periodic().
void autopilot_set_in_flight | ( | bool | in_flight | ) |
Set in flight status.
[in] | in_flight | in flight status |
Set in flight status.
Definition at line 246 of file autopilot.c.
References autopilot, autopilot_reset_in_flight_counter(), and pprz_autopilot::in_flight.
Referenced by autopilot_arming_check_motors_on(), and autopilot_static_set_mode().
void autopilot_set_kill_throttle | ( | bool | kill | ) |
Enable or disable motor control from autopilot Also provide macro for dl_setting backward compatibility.
[in] | kill | true to disable (kill), false to enable (un-kill) |
Enable or disable motor control from autopilot Also provide macro for dl_setting backward compatibility.
Definition at line 218 of file autopilot.c.
References autopilot_set_motors_on().
Referenced by actuators_disco_commit(), nav_bungee_takeoff_run(), nav_bungee_takeoff_setup(), and nav_skid_landing_run().
bool autopilot_set_mode | ( | uint8_t | new_autopilot_mode | ) |
Set new autopilot mode.
[in] | new_autopilot_mode | new mode to set |
Set new autopilot mode.
Definition at line 160 of file autopilot.c.
References autopilot, autopilot_generated_set_mode(), autopilot_static_set_mode(), and pprz_autopilot::mode.
Referenced by autopilot_static_on_rc_frame(), failsafe_check(), guidance_flip_run(), mavlink_common_message_handler(), nav_set_failsafe(), navigation_task(), and pprz_mode_update().
void autopilot_set_motors_on | ( | bool | motors_on | ) |
Start or stop motors May have no effect if motors has auto-start based on throttle setpoint.
[in] | motors_on | true to start motors, false to stop |
Start or stop motors May have no effect if motors has auto-start based on throttle setpoint.
Definition at line 199 of file autopilot.c.
References autopilot, autopilot_generated_set_motors_on(), autopilot_static_set_motors_on(), pprz_autopilot::kill_throttle, and pprz_autopilot::motors_on.
Referenced by actuators_ardrone_motor_status(), actuators_bebop_commit(), autopilot_set_kill_throttle(), autopilot_static_set_mode(), mavlink_common_message_handler(), NavKillThrottle(), and NavResurrect().
void autopilot_set_power_switch | ( | bool | power_switch | ) |
Set power switch state This will actually enable the switch if POWER_SWITCH_GPIO is defined Also provide macro for dl_setting backward compatibility.
[in] | power_switch | true to enable, false to disable |
Set power switch state This will actually enable the switch if POWER_SWITCH_GPIO is defined Also provide macro for dl_setting backward compatibility.
Definition at line 263 of file autopilot.c.
References autopilot, gpio_clear(), gpio_set(), pprz_autopilot::power_switch, and POWER_SWITCH_GPIO.
Referenced by autopilot_init().
void autopilot_SetModeHandler | ( | float | mode | ) |
Handler for setter function with dl_setting.
Handler for setter function with dl_setting.
Definition at line 172 of file autopilot.c.
References autopilot_generated_SetModeHandler(), and autopilot_static_SetModeHandler().
void autopilot_store_settings | ( | void | ) |
Store marked settings in flash Try to make sure that we don't write to flash while flying Also provide macro for dl_setting backward compatibility.
Store marked settings in flash Try to make sure that we don't write to flash while flying Also provide macro for dl_setting backward compatibility.
Definition at line 277 of file autopilot.c.
References autopilot, pprz_autopilot::kill_throttle, settings_store(), and settings_store_flag.
bool autopilot_throttle_killed | ( | void | ) |
Get kill status.
Get kill status.
Definition at line 229 of file autopilot.c.
References autopilot, and pprz_autopilot::kill_throttle.
Referenced by electrical_periodic(), geo_mag_periodic(), mavlink_send_heartbeat(), nav_skid_landing_run(), v_ctl_climb_loop(), and v_ctl_landing_loop().
struct pprz_autopilot autopilot |
Global autopilot structure.
Definition at line 50 of file autopilot.c.
Referenced by attitude_loop(), autopilot_arming_check_motors_on(), autopilot_arming_check_valid(), autopilot_check_in_flight(), autopilot_clear_settings(), autopilot_event(), autopilot_generated_init(), autopilot_generated_on_rc_frame(), autopilot_generated_periodic(), autopilot_generated_set_mode(), autopilot_generated_set_motors_on(), autopilot_get_mode(), autopilot_get_motors_on(), autopilot_in_flight(), autopilot_init(), autopilot_reset_flight_time(), autopilot_set_in_flight(), autopilot_set_mode(), autopilot_set_motors_on(), autopilot_set_power_switch(), autopilot_static_init(), autopilot_static_on_rc_frame(), autopilot_static_periodic(), autopilot_static_set_mode(), autopilot_static_set_motors_on(), autopilot_store_settings(), autopilot_throttle_killed(), Drift_correction(), gazebo_write(), generic_com_periodic(), gsm_send_report_continue(), guidance_h_module_enter(), guidance_h_module_read_rc(), h_ctl_course_loop(), h_ctl_pitch_loop(), h_ctl_roll_loop(), main_event(), main_periodic(), mf_daq_send_state(), monitor_task(), nav_catapult_highrate_module(), nav_check_wp_time(), nav_detect_ground(), nav_home(), navigation_task(), nps_autopilot_run_step(), parse_mf_daq_msg(), send_bat(), send_fp(), send_mode(), send_status(), takeoff_detect_periodic(), v_ctl_climb_loop(), v_ctl_guidance_loop(), v_ctl_set_pitch(), and v_ctl_set_throttle().