Paparazzi UAS  v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
autopilot_firmware.c File Reference
#include "firmwares/rotorcraft/autopilot_firmware.h"
#include "generated/modules.h"
#include <stdint.h>
#include "modules/energy/electrical.h"
#include "modules/datalink/telemetry.h"
#include "modules/radio_control/radio_control.h"
#include "modules/gps/gps.h"
#include "modules/nav/nav_geofence.h"
+ Include dependency graph for autopilot_firmware.c:

Go to the source code of this file.

Macros

#define AUTOPILOT_IN_FLIGHT_TIME   20
 time steps for in_flight detection (at 20Hz, so 20=1second) More...
 
#define AUTOPILOT_IN_FLIGHT_MIN_SPEED   0.2
 minimum vertical speed for in_flight condition in m/s More...
 
#define AUTOPILOT_IN_FLIGHT_MIN_ACCEL   2.0
 minimum vertical acceleration for in_flight condition in m/s^2 More...
 
#define AUTOPILOT_IN_FLIGHT_MIN_THRUST   500
 minimum thrust for in_flight condition in pprz_t units (max = 9600) More...
 
#define THRESHOLD_GROUND_DETECT   25.0
 Z-acceleration threshold to detect ground in m/s^2. More...
 

Functions

bool WEAK autopilot_ground_detection (void)
 Default ground-detection estimation based on accelerometer shock. More...
 
bool WEAK autopilot_in_flight_end_detection (bool motors_on UNUSED)
 Default end-of-in-flight detection estimation based on thrust and speed. More...
 
static void send_status (struct transport_tx *trans, struct link_device *dev)
 
static void send_energy (struct transport_tx *trans, struct link_device *dev)
 
static void send_fp (struct transport_tx *trans, struct link_device *dev)
 
static void send_body_rates_accel (struct transport_tx *trans, struct link_device *dev)
 
static void send_fp_min (struct transport_tx *trans, struct link_device *dev)
 
static void send_rotorcraft_rc (struct transport_tx *trans, struct link_device *dev)
 
static void send_rotorcraft_cmd (struct transport_tx *trans UNUSED, struct link_device *dev UNUSED)
 
void autopilot_firmware_init (void)
 Init function. More...
 
void autopilot_event (void)
 autopilot event function More...
 
void autopilot_reset_in_flight_counter (void)
 reset in_flight counter More...
 
void autopilot_check_in_flight (bool motors_on)
 in flight check utility function More...
 

Variables

uint8_t autopilot_mode_auto2
 
static uint32_t autopilot_in_flight_counter
 

Macro Definition Documentation

◆ AUTOPILOT_IN_FLIGHT_MIN_ACCEL

#define AUTOPILOT_IN_FLIGHT_MIN_ACCEL   2.0

minimum vertical acceleration for in_flight condition in m/s^2

Definition at line 67 of file autopilot_firmware.c.

◆ AUTOPILOT_IN_FLIGHT_MIN_SPEED

#define AUTOPILOT_IN_FLIGHT_MIN_SPEED   0.2

minimum vertical speed for in_flight condition in m/s

Definition at line 62 of file autopilot_firmware.c.

◆ AUTOPILOT_IN_FLIGHT_MIN_THRUST

#define AUTOPILOT_IN_FLIGHT_MIN_THRUST   500

minimum thrust for in_flight condition in pprz_t units (max = 9600)

Definition at line 72 of file autopilot_firmware.c.

◆ AUTOPILOT_IN_FLIGHT_TIME

#define AUTOPILOT_IN_FLIGHT_TIME   20

time steps for in_flight detection (at 20Hz, so 20=1second)

Definition at line 57 of file autopilot_firmware.c.

◆ THRESHOLD_GROUND_DETECT

#define THRESHOLD_GROUND_DETECT   25.0

Z-acceleration threshold to detect ground in m/s^2.

Definition at line 77 of file autopilot_firmware.c.

Function Documentation

◆ autopilot_check_in_flight()

void autopilot_check_in_flight ( bool  motors_on)

in flight check utility function

Check if airframe is in flight.

Definition at line 286 of file autopilot_firmware.c.

References autopilot, autopilot_in_flight_counter, autopilot_in_flight_end_detection(), AUTOPILOT_IN_FLIGHT_MIN_THRUST, AUTOPILOT_IN_FLIGHT_TIME, pprz_autopilot::in_flight, and stabilization_cmd.

+ Here is the call graph for this function:

◆ autopilot_event()

void autopilot_event ( void  )

autopilot event function

Autopilot event check function.

used for automatic ground detection

Definition at line 263 of file autopilot_firmware.c.

References AP_MODE_FAILSAFE, autopilot, autopilot_ground_detection(), pprz_autopilot::detect_ground_once, pprz_autopilot::ground_detected, and pprz_autopilot::mode.

+ Here is the call graph for this function:

◆ autopilot_firmware_init()

void autopilot_firmware_init ( void  )

◆ autopilot_ground_detection()

bool WEAK autopilot_ground_detection ( void  )

Default ground-detection estimation based on accelerometer shock.

Definition at line 81 of file autopilot_firmware.c.

References stateGetAccelNed_f(), THRESHOLD_GROUND_DETECT, and NedCoor_f::z.

Referenced by autopilot_event().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ autopilot_in_flight_end_detection()

bool WEAK autopilot_in_flight_end_detection ( bool motors_on  UNUSED)

Default end-of-in-flight detection estimation based on thrust and speed.

Definition at line 92 of file autopilot_firmware.c.

References autopilot_in_flight_counter, AUTOPILOT_IN_FLIGHT_MIN_ACCEL, AUTOPILOT_IN_FLIGHT_MIN_SPEED, AUTOPILOT_IN_FLIGHT_MIN_THRUST, AUTOPILOT_IN_FLIGHT_TIME, stabilization_cmd, stateGetAccelNed_f(), stateGetSpeedNed_f(), and NedCoor_f::z.

Referenced by autopilot_check_in_flight().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ autopilot_reset_in_flight_counter()

void autopilot_reset_in_flight_counter ( void  )

reset in_flight counter

reset in_flight counter actual implementation is firmware dependent

Definition at line 279 of file autopilot_firmware.c.

References autopilot_in_flight_counter.

◆ send_body_rates_accel()

static void send_body_rates_accel ( struct transport_tx *  trans,
struct link_device *  dev 
)
static

Definition at line 183 of file autopilot_firmware.c.

References dev, p, stateGetAccelBody_i(), and stateGetBodyRates_f().

Referenced by autopilot_firmware_init().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ send_energy()

static void send_energy ( struct transport_tx *  trans,
struct link_device *  dev 
)
static

◆ send_fp()

◆ send_fp_min()

static void send_fp_min ( struct transport_tx *  trans,
struct link_device *  dev 
)
static

Definition at line 194 of file autopilot_firmware.c.

References dev, gps, GpsState::gspeed, stateGetHorizontalSpeedNorm_f(), and stateGetPositionEnu_i().

Referenced by autopilot_firmware_init().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ send_rotorcraft_cmd()

static void send_rotorcraft_cmd ( struct transport_tx *trans  UNUSED,
struct link_device *dev  UNUSED 
)
static

Definition at line 238 of file autopilot_firmware.c.

Referenced by autopilot_firmware_init().

+ Here is the caller graph for this function:

◆ send_rotorcraft_rc()

static void send_rotorcraft_rc ( struct transport_tx *  trans,
struct link_device *  dev 
)
static

Definition at line 210 of file autopilot_firmware.c.

References dev, radio_control, RADIO_KILL_SWITCH, RADIO_MODE, RADIO_PITCH, RADIO_ROLL, RADIO_THROTTLE, RADIO_YAW, RadioControl::status, and RadioControl::values.

Referenced by autopilot_firmware_init().

+ Here is the caller graph for this function:

◆ send_status()

Variable Documentation

◆ autopilot_in_flight_counter

◆ autopilot_mode_auto2

uint8_t autopilot_mode_auto2