All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator
ompl::base::Goal Class Reference

Abstract definition of goals. Will contain solutions, if found. More...

#include <Goal.h>

Inheritance diagram for ompl::base::Goal:

List of all members.

Public Member Functions

 Goal (const SpaceInformationPtr &si)
 Constructor. The goal must always know the space information it is part of.
virtual ~Goal (void)
 Destructor. Clears the solution as well.
template<class T >
T * as (void)
 Cast this instance to a desired type.
template<class T >
const T * as (void) const
 Cast this instance to a desired type.
GoalType getType (void) const
 Return the goal type.
bool hasType (GoalType type) const
 Check if this goal can be cast to a particular goal type.
const SpaceInformationPtrgetSpaceInformation (void) const
 Get the space information this goal is for.
virtual bool isSatisfied (const State *st) const =0
 Return true if the state satisfies the goal constraints.
virtual bool isSatisfied (const State *st, double *distance) const
 Return true if the state satisfies the goal constraints and compute the distance between the state given as argument and the goal (even if the goal is not satisfied). This distance can be an approximation. It can even be set to a constant, if such a computation is not possible.
bool isSatisfied (const State *st, double pathLength, double *distance) const
 Return true if the state satisfies the goal constraints and the path length is less than the desired maximum length. This call also computes the distance between the state given as argument and the goal.
virtual bool isStartGoalPairValid (const State *, const State *) const
 Since there can be multiple starting states (and multiple goal states) it is possible certain pairs are not to be allowed. By default we however assume all such pairs are allowed. Note: if this function returns true, isSatisfied() need not be called.
bool isAchieved (void) const
 Returns true if a solution path has been found (could be approximate)
double getMaximumPathLength (void) const
 Get the maximum length allowed for a solution path.
void setMaximumPathLength (double maximumPathLength)
 Set the maximum length allowed for a solution path. This value is checked only in the version of isSatisfied() that takes the path length as argument or by isPathLengthSatisfied(). The default maximal path length is infinity.
bool isPathLengthSatisfied (double pathLength) const
 Check if pathLength is smaller than the value returned by getMaximumPathLength()
const PathPtrgetSolutionPath (void) const
 Return the found solution path.
void setSolutionPath (const PathPtr &path, bool approximate=false)
 Update the solution path. If a previous solution path exists, it is deleted.
void clearSolutionPath (void)
 Forget the solution path. Memory is freed.
double getDifference (void) const
 If a difference between the desired solution and the solution found is computed by the planner, this functions returns it.
void setDifference (double difference)
 Set the difference between the found solution path and the desired solution path.
bool isApproximate (void) const
 Return true if the found solution is approximate (does not actually reach the desired goal, but hopefully is closer to it)
virtual void print (std::ostream &out=std::cout) const
 Print information about the goal.

Protected Attributes

GoalType type_
 Goal type.
SpaceInformationPtr si_
 The space information for this goal.
double maximumPathLength_
 The maximum length allowed for the solution path.
PathPtr path_
 Solution path, if found.
double difference_
 The achieved difference between the found solution and the desired goal.
bool approximate_
 True if goal was not achieved, but an approximate solution was found.

Detailed Description

Abstract definition of goals. Will contain solutions, if found.

Definition at line 61 of file Goal.h.


Member Function Documentation

template<class T >
T* ompl::base::Goal::as ( void  ) [inline]

Cast this instance to a desired type.

Make sure the type we are casting to is indeed a goal

Definition at line 75 of file Goal.h.

template<class T >
const T* ompl::base::Goal::as ( void  ) const [inline]

Cast this instance to a desired type.

Make sure the type we are casting to is indeed a goal

Definition at line 85 of file Goal.h.

const PathPtr& ompl::base::Goal::getSolutionPath ( void  ) const [inline]

Return the found solution path.

This will need to be casted into the specialization computed by the planner

Definition at line 182 of file Goal.h.

bool ompl::base::Goal::isSatisfied ( const State st,
double *  distance 
) const [virtual]

Return true if the state satisfies the goal constraints and compute the distance between the state given as argument and the goal (even if the goal is not satisfied). This distance can be an approximation. It can even be set to a constant, if such a computation is not possible.

Parameters:
stthe state to check for validity
distancelocation at which distance to goal will be stored
Note:
The default implementation sets the distance to a constant.
If this function returns true, isStartGoalPairValid() need not be called.

Reimplemented in ompl::base::GoalRegion.

Definition at line 46 of file Goal.cpp.

bool ompl::base::Goal::isSatisfied ( const State st,
double  pathLength,
double *  distance 
) const

Return true if the state satisfies the goal constraints and the path length is less than the desired maximum length. This call also computes the distance between the state given as argument and the goal.

Parameters:
stthe state to check for validity
pathLengththe length of the path that leads to st
distancelocation at which distance to goal will be stored

Definition at line 53 of file Goal.cpp.


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