Paparazzi UAS
v5.14.0_stable-0-g3f680d1
Paparazzi is a free software Unmanned Aircraft System.
|
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"
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_t * | opticflow_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... | |
Optical-flow estimation module.
Definition in file opticflow_module.c.
#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().
The main optical flow calculation thread.
The main optical flow calculation thread This thread passes the images trough the optical flow calculator.
[in] | *img | The image_t structure of the captured image |
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().
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().
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.
|
static |
Send optical flow telemetry information.
[in] | *trans | The transport structure to send the information over |
[in] | *dev | The link to send the data over |
Definition at line 70 of file opticflow_module.c.
Referenced by opticflow_module_init().
struct opticflow_t opticflow |
Opticflow calculations.
Definition at line 54 of file opticflow_module.c.
|
static |
When we have an optical flow calculation.
Definition at line 57 of file opticflow_module.c.
|
static |
Mutex lock fo thread safety.
Definition at line 58 of file opticflow_module.c.
|
static |
The opticflow result.
Definition at line 55 of file opticflow_module.c.