14 #define MRPT_SCANMATCHING_SUPRESS_BACKCOMPAT_WARNING    26         const std::vector<double>      &
input,
    28         bool                      forceScaleToUnity)
    31         const size_t nMatches = 
input.size()/6;
    33         vector<TPoint3D> inThis(nMatches), inOther(nMatches);
    34         for(
size_t i = 0; i < nMatches; i++ )
    36                 inThis[i].x = 
input[i*6+0];
    37                 inThis[i].y = 
input[i*6+1];
    38                 inThis[i].z = 
input[i*6+2];
    40                 inOther[i].x = 
input[i*6+3];
    41                 inOther[i].y = 
input[i*6+4];
    42                 inOther[i].z = 
input[i*6+5];
    55         const std::vector<double>  &inPoints,
    56         std::vector<double>        &outVector,
    57         bool                 forceScaleToUnity)
    62         outVector.resize( 7 );
    63         for (
int i=0;i<7;i++) outVector[i] = outQuat[i];
    69         const std::vector<double>      &inPoints,
    71         bool                      forceScaleToUnity)
    81         const bool                                                      forceScaleToUnity)
    83         return mrpt::tfest::se3_l2(in_correspondences,out_transformation,out_scale,forceScaleToUnity);
    91         const bool                                                      forceScaleToUnity)
   105         const unsigned int                                      ransac_minSetSize,
   106         const unsigned int                                      ransac_nmaxSimulations,
   107         const double                                            ransac_maxSetSizePct,
   108         const bool                                                      forceScaleToUnity)
   111         params.forceScaleToUnity = forceScaleToUnity;
   112         params.ransac_maxSetSizePct = ransac_maxSetSizePct;
   113         params.ransac_minSetSize = ransac_minSetSize;
   114         params.ransac_nmaxSimulations = ransac_nmaxSimulations;
   120         out_scale = results.
scale;
   134         out_transformation = 
CPose2D(estPose);
   151         unsigned int                                    ransac_minSetSize,
   152         unsigned int                                    ransac_maxSetSize,
   154         unsigned int                                    ransac_nSimulations,
   156         bool                                            ransac_fuseByCorrsMatch,
   157         float                                           ransac_fuseMaxDiffXY,
   158         float                                           ransac_fuseMaxDiffPhi,
   159         bool                                            ransac_algorithmForLandmarks,
   160         double                                          probability_find_good_model,
   161         unsigned int                            ransac_min_nSimulations,
   163         double                      max_rmse_to_end
   167         params.ransac_minSetSize = ransac_minSetSize;
   168         params.ransac_maxSetSize = ransac_maxSetSize;
   170         params.ransac_nSimulations = ransac_nSimulations;
   171         params.ransac_fuseByCorrsMatch = ransac_fuseByCorrsMatch;
   172         params.ransac_fuseMaxDiffXY = ransac_fuseMaxDiffXY;
   173         params.ransac_fuseMaxDiffPhi  = ransac_fuseMaxDiffPhi;
   174         params.ransac_algorithmForLandmarks = ransac_algorithmForLandmarks;
   175         params.probability_find_good_model = probability_find_good_model;
   176         params.ransac_min_nSimulations = ransac_min_nSimulations;
   177         params.max_rmse_to_end = max_rmse_to_end;
   185         if (out_largestSubSet) *out_largestSubSet = results.
largestSubSet;
 #define ASSERT_EQUAL_(__A, __B)
 
bool TFEST_IMPEXP leastSquareErrorRigidTransformation(mrpt::utils::TMatchingPairList &in_correspondences, mrpt::poses::CPose2D &out_transformation, mrpt::math::CMatrixDouble33 *out_estimateCovariance=NULL)
 
Classes for serialization, sockets, ini-file manipulation, streams, list of properties-values, timewatch, extensions to STL. 
 
const float normalizationStd
 
void TFEST_IMPEXP robustRigidTransformation(mrpt::utils::TMatchingPairList &in_correspondences, mrpt::poses::CPosePDFSOG &out_transformation, float normalizationStd, unsigned int ransac_minSetSize=3, unsigned int ransac_maxSetSize=20, float ransac_mahalanobisDistanceThreshold=3.0f, unsigned int ransac_nSimulations=0, mrpt::utils::TMatchingPairList *out_largestSubSet=NULL, bool ransac_fuseByCorrsMatch=true, float ransac_fuseMaxDiffXY=0.01f, float ransac_fuseMaxDiffPhi=mrpt::utils::DEG2RAD(0.1f), bool ransac_algorithmForLandmarks=true, double probability_find_good_model=0.999, unsigned int ransac_min_nSimulations=1500, const bool verbose=false, double max_rmse_to_end=0)
 
bool TFEST_IMPEXP leastSquareErrorRigidTransformation6D(const mrpt::utils::TMatchingPairList &in_correspondences, mrpt::poses::CPose3DQuat &out_transformation, double &out_scale, const bool forceScaleToUnity=false)
 
bool TFEST_IMPEXP se3_l2_robust(const mrpt::utils::TMatchingPairList &in_correspondences, const TSE3RobustParams &in_params, TSE3RobustResult &out_results)
Least-squares (L2 norm) solution to finding the optimal SE(3) transform between two reference frames ...
 
Declares a class that represents a Probability Density function (PDF) of a 2D pose ...
 
double backwards_compat_HornMethod(const std::vector< double > &input, mrpt::poses::CPose3DQuat &outQuat, bool forceScaleToUnity)
 
Parameters for se3_l2_robust(). 
 
GLenum GLenum GLenum GLenum GLenum scale
 
Parameters for se2_l2_robust(). 
 
mrpt::utils::TMatchingPairList largestSubSet
the largest consensus sub-set 
 
const float ransac_mahalanobisDistanceThreshold
 
bool TFEST_IMPEXP se2_l2_robust(const mrpt::utils::TMatchingPairList &in_correspondences, const double in_normalizationStd, const TSE2RobustParams &in_ransac_params, TSE2RobustResult &out_results)
Robust least-squares (L2 norm) solution to finding the optimal SE(2) (x,y,yaw) between two reference ...
 
mrpt::vector_int inliers_idx
Indexes within the in_correspondences list which corresponds with inliers. 
 
This base provides a set of functions for maths stuff. 
 
Declares a class that represents a Probability Density function (PDF) of a 2D pose ...
 
bool TFEST_IMPEXP se3_l2(const mrpt::utils::TMatchingPairList &in_correspondences, mrpt::poses::CPose3DQuat &out_transform, double &out_scale, bool forceScaleToUnity=false)
Least-squares (L2 norm) solution to finding the optimal SE(3) transform between two reference frames ...
 
double scale
The estimated scale of the rigid transformation (should be very close to 1.0) 
 
A class used to store a 3D pose as a translation (x,y,z) and a quaternion (qr,qx,qy,qz). 
 
Classes for 2D/3D geometry representation, both of single values and probability density distribution...
 
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries. 
 
A class used to store a 2D pose, including the 2D coordinate point and a heading (phi) angle...
 
A class used to store a 3D pose (a 3D translation + a rotation in 3D). 
 
GLenum GLenum GLenum input
 
mrpt::poses::CPosePDFSOG transformation
The output as a set of transformations (sum of Gaussians) 
 
std::vector< int32_t > vector_int
 
double TFEST_IMPEXP HornMethod(const std::vector< double > &inPoints, std::vector< double > &outQuat, bool forceScaleToUnity=false)
 
mrpt::poses::CPose3DQuat transformation
The best transformation found. 
 
bool TFEST_IMPEXP se2_l2(const mrpt::utils::TMatchingPairList &in_correspondences, mrpt::math::TPose2D &out_transformation, mrpt::math::CMatrixDouble33 *out_estimateCovariance=NULL)
Least-squares (L2 norm) solution to finding the optimal SE(2) (x,y,yaw) between two reference frames...
 
GLenum const GLfloat * params
 
Output placeholder for se2_l2_robust() 
 
Output placeholder for se3_l2_robust() 
 
bool TFEST_IMPEXP leastSquareErrorRigidTransformation6DRANSAC(const mrpt::utils::TMatchingPairList &in_correspondences, mrpt::poses::CPose3D &out_transformation, double &out_scale, vector_int &out_inliers_idx, const unsigned int ransac_minSetSize=5, const unsigned int ransac_nmaxSimulations=50, const double ransac_maxSetSizePct=0.7, const bool forceScaleToUnity=false)