Paparazzi UAS
v5.18.0_stable
Paparazzi is a free software Unmanned Aircraft System.
|
Landing on skidpads See video of the landing: https://www.youtube.com/watch?v=aYrB7s3oeX4 Standard landing procedure: 1) circle down passing AF waypoint (from left or right) 2) once low enough follow line to TD waypoint 3) once low enough flare. More...
#include "generated/airframe.h"
#include "state.h"
#include "modules/nav/nav_skid_landing.h"
#include "autopilot.h"
#include "firmwares/fixedwing/nav.h"
#include "firmwares/fixedwing/stabilization/stabilization_attitude.h"
Go to the source code of this file.
Macros | |
#define | SKID_LANDING_AF_HEIGHT 50 |
#define | SKID_LANDING_FINAL_HEIGHT 5 |
#define | SKID_LANDING_FINAL_STAGE_TIME 5 |
Enumerations | |
enum | LandingStatus { CircleDown, LandingWait, Final, Approach } |
Functions | |
static float | distance_equation (struct FloatVect2 p1, struct FloatVect2 p2) |
void | nav_skid_landing_setup (uint8_t afwp, uint8_t tdwp, float radius) |
bool | nav_skid_landing_run (void) |
void | nav_skid_landing_glide (uint8_t From_WP, uint8_t To_WP) |
Variables | |
static enum LandingStatus | skid_landing_status |
static uint8_t | aw_waypoint |
static uint8_t | td_waypoint |
static float | land_radius |
static struct FloatVect2 | land_circle |
static float | land_app_alt |
static float | land_circle_quadrant |
static float | approach_quadrant |
static float | final_land_altitude |
static uint8_t | final_land_count |
Landing on skidpads See video of the landing: https://www.youtube.com/watch?v=aYrB7s3oeX4 Standard landing procedure: 1) circle down passing AF waypoint (from left or right) 2) once low enough follow line to TD waypoint 3) once low enough flare.
Use this in your airfame config file: <section name="LANDING" prefix="SKID_LANDING_"> <define name="AF_HEIGHT" value="50" unit="m"> <define name="FINAL_HEIGHT" value="50" unit="m"> <define name="FINAL_STAGE_TIME" value="10" unit="s"> </section>
Also define: V_CTL_LANDING_THROTTLE_PGAIN - landing throttle P gain V_CTL_LANDING_THROTTLE_IGAIN - landing throttle I gain V_CTL_LANDING_THROTTLE_MAX - max landing throttle V_CTL_LANDING_DESIRED_SPEED - desired landing speed V_CTL_LANDING_PITCH_PGAIN - landing P gain V_CTL_LANDING_PITCH_IGAIN - landing I gain V_CTL_LANDING_PITCH_LIMITS - pitch limits during landing V_CTL_LANDING_PITCH_FLARE - flare P gain V_CTL_LANDING_ALT_THROTTLE_KILL - AGL to kill throttle during landing V_CTL_LANDING_ALT_FLARE - AGL to initiate final flare
to properly use landing control loop
Definition in file nav_skid_landing.c.
#define SKID_LANDING_AF_HEIGHT 50 |
Definition at line 80 of file nav_skid_landing.c.
#define SKID_LANDING_FINAL_HEIGHT 5 |
Definition at line 83 of file nav_skid_landing.c.
#define SKID_LANDING_FINAL_STAGE_TIME 5 |
Definition at line 86 of file nav_skid_landing.c.
enum LandingStatus |
Enumerator | |
---|---|
CircleDown | |
LandingWait | |
Final | |
Approach |
Definition at line 64 of file nav_skid_landing.c.
|
inlinestatic |
Definition at line 89 of file nav_skid_landing.c.
References FloatVect2::x, and FloatVect2::y.
Referenced by nav_skid_landing_glide().
Definition at line 182 of file nav_skid_landing.c.
References point::a, distance_equation(), nav_altitude, stateGetPositionEnu_f(), stateGetPositionUtm_f(), v_ctl_mode, V_CTL_MODE_LANDING, waypoints, point::x, FloatVect2::x, EnuCoor_f::x, point::y, FloatVect2::y, and EnuCoor_f::y.
Referenced by nav_skid_landing_run().
bool nav_skid_landing_run | ( | void | ) |
Definition at line 127 of file nav_skid_landing.c.
References Approach, approach_quadrant, autopilot_set_kill_throttle(), autopilot_throttle_killed(), aw_waypoint, CircleDown, Final, land_circle, land_circle_quadrant, land_radius, LandingWait, nav_circle_XY(), nav_init_stage(), nav_route_xy(), nav_skid_landing_glide(), NavCircleCount, NavQdrCloseTo, NavVerticalAltitudeMode, NavVerticalAutoThrottleMode, skid_landing_status, stateGetPositionUtm_f(), td_waypoint, TRUE, waypoints, FloatVect2::x, and FloatVect2::y.
Definition at line 94 of file nav_skid_landing.c.
References UtmCoor_f::alt, approach_quadrant, aw_waypoint, CircleDown, final_land_altitude, final_land_count, land_app_alt, land_circle, land_circle_quadrant, land_radius, SKID_LANDING_FINAL_HEIGHT, skid_landing_status, stateGetPositionUtm_f(), td_waypoint, waypoints, point::x, FloatVect2::x, point::y, and FloatVect2::y.
|
static |
Definition at line 75 of file nav_skid_landing.c.
Referenced by nav_skid_landing_run(), and nav_skid_landing_setup().
|
static |
Definition at line 69 of file nav_skid_landing.c.
Referenced by nav_skid_landing_run(), and nav_skid_landing_setup().
|
static |
Definition at line 76 of file nav_skid_landing.c.
Referenced by nav_skid_landing_setup().
|
static |
Definition at line 77 of file nav_skid_landing.c.
Referenced by nav_skid_landing_setup().
|
static |
Definition at line 73 of file nav_skid_landing.c.
Referenced by nav_skid_landing_setup().
|
static |
Definition at line 72 of file nav_skid_landing.c.
Referenced by nav_skid_landing_run(), and nav_skid_landing_setup().
|
static |
Definition at line 74 of file nav_skid_landing.c.
Referenced by nav_skid_landing_run(), and nav_skid_landing_setup().
|
static |
Definition at line 71 of file nav_skid_landing.c.
Referenced by nav_skid_landing_run(), and nav_skid_landing_setup().
|
static |
Definition at line 68 of file nav_skid_landing.c.
Referenced by nav_skid_landing_run(), and nav_skid_landing_setup().
|
static |
Definition at line 70 of file nav_skid_landing.c.
Referenced by nav_skid_landing_run(), and nav_skid_landing_setup().