Paparazzi UAS  v5.14.0_stable-0-g3f680d1
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
opticflow_module.c File Reference

Optical-flow estimation module. More...

#include "opticflow_module.h"
#include <stdio.h>
#include <pthread.h>
#include "state.h"
#include "subsystems/abi.h"
#include "lib/v4l/v4l2.h"
#include "lib/encoding/jpeg.h"
#include "lib/encoding/rtp.h"
#include "errno.h"
#include "cv.h"
#include "subsystems/datalink/telemetry.h"
+ Include dependency graph for opticflow_module.c:

Go to the source code of this file.

Macros

#define OPTICFLOW_AGL_ID   ABI_BROADCAST
 Default sonar/agl to use in opticflow visual_estimator. More...
 
#define OPTICFLOW_FPS   0
 Default FPS (zero means run at camera fps) More...
 

Functions

struct image_topticflow_module_calc (struct image_t *img)
 The main optical flow calculation thread. More...
 
static void opticflow_telem_send (struct transport_tx *trans, struct link_device *dev)
 Send optical flow telemetry information. More...
 
void opticflow_module_init (void)
 Initialize the optical flow module for the bottom camera. More...
 
void opticflow_module_run (void)
 Update the optical flow state for the calculation thread and update the stabilization loops with the newest result. More...
 

Variables

struct opticflow_t opticflow
 Opticflow calculations. More...
 
static struct opticflow_result_t opticflow_result
 The opticflow result. More...
 
static bool opticflow_got_result
 When we have an optical flow calculation. More...
 
static pthread_mutex_t opticflow_mutex
 Mutex lock fo thread safety. More...
 

Detailed Description

Optical-flow estimation module.

Definition in file opticflow_module.c.

Macro Definition Documentation

#define OPTICFLOW_AGL_ID   ABI_BROADCAST

Default sonar/agl to use in opticflow visual_estimator.

Definition at line 44 of file opticflow_module.c.

#define OPTICFLOW_FPS   0

Default FPS (zero means run at camera fps)

Definition at line 49 of file opticflow_module.c.

Referenced by opticflow_module_init().

Function Documentation

struct image_t * opticflow_module_calc ( struct image_t img)

The main optical flow calculation thread.

The main optical flow calculation thread This thread passes the images trough the optical flow calculator.

Parameters
[in]*imgThe image_t structure of the captured image
Returns
*img The processed image structure

Definition at line 144 of file opticflow_module.c.

References pose_t::eulers, image_t::eulers, get_rotation_at_timestamp(), opticflow_calc_frame(), and image_t::pprz_ts.

Referenced by opticflow_module_init().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void opticflow_module_init ( void  )

Initialize the optical flow module for the bottom camera.

Definition at line 90 of file opticflow_module.c.

References cv_add_to_device(), DefaultPeriodic, opticflow_calc_init(), OPTICFLOW_FPS, opticflow_module_calc(), opticflow_telem_send(), and register_periodic_telemetry().

+ Here is the call graph for this function:

void opticflow_module_run ( void  )

Update the optical flow state for the calculation thread and update the stabilization loops with the newest result.

Definition at line 108 of file opticflow_module.c.

References FLOW_OPTICFLOW_ID, get_sys_time_usec(), and VEL_OPTICFLOW_ID.

+ Here is the call graph for this function:

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

Send optical flow telemetry information.

Parameters
[in]*transThe transport structure to send the information over
[in]*devThe link to send the data over

Definition at line 70 of file opticflow_module.c.

Referenced by opticflow_module_init().

+ Here is the caller graph for this function:

Variable Documentation

struct opticflow_t opticflow

Opticflow calculations.

Definition at line 54 of file opticflow_module.c.

bool opticflow_got_result
static

When we have an optical flow calculation.

Definition at line 57 of file opticflow_module.c.

pthread_mutex_t opticflow_mutex
static

Mutex lock fo thread safety.

Definition at line 58 of file opticflow_module.c.

struct opticflow_result_t opticflow_result
static

The opticflow result.

Definition at line 55 of file opticflow_module.c.