Abstract class that defines an interface for computing and comparing equivalence classes. More...
#include <equivalence_relations.h>
Public Member Functions | |
EquivalenceClass () | |
Default constructor. More... | |
virtual bool | isEqual (const EquivalenceClass &other) const =0 |
Check if two candidate classes are equivalent. More... | |
virtual bool | isReasonable () const =0 |
Check if the trajectory is non-looping around an obstacle. More... | |
virtual bool | isValid () const =0 |
Check if the equivalence value is detected correctly. More... | |
virtual | ~EquivalenceClass () |
virtual destructor More... | |
Abstract class that defines an interface for computing and comparing equivalence classes.
Equivalence relations are utilized in order to test if two trajectories are belonging to the same equivalence class w.r.t. the current obstacle configurations. A common equivalence relation is the concept of homotopy classes. All trajectories belonging to the same homotopy class can CONTINUOUSLY be deformed into each other without intersecting any obstacle. Hence they likely share the same local minimum after invoking (local) trajectory optimization. A weaker equivalence relation is defined by the concept of homology classes (e.g. refer to HSignature).
Each EquivalenceClass object (or subclass) stores a candidate value which might be compared to another EquivalenceClass object.
Definition at line 63 of file equivalence_relations.h.
|
inline |
Default constructor.
Definition at line 70 of file equivalence_relations.h.
|
inlinevirtual |
virtual destructor
Definition at line 75 of file equivalence_relations.h.
|
pure virtual |
Check if two candidate classes are equivalent.
other | The other equivalence class to test with |
Implemented in teb_local_planner::HSignature3d, and teb_local_planner::HSignature.
|
pure virtual |
Check if the trajectory is non-looping around an obstacle.
Implemented in teb_local_planner::HSignature3d, and teb_local_planner::HSignature.
|
pure virtual |
Check if the equivalence value is detected correctly.
Implemented in teb_local_planner::HSignature3d, and teb_local_planner::HSignature.