Abstract definition of goals. Will contain solutions, if found. More...
#include <Goal.h>
Public Member Functions | |
template<class T > | |
const T * | as (void) const |
Cast this instance to a desired type. | |
template<class T > | |
T * | as (void) |
Cast this instance to a desired type. | |
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. | |
double | getMaximumPathLength (void) const |
Get the maximum length allowed for a solution path. | |
const PathPtr & | getSolutionPath (void) const |
Return the found solution path. | |
const SpaceInformationPtr & | getSpaceInformation (void) const |
Get the space information this goal is for. | |
Goal (const SpaceInformationPtr &si) | |
Constructor. The goal must always know the space information it is part of. | |
bool | isAchieved (void) const |
Returns true if a solution path has been found (could be approximate). | |
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). | |
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 | 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. | |
virtual bool | isSatisfied (const State *st) const =0 |
Return true if the state satisfies the goal constraints. | |
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. | |
virtual void | print (std::ostream &out=std::cout) const |
Print information about the goal. | |
void | setDifference (double difference) |
Set the difference between the found solution path and the desired 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. | |
void | setSolutionPath (const PathPtr &path, bool approximate=false) |
Update the solution path. If a previous solution path exists, it is deleted. | |
virtual | ~Goal (void) |
Destructor. Clears the solution as well. | |
Protected Attributes | |
bool | approximate_ |
True if goal was not achieved, but an approximate solution was found. | |
double | difference_ |
The achieved difference between the found solution and the desired goal. | |
double | maximumPathLength_ |
The maximum length allowed for the solution path. | |
PathPtr | path_ |
Solution path, if found. | |
SpaceInformationPtr | si_ |
The space information for this goal. |
Abstract definition of goals. Will contain solutions, if found.
Definition at line 52 of file Goal.h.
ompl::base::Goal::Goal | ( | const SpaceInformationPtr & | si | ) |
Constructor. The goal must always know the space information it is part of.
virtual ompl::base::Goal::~Goal | ( | void | ) | [inline, virtual] |
const T* ompl::base::Goal::as | ( | void | ) | const [inline] |
T* ompl::base::Goal::as | ( | void | ) | [inline] |
void ompl::base::Goal::clearSolutionPath | ( | void | ) | [inline] |
double ompl::base::Goal::getDifference | ( | void | ) | const [inline] |
double ompl::base::Goal::getMaximumPathLength | ( | void | ) | const [inline] |
const PathPtr& ompl::base::Goal::getSolutionPath | ( | void | ) | const [inline] |
const SpaceInformationPtr& ompl::base::Goal::getSpaceInformation | ( | void | ) | const [inline] |
bool ompl::base::Goal::isAchieved | ( | void | ) | const [inline] |
bool ompl::base::Goal::isApproximate | ( | void | ) | const [inline] |
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.
st | the state to check for validity | |
pathLength | the length of the path that leads to st | |
distance | location at which distance to goal will be stored |
virtual 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.
st | the state to check for validity | |
distance | location at which distance to goal will be stored |
Reimplemented in ompl::base::GoalRegion.
virtual bool ompl::base::Goal::isSatisfied | ( | const State * | st | ) | const [pure virtual] |
Return true if the state satisfies the goal constraints.
Implemented in ompl::base::GoalRegion.
virtual bool ompl::base::Goal::isStartGoalPairValid | ( | const State * | , | |
const State * | ||||
) | const [inline, virtual] |
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.
virtual void ompl::base::Goal::print | ( | std::ostream & | out = std::cout |
) | const [inline, virtual] |
Print information about the goal.
Reimplemented in ompl::base::GoalRegion, ompl::base::GoalState, and ompl::base::GoalStates.
void ompl::base::Goal::setDifference | ( | double | difference | ) | [inline] |
void ompl::base::Goal::setMaximumPathLength | ( | double | maximumPathLength | ) | [inline] |
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.
void ompl::base::Goal::setSolutionPath | ( | const PathPtr & | path, | |
bool | approximate = false | |||
) | [inline] |
bool ompl::base::Goal::approximate_ [protected] |
double ompl::base::Goal::difference_ [protected] |
double ompl::base::Goal::maximumPathLength_ [protected] |
PathPtr ompl::base::Goal::path_ [protected] |
SpaceInformationPtr ompl::base::Goal::si_ [protected] |