38 #include "amcl_sensor.h" 39 #include "../map/map.h" 49 LASER_MODEL_LIKELIHOOD_FIELD
53 class AMCLLaserData :
public AMCLSensorData
56 AMCLLaserData () {ranges=NULL;};
57 virtual ~AMCLLaserData() {
delete [] ranges;};
59 public:
int range_count;
60 public:
double range_max;
61 public: double (*ranges)[2];
66 class AMCLLaser :
public AMCLSensor
69 public: AMCLLaser(
size_t max_beams, map_t* map);
71 public:
void SetModelBeam(
double z_hit,
79 public:
void SetModelLikelihoodField(
double z_hit,
86 public:
virtual bool UpdateSensor(pf_t *pf, AMCLSensorData *data);
89 public:
void SetLaserPose(pf_vector_t& laser_pose)
90 {this->laser_pose = laser_pose;}
93 private:
static double BeamModel(AMCLLaserData *data,
94 pf_sample_set_t*
set);
96 private:
static double LikelihoodFieldModel(AMCLLaserData *data,
97 pf_sample_set_t*
set);
99 private: laser_model_t model_type;
102 private:
double time;
108 private: pf_vector_t laser_pose;
111 private:
int max_beams;
116 private:
double z_hit;
117 private:
double z_short;
118 private:
double z_max;
119 private:
double z_rand;
122 private:
double sigma_hit;
124 private:
double lambda_short;
126 private:
double chi_outlier;