20 max_prediction_std_dev(1.0),
21 min_ray_log_lik(-20.0)
40 for (
size_t i=0;i<N;i++)
42 const double prediction_total_var =
rangesCovar(i,i)+sensorRangeVar;
44 if (prediction_total_var > max_var) {
56 else pi = std::max(likGauss,
params.prob_lost_ray);
62 double lpi = std::max(
params.min_ray_log_lik, log(pi));
65 if (num_valid) lik_sum/=num_valid;
66 lik_sum = exp(lik_sum);
A "CObservation"-derived class that represents a 2D range scan measurement (typically from a laser sc...
float maxRange
The maximum range allowed by the device, in meters (e.g. 80m, 50m,...)
mrpt::utils::ContainerReadOnlyProxyAccessor< std::vector< char > > validRange
It's false (=0) on no reflected rays, referenced to elements in scan.
mrpt::utils::ContainerReadOnlyProxyAccessor< std::vector< float > > scan
The range values of the scan, in meters. Must have same length than validRange.
float stdError
The "sigma" error of the device in meters, used while inserting the scan in an occupancy grid.
Eigen::VectorXd rangesMean
The same ranges than in rangeScan.scan[], for convenience as an Eigen container, and with double prec...
Eigen::MatrixXd rangesCovar
The covariance matrix for all the ranges in rangeScan.scan[].
double evaluateScanLikelihood(const CObservation2DRangeScan &otherScan, const TEvalParams ¶ms) const
Returns a measure of the likelihood of a given scan, compared to this scan variances.
GLenum const GLfloat * params
#define ASSERT_EQUAL_(__A, __B)
T square(const T x)
Inline function for the square of a number.
This namespace contains representation of robot actions and observations.