Robot Agent  1.0
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Functions
pf.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include "pf.h"
#include "robot.h"
#include "enviroment.h"
#include "debug.h"

Go to the source code of this file.

Functions

pf_tpf_init (int num, enviroment_t *envs, int move_noise, float turn_noise, int sense_tag_noise, int sense_wall_noise, int radius)
 
void pf_destroy (pf_t *pfs)
 
void pf_drive (pf_t *pfs, int distance, int angle, int uncertain)
 
void pf_weight_tag (pf_t *pfs, enviroment_t *envs, int tag_num)
 
void pf_weight_wall (pf_t *pfs, enviroment_t *envs)
 
void pf_resample (pf_t *pfs)
 
void pf_estimate (pf_t *pfs, robot_t *robot)
 
void pf_random (pf_t *pfs, enviroment_t *envs, int tag_num)
 
int pf_accuracy (pf_t *pfs, enviroment_t *envs)
 

Detailed Description

Author
Eriks Zaharans
Date
1 Jul 2013

DESCRIPTION

Particle filter library.

Definition in file pf.c.

Function Documentation

int pf_accuracy ( pf_t pfs,
enviroment_t envs 
)

Evaluate particle filter accuracy

Parameters
pfsPointer to particle filter structure
envsPointer to enviroment structure
Returns
Accuracy in percent

Definition at line 294 of file pf.c.

void pf_destroy ( pf_t pfs)

Deinitialize particle filter

Parameters
pfsPointer to particle filter structure
Returns
Void

Definition at line 84 of file pf.c.

void pf_drive ( pf_t pfs,
int  distance,
int  angle,
int  uncertain 
)

Move particles (drive particles) - Motion update

Parameters
pfsPointer to particle filter structure
distanceDistance traveled (mm)
angleAngle change (Degrees)
Returns
Void

Definition at line 99 of file pf.c.

void pf_estimate ( pf_t pfs,
robot_t robot 
)

Estimate robot pose according to particles

Parameters
pfsPointer to particle filter structure
robotPointer to robot structure
Returns
Void

Definition at line 215 of file pf.c.

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 
)

Initialize particle filter

Parameters
numNumber of particles
envsPointer to enviroment structure
move_noiseError created during forward or backward motion (mm)
turn_noiseError created during turning (Radians)
sense_tag_noiseError of tag read (mm)
sense_wall_noiseError of wall read (mm)
radiusParticle radius - should be same as robot (mm)
Returns
Pointer to particle filter structure

Definition at line 38 of file pf.c.

void pf_random ( pf_t pfs,
enviroment_t envs,
int  tag_num 
)

Generate random particles near read RFID tag

Parameters
pfsPointer to particle filter structure
envsPointer to enviroment structure
tag_numRFID tag number
Returns
Void

Definition at line 261 of file pf.c.

void pf_resample ( pf_t pfs)

Resample particles

Parameters
pfsPointer to particle filter structure
Returns
Void

Definition at line 152 of file pf.c.

void pf_weight_tag ( pf_t pfs,
enviroment_t envs,
int  tag_num 
)

Evaluate particles depending on RFID tag

Parameters
pfsPointer to particle filter structure
envsPointer to enviroment structure
tag_numRFID tag number
Returns
Void

Definition at line 117 of file pf.c.

void pf_weight_wall ( pf_t pfs,
enviroment_t envs 
)

Evaluate particles depending on how close to wall particle is

Parameters
pfsPointer to particle filter structure
envsPointer to enviroment structure
tag_numRFID tag number
Returns
Void

Definition at line 136 of file pf.c.