32 : m_mapModel(mapModel),
35 m_weightRoll(1.0), m_weightPitch(1.0), m_weightZ(1.0),
36 m_sigmaZ(0.02), m_sigmaRoll(0.05), m_sigmaPitch(0.05),
37 m_use_squared_error(false)
51 ROS_ERROR(
"Sigma (std.dev) needs to be > 0 in ObservationModel");
61 ROS_DEBUG(
"Pose measurement z=%f R=%f P=%f", poseHeight, poseRoll, posePitch);
63 #pragma omp parallel for 64 for (
unsigned i=0; i < particles.size(); ++i){
66 double roll, pitch, yaw;
67 particles[i].pose.getBasis().getRPY(roll, pitch, yaw);
virtual void setMap(boost::shared_ptr< octomap::OcTree > map)
boost::shared_ptr< octomap::OcTree > m_map
boost::uniform_real UniformDistributionT
boost::mt19937 EngineT
Boost RNG engine:
virtual ~ObservationModel()
TFSIMD_FORCE_INLINE const tfScalar & getZ() const
static double logLikelihood(double x, double sigma)
Helper function to compute the log likelihood.
boost::shared_ptr< MapModel > m_mapModel
boost::normal_distribution NormalDistributionT
Boost RNG distribution:
bool param(const std::string ¶m_name, T ¶m_val, const T &default_val) const
virtual void integratePoseMeasurement(Particles &particles, double roll, double pitch, const tf::StampedTransform &footprintToTorso)
virtual bool getHeightError(const Particle &p, const tf::StampedTransform &footprintToBase, double &heightError) const =0
std::vector< Particle > Particles