Public Member Functions | Private Attributes
teb_local_planner::HSignature Class Reference

The H-signature defines an equivalence relation based on homology in terms of complex calculus. More...

#include <equivalence_relations.h>

Inheritance diagram for teb_local_planner::HSignature:
Inheritance graph
[legend]

List of all members.

Public Member Functions

template<typename BidirIter , typename Fun >
void calculateHSignature (BidirIter path_start, BidirIter path_end, Fun fun_cplx_point, const ObstContainer *obstacles)
 Calculate the H-Signature of a path.
 HSignature (const TebConfig &cfg)
 Constructor accepting a TebConfig.
virtual bool isEqual (const EquivalenceClass &other) const
 Check if two candidate classes are equivalent.
virtual bool isValid () const
 Check if the equivalence value is detected correctly.

Private Attributes

const TebConfigcfg_
std::complex< long double > hsignature_

Detailed Description

The H-signature defines an equivalence relation based on homology in terms of complex calculus.

The H-Signature depends on the obstacle configuration and can be utilized to check whether two trajectores belong to the same homology class. Refer to:

Definition at line 112 of file equivalence_relations.h.


Constructor & Destructor Documentation

Constructor accepting a TebConfig.

Parameters:
cfgTebConfig storing some user configuration options

Definition at line 121 of file equivalence_relations.h.


Member Function Documentation

template<typename BidirIter , typename Fun >
void teb_local_planner::HSignature::calculateHSignature ( BidirIter  path_start,
BidirIter  path_end,
Fun  fun_cplx_point,
const ObstContainer obstacles 
) [inline]

Calculate the H-Signature of a path.

The implemented function accepts generic path descriptions that are restricted to the following structure:
The path is composed of points T and is represented by a std::vector< T > or similar type (std::list, std::deque, ...).
Provide a unary function with the following signature std::complex< long double > (const T& point_type) that returns a complex value for the position (Re(*)=x, Im(*)=y).

T could also be a pointer type, if the passed function also accepts a const T* point_Type.

Parameters:
path_startIterator to the first element in the path
path_endIterator to the last element in the path
obstaclesobstacle container
fun_cplx_pointfunction accepting the dereference iterator type and that returns the position as complex number.
Template Parameters:
BidirIterBidirectional iterator type
Funfunction of the form std::complex< long double > (const T& point_type)
Returns:
complex H-Signature value

Definition at line 143 of file equivalence_relations.h.

virtual bool teb_local_planner::HSignature::isEqual ( const EquivalenceClass other) const [inline, virtual]

Check if two candidate classes are equivalent.

Parameters:
otherThe other equivalence class to test with

Implements teb_local_planner::EquivalenceClass.

Definition at line 241 of file equivalence_relations.h.

virtual bool teb_local_planner::HSignature::isValid ( ) const [inline, virtual]

Check if the equivalence value is detected correctly.

Returns:
Returns false, if the equivalence class detection failed, e.g. if nan- or inf values occur.

Implements teb_local_planner::EquivalenceClass.

Definition at line 261 of file equivalence_relations.h.


Member Data Documentation

Definition at line 269 of file equivalence_relations.h.

std::complex<long double> teb_local_planner::HSignature::hsignature_ [private]

Definition at line 270 of file equivalence_relations.h.


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


teb_local_planner
Author(s): Christoph Rösmann
autogenerated on Sat Jun 8 2019 20:21:34