Public Member Functions | Private Member Functions | Private Attributes | List of all members
karto::MapperGraph Class Reference

#include <OpenMapper.h>

Inheritance diagram for karto::MapperGraph:
Inheritance graph
[legend]

Public Member Functions

Edge< LocalizedObjectPtr > * AddEdge (LocalizedObject *pSourceObject, LocalizedObject *pTargetObject, kt_bool &rIsNewEdge)
 
void AddEdges (LocalizedObject *pObject)
 
void AddEdges (LocalizedLaserScan *pScan, const Matrix3 &rCovariance)
 
void AddVertex (LocalizedObject *pObject)
 
LocalizedLaserScanList FindNearLinkedScans (LocalizedLaserScan *pScan, kt_double maxDistance)
 
LocalizedLaserScanList FindOverlappingScans (LocalizedLaserScan *pScan)
 
ScanMatcherGetLoopScanMatcher () const
 
void LinkChainToScan (const LocalizedLaserScanList &rChain, LocalizedLaserScan *pScan, const Pose2 &rMean, const Matrix3 &rCovariance)
 
 MapperGraph (OpenMapper *pOpenMapper, kt_double rangeThreshold)
 
kt_bool TryCloseLoop (LocalizedLaserScan *pScan, const Identifier &rSensorName)
 
virtual ~MapperGraph ()
 
- Public Member Functions inherited from karto::Graph< LocalizedObjectPtr >
void AddEdge (Edge< LocalizedObjectPtr > *pEdge)
 
void AddVertex (Vertex< LocalizedObjectPtr > *pVertex)
 
void Clear ()
 
const EdgeListGetEdges () const
 
const VertexListGetVertices () const
 
 Graph ()
 
virtual ~Graph ()
 

Private Member Functions

Pose2 ComputeWeightedMean (const Pose2List &rMeans, const List< Matrix3 > &rCovariances) const
 
void CorrectPoses ()
 
List< LocalizedLaserScanListFindNearChains (LocalizedLaserScan *pScan)
 
LocalizedLaserScanList FindPossibleLoopClosure (LocalizedLaserScan *pScan, const Identifier &rSensorName, kt_int32u &rStartScanIndex)
 
LocalizedLaserScanGetClosestScanToPose (const LocalizedLaserScanList &rScans, const Pose2 &rPose) const
 
Vertex< LocalizedObjectPtr > * GetVertex (LocalizedObject *pObject)
 
void LinkNearChains (LocalizedLaserScan *pScan, Pose2List &rMeans, List< Matrix3 > &rCovariances)
 
void LinkObjects (LocalizedObject *pFromObject, LocalizedObject *pToObject, const Pose2 &rMean, const Matrix3 &rCovariance)
 

Private Attributes

ScanMatcherm_pLoopScanMatcher
 
OpenMapperm_pOpenMapper
 
GraphTraversal< LocalizedObjectPtr > * m_pTraversal
 

Additional Inherited Members

- Public Types inherited from karto::Graph< LocalizedObjectPtr >
typedef List< Edge< LocalizedObjectPtr > * > EdgeList
 
typedef List< Vertex< LocalizedObjectPtr > * > VertexList
 
- Protected Attributes inherited from karto::Graph< LocalizedObjectPtr >
EdgeList m_Edges
 
VertexList m_Vertices
 

Detailed Description

Graph for graph SLAM algorithm

Definition at line 563 of file OpenMapper.h.

Constructor & Destructor Documentation

karto::MapperGraph::MapperGraph ( OpenMapper pOpenMapper,
kt_double  rangeThreshold 
)

Graph for graph SLAM

Parameters
pOpenMappermapper
rangeThresholdrange threshold

Definition at line 1429 of file OpenMapper.cpp.

karto::MapperGraph::~MapperGraph ( )
virtual

Destructor

Definition at line 1438 of file OpenMapper.cpp.

Member Function Documentation

Edge< LocalizedObjectPtr > * karto::MapperGraph::AddEdge ( LocalizedObject pSourceObject,
LocalizedObject pTargetObject,
kt_bool rIsNewEdge 
)

Creates an edge between the source object and the target object if it does not already exist; otherwise return the existing edge

Parameters
pSourceObjectsource object
pTargetObjecttarget object
rIsNewEdgeset to true if the edge is new
Returns
edge between source and target vertices

Definition at line 1653 of file OpenMapper.cpp.

void karto::MapperGraph::AddEdges ( LocalizedObject pObject)

Links object to last scan

Parameters
pObjectobject

Definition at line 1464 of file OpenMapper.cpp.

void karto::MapperGraph::AddEdges ( LocalizedLaserScan pScan,
const Matrix3 rCovariance 
)

Links scan to last scan and nearby chains of scans

Parameters
pScanscan
rCovariancematch uncertainty

Definition at line 1490 of file OpenMapper.cpp.

void karto::MapperGraph::AddVertex ( LocalizedObject pObject)

Adds a vertex representing the given object to the graph

Parameters
pObjectobject

Definition at line 1447 of file OpenMapper.cpp.

Pose2 karto::MapperGraph::ComputeWeightedMean ( const Pose2List rMeans,
const List< Matrix3 > &  rCovariances 
) const
private

Compute mean of poses weighted by covariances

Parameters
rMeanslist of poses
rCovariancesuncertainties
Returns
weighted mean

Definition at line 2033 of file OpenMapper.cpp.

void karto::MapperGraph::CorrectPoses ( )
private

Optimizes scan poses

Definition at line 2125 of file OpenMapper.cpp.

List< LocalizedLaserScanList > karto::MapperGraph::FindNearChains ( LocalizedLaserScan pScan)
private

Finds chains of scans that are close to given scan

Parameters
pScanscan
Returns
chains of scans

Definition at line 1861 of file OpenMapper.cpp.

LocalizedLaserScanList karto::MapperGraph::FindNearLinkedScans ( LocalizedLaserScan pScan,
kt_double  maxDistance 
)

Finds "nearby" (no further than given distance away) scans through graph links

Parameters
pScanscan
maxDistancemaximum distance
Returns
"nearby" scans that have a path of links to given scan

Definition at line 1987 of file OpenMapper.cpp.

LocalizedLaserScanList karto::MapperGraph::FindOverlappingScans ( karto::LocalizedLaserScan pScan)

Finds scans that overlap the given scan (based on bounding boxes)

Parameters
pScanscan
Returns
overlapping scans

Definition at line 2007 of file OpenMapper.cpp.

LocalizedLaserScanList karto::MapperGraph::FindPossibleLoopClosure ( LocalizedLaserScan pScan,
const Identifier rSensorName,
kt_int32u rStartScanIndex 
)
private

Tries to find a chain of scan from the given sensor starting at the given scan index that could possibly close a loop with the given scan

Parameters
pScanscan
rSensorNamename of sensor
rStartScanIndexstart index
Returns
chain that can possibly close a loop with given scan

Definition at line 2077 of file OpenMapper.cpp.

LocalizedLaserScan * karto::MapperGraph::GetClosestScanToPose ( const LocalizedLaserScanList rScans,
const Pose2 rPose 
) const
private

Finds the closest scan in the vector to the given pose

Parameters
rScansscan
rPosepose

Definition at line 1633 of file OpenMapper.cpp.

ScanMatcher* karto::MapperGraph::GetLoopScanMatcher ( ) const
inline

Gets the graph's scan matcher

Returns
scan matcher

Definition at line 635 of file OpenMapper.h.

Vertex<LocalizedObjectPtr>* karto::MapperGraph::GetVertex ( LocalizedObject pObject)
inlineprivate

Gets the vertex associated with the given scan

Parameters
pScanscan
Returns
vertex of scan

Definition at line 655 of file OpenMapper.h.

void karto::MapperGraph::LinkChainToScan ( const LocalizedLaserScanList rChain,
LocalizedLaserScan pScan,
const Pose2 rMean,
const Matrix3 rCovariance 
)

Links the chain of scans to the given scan by finding the closest scan in the chain to the given scan

Parameters
rChainchain
pScanscan
rMeanmean
rCovariancematch uncertainty

Definition at line 1842 of file OpenMapper.cpp.

void karto::MapperGraph::LinkNearChains ( LocalizedLaserScan pScan,
Pose2List rMeans,
List< Matrix3 > &  rCovariances 
)
private

Finds nearby chains of scans and link them to scan if response is high enough

Parameters
pScanscan
rMeansmeans
rCovariancesmatch uncertainties

Definition at line 1761 of file OpenMapper.cpp.

void karto::MapperGraph::LinkObjects ( LocalizedObject pFromObject,
LocalizedObject pToObject,
const Pose2 rMean,
const Matrix3 rCovariance 
)
private

Adds an edge between the two objects and labels the edge with the given mean and covariance

Parameters
pFromObjectfrom object
pToObjectto object
rMeanmean
rCovariancematch uncertainty

Definition at line 1680 of file OpenMapper.cpp.

kt_bool karto::MapperGraph::TryCloseLoop ( LocalizedLaserScan pScan,
const Identifier rSensorName 
)

Tries to close a loop using the given scan with the scans from the given sensor

Parameters
pScanscan
rSensorNamename of sensor
Returns
true if a loop was closed

Definition at line 1551 of file OpenMapper.cpp.

Member Data Documentation

ScanMatcher* karto::MapperGraph::m_pLoopScanMatcher
private

Scan matcher for loop closures

Definition at line 723 of file OpenMapper.h.

OpenMapper* karto::MapperGraph::m_pOpenMapper
private

Mapper of this graph

Definition at line 718 of file OpenMapper.h.

GraphTraversal<LocalizedObjectPtr>* karto::MapperGraph::m_pTraversal
private

Traversal algorithm to find near linked scans

Definition at line 728 of file OpenMapper.h.


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


nav2d_karto
Author(s): Sebastian Kasperski
autogenerated on Tue Nov 7 2017 06:02:36