SAF
Loading...
Searching...
No Matches
saf_tracker.h
Go to the documentation of this file.
1/*
2 * This file is part of the saf_tracker module.
3 * Copyright (c) 2020 - Leo McCormack
4 *
5 * The saf_tracker module is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or (at your
8 * option) any later version.
9 *
10 * The saf_tracker module is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
12 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 * See <http://www.gnu.org/licenses/> for a copy of the GNU General Public
16 * License.
17 */
18
45#ifndef __SAF_TRACKER_H_INCLUDED__
46#define __SAF_TRACKER_H_INCLUDED__
47
48#ifdef __cplusplus
49extern "C" {
50#endif /* __cplusplus */
51
52#ifdef SAF_ENABLE_TRACKER_MODULE
53
54/* ========================================================================== */
55/* Public Structs */
56/* ========================================================================== */
57
59typedef struct _tracker3d_config{
60 int Np;
79 float init_birth;
82 float beta_death;
84 float dt;
97 float M0[6];
102 float P0[6][6];
106 float cd;
109
110
111/* ========================================================================== */
112/* Main Functions */
113/* ========================================================================== */
114
123void tracker3d_create(void** const phT3d,
124 tracker3d_config tpars);
125
131void tracker3d_destroy(void** const phT3d);
132
138void tracker3d_reset(void* const hT3d);
139
161void tracker3d_step(void* const hT3d,
162 float* newObs_xyz,
163 int nObs,
164 float** target_pos_xyz,
165 float** target_var_xyz,
166 int** target_IDs,
167 int* nTargets);
168
169#endif /* SAF_ENABLE_TRACKER_MODULE */
170
171
172#ifdef __cplusplus
173} /* extern "C" */
174#endif /* __cplusplus */
175
176#endif /* __SAF_TRACKER_H_INCLUDED__ */
177
178 /* doxygen addtogroup Tracker */
void tracker3d_reset(void *const hT3d)
Resets an instance of the mighty tracker3d.
void tracker3d_destroy(void **const phT3d)
Destroys an instance of the mighty tracker3d.
void tracker3d_step(void *const hT3d, float *newObs_xyz, int nObs, float **target_pos_xyz, float **target_var_xyz, int **target_IDs, int *nTargets)
Tracker time step to update & predict current target locations and to parse new measurements/observat...
void tracker3d_create(void **const phT3d, tracker3d_config tpars)
Creates an instance of the mighty tracker3d.
Definition saf_tracker.c:50
User parameters for tracker3d.
Definition saf_tracker.h:59
float dt
Elapsed time (in seconds) between observations/measurements.
Definition saf_tracker.h:84
float cd
PRIOR probability of noise.
float init_birth
PRIOR probability of birth [0 1].
Definition saf_tracker.h:79
float measNoiseSD
Measurement noise standard deviation.
Definition saf_tracker.h:71
int ALLOW_MULTI_DEATH
FLAG whether to allow for multiple target deaths in the same tracker prediction step.
Definition saf_tracker.h:76
int FORCE_KILL_TARGETS
FLAG force kill targets that are too close to one another.
Definition saf_tracker.h:90
int maxNactiveTargets
Maximum number of simultaneous targets permitted.
Definition saf_tracker.h:67
float forceKillDistance
Euclidian distance at which to kill targets that come too close to other (older) targets (<=).
Definition saf_tracker.h:94
int ARE_UNIT_VECTORS
1: if the Cartesian coordinates are given as unit vectors, 0: if not
Definition saf_tracker.h:65
float beta_death
Coefficient influencing the likelihood that a target will die; always >= 1.
Definition saf_tracker.h:82
float alpha_death
Coefficient influencing the likelihood that a target will die; always >= 1.
Definition saf_tracker.h:80
int Np
Number of Monte Carlo samples/particles.
Definition saf_tracker.h:60
float noiseLikelihood
Likelihood of an estimate being noise/clutter between [0..1].
Definition saf_tracker.h:69
float W_avg_coeff
Real-time tracking is based on the particle with highest weight.
Definition saf_tracker.h:86
float noiseSpecDen
Noise spectral density; influences the smoothness of the traget tracks.
Definition saf_tracker.h:74