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

Definition at line 930 of file Mapper.h.


Constructor & Destructor Documentation

karto::ScanMatcher::~ScanMatcher (  )  [virtual]

Destructor

Definition at line 296 of file Mapper.cpp.

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

Default constructor

Definition at line 1047 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:
pScan scan whose points will mark cells in grid as being occupied
viewPoint do not add points that belong to scans "opposite" the view point
doSmear whether the points will be smeared

Definition at line 842 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:
rScans scans whose points will mark cells in grid as being occupied
viewPoint do not add points that belong to scans "opposite" the view point

Definition at line 825 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 
rSearchAngleOffset 
searchAngleResolution 
rCovariance 

Definition at line 771 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 668 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:
rScan scan to match against correlation grid
rSearchCenter the center of the search space
rSearchSpaceOffset searches poses in the area offset by this vector around search center
rSearchSpaceResolution how fine a granularity to search in the search space
searchAngleOffset searches poses in the angles offset by this angle around search center
searchAngleResolution how fine a granularity to search in the angular search space
doPenalize whether to penalize matches further from the search center
rMean output parameter of mean (best pose) of match
rCovariance output parameter of covariance of match
doingFineMatch whether to do a finer search after coarse search
Returns:
strength of response

Definition at line 470 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 303 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 881 of file Mapper.cpp.

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

Gets the correlation grid data (for debugging)

Returns:
correlation grid

Definition at line 1006 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 944 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:
pScan scan being scan-matched
rBaseScans set of scans whose points will mark cells in grid as being occupied
rMean output parameter of mean (best pose) of match
rCovariance output parameter of covariance of match
doPenalize whether to penalize matches further from the search center
doRefineMatch whether to do finer-grained matching if coarse match is good (default is true)
Returns:
strength of response

Definition at line 359 of file Mapper.cpp.


Member Data Documentation

Definition at line 1057 of file Mapper.h.

Definition at line 1060 of file Mapper.h.

Definition at line 1055 of file Mapper.h.

Definition at line 1058 of file Mapper.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


karto
Author(s): SRI International (package maintained by Brian Gerkey)
autogenerated on Fri Jan 11 10:07:06 2013