Paparazzi UAS  v5.15_devel-230-gc96ce27
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
shift_tracking.c File Reference
#include "modules/ctrl/shift_tracking.h"
#include "firmwares/fixedwing/nav.h"
#include "autopilot.h"
#include "subsystems/abi.h"
#include "math/pprz_algebra_float.h"
#include "generated/airframe.h"
#include "filters/pid.h"
+ Include dependency graph for shift_tracking.c:

Go to the source code of this file.

Data Structures

struct  shift_tracking_private
 

Macros

#define SHIFT_TRACKING_ID   ABI_BROADCAST
 
#define SHIFT_TRACKING_DEBUG   FALSE
 
#define SHIFT_TRACKING_DIR   { -1.0f, 0.f, 0.f }
 
#define SHIFT_TRACKING_KP   1.5f
 
#define SHIFT_TRACKING_KI   0.5f
 
#define SHIFT_TRACKING_KD   1.f
 
#define SHIFT_TRACKING_MAXSHIFT   30.f
 

Functions

static void get_pos (uint8_t sender_id, uint32_t id, float x, float y, float z, float noise_x, float noise_y, float noise_z)
 
void shift_tracking_init (void)
 init function More...
 
void shift_tracking_reset (void)
 reset function More...
 
void shift_tracking_run (float *shift)
 run function More...
 
void shift_tracking_update_gains (void)
 

Variables

struct shift_tracking_t shift_tracking
 
static const float nav_dt = 1.f / NAVIGATION_FREQUENCY
 
static struct
shift_tracking_private 
stp
 
static const float dir [] = SHIFT_TRACKING_DIR
 

Data Structure Documentation

struct shift_tracking_private

Definition at line 81 of file shift_tracking.c.

+ Collaboration diagram for shift_tracking_private:
Data Fields
struct FloatVect3 dir tracking direction
struct PID_f pid PID controller.
struct FloatVect3 pos last position report
abi_event pos_ev
float * shift keep track of the shift variable to change

Macro Definition Documentation

#define SHIFT_TRACKING_DEBUG   FALSE

Definition at line 46 of file shift_tracking.c.

#define SHIFT_TRACKING_DIR   { -1.0f, 0.f, 0.f }

Definition at line 56 of file shift_tracking.c.

#define SHIFT_TRACKING_ID   ABI_BROADCAST

Definition at line 41 of file shift_tracking.c.

Referenced by shift_tracking_init().

#define SHIFT_TRACKING_KD   1.f

Definition at line 68 of file shift_tracking.c.

Referenced by shift_tracking_init().

#define SHIFT_TRACKING_KI   0.5f

Definition at line 64 of file shift_tracking.c.

Referenced by shift_tracking_init().

#define SHIFT_TRACKING_KP   1.5f

Definition at line 60 of file shift_tracking.c.

Referenced by shift_tracking_init().

#define SHIFT_TRACKING_MAXSHIFT   30.f

Definition at line 72 of file shift_tracking.c.

Referenced by shift_tracking_run().

Function Documentation

static void get_pos ( uint8_t  sender_id,
uint32_t  id,
float  x,
float  y,
float  z,
float  noise_x,
float  noise_y,
float  noise_z 
)
static

Definition at line 94 of file shift_tracking.c.

References shift_tracking_private::pos, stp, FloatVect3::x, FloatVect3::y, and FloatVect3::z.

Referenced by shift_tracking_init().

+ Here is the caller graph for this function:

void shift_tracking_reset ( void  )

reset function

reset integral and offset command

Definition at line 127 of file shift_tracking.c.

References shift_tracking_private::pid, reset_pid_f(), shift_tracking_t::shift, shift_tracking_private::shift, shift_tracking, and stp.

+ Here is the call graph for this function:

void shift_tracking_run ( float *  shift)

run function

should be called in flight plan pre_call

Parameters
[out]shiftpointer to the navigation shift to control

Definition at line 136 of file shift_tracking.c.

References shift_tracking_private::dir, nav_dt, shift_tracking_private::pid, shift_tracking_private::pos, shift_tracking_t::shift, shift_tracking_private::shift, shift_tracking, SHIFT_TRACKING_MAXSHIFT, stp, update_pid_f(), FloatVect3::x, and FloatVect3::y.

+ Here is the call graph for this function:

void shift_tracking_update_gains ( void  )

Definition at line 163 of file shift_tracking.c.

References shift_tracking_t::kd, shift_tracking_t::ki, shift_tracking_t::kp, shift_tracking_private::pid, set_gains_pid_f(), shift_tracking, and stp.

+ Here is the call graph for this function:

Variable Documentation

const float nav_dt = 1.f / NAVIGATION_FREQUENCY
static

Definition at line 78 of file shift_tracking.c.

Referenced by shift_tracking_run().