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 nonlooping 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 nonlooping 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.