Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
karto::ScanMatcher Class Reference

#include <Mapper.h>

List of all members.

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

Destructor

Definition at line 297 of file Mapper.cpp.

karto::ScanMatcher::ScanMatcher ( Mapper pMapper) [inline, protected]

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.

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

Definition at line 1173 of file Mapper.h.

Definition at line 1176 of file Mapper.h.

Definition at line 1171 of file Mapper.h.

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 Thu Aug 27 2015 14:14:06