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

Definition of a problem to be solved. This includes the start state(s) for the system and a goal specification. More...

#include <ProblemDefinition.h>

List of all members.

Public Member Functions

 ProblemDefinition (const SpaceInformationPtr &si)
 Create a problem definition given the SpaceInformation it is part of.
void addStartState (const State *state)
 Add a start state. The state is copied.
void addStartState (const ScopedState<> &state)
 Add a start state. The state is copied.
bool hasStartState (const State *state, unsigned int *startIndex=NULL)
 Check whether a specified starting state is already included in the problem definition and optionally return the index of that starting state.
void clearStartStates (void)
 Clear all start states (memory is freed)
unsigned int getStartStateCount (void) const
 Returns the number of start states.
const StategetStartState (unsigned int index) const
 Returns a specific start state.
StategetStartState (unsigned int index)
 Returns a specific start state.
void setGoal (const GoalPtr &goal)
 Set the goal.
void clearGoal (void)
 Clear the goal. Memory is freed.
const GoalPtrgetGoal (void) const
 Return the current goal.
void getInputStates (std::vector< const State * > &states) const
 Get all the input states. This includes start states and states that are part of goal regions that can be casted as ompl::base::GoalState or ompl::base::GoalStates.
void setStartAndGoalStates (const State *start, const State *goal, const double threshold=std::numeric_limits< double >::epsilon())
 In the simplest case possible, we have a single starting state and a single goal state.
void setGoalState (const State *goal, const double threshold=std::numeric_limits< double >::epsilon())
 A simple form of setting the goal. This is called by setStartAndGoalStates(). A more general form is setGoal()
void setStartAndGoalStates (const ScopedState<> &start, const ScopedState<> &goal, const double threshold=std::numeric_limits< double >::epsilon())
 In the simplest case possible, we have a single starting state and a single goal state.
void setGoalState (const ScopedState<> &goal, const double threshold=std::numeric_limits< double >::epsilon())
 A simple form of setting the goal. This is called by setStartAndGoalStates(). A more general form is setGoal()
bool isTrivial (unsigned int *startIndex=NULL, double *distance=NULL) const
 A problem is trivial if a given starting state already in the goal region, so we need no motion planning. startID will be set to the index of the starting state that satisfies the goal. The distance to the goal can optionally be returned as well.
PathPtr isStraightLinePathValid (void) const
 Check if a straight line path is valid. If it is, return an instance of a path that represents the straight line.
bool fixInvalidInputStates (double distStart, double distGoal, unsigned int attempts)
 Many times the start or goal state will barely touch an obstacle. In this case, we may want to automatically find a nearby state that is valid so motion planning can be performed. This function enables this behaviour. The allowed distance for both start and goal states is specified. The number of attempts is also specified. Returns true if all states are valid after completion.
void print (std::ostream &out=std::cout) const
 Print information about the start and goal states.

Protected Member Functions

bool fixInvalidInputState (State *state, double dist, bool start, unsigned int attempts)
 Helper function for fixInvalidInputStates(). Attempts to fix an individual state.

Protected Attributes

SpaceInformationPtr si_
 The space information this problem definition is for.
std::vector< State * > startStates_
 The set of start states.
GoalPtr goal_
 The goal representation.
msg::Interface msg_
 Interface for console output.

Detailed Description

Definition of a problem to be solved. This includes the start state(s) for the system and a goal specification.

Definition at line 67 of file ProblemDefinition.h.


Member Function Documentation

void ompl::base::ProblemDefinition::addStartState ( const ScopedState<> &  state) [inline]

Add a start state. The state is copied.

Definition at line 88 of file ProblemDefinition.h.

State* ompl::base::ProblemDefinition::getStartState ( unsigned int  index) [inline]

Returns a specific start state.

Definition at line 119 of file ProblemDefinition.h.

Check if a straight line path is valid. If it is, return an instance of a path that represents the straight line.

Note:
When planning under geometric constraints, this works only if the goal region can be sampled. If the goal region cannot be sampled, this call is equivalent to calling isTrivial()
When planning under differential constraints, the system is propagated forward in time using the null control.

Definition at line 153 of file ProblemDefinition.cpp.

void ompl::base::ProblemDefinition::setGoalState ( const ScopedState<> &  goal,
const double  threshold = std::numeric_limits<double>::epsilon() 
) [inline]

A simple form of setting the goal. This is called by setStartAndGoalStates(). A more general form is setGoal()

Definition at line 167 of file ProblemDefinition.h.

void ompl::base::ProblemDefinition::setStartAndGoalStates ( const State start,
const State goal,
const double  threshold = std::numeric_limits<double>::epsilon() 
)

In the simplest case possible, we have a single starting state and a single goal state.

This function simply configures the problem definition using these states (performs the needed calls to addStartState(), creates an instance of ompl::base::GoalState and calls setGoal() on it.

Definition at line 44 of file ProblemDefinition.cpp.

void ompl::base::ProblemDefinition::setStartAndGoalStates ( const ScopedState<> &  start,
const ScopedState<> &  goal,
const double  threshold = std::numeric_limits<double>::epsilon() 
) [inline]

In the simplest case possible, we have a single starting state and a single goal state.

This function simply configures the problem definition using these states (performs the needed calls to addStartState(), creates an instance of ompl::base::GoalState and calls setGoal() on it.

Definition at line 161 of file ProblemDefinition.h.


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