MRPT  1.9.9
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.

Description

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

.ini Configuration Parameters

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).
  • conversion_sensor_label
    • Default value : "KINECT_TO_2D_SCAN"
    • Required : FALSE
    • Description : Applicable only when dealing with 3DRangeScans. Used for converting 3DRangeScan to 2DRangesScan so that they are visualized on the 2D surface
  • conversion_angle_sup
    • Default value : 10
    • Required : FALSE
    • Description : Applicable only when dealing with 3DRangeScans. Used for converting 3DRangeScan to 2DRangesScan so that they are visualized on the 2D surface
  • conversion_angle_inf
    • Default value : 10
    • Required : FALSE
    • Description : Applicable only when dealing with 3DRangeScans. Used for converting 3DRangeScan to 2DRangesScan so that they are visualized on the 2D surface
  • conversion_oversampling_ratio
    • Default value : 1.1
    • Required : FALSE
    • Description : Applicable only when dealing with 3DRangeScans. Used for converting 3DRangeScan to 2DRangesScan so that they are visualized on the 2D surface
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 72 of file CRangeScanOps.h.

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

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

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=nullptr)
 Wrapper around the CObservation3DRangeScan::convertTo2DScan corresponding method. More...
 

Protected Attributes

TParams params
 

Private Types

using constraint_t = typename GRAPH_T::constraint_t
 Handy typedefs. More...
 
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

Handy typedefs.

Definition at line 76 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 77 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 = nullptr 
)
protected

Wrapper around the CObservation3DRangeScan::convertTo2DScan corresponding method.

Returns
True if operation was successful, false otherwise

Definition at line 143 of file CRangeScanOps_impl.h.

References MRPT_END, and MRPT_START.

◆ 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 109 of file CRangeScanOps_impl.h.

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

◆ 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::maps::CMetricMap::insertObservation(), MRPT_END, and MRPT_START.

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

◆ 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 51 of file CRangeScanOps_impl.h.

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

Member Data Documentation

◆ params

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

Definition at line 149 of file CRangeScanOps.h.




Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: 7d5e6d718 Fri Aug 24 01:51:28 2018 +0200 at lun nov 2 08:35:50 CET 2020