An implementation of rejection sampling for generating 2D robot pose from range-only measurements within a landmarks (beacons) map.
Before calling the method "rejectionSampling" to generate the samples, you must call "setParams". It is assumed a planar scenario, where the robot is at a fixed height (default=0).
Definition at line 54 of file CRejectionSamplingRangeOnlyLocalization.h.
#include <mrpt/slam/CRejectionSamplingRangeOnlyLocalization.h>
Classes | |
struct | TDataPerBeacon |
Data for each beacon observation with a correspondence with the map. More... | |
Public Member Functions | |
CRejectionSamplingRangeOnlyLocalization () | |
Constructor. | |
virtual | ~CRejectionSamplingRangeOnlyLocalization () |
Destructor. | |
bool | setParams (const CLandmarksMap &beaconsMap, const CObservationBeaconRanges &observation, float sigmaRanges, const CPose2D &oldPose, float robot_z=0, bool autoCheckAngleRanges=true) |
The parameters used in the generation of random samples: | |
Protected Member Functions | |
void | RS_drawFromProposal (CPose2D &outSample) |
Generates one sample, drawing from some proposal distribution. | |
double | RS_observationLikelihood (const CPose2D &x) |
Returns the NORMALIZED observation likelihood (linear, not exponential!!!) at a given point of the state space (values in the range [0,1]). | |
Protected Attributes | |
float | m_z_robot |
Z coordinate of the robot. | |
float | m_sigmaRanges |
CPose2D | m_oldPose |
size_t | m_drawIndex |
The index in "m_dataPerBeacon" used to draw samples (the rest will be used to evaluate the likelihood) | |
std::deque< TDataPerBeacon > | m_dataPerBeacon |
Data for each beacon observation with a correspondence with the map. |
mrpt::slam::CRejectionSamplingRangeOnlyLocalization::CRejectionSamplingRangeOnlyLocalization | ( | ) |
Constructor.
virtual mrpt::slam::CRejectionSamplingRangeOnlyLocalization::~CRejectionSamplingRangeOnlyLocalization | ( | ) | [inline, virtual] |
Destructor.
Definition at line 64 of file CRejectionSamplingRangeOnlyLocalization.h.
void mrpt::slam::CRejectionSamplingRangeOnlyLocalization::RS_drawFromProposal | ( | CPose2D & | outSample ) | [protected, virtual] |
Generates one sample, drawing from some proposal distribution.
Implements mrpt::bayes::CRejectionSamplingCapable< poses::CPose2D >.
double mrpt::slam::CRejectionSamplingRangeOnlyLocalization::RS_observationLikelihood | ( | const CPose2D & | x ) | [protected, virtual] |
Returns the NORMALIZED observation likelihood (linear, not exponential!!!) at a given point of the state space (values in the range [0,1]).
Implements mrpt::bayes::CRejectionSamplingCapable< poses::CPose2D >.
bool mrpt::slam::CRejectionSamplingRangeOnlyLocalization::setParams | ( | const CLandmarksMap & | beaconsMap, |
const CObservationBeaconRanges & | observation, | ||
float | sigmaRanges, | ||
const CPose2D & | oldPose, | ||
float | robot_z = 0 , |
||
bool | autoCheckAngleRanges = true |
||
) |
The parameters used in the generation of random samples:
beaconsMap | The map containing the N beacons (indexed by their "beacon ID"s). Only the mean 3D position of the beacons is used, the covariance is ignored. |
observation | An observation with, at least ONE range measurement. |
sigmaRanges | The standard deviation of the "range measurement noise". |
robot_z | The height of the robot on the floor (default=0). Note that the beacon sensor on the robot may be at a different height, according to data within the observation object. |
autoCheckAngleRanges | Whether to make a simple check for potential good angles from the beacons to generate samples (disable to speed-up the preparation vs. making slower the drawn). This method fills out the member "m_dataPerBeacon". |
std::deque<TDataPerBeacon> mrpt::slam::CRejectionSamplingRangeOnlyLocalization::m_dataPerBeacon [protected] |
Data for each beacon observation with a correspondence with the map.
Definition at line 118 of file CRejectionSamplingRangeOnlyLocalization.h.
size_t mrpt::slam::CRejectionSamplingRangeOnlyLocalization::m_drawIndex [protected] |
The index in "m_dataPerBeacon" used to draw samples (the rest will be used to evaluate the likelihood)
Definition at line 101 of file CRejectionSamplingRangeOnlyLocalization.h.
Definition at line 97 of file CRejectionSamplingRangeOnlyLocalization.h.
float mrpt::slam::CRejectionSamplingRangeOnlyLocalization::m_sigmaRanges [protected] |
Definition at line 96 of file CRejectionSamplingRangeOnlyLocalization.h.
float mrpt::slam::CRejectionSamplingRangeOnlyLocalization::m_z_robot [protected] |
Z coordinate of the robot.
Definition at line 94 of file CRejectionSamplingRangeOnlyLocalization.h.
Page generated by Doxygen 1.7.2 for MRPT 0.9.4 SVN: at Mon Jan 10 22:30:30 UTC 2011 |