KrisLibrary  1.0.0
Classes | Public Member Functions | Public Attributes | List of all members
AdaptiveCSpace Class Reference

A class that optimizes constraint testing order using empirical data. More...

#include <CSpaceHelpers.h>

Inheritance diagram for AdaptiveCSpace:
PiggybackCSpace CSpace

Classes

struct  PredicateStats
 

Public Member Functions

 AdaptiveCSpace (CSpace *baseSpace)
 
virtual bool IsFeasible (const Config &x)
 
virtual bool IsFeasible (const Config &x, int obstacle)
 
virtual void CheckConstraints (const Config &x, std::vector< bool > &satisfied)
 Returns a vector indicating which constraints are satisfied.
 
virtual EdgePlannerPtr PathChecker (const Config &a, const Config &b)
 
virtual EdgePlannerPtr PathChecker (const Config &a, const Config &b, int obstacle)
 
bool IsFeasible_NoDeps (const Config &x, int obstacle)
 
EdgePlannerPtr PathChecker_NoDeps (const Config &a, const Config &b, int obstacle)
 
void SetupAdaptiveInfo ()
 
bool AddFeasibleDependency (int constraint, int dependency)
 
bool AddVisibleDependency (int constraint, int dependency)
 
bool AddFeasibleDependency (const char *name, const char *dependency)
 
bool AddVisibleDependency (const char *name, const char *dependency)
 
void OptimizeQueryOrder ()
 
void GetFeasibleDependencies (int obstacle, std::vector< int > &deps, bool recursive=true) const
 
void GetVisibleDependencies (int obstacle, std::vector< int > &deps, bool recursive=true) const
 
void GetStats (PropertyMap &stats) const
 
void LoadStats (const PropertyMap &stats)
 
- Public Member Functions inherited from PiggybackCSpace
 PiggybackCSpace (CSpace *_baseSpace=NULL)
 
virtual int NumDimensions ()
 
virtual std::string VariableName (int i)
 
virtual int NumConstraints ()
 
virtual std::string ConstraintName (int i)
 
virtual std::shared_ptr< CSetConstraint (int i)
 
virtual void Sample (Config &x)
 
virtual void SampleNeighborhood (const Config &c, Real r, Config &x)
 
virtual EdgePlannerPtr LocalPlanner (const Config &a, const Config &b)
 
virtual bool ProjectFeasible (Config &x)
 
virtual Optimization::NonlinearProgramFeasibleNumeric ()
 If possible, give the feasible set as a nonlinear program.
 
virtual Real Distance (const Config &x, const Config &y)
 optionally overrideable (default uses euclidean space)
 
virtual void Interpolate (const Config &x, const Config &y, Real u, Config &out)
 
virtual void Midpoint (const Config &x, const Config &y, Config &out)
 
virtual void Properties (PropertyMap &map)
 Returns properties of the space that might be useful for planners. More...
 
- Public Member Functions inherited from CSpace
void AddConstraint (const std::string &name, CSet *constraint)
 
void AddConstraint (const std::string &name, const std::shared_ptr< CSet > &constraint)
 
void AddConstraint (const std::string &name, CSet::CPredicate test)
 
void CopyConstraints (const CSpace *space, const std::string &prefix="")
 
virtual Real ObstacleDistance (const Config &a)
 for local planners using obstacle distance
 
void GetFeasibleNames (const Config &q, std::vector< std::string > &names)
 Gets a list of feasible obstacles for the given configuration.
 
void GetInfeasibleNames (const Config &q, std::vector< std::string > &names)
 Gets a list of infeasible obstacles for the given configuration.
 
void PrintInfeasibleNames (const Config &q, std::ostream &out=std::cout, const char *prefix="", const char *suffix="\n")
 Prints out the list of infeasible obstacles for the given configuration.
 

Public Attributes

bool adaptive
 
std::map< std::string, int > constraintMap
 
std::vector< PredicateStatsfeasibleStats
 
std::vector< PredicateStatsvisibleStats
 
std::vector< std::vector< int > > feasibleTestDeps
 
std::vector< std::vector< int > > visibleTestDeps
 
std::vector< int > feasibleTestOrder
 
std::vector< int > visibleTestOrder
 
bool useBaseVisibleTest
 
PredicateStats baseVisibleStats
 
- Public Attributes inherited from PiggybackCSpace
CSpacebaseSpace
 
- Public Attributes inherited from CSpace
std::vector< std::string > constraintNames
 
std::vector< std::shared_ptr< CSet > > constraints
 

Detailed Description

A class that optimizes constraint testing order using empirical data.

Allows feasibility and visibility tests to have dependent tests, which establishes constraints on the order of optimized feasibility/visibility testing. This lets you implement quick-reject tests.

This functionality also (experimentally) allows a test to compute some data (e.g., forward kinematics) which will then shared between several subsequent tests. However, this use case can lead to subtle bugs particularly with single-obstacle visibility checks.


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