MRPT  2.0.5
List of all members | Classes | Protected Member Functions | Protected Attributes | Private Types
mrpt::graphslam::deciders::CRangeScanOps< GRAPH_T > Class Template Reference

Detailed Description

template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
class mrpt::graphslam::deciders::CRangeScanOps< GRAPH_T >

Class for keeping together all the RangeScanner-related functions.

Deciders that make use of either 2DRangeScans (laser generated observations) or 3DRangeScans (RGBD-cameras) can inherit from this class in case they want to use the underlying methods

The configuration parameters of the current decider class are listed below. These parameters are parsed from an external .ini configuration file from their respective section. If an optional parameter is not found a default value is used instead. If a mandatory/required parameter is not found a runtime error is raised. For a sample configuration file see $mrpt/share/mrpt/config_files/graphslam-engine/laser_odometry.ini (Modify $mrpt according to the path of your mrpt source directory).
Note
Class contains an instance of the mrpt::slam::CICP class and it parses the configuration parameters of the latter from the "ICP" section. Refer to mrpt::slam::CICP documentation for its list of configuration parameters

Definition at line 71 of file CRangeScanOps.h.

#include <mrpt/graphslam/misc/CRangeScanOps.h>

Inheritance diagram for mrpt::graphslam::deciders::CRangeScanOps< GRAPH_T >:

Classes

struct  TParams
 

Protected Member Functions

void getICPEdge (const mrpt::obs::CObservation2DRangeScan &from, const mrpt::obs::CObservation2DRangeScan &to, constraint_t *rel_edge, const mrpt::poses::CPose2D *initial_pose=nullptr, mrpt::slam::CICP::TReturnInfo *icp_info=nullptr)
 Align the 2D range scans provided and fill the potential edge that can transform the one into the other. More...
 
void getICPEdge (const mrpt::obs::CObservation3DRangeScan &from, const mrpt::obs::CObservation3DRangeScan &to, constraint_t *rel_edge, const mrpt::poses::CPose2D *initial_pose=nullptr, mrpt::slam::CICP::TReturnInfo *icp_info=nullptr)
 Align the 3D range scans provided and find the potential edge that can transform the one into the other. More...
 
void decimatePointsMap (mrpt::maps::CPointsMap *m, size_t keep_point_every=4, size_t low_lim=0)
 Reduce the size of the given CPointsMap by keeping one out of "keep_point_every" points. More...
 
bool convert3DTo2DRangeScan (mrpt::obs::CObservation3DRangeScan::Ptr &scan3D_in, mrpt::obs::CObservation2DRangeScan::Ptr *scan2D_out)
 Wrapper around the CObservation3DRangeScan::convertTo2DScan corresponding method. More...
 

Protected Attributes

TParams params
 

Private Types

using constraint_t = typename GRAPH_T::constraint_t
 
using self_t = CRangeScanOps< GRAPH_T >
 

Member Typedef Documentation

◆ constraint_t

template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
using mrpt::graphslam::deciders::CRangeScanOps< GRAPH_T >::constraint_t = typename GRAPH_T::constraint_t
private

Definition at line 73 of file CRangeScanOps.h.

◆ self_t

template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
using mrpt::graphslam::deciders::CRangeScanOps< GRAPH_T >::self_t = CRangeScanOps<GRAPH_T>
private

Definition at line 74 of file CRangeScanOps.h.

Member Function Documentation

◆ convert3DTo2DRangeScan()

template<class GRAPH_T >
bool mrpt::graphslam::deciders::CRangeScanOps< GRAPH_T >::convert3DTo2DRangeScan ( mrpt::obs::CObservation3DRangeScan::Ptr scan3D_in,
mrpt::obs::CObservation2DRangeScan::Ptr scan2D_out 
)
protected

Wrapper around the CObservation3DRangeScan::convertTo2DScan corresponding method.

Returns
True if operation was successful, false otherwise

Definition at line 133 of file CRangeScanOps_impl.h.

References mrpt::obs::CObservation2DRangeScan::Create(), MRPT_END, MRPT_START, and params.

Here is the call graph for this function:

◆ decimatePointsMap()

template<class GRAPH_T >
void mrpt::graphslam::deciders::CRangeScanOps< GRAPH_T >::decimatePointsMap ( mrpt::maps::CPointsMap m,
size_t  keep_point_every = 4,
size_t  low_lim = 0 
)
protected

Reduce the size of the given CPointsMap by keeping one out of "keep_point_every" points.

Note
If low_lim is set then the PointsMap will contain at least low_lim measurements, regardless of keep_point_every value. Set low_lim to 0 if no lower limit is to be specified

Definition at line 100 of file CRangeScanOps_impl.h.

References mrpt::maps::CPointsMap::applyDeletionMask(), MRPT_END, MRPT_START, and mrpt::maps::CPointsMap::size().

Here is the call graph for this function:

◆ getICPEdge() [1/2]

template<class GRAPH_T >
void mrpt::graphslam::deciders::CRangeScanOps< GRAPH_T >::getICPEdge ( const mrpt::obs::CObservation2DRangeScan from,
const mrpt::obs::CObservation2DRangeScan to,
constraint_t rel_edge,
const mrpt::poses::CPose2D initial_pose = nullptr,
mrpt::slam::CICP::TReturnInfo icp_info = nullptr 
)
protected

Align the 2D range scans provided and fill the potential edge that can transform the one into the other.

User can optionally ask that additional information be returned in a TReturnInfo struct

Definition at line 16 of file CRangeScanOps_impl.h.

References MRPT_END, MRPT_START, and params.

Referenced by mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::checkRegistrationCondition2D().

Here is the caller graph for this function:

◆ getICPEdge() [2/2]

template<class GRAPH_T >
void mrpt::graphslam::deciders::CRangeScanOps< GRAPH_T >::getICPEdge ( const mrpt::obs::CObservation3DRangeScan from,
const mrpt::obs::CObservation3DRangeScan to,
constraint_t rel_edge,
const mrpt::poses::CPose2D initial_pose = nullptr,
mrpt::slam::CICP::TReturnInfo icp_info = nullptr 
)
protected

Align the 3D range scans provided and find the potential edge that can transform the one into the other.

Fills the 2D part (rel_edge) of the 3D constraint between the scans, since we are interested in computing the 2D alignment. User can optionally ask that additional information be returned in a TReturnInfo struct

Definition at line 50 of file CRangeScanOps_impl.h.

References ASSERTDEBMSG_, mrpt::obs::CObservation3DRangeScan::hasRangeImage, mrpt::maps::CMetricMap::insertObservation(), MRPT_END, MRPT_START, and params.

Here is the call graph for this function:

Member Data Documentation

◆ params

template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
TParams mrpt::graphslam::deciders::CRangeScanOps< GRAPH_T >::params
protected

Definition at line 141 of file CRangeScanOps.h.




Page generated by Doxygen 1.8.14 for MRPT 2.0.5 Git: ecc95703f Thu Jul 2 07:56:41 2020 +0200 at jue jul 2 08:00:14 CEST 2020