KrisLibrary
1.0.0
|
A class that optimizes constraint testing order using empirical data. More...
#include <CSpaceHelpers.h>
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< CSet > | Constraint (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::NonlinearProgram * | FeasibleNumeric () |
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< PredicateStats > | feasibleStats |
std::vector< PredicateStats > | visibleStats |
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 | |
CSpace * | baseSpace |
Public Attributes inherited from CSpace | |
std::vector< std::string > | constraintNames |
std::vector< std::shared_ptr< CSet > > | constraints |
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.