Public Member Functions | Private Attributes | List of all members
teb_local_planner::HSignature Class Reference

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

#include <h_signature.h>

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

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. More...
 
 HSignature (const TebConfig &cfg)
 Constructor accepting a TebConfig. More...
 
virtual bool isEqual (const EquivalenceClass &other) const
 Check if two candidate classes are equivalent. More...
 
virtual bool isReasonable () const
 Check if the trajectory is non-looping around an obstacle. More...
 
virtual bool isValid () const
 Check if the equivalence value is detected correctly. More...
 
const std::complex< long double > & value () const
 Get the current value of the h-signature (read-only) More...
 
- Public Member Functions inherited from teb_local_planner::EquivalenceClass
 EquivalenceClass ()
 Default constructor. More...
 
virtual ~EquivalenceClass ()
 virtual destructor More...
 

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 67 of file h_signature.h.

Constructor & Destructor Documentation

teb_local_planner::HSignature::HSignature ( const TebConfig cfg)
inline

Constructor accepting a TebConfig.

Parameters
cfgTebConfig storing some user configuration options

Definition at line 76 of file h_signature.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)

Definition at line 97 of file h_signature.h.

virtual bool teb_local_planner::HSignature::isEqual ( const EquivalenceClass other) const
inlinevirtual

Check if two candidate classes are equivalent.

Parameters
otherThe other equivalence class to test with

Implements teb_local_planner::EquivalenceClass.

Definition at line 195 of file h_signature.h.

virtual bool teb_local_planner::HSignature::isReasonable ( ) const
inlinevirtual

Check if the trajectory is non-looping around an obstacle.

Returns
Returns always true, as this cannot be detected by this kind of H-Signature.

Implements teb_local_planner::EquivalenceClass.

Definition at line 224 of file h_signature.h.

virtual bool teb_local_planner::HSignature::isValid ( ) const
inlinevirtual

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 215 of file h_signature.h.

const std::complex<long double>& teb_local_planner::HSignature::value ( ) const
inline

Get the current value of the h-signature (read-only)

Returns
h-signature in complex-number format

Definition at line 233 of file h_signature.h.

Member Data Documentation

const TebConfig* teb_local_planner::HSignature::cfg_
private

Definition at line 238 of file h_signature.h.

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

Definition at line 239 of file h_signature.h.


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


teb_local_planner
Author(s): Christoph Rösmann
autogenerated on Wed Jun 3 2020 04:03:08