Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
karto::ScanMatcher Class Reference

#include <Mapper.h>

Public Member Functions

void ComputeAngularCovariance (const Pose2 &rBestPose, kt_double bestResponse, const Pose2 &rSearchCenter, kt_double searchAngleOffset, kt_double searchAngleResolution, Matrix3 &rCovariance)
 
void ComputePositionalCovariance (const Pose2 &rBestPose, kt_double bestResponse, const Pose2 &rSearchCenter, const Vector2< kt_double > &rSearchSpaceOffset, const Vector2< kt_double > &rSearchSpaceResolution, kt_double searchAngleResolution, Matrix3 &rCovariance)
 
kt_double CorrelateScan (LocalizedRangeScan *pScan, const Pose2 &rSearchCenter, const Vector2< kt_double > &rSearchSpaceOffset, const Vector2< kt_double > &rSearchSpaceResolution, kt_double searchAngleOffset, kt_double searchAngleResolution, kt_bool doPenalize, Pose2 &rMean, Matrix3 &rCovariance, kt_bool doingFineMatch)
 
CorrelationGridGetCorrelationGrid () const
 
kt_double MatchScan (LocalizedRangeScan *pScan, const LocalizedRangeScanVector &rBaseScans, Pose2 &rMean, Matrix3 &rCovariance, kt_bool doPenalize=true, kt_bool doRefineMatch=true)
 
virtual ~ScanMatcher ()
 

Static Public Member Functions

static ScanMatcherCreate (Mapper *pMapper, kt_double searchSize, kt_double resolution, kt_double smearDeviation, kt_double rangeThreshold)
 

Protected Member Functions

 ScanMatcher (Mapper *pMapper)
 

Private Member Functions

void AddScan (LocalizedRangeScan *pScan, const Vector2< kt_double > &rViewPoint, kt_bool doSmear=true)
 
void AddScans (const LocalizedRangeScanVector &rScans, Vector2< kt_double > viewPoint)
 
PointVectorDouble FindValidPoints (LocalizedRangeScan *pScan, const Vector2< kt_double > &rViewPoint) const
 
kt_double GetResponse (kt_int32u angleIndex, kt_int32s gridPositionIndex) const
 

Private Attributes

CorrelationGridm_pCorrelationGrid
 
GridIndexLookup< kt_int8u > * m_pGridLookup
 
Mapperm_pMapper
 
Grid< kt_double > * m_pSearchSpaceProbs
 

Detailed Description

Scan matcher

Definition at line 1022 of file Mapper.h.

Constructor & Destructor Documentation

karto::ScanMatcher::~ScanMatcher ( )
virtual

Destructor

Definition at line 297 of file Mapper.cpp.

karto::ScanMatcher::ScanMatcher ( Mapper pMapper)
inlineprotected

Default constructor

Definition at line 1162 of file Mapper.h.

Member Function Documentation

void karto::ScanMatcher::AddScan ( LocalizedRangeScan pScan,
const Vector2< kt_double > &  rViewPoint,
kt_bool  doSmear = true 
)
private

Marks cells where scans' points hit as being occupied. Can smear points as they are added.

Parameters
pScanscan whose points will mark cells in grid as being occupied
viewPointdo not add points that belong to scans "opposite" the view point
doSmearwhether the points will be smeared

Definition at line 874 of file Mapper.cpp.

void karto::ScanMatcher::AddScans ( const LocalizedRangeScanVector rScans,
Vector2< kt_double viewPoint 
)
private

Marks cells where scans' points hit as being occupied

Parameters
rScansscans whose points will mark cells in grid as being occupied
viewPointdo not add points that belong to scans "opposite" the view point

Definition at line 857 of file Mapper.cpp.

void karto::ScanMatcher::ComputeAngularCovariance ( const Pose2 rBestPose,
kt_double  bestResponse,
const Pose2 rSearchCenter,
kt_double  searchAngleOffset,
kt_double  searchAngleResolution,
Matrix3 rCovariance 
)

Computes the angular covariance of the best pose

Parameters
rBestPose
bestResponse
rSearchCenter
searchAngleOffset
searchAngleResolution
rCovarianceComputes the angular covariance of the best pose
rBestPose
bestResponse
rSearchCenter
rSearchAngleOffset
searchAngleResolution
rCovariance

Definition at line 799 of file Mapper.cpp.

void karto::ScanMatcher::ComputePositionalCovariance ( const Pose2 rBestPose,
kt_double  bestResponse,
const Pose2 rSearchCenter,
const Vector2< kt_double > &  rSearchSpaceOffset,
const Vector2< kt_double > &  rSearchSpaceResolution,
kt_double  searchAngleResolution,
Matrix3 rCovariance 
)

Computes the positional covariance of the best pose

Parameters
rBestPose
bestResponse
rSearchCenter
rSearchSpaceOffset
rSearchSpaceResolution
searchAngleResolution
rCovariance

Definition at line 693 of file Mapper.cpp.

kt_double karto::ScanMatcher::CorrelateScan ( LocalizedRangeScan pScan,
const Pose2 rSearchCenter,
const Vector2< kt_double > &  rSearchSpaceOffset,
const Vector2< kt_double > &  rSearchSpaceResolution,
kt_double  searchAngleOffset,
kt_double  searchAngleResolution,
kt_bool  doPenalize,
Pose2 rMean,
Matrix3 rCovariance,
kt_bool  doingFineMatch 
)

Finds the best pose for the scan centering the search in the correlation grid at the given pose and search in the space by the vector and angular offsets in increments of the given resolutions

Parameters
pScanscan to match against correlation grid
rSearchCenterthe center of the search space
rSearchSpaceOffsetsearches poses in the area offset by this vector around search center
rSearchSpaceResolutionhow fine a granularity to search in the search space
searchAngleOffsetsearches poses in the angles offset by this angle around search center
searchAngleResolutionhow fine a granularity to search in the angular search space
doPenalizewhether to penalize matches further from the search center
rMeanoutput parameter of mean (best pose) of match
rCovarianceoutput parameter of covariance of match
doingFineMatchwhether to do a finer search after coarse search
Returns
strength of response

Finds the best pose for the scan centering the search in the correlation grid at the given pose and search in the space by the vector and angular offsets in increments of the given resolutions

Parameters
rScanscan to match against correlation grid
rSearchCenterthe center of the search space
rSearchSpaceOffsetsearches poses in the area offset by this vector around search center
rSearchSpaceResolutionhow fine a granularity to search in the search space
searchAngleOffsetsearches poses in the angles offset by this angle around search center
searchAngleResolutionhow fine a granularity to search in the angular search space
doPenalizewhether to penalize matches further from the search center
rMeanoutput parameter of mean (best pose) of match
rCovarianceoutput parameter of covariance of match
doingFineMatchwhether to do a finer search after coarse search
Returns
strength of response

Definition at line 483 of file Mapper.cpp.

ScanMatcher * karto::ScanMatcher::Create ( Mapper pMapper,
kt_double  searchSize,
kt_double  resolution,
kt_double  smearDeviation,
kt_double  rangeThreshold 
)
static

Create a scan matcher with the given parameters

Definition at line 304 of file Mapper.cpp.

PointVectorDouble karto::ScanMatcher::FindValidPoints ( LocalizedRangeScan pScan,
const Vector2< kt_double > &  rViewPoint 
) const
private

Compute which points in a scan are on the same side as the given viewpoint

Parameters
pScan
rViewPoint
Returns
points on the same side

Definition at line 914 of file Mapper.cpp.

CorrelationGrid* karto::ScanMatcher::GetCorrelationGrid ( ) const
inline

Gets the correlation grid data (for debugging)

Returns
correlation grid

Definition at line 1121 of file Mapper.h.

kt_double karto::ScanMatcher::GetResponse ( kt_int32u  angleIndex,
kt_int32s  gridPositionIndex 
) const
private

Get response at given position for given rotation (only look up valid points)

Parameters
angleIndex
gridPositionIndex
Returns
response

Definition at line 977 of file Mapper.cpp.

kt_double karto::ScanMatcher::MatchScan ( LocalizedRangeScan pScan,
const LocalizedRangeScanVector rBaseScans,
Pose2 rMean,
Matrix3 rCovariance,
kt_bool  doPenalize = true,
kt_bool  doRefineMatch = true 
)

Match given scan against set of scans

Parameters
pScanscan being scan-matched
rBaseScansset of scans whose points will mark cells in grid as being occupied
rMeanoutput parameter of mean (best pose) of match
rCovarianceoutput parameter of covariance of match
doPenalizewhether to penalize matches further from the search center
doRefineMatchwhether to do finer-grained matching if coarse match is good (default is true)
Returns
strength of response

Definition at line 362 of file Mapper.cpp.

Member Data Documentation

CorrelationGrid* karto::ScanMatcher::m_pCorrelationGrid
private

Definition at line 1173 of file Mapper.h.

GridIndexLookup<kt_int8u>* karto::ScanMatcher::m_pGridLookup
private

Definition at line 1176 of file Mapper.h.

Mapper* karto::ScanMatcher::m_pMapper
private

Definition at line 1171 of file Mapper.h.

Grid<kt_double>* karto::ScanMatcher::m_pSearchSpaceProbs
private

Definition at line 1174 of file Mapper.h.


The documentation for this class was generated from the following files:


open_karto
Author(s):
autogenerated on Mon Jun 10 2019 14:02:19