Paparazzi UAS  v6.2_unstable
Paparazzi is a free software Unmanned Aircraft System.
sys_id_chirp.c File Reference
#include "std.h"
#include "sys_id_chirp.h"
#include "pprz_chirp.h"
#include "modules/datalink/telemetry.h"
#include "generated/airframe.h"
#include "mcu_periph/sys_time.h"
#include "filters/low_pass_filter.h"
#include "math/pprz_random.h"
+ Include dependency graph for sys_id_chirp.c:

Go to the source code of this file.

Macros

#define CHIRP_AXES   {COMMAND_ROLL,COMMAND_PITCH,COMMAND_YAW,COMMAND_THRUST}
 
#define CHIRP_ENABLED   TRUE
 
#define CHIRP_USE_NOISE   TRUE
 
#define CHIRP_NB_AXES   sizeof ACTIVE_CHIRP_AXES / sizeof ACTIVE_CHIRP_AXES[0]
 

Functions

static void set_current_chirp_values (void)
 
static void send_chirp (struct transport_tx *trans, struct link_device *dev)
 
static void start_chirp (void)
 
static void stop_chirp (void)
 
void sys_id_chirp_activate_handler (uint8_t activate)
 
uint8_t sys_id_chirp_running (void)
 
void sys_id_chirp_axis_handler (uint8_t axis)
 
void sys_id_chirp_fstart_handler (float fstart)
 
void sys_id_chirp_fstop_handler (float fstop)
 
void sys_id_chirp_fade_in_activate_handler (uint8_t fade_in)
 
void sys_id_chirp_exponential_activate_handler (uint8_t exponential)
 
void sys_id_chirp_init (void)
 
void sys_id_chirp_run (void)
 
void sys_id_chirp_add_values (bool motors_on, bool override_on, pprz_t in_cmd[])
 

Variables

static struct chirp_t chirp
 
uint8_t chirp_active = FALSE
 
uint8_t chirp_axis = 0
 
pprz_t chirp_amplitude = 0
 
float chirp_noise_stdv_onaxis_ratio = 0.1
 
float chirp_noise_stdv_offaxis = 200
 
float chirp_fstart_hz = 1.0f
 
float chirp_fstop_hz = 5.0f
 
float chirp_length_s = 20
 
uint8_t chirp_fade_in = false
 
uint8_t chirp_exponential = false
 
static const int8_t ACTIVE_CHIRP_AXES [] = CHIRP_AXES
 
static struct FirstOrderLowPass filters [CHIRP_NB_AXES]
 
static pprz_t current_chirp_values [CHIRP_NB_AXES]
 

Detailed Description

Author
Joost Meulenbeld System identification chirp

Definition in file sys_id_chirp.c.

Macro Definition Documentation

◆ CHIRP_AXES

#define CHIRP_AXES   {COMMAND_ROLL,COMMAND_PITCH,COMMAND_YAW,COMMAND_THRUST}

Definition at line 39 of file sys_id_chirp.c.

◆ CHIRP_ENABLED

#define CHIRP_ENABLED   TRUE

Definition at line 43 of file sys_id_chirp.c.

◆ CHIRP_NB_AXES

#define CHIRP_NB_AXES   sizeof ACTIVE_CHIRP_AXES / sizeof ACTIVE_CHIRP_AXES[0]

Definition at line 74 of file sys_id_chirp.c.

◆ CHIRP_USE_NOISE

#define CHIRP_USE_NOISE   TRUE

Definition at line 47 of file sys_id_chirp.c.

Function Documentation

◆ send_chirp()

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

◆ set_current_chirp_values()

static void set_current_chirp_values ( void  )
static

◆ start_chirp()

static void start_chirp ( void  )
static

Definition at line 118 of file sys_id_chirp.c.

References chirp, chirp_active, chirp_reset(), get_sys_time_float(), set_current_chirp_values(), and TRUE.

Referenced by sys_id_chirp_activate_handler().

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

◆ stop_chirp()

static void stop_chirp ( void  )
static

Definition at line 125 of file sys_id_chirp.c.

References chirp, chirp_active, chirp_reset(), FALSE, get_sys_time_float(), and set_current_chirp_values().

Referenced by sys_id_chirp_activate_handler(), and sys_id_chirp_run().

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

◆ sys_id_chirp_activate_handler()

void sys_id_chirp_activate_handler ( uint8_t  activate)

Definition at line 132 of file sys_id_chirp.c.

References chirp, chirp_active, chirp_exponential, chirp_fade_in, chirp_fstart_hz, chirp_fstop_hz, chirp_init(), chirp_length_s, get_sys_time_float(), start_chirp(), and stop_chirp().

+ Here is the call graph for this function:

◆ sys_id_chirp_add_values()

void sys_id_chirp_add_values ( bool  motors_on,
bool  override_on,
pprz_t  in_cmd[] 
)

Definition at line 217 of file sys_id_chirp.c.

References ACTIVE_CHIRP_AXES, CHIRP_NB_AXES, current_chirp_values, and MAX_PPRZ.

◆ sys_id_chirp_axis_handler()

void sys_id_chirp_axis_handler ( uint8_t  axis)

Definition at line 149 of file sys_id_chirp.c.

References chirp_axis, and CHIRP_NB_AXES.

◆ sys_id_chirp_exponential_activate_handler()

void sys_id_chirp_exponential_activate_handler ( uint8_t  exponential)

Definition at line 175 of file sys_id_chirp.c.

References chirp_exponential.

◆ sys_id_chirp_fade_in_activate_handler()

void sys_id_chirp_fade_in_activate_handler ( uint8_t  fade_in)

Definition at line 170 of file sys_id_chirp.c.

References chirp_fade_in.

◆ sys_id_chirp_fstart_handler()

void sys_id_chirp_fstart_handler ( float  fstart)

Definition at line 156 of file sys_id_chirp.c.

References chirp_fstart_hz, and chirp_fstop_hz.

◆ sys_id_chirp_fstop_handler()

void sys_id_chirp_fstop_handler ( float  fstop)

Definition at line 163 of file sys_id_chirp.c.

References chirp_fstart_hz, and chirp_fstop_hz.

◆ sys_id_chirp_init()

◆ sys_id_chirp_run()

void sys_id_chirp_run ( void  )

Definition at line 201 of file sys_id_chirp.c.

References chirp, chirp_active, chirp_is_running(), chirp_update(), get_sys_time_float(), set_current_chirp_values(), and stop_chirp().

+ Here is the call graph for this function:

◆ sys_id_chirp_running()

uint8_t sys_id_chirp_running ( void  )

Definition at line 144 of file sys_id_chirp.c.

References chirp_active.

Variable Documentation

◆ ACTIVE_CHIRP_AXES

const int8_t ACTIVE_CHIRP_AXES[] = CHIRP_AXES
static

Definition at line 73 of file sys_id_chirp.c.

Referenced by sys_id_chirp_add_values().

◆ chirp

◆ chirp_active

◆ chirp_amplitude

pprz_t chirp_amplitude = 0

Definition at line 62 of file sys_id_chirp.c.

Referenced by send_chirp(), and set_current_chirp_values().

◆ chirp_axis

uint8_t chirp_axis = 0

Definition at line 61 of file sys_id_chirp.c.

Referenced by send_chirp(), set_current_chirp_values(), and sys_id_chirp_axis_handler().

◆ chirp_exponential

◆ chirp_fade_in

◆ chirp_fstart_hz

◆ chirp_fstop_hz

◆ chirp_length_s

float chirp_length_s = 20

Definition at line 67 of file sys_id_chirp.c.

Referenced by sys_id_chirp_activate_handler(), and sys_id_chirp_init().

◆ chirp_noise_stdv_offaxis

float chirp_noise_stdv_offaxis = 200

Definition at line 64 of file sys_id_chirp.c.

Referenced by send_chirp(), and set_current_chirp_values().

◆ chirp_noise_stdv_onaxis_ratio

float chirp_noise_stdv_onaxis_ratio = 0.1

Definition at line 63 of file sys_id_chirp.c.

Referenced by send_chirp(), and set_current_chirp_values().

◆ current_chirp_values

pprz_t current_chirp_values[CHIRP_NB_AXES]
static

◆ filters

struct FirstOrderLowPass filters[CHIRP_NB_AXES]
static

Definition at line 77 of file sys_id_chirp.c.

Referenced by image_labeling(), set_current_chirp_values(), and sys_id_chirp_init().