lasermodel.h

00001 #ifndef LASERMODEL_H_
00002 #define LASERMODEL_H_
00003 // Info for a single range measurement
00004 typedef struct
00005 {
00006         double range, bearing;
00007 }       laser_range_t;
00008 
00009 class LaserModel
00010 {
00011         private:
00012                 mapgrid * * map;        // Pointer to the OG map
00013                 double range_cov;       // Covariance in the range reading
00014                 double range_bad;       // Probability of spurious range readings
00015                 // Pre-computed laser sensor model
00016                 int lut_size;
00017                 double  lut_res;
00018                 double *lut_probs;
00019                 int range_count;
00020                 laser_range_t *ranges;
00021         public :
00022                 void    ClearRanges();
00023                 void    AddRange(double,double);
00024                 void    PreCompute();
00025                 double  RangeProb(double,double);
00026                 double  PoseProb();
00027                                 LaserModel();
00028                                 ~LaserModel();
00029                                 LaserModel(mapgrid * * );
00030 };
00031 #endif /*LASERMODEL_H_*/

Last updated 12 September 2005 21:38:45