MRPT logo

mrpt::slam Namespace Reference

This namespace contains algorithms for SLAM, localization, map building, representation of robot's actions and observations, and representation of many kinds of metric maps. More...


Classes

class  CAction
 Declares a class for storing a robot action. More...
class  CActionCollection
 Declares a class for storing a collection of robot actions. More...
class  CActionRobotMovement2D
 Represents a probabilistic 2D movement of the robot mobile base. More...
class  CActionRobotMovement3D
 Represents a probabilistic 3D (6D) movement. More...
class  CBeacon
 The class for storing individual "beacon landmarks" under a variety of 3D position PDF distributions. More...
class  CBeaconMap
 A class for storing a map of 3D probabilistic beacons, using a Montecarlo, Gaussian, or Sum of Gaussians (SOG) representation (for range-only SLAM). More...
class  CColouredPointsMap
 A map of 2D/3D points with individual colours (RGB). More...
class  CConsistentObservationAlignment
 An algorithm for globally, consistent alignment of a sequence of observations. More...
class  CDetectorDoorCrossing
struct  TGasConcentrationCell
 The contents of each cell in a CGasConcentrationGridMap2D map. More...
class  CGasConcentrationGridMap2D
 CGasConcentrationGridMap2D represents a PDF of gas concentrations over a 2D area. More...
class  CGridMapAligner
 A class for aligning two multi-metric maps (with an occupancy grid maps and a points map, at least) based on features extraction and matching. More...
struct  THeightGridmapCell
 The contents of each cell in a CHeightGridMap2D map. More...
class  CHeightGridMap2D
 A mesh representation of a surface which keeps the estimated height for each (x,y) location. More...
class  CICP
 Several implementations of ICP (Iterative closest point) algorithms for aligning two point maps. More...
class  CIncrementalMapPartitioner
 This class can be used to make partitions on a map/graph build from observations taken at some poses/nodes. More...
class  CLandmark
 The class for storing "landmarks" (visual or laser-scan-extracted features,. More...
class  CLandmarksMap
 A class for storing a map of 3D probabilistic landmarks. More...
class  CMetricMap
 Declares a virtual base class for all metric maps storage classes. More...
class  CMetricMapBuilder
 This virtual class is the base for SLAM implementations. More...
class  CMetricMapBuilderICP
 A class for very simple 2D SLAM based on ICP. More...
class  CMetricMapBuilderRBPF
 This class implements a Rao-Blackwelized Particle Filter (RBPF) approach to map building (SLAM). More...
class  CMetricMapsAlignmentAlgorithm
 A base class for any algorithm able of maps alignment. More...
class  CMultiMetricMap
 This class stores any customizable set of metric maps. More...
struct  TMetricMapInitializer
 Each structure of this kind will determine the kind (and initial configuration) of one map to be build into a CMultiMetricMap object. More...
class  TSetOfMetricMapInitializers
 A set of TMetricMapInitializer structures, passed to the constructor CMultiMetricMap::CMultiMetricMap See the comments for TSetOfMetricMapInitializers::loadFromConfigFile, and "CMultiMetricMap::setListOfMaps" for effectively creating the list of desired maps. More...
class  CRBPFParticleData
 Auxiliary class used in mrpt::slam::CMultiMetricMapPDF. More...
class  CMultiMetricMapPDF
 Declares a class that represents a Rao-Blackwellized set of particles for solving the SLAM problem (This class is the base of RBPF-SLAM applications). More...
class  CObservation
 Declares a class that represents any robot's observation. More...
class  CObservation2DRangeScan
 Declares a class derived from "CObservation" that encapsules a 2D range scan measurement (typically from a laser scanner). More...
class  CObservation3DRangeScan
 Declares a class derived from "CObservation" that encapsules a 3D range scan measurement (e.g. More...
class  CObservationBatteryState
 This represents a measurement of the batteries on the robot. More...
class  CObservationBeaconRanges
 Declares a class derived from "CObservation" that represents one (or more) range measurements to labeled beacons. More...
class  CObservationBearingRange
 This observation represents a number of range-bearing value pairs, each one for a detected landmark, which optionally can have identification IDs. More...
class  CObservationComment
 This "observation" is actually a placeholder for a text block with comments or additional parameters attached to a given rawlog file. More...
class  CObservationGasSensors
 Declares a class derived from "CObservation" that represents a set of readings from gas sensors. More...
class  CObservationGPS
 Declares a class derived from "CObservation" that represents a Global Positioning System (GPS) reading. More...
class  CObservationImage
 Declares a class derived from "CObservation" that encapsules an image from a camera, whose relative pose to robot is also stored. More...
class  CObservationIMU
 This class stores both sequences of raw measurements from an IMU, and/or its attitude estimation (integration of raw measurements). More...
class  CObservationOdometry
 An observation of the current (cumulative) odometry for a wheeled robot. More...
class  CObservationRange
 Declares a class derived from "CObservation" that encapsules a single range measurement, and associated parameters. More...
class  CObservationStereoImages
 Declares a class derived from "CObservation" that encapsule a pair of images taken by a stereo camera. More...
class  CObservationVisualLandmarks
 Declares a class derived from "CObservation" that stores a Landmarks Map as seen from a stereo camera at a given instant of time. More...
class  COccupancyGridMap2D
 COccupancyGridMap2D is a class for storing an occupancy grid map. More...
class  CPathPlanningCircularRobot
 An implementation of CPathPlanningMethod. More...
class  CPathPlanningMethod
 A virtual base class for computing the optimal path for a robot from a origin location to a target point. More...
class  CPointsMap
 A cloud of points in 2D or 3D, which can be built from a sequence of laser scans or other sensors. More...
class  CRangeBearingKFSLAM
 An implementation of EKF-based SLAM with range-bearing sensors, odometry, a full 6D robot pose, and 3D landmarks. More...
class  CRangeBearingKFSLAM2D
 An implementation of EKF-based SLAM with range-bearing sensors, odometry, and a 2D (+heading) robot pose, and 2D landmarks. More...
class  CRawlog
 This class stores a rawlog (robotic datasets) in one of two possible formats:
  • Format #1: A sequence of actions and observations.
More...
class  CRawlogXXL
 This class is identical to slam::CRawlog but it transparently manages the dump of objects to a temporary file in disk, so it can handle very large rawlogs that otherwise don't fit in memory (EXPERIMENTAL, DO NOT USE!!!!). More...
class  CRejectionSamplingRangeOnlyLocalization
 An implementation of rejection sampling for generating 2D robot pose from range-only measurements within a landmarks (beacons) map. More...
class  CRobotSimulator
 This class can be used to simulate the kinematics and dynamics of a differential driven planar mobile robot, including odometry errors and dynamics limitations. More...
class  CSensFrameProbSequence
 This class stores a sequence of <Probabilistic Pose,SensoryFrame> pairs, thus a "metric map" can be totally determined with this information. More...
class  CSensoryFrame
 Declares a class for storing a "sensory frame", thus a set of "observations" of the robot, taken exactly from the same location.The "observations" can be of many different kinds. More...
class  CSimplePointsMap
 A cloud of points in 2D or 3D, which can be built from a sequence of laser scans. More...
struct  TDataAssociationResults
 The results from mrpt::slam::data_association. More...
class  TKLDParams
 Option set for KLD algorithm. More...

Typedefs

typedef std::vector< CLandmarkTSequenceLandmarks
 Internal use.
typedef std::deque< CMetricMap * > TMetricMapList
 A list of metric maps (used in the mrpt::poses::CPosePDFParticles class):.
typedef std::pair
< mrpt::system::TTimeStamp,
CObservationPtr > 
TTimeObservationPair
 For usage with CRawlog classes.
typedef std::multimap
< mrpt::system::TTimeStamp,
CObservationPtr > 
TListTimeAndObservations
 For usage with CRawlog classes.

Enumerations

enum  TICPAlgorithm { icpClassic = 0, icpLevenbergMarquardt, icpIKF }
 The ICP algorithm selection, used in mrpt::slam::CICP::options. More...
enum  TIMUDataIndex {
  IMU_X_ACC = 0, IMU_Y_ACC, IMU_Z_ACC, IMU_YAW_VEL,
  IMU_PITCH_VEL, IMU_ROLL_VEL, IMU_X_VEL, IMU_Y_VEL,
  IMU_Z_VEL, IMU_YAW, IMU_PITCH, IMU_ROLL,
  IMU_X, IMU_Y, IMU_Z
}
 Symbolic names for the indices of IMU data (refer to mrpt::slam::CObservationIMU). More...
enum  TDataAssociationMethod { assocNN = 0, assocJCBB }
 Different algorithms for data association, used in. More...

Functions

bool operator< (const mrpt::slam::CMetricMap::TMatchingPair &a, const mrpt::slam::CMetricMap::TMatchingPair &b)
 A comparison operator, for sorting lists of TMatchingPair's, first order by this_idx, if equals, by other_idx.
bool operator== (const mrpt::slam::CMetricMap::TMatchingPair &a, const mrpt::slam::CMetricMap::TMatchingPair &b)
 A comparison operator.
bool operator== (const mrpt::slam::CMetricMap::TMatchingPairList &a, const mrpt::slam::CMetricMap::TMatchingPairList &b)
 A comparison operator.
bool operator< (const COccupancyGridMap2D::TPairLikelihoodIndex &e1, const COccupancyGridMap2D::TPairLikelihoodIndex &e2)
void MRPTDLLIMPEXP data_association (const std::map< size_t, mrpt::poses::CPointPDFGaussian > &predictions, const std::map< size_t, mrpt::poses::CPointPDFGaussian > &observation, TDataAssociationResults &results, const TDataAssociationMethod method=assocJCBB, const double chi2quantile=0.99)
 Computes the data-association between the prediction of a set of landmarks and their observations, all with uncertainty.
template<class CPOSE >
double MRPTDLLIMPEXP optimizePoseGraph_levmarq (const mrpt::poses::CNetworkOfPoses< CPOSE > &pose_graph, std::map< size_t, CPOSE > &optimal_poses, const size_t max_iterations=100, const size_t origin_pose=static_cast< size_t >(-1))
 An algorithm for optimizing a network of 2D or 3D pose links based on Levenberg-Marquardt error minimization.
template<class CPOSE >
double MRPTDLLIMPEXP optimizePoseGraph_stogradesc (const mrpt::poses::CNetworkOfPoses< CPOSE > &pose_graph, std::map< size_t, CPOSE > &optimal_poses, const size_t max_iterations=100, const size_t origin_pose=static_cast< size_t >(-1))
 An algorithm for optimizing a network of 2D or 3D pose links based on stochastic gradient descent.


Detailed Description

This namespace contains algorithms for SLAM, localization, map building, representation of robot's actions and observations, and representation of many kinds of metric maps.


Typedef Documentation

typedef std::multimap<mrpt::system::TTimeStamp, CObservationPtr> mrpt::slam::TListTimeAndObservations

For usage with CRawlog classes.

Definition at line 47 of file CRawlog.h.

typedef std::deque<CMetricMap*> mrpt::slam::TMetricMapList

A list of metric maps (used in the mrpt::poses::CPosePDFParticles class):.

Definition at line 386 of file CMetricMap.h.

Internal use.

Definition at line 51 of file CLandmarksMap.h.

typedef std::pair<mrpt::system::TTimeStamp, CObservationPtr> mrpt::slam::TTimeObservationPair

For usage with CRawlog classes.

Definition at line 46 of file CRawlog.h.


Enumeration Type Documentation

Different algorithms for data association, used in.

Enumerator:
assocNN  Nearest-neighbor.
assocJCBB  JCBB: Joint Compatibility Branch & Bound [Neira, Tardos 2001].

Definition at line 40 of file data_association.h.

The ICP algorithm selection, used in mrpt::slam::CICP::options.

For details on the algorithms refer to http://babel.isa.uma.es/mrpt/index.php/Scan_Matching_Algorithms

Enumerator:
icpClassic 
icpLevenbergMarquardt 
icpIKF 

Definition at line 48 of file CICP.h.

Symbolic names for the indices of IMU data (refer to mrpt::slam::CObservationIMU).

Enumerator:
IMU_X_ACC 
IMU_Y_ACC 
IMU_Z_ACC 
IMU_YAW_VEL 
IMU_PITCH_VEL 
IMU_ROLL_VEL 
IMU_X_VEL 
IMU_Y_VEL 
IMU_Z_VEL 
IMU_YAW 
IMU_PITCH 
IMU_ROLL 
IMU_X 
IMU_Y 
IMU_Z 

Definition at line 46 of file CObservationIMU.h.


Function Documentation

void MRPTDLLIMPEXP mrpt::slam::data_association ( const std::map< size_t, mrpt::poses::CPointPDFGaussian > &  predictions,
const std::map< size_t, mrpt::poses::CPointPDFGaussian > &  observation,
TDataAssociationResults &  results,
const TDataAssociationMethod  method = assocJCBB,
const double  chi2quantile = 0.99 
)

Computes the data-association between the prediction of a set of landmarks and their observations, all with uncertainty.

Implemented methods include (see TDataAssociation)

  • NN: Nearest-neighbor
  • JCBB: Joint Compatibility Branch & Bound [Neira, Tardos 2001]

Parameters:
predictions [IN] The list of predicted locations of landmarks/features, indexed by their ID. The 2D/3D locations are in the same coordinate framework than "observations".
observations [IN] The list of observed locations of landmarks/features, indexed by their ID. The 2D/3D locations are in the same coordinate framework than "predictions".
results [OUT] The output data association hypothesis, and other useful information.
method [IN] The selected method to make the associations.
chi2quantile [IN] The threshold for considering a match between two close Gaussians for two landmarks, in the range [0,1]. It is used to call mrpt::math::chi2inv

bool mrpt::slam::operator< ( const COccupancyGridMap2D::TPairLikelihoodIndex &  e1,
const COccupancyGridMap2D::TPairLikelihoodIndex &  e2 
)

bool mrpt::slam::operator< ( const mrpt::slam::CMetricMap::TMatchingPair a,
const mrpt::slam::CMetricMap::TMatchingPair b 
)

A comparison operator, for sorting lists of TMatchingPair's, first order by this_idx, if equals, by other_idx.

bool mrpt::slam::operator== ( const mrpt::slam::CMetricMap::TMatchingPairList a,
const mrpt::slam::CMetricMap::TMatchingPairList b 
)

A comparison operator.

bool mrpt::slam::operator== ( const mrpt::slam::CMetricMap::TMatchingPair a,
const mrpt::slam::CMetricMap::TMatchingPair b 
)

A comparison operator.

template<class CPOSE >
double MRPTDLLIMPEXP mrpt::slam::optimizePoseGraph_levmarq ( const mrpt::poses::CNetworkOfPoses< CPOSE > &  pose_graph,
std::map< size_t, CPOSE > &  optimal_poses,
const size_t  max_iterations = 100,
const size_t  origin_pose = static_cast< size_t >(-1) 
) [inline]

An algorithm for optimizing a network of 2D or 3D pose links based on Levenberg-Marquardt error minimization.

It is computed the list of optimal, consistent global coordinates for each node in the graph. Relative poses are represented by Gaussians with a mean and a covariance, which is also taken into account in the optimization.

The algorithm can be seen as an extension to the work of Lu & Milios

  • Globally Consistent Range Scan Alignment for Environment Mapping, 1997.

Parameters:
pose_graph [IN] The graph of pose constraints. It can be of either type CNetworkOfPoses2D or CNetworkOfPoses3D.
optimal_poses [OUT] The consistent, global coordinates of all the pose nodes in the graph.
origin_pose [IN] Due to the degrees of freedom, one arbitrary pose is set to the origin (0,0,0). This parameter defines the pose ID of the pose to be taken as the origin, and the default value (ID:-1) will select the reference pose in the first link in pose_graph.
max_iterations [IN] The maximum number of iterations. If it is set to 0, the global poses computed as initial values from Dijkstra will be returned.
Note:
Output covariances should be not considered, they are not computed yet.
Returns:
The average square root error in the optimized pose network.
See also:
optimizePoseGraph_stogradesc

template<class CPOSE >
double MRPTDLLIMPEXP mrpt::slam::optimizePoseGraph_stogradesc ( const mrpt::poses::CNetworkOfPoses< CPOSE > &  pose_graph,
std::map< size_t, CPOSE > &  optimal_poses,
const size_t  max_iterations = 100,
const size_t  origin_pose = static_cast< size_t >(-1) 
) [inline]

An algorithm for optimizing a network of 2D or 3D pose links based on stochastic gradient descent.

It is computed the list of optimal, consistent global coordinates for each node in the graph. Relative poses are represented by Gaussians with a mean and a covariance, which is also taken into account in the optimization.

This class is a C++ implementation of the work proposed in the paper:

  • Edwin Olson, John Leonard, Seth Teller, "Fast Iterative Optimization of Pose Graphs with Poor Initial Estimates", ICRA 2006.

Parameters:
pose_graph [IN] The graph of pose constraints. It can be of either type CNetworkOfPoses2D or CNetworkOfPoses3D.
optimal_poses [OUT] The consistent, global coordinates of all the pose nodes in the graph.
origin_pose [IN] Due to the degrees of freedom, one arbitrary pose is set to the origin (0,0,0). This parameter defines the pose ID of the pose to be taken as the origin, and the default value (ID:-1) will select the reference pose in the first link in pose_graph.
max_iterations [IN] The maximum number of iterations. If it is set to 0, the global poses computed as initial values from Dijkstra will be returned.
Returns:
The average square root error in the optimized pose network.
See also:
optimizePoseGraph_levmarq




Page generated by Doxygen 1.5.9 for MRPT 0.7.1 SVN: at Mon Aug 17 22:20:53 EDT 2009