9 #ifndef CRangeBearingKFSLAM2D_H
10 #define CRangeBearingKFSLAM2D_H
64 void processActionObservation(
65 CActionCollectionPtr &action,
66 CSensoryFramePtr &SF );
78 std::vector<TPoint2D> &out_landmarksPositions,
79 std::map<unsigned int,CLandmark::TLandmarkID> &out_landmarkIDs,
87 void getCurrentRobotPose(
93 void getAs3DObject( mrpt::opengl::CSetOfObjectsPtr &outObj )
const;
109 void loadFromConfigFile(
111 const std::string §ion);
115 void dumpToTextStream(
CStream &out)
const;
137 void saveMapAndPath2DRepresentationAsMATLABFile(
138 const std::string &fil,
140 const std::string &styleLandmarks = std::string(
"b"),
141 const std::string &stylePath = std::string(
"r"),
142 const std::string &styleRobot = std::string(
"r") )
const;
158 predictions_IDs.clear();
159 newly_inserted_landmarks.clear();
176 return m_last_data_association;
188 void OnGetAction( KFArray_ACT &out_u )
const;
195 void OnTransitionModel(
196 const KFArray_ACT &in_u,
197 KFArray_VEH &inout_x,
198 bool &out_skipPrediction
205 void OnTransitionJacobian( KFMatrix_VxV &out_F )
const;
209 void OnTransitionJacobianNumericGetIncrements(KFArray_VEH &out_increments)
const;
216 void OnTransitionNoise( KFMatrix_VxV &out_Q )
const;
228 void OnGetObservationsAndDataAssociation(
229 vector_KFArray_OBS &out_z,
231 const vector_KFArray_OBS &in_all_predictions,
232 const KFMatrix &in_S,
234 const KFMatrix_OxO &in_R
237 void OnObservationModel(
239 vector_KFArray_OBS &out_predictions
247 void OnObservationJacobians(
248 const size_t &idx_landmark_to_predict,
255 void OnObservationJacobiansNumericGetIncrements(
256 KFArray_VEH &out_veh_increments,
257 KFArray_FEAT &out_feat_increments )
const;
262 void OnSubstractObservationVectors(KFArray_OBS &A,
const KFArray_OBS &B)
const;
267 void OnGetObservationNoise(KFMatrix_OxO &out_R)
const;
276 void OnPreComputingPredictions(
277 const vector_KFArray_OBS &in_all_prediction_means,
292 void OnInverseObservationModel(
293 const KFArray_OBS & in_z,
294 KFArray_FEAT & out_yn,
295 KFMatrix_FxV & out_dyn_dxv,
296 KFMatrix_FxO & out_dyn_dhn )
const;
303 void OnNewLandmarkAddedToMap(
304 const size_t in_obsIdx,
305 const size_t in_idxNewFeat );
310 void OnNormalizeStateVector();
316 void getLandmarkIDsFromIndexInStateVector(std::map<unsigned int,CLandmark::TLandmarkID> &out_id2index)
const
318 out_id2index = m_IDs.getInverseMap();
325 CActionCollectionPtr m_action;
329 CSensoryFramePtr m_SF;
An implementation of EKF-based SLAM with range-bearing sensors, odometry, and a 2D (+heading) robot p...
Virtual base for Kalman Filter (EKF,IEKF,UKF) implementations.
TOptions options
The options for the algorithm.
TDataAssociationMetric data_assoc_metric
std::map< size_t, size_t > newly_inserted_landmarks
Map from the 0-based index within the last observation and the landmark 0-based index in the map (the...
bool create_simplemap
Whether to fill m_SFs (default=false)
The namespace for Bayesian filtering algorithm: different particle filters and Kalman filter algorith...
CVectorFloat stds_Q_no_odo
A 3-length vector with the std. deviation of the transition model in (x,y,phi) used only when there i...
dynamic_vector< float > CVectorFloat
Column vector, like Eigen::MatrixXf, but automatically initialized to zeros since construction...
This class allows loading and storing values and vectors of different types from a configuration text...
This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...
Declares a class that represents a Probability Density function (PDF) of a 2D pose ...
std::vector< size_t > vector_size_t
float quantiles_3D_representation
Default = 3.
TDataAssociationMethod data_assoc_method
TDataAssociationMetric
Different metrics for data association, used in mrpt::slam::data_association For a comparison of both...
Information for data-association:
CMatrixTemplateNumeric< double > CMatrixDouble
Declares a matrix of double numbers (non serializable).
double data_assoc_IC_ml_threshold
Only if data_assoc_IC_metric==ML, the log-ML threshold (Default=0.0)
A bidirectional version of std::map, declared as bimap and which actually contains two std...
mrpt::math::TPoint2D landmark_point_t
Either mrpt::math::TPoint2D or mrpt::math::TPoint3D.
Classes for 2D/3D geometry representation, both of single values and probability density distribution...
const TDataAssocInfo & getLastDataAssociation() const
Returns a read-only reference to the information on the last data-association.
This class stores a sequence of
pairs, thus a "metric map" can be t...
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
double data_assoc_IC_chi2_thres
Threshold in [0,1] for the chi2square test for individual compatibility between predictions and obser...
std::vector< int32_t > vector_int
float std_sensor_yaw
The std. deviation of the sensor (for the matrix R in the kalman filters), in meters and radians...
TDataAssociationMetric data_assoc_IC_metric
Whether to use mahalanobis (->chi2 criterion) vs. Matching likelihood.
TDataAssociationResults results
The options for the algorithm.
dynamic_vector< double > CVectorDouble
Column vector, like Eigen::MatrixXd, but automatically initialized to zeros since construction...
The results from mrpt::slam::data_association.
TDataAssociationMethod
Different algorithms for data association, used in mrpt::slam::data_association.
mrpt::vector_size_t predictions_IDs
CMatrixTemplateNumeric< kftype > Y_pred_means
This is a virtual base class for sets of options than can be loaded from and/or saved to configuratio...