The H-signature defines an equivalence relation based on homology in terms of complex calculus. More...
#include <equivalence_relations.h>

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 TebConfig * | cfg_ |
| std::complex< long double > | hsignature_ |
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.
| teb_local_planner::HSignature::HSignature | ( | const TebConfig & | cfg | ) | [inline] |
Constructor accepting a TebConfig.
| cfg | TebConfig storing some user configuration options |
Definition at line 121 of file equivalence_relations.h.
| 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.
| path_start | Iterator to the first element in the path |
| path_end | Iterator to the last element in the path |
| obstacles | obstacle container |
| fun_cplx_point | function accepting the dereference iterator type and that returns the position as complex number. |
| BidirIter | Bidirectional iterator type |
| Fun | function of the form std::complex< long double > (const T& point_type) |
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.
| other | The 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.
Implements teb_local_planner::EquivalenceClass.
Definition at line 261 of file equivalence_relations.h.
const TebConfig* teb_local_planner::HSignature::cfg_ [private] |
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.