38 #include "../map/map.h"
39 #include "amcl_sensor.h"
45 typedef enum { LASER_MODEL_BEAM, LASER_MODEL_LIKELIHOOD_FIELD } laser_model_t;
48 class AMCLLaserData :
public AMCLSensorData
55 virtual ~AMCLLaserData()
71 class AMCLLaser :
public AMCLSensor
75 AMCLLaser(
size_t max_beams, map_t *map);
78 void SetModelBeam(
double z_hit,
87 void SetModelLikelihoodField(
double z_hit,
double z_rand,
double sigma_hit,
double max_occ_dist);
92 virtual bool UpdateSensor(pf_t *pf, AMCLSensorData *data);
97 SetLaserPose(pf_vector_t &laser_pose)
99 this->laser_pose = laser_pose;
104 static double BeamModel(AMCLLaserData *data, pf_sample_set_t *set);
107 static double LikelihoodFieldModel(AMCLLaserData *data, pf_sample_set_t *set);
110 laser_model_t model_type;
122 pf_vector_t laser_pose;