|
Paparazzi UAS
v5.12_stable-4-g9b43e9b
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"
Include dependency graph for autopilot.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 | ||
|---|---|---|
| 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 | 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 187 of file autopilot.h.
| #define autopilot_KillThrottle | ( | _kill | ) | autopilot_set_kill_throttle(_kill) |
Definition at line 135 of file autopilot.h.
| #define autopilot_ResetFlightTimeAndLaunch | ( | _ | ) | autopilot_reset_flight_time() |
Definition at line 114 of file autopilot.h.
| #define autopilot_SetPowerSwitch | ( | _ps | ) | autopilot_set_power_switch(_ps) |
Definition at line 173 of file autopilot.h.
| #define autopilot_StoreSettings | ( | _ | ) | autopilot_store_settings() |
Definition at line 180 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 233 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().
Here is the call graph for this function:
Here is the caller graph for this function:| 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 283 of file autopilot.c.
References autopilot, pprz_autopilot::kill_throttle, settings_clear(), and settings_clear_flag.
Here is the call graph for this function:| void autopilot_event | ( | void | ) |
Autopilot event check function.
Autopilot event check function.
Autopilot event check function.
used for automatic ground detection
Definition at line 141 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().
Here is the call graph for this function:
Here is the caller graph for this function:| uint8_t autopilot_get_mode | ( | void | ) |
Get autopilot mode.
Get autopilot mode.
Definition at line 179 of file autopilot.c.
References autopilot, and pprz_autopilot::mode.
Referenced by attitude_loop(), autopilot_arming_check_motors_on(), 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(), 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().
Here is the caller graph for this function:| bool autopilot_get_motors_on | ( | void | ) |
Get motor status.
Get motor status.
Definition at line 207 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(), and stabilization_attitude_run().
Here is the caller graph for this function:| bool autopilot_in_flight | ( | void | ) |
Get in flight status.
Get in flight status.
Definition at line 252 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(), and nav_is_in_flight().
Here is the caller graph for this function:| void autopilot_init | ( | void | ) |
Autopilot initialization function.
Definition at line 91 of file autopilot.c.
References autopilot, autopilot_firmware_init(), 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().
Here is the call graph for this function:
Here is the caller graph for this function:| void autopilot_on_rc_frame | ( | void | ) |
Autopilot RC input event hadler.
Autopilot RC input event hadler.
Definition at line 145 of file autopilot.c.
References autopilot_generated_on_rc_frame(), and autopilot_static_on_rc_frame().
Referenced by event_task_ap(), and main_event().
Here is the call graph for this function:
Here is the caller graph for this function:| void autopilot_periodic | ( | void | ) |
Autopilot periodic call at PERIODIC_FREQUENCY.
Autopilot periodic call at PERIODIC_FREQUENCY.
Definition at line 130 of file autopilot.c.
References autopilot_generated_periodic(), and autopilot_static_periodic().
Referenced by handle_periodic_tasks_ap(), main_periodic(), and sim_periodic_task().
Here is the call graph for this function:
Here is the caller graph for this function:| 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 186 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 238 of file autopilot.c.
References autopilot_in_flight_counter.
Referenced by autopilot_set_in_flight().
Here is the caller graph for this function:| void autopilot_send_mode | ( | void | ) |
Report autopilot mode on default downlink channel.
Report autopilot mode on default downlink channel.
Definition at line 301 of file autopilot.c.
References DefaultChannel, DefaultDevice, and send_mode().
Referenced by autopilot_static_on_rc_frame(), and navigation_task().
Here is the call graph for this function:
Here is the caller graph for this function:| void autopilot_send_version | ( | void | ) |
Report autopilot version on default downlink channel.
Report autopilot version on default downlink channel.
Definition at line 293 of file autopilot.c.
References DefaultChannel, DefaultDevice, and send_autopilot_version().
Referenced by reporting_task(), and telemetry_periodic().
Here is the call graph for this function:
Here is the caller graph for this function:| 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 242 of file autopilot.c.
References autopilot, autopilot_reset_in_flight_counter(), and pprz_autopilot::in_flight.
Referenced by autopilot_static_set_mode().
Here is the call graph for this function:
Here is the caller graph for this function:| 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 214 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().
Here is the call graph for this function:
Here is the caller graph for this function:| 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 156 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().
Here is the call graph for this function:
Here is the caller graph for this function:| 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 195 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().
Here is the call graph for this function:
Here is the caller graph for this function:| 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 259 of file autopilot.c.
References autopilot, gpio_clear(), gpio_set(), pprz_autopilot::power_switch, and POWER_SWITCH_GPIO.
Here is the call graph for this function:| void autopilot_SetModeHandler | ( | float | mode | ) |
Handler for setter function with dl_setting.
Handler for setter function with dl_setting.
Definition at line 168 of file autopilot.c.
References autopilot_generated_SetModeHandler(), and autopilot_static_SetModeHandler().
Here is the call graph for this function:| 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 273 of file autopilot.c.
References autopilot, pprz_autopilot::kill_throttle, settings_store(), and settings_store_flag.
Here is the call graph for this function:| bool autopilot_throttle_killed | ( | void | ) |
Get kill status.
Get kill status.
Definition at line 225 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().
Here is the caller graph for this function:| 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_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(), 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(), 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().