Go to the documentation of this file.
20 max_prediction_std_dev(1.0),
21 min_ray_log_lik(-20.0)
41 for (
size_t i = 0; i < N; i++)
43 const double prediction_total_var =
rangesCovar(i, i) + sensorRangeVar;
45 if (prediction_total_var > max_var)
51 const double otherScanRange =
55 otherScanRange -
rangesMean[i]) / prediction_total_var);
62 pi = std::max(likGauss,
params.prob_lost_ray);
64 else pi = std::max( likGauss,
std::min(1.0,
params.prob_outliers) );
66 double lpi = std::max(
params.min_ray_log_lik, log(pi));
69 if (num_valid) lik_sum /= num_valid;
70 lik_sum = exp(lik_sum);
float maxRange
The maximum range allowed by the device, in meters (e.g.
#define ASSERT_EQUAL_(__A, __B)
Assert comparing two values, reporting their actual values upon failure.
A "CObservation"-derived class that represents a 2D range scan measurement (typically from a laser sc...
Eigen::MatrixXd rangesCovar
The covariance matrix for all the ranges in rangeScan.scan[].
#define ASSERT_(f)
Defines an assertion mechanism.
T square(const T x)
Inline function for the square of a number.
This namespace contains representation of robot actions and observations.
Eigen::VectorXd rangesMean
The same ranges than in rangeScan.scan[], for convenience as an Eigen container, and with double prec...
double evaluateScanLikelihood(const CObservation2DRangeScan &otherScan, const TEvalParams ¶ms) const
Returns a measure of the likelihood of a given scan, compared to this scan variances.
float stdError
The "sigma" error of the device in meters, used while inserting the scan in an occupancy grid.
mrpt::containers::ContainerReadOnlyProxyAccessor< mrpt::aligned_std_vector< float > > scan
The range values of the scan, in meters.
mrpt::containers::ContainerReadOnlyProxyAccessor< mrpt::aligned_std_vector< char > > validRange
It's false (=0) on no reflected rays, referenced to elements in scan.
GLenum const GLfloat * params
Page generated by Doxygen 1.8.17 for MRPT 1.9.9 Git: ad3a9d8ae Tue May 1 23:10:22 2018 -0700 at miƩ 12 jul 2023 10:03:34 CEST | |