Robot Agent  1.0
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
pf.h
Go to the documentation of this file.
1 
12 #ifndef __PF_H
13 #define __PF_H
14 
15 /* -- Includes -- */
16 // Project libraries
17 #include "robot.h"
18 
19 /* -- Types -- */
20 
24 typedef struct s_PF_STRUCT
25 {
26  robot_t *particles; // Array of particles (robots)
27 
28  int num; // Number of particles
29 
30 } pf_t;
31 
32 /* -- Constants -- */
33 
34 /* -- Function Prototypes -- */
35 
36 pf_t *pf_init( int num,
37  enviroment_t *envs,
38  int move_noise,
39  float turn_noise,
40  int sense_tag_noise,
41  int sense_wall_noise,
42  int radius); // Initialize particle filter
43 void pf_destroy(pf_t *pfs); // Deinitialize particle filter
44 void pf_drive(pf_t *pfs, int distance, int angle, int uncertain); // Move particles (drive particles) - Motion update
45 void pf_weight_tag(pf_t *pfs, enviroment_t *envs, int tag_num); // Evaluate particles depending on RFID tag
46 void pf_weight_wall(pf_t *pfs, enviroment_t *envs); // Evaluate particles depending on how close to wall particle is
47 void pf_resample(pf_t *pfs); // Resample particles
48 void pf_estimate(pf_t *pfs, robot_t *robot); // Estimate robot pose according to particles
49 void pf_random(pf_t *pfs, enviroment_t *envs, int tag_num); // Generate random particles near read RFID tag
50 int pf_accuracy(pf_t *pfs, enviroment_t *envs); // Evaluate particle filter accuracy
51 
52 
53  #endif /* __PF_H */
void pf_random(pf_t *pfs, enviroment_t *envs, int tag_num)
Definition: pf.c:261
int num
Definition: pf.h:28
robot_t * particles
Definition: pf.h:26
Particle filter structure.
Definition: pf.h:24
void pf_drive(pf_t *pfs, int distance, int angle, int uncertain)
Definition: pf.c:99
void pf_destroy(pf_t *pfs)
Definition: pf.c:84
void pf_estimate(pf_t *pfs, robot_t *robot)
Definition: pf.c:215
void pf_weight_tag(pf_t *pfs, enviroment_t *envs, int tag_num)
Definition: pf.c:117
Robot structure.
Definition: robot.h:25
int pf_accuracy(pf_t *pfs, enviroment_t *envs)
Definition: pf.c:294
void pf_weight_wall(pf_t *pfs, enviroment_t *envs)
Definition: pf.c:136
pf_t * pf_init(int num, enviroment_t *envs, int move_noise, float turn_noise, int sense_tag_noise, int sense_wall_noise, int radius)
Definition: pf.c:38
void pf_resample(pf_t *pfs)
Definition: pf.c:152
struct s_PF_STRUCT pf_t
Particle filter structure.
Enviroment Structure - room points, tags, room point number, tag number.
Definition: enviroment.h:49