#include <problem.h>
Public Methods | |
Problem (Geom *geom, Model *model, string path) | |
Problem must be given any instance of Geom and any instance of Model from each of their class hierarchies. More... | |
virtual | ~Problem () |
Empty destructor. More... | |
void | SetGeom (Geom *geom) |
Change the instance of Geom. More... | |
void | SetModel (Model *model) |
Change the instance of Model. More... | |
virtual list< MSLVector > | GetInputs (const MSLVector &x) |
Return a list of possible inputs, which may depend on state. More... | |
virtual list< MSLVector > | GetInputs () |
Return a list of possible inputs. More... | |
virtual MSLVector | Integrate (const MSLVector &x, const MSLVector &u, const double &deltat) |
Perform integration from state x, using input u, over time deltat. More... | |
virtual MSLVector | InterpolateState (const MSLVector &x1, const MSLVector &x2, const double &a) |
Linearly interpolate two states while respecting topology. More... | |
virtual double | Metric (const MSLVector &x1, const MSLVector &x2) |
A distance metric defined in Model. More... | |
virtual MSLVector | StateToConfiguration (const MSLVector &x) |
A method that converts a Model state in to a Geom configuration. More... | |
virtual MSLVector | StateDifference (const MSLVector &x1, const MSLVector &x2) |
Compute a MSLVector based on x2-x1. In R^n, the states are simply subtracted to make the MSLVector. This method exists to make things work correctly for other state-space topologies. More... | |
virtual bool | Satisfied (const MSLVector &x) |
This takes the logical AND of CollisionFree from Geom, and Satisfied from Model. More... | |
virtual bool | CollisionFree (const MSLVector &q) |
The collision checker passed in from Geom. More... | |
virtual double | DistanceComp (const MSLVector &q) |
The distance computation algorithm from Geom. More... | |
virtual MSLVector | ConfigurationDifference (const MSLVector &q1, const MSLVector &q2) |
Compute a MSLVector based on q2-q1. In R^n, the configurations are simply subtracted to make the MSLVector. This method exists to make things work correctly for other configuration-space topologies. More... | |
Public Attributes | |
string | FilePath |
The directory in which all files for a problem will be stored. More... | |
int | NumBodies |
The number of rigid bodies. More... | |
int | StateDim |
The dimenson of the state space. More... | |
int | InputDim |
The dimension of the input space. More... | |
int | GeomDim |
The dimension of the geometric model. More... | |
MSLVector | LowerState |
MSLVector of minimum values for each state variable. More... | |
MSLVector | UpperState |
MSLVector of maximum values for each state variable. More... | |
MSLVector | InitialState |
The starting state for a planner. More... | |
MSLVector | GoalState |
The goal state for a planner. More... | |
MSLVector | MaxDeviates |
Maximum displacement of geometry with respect to change in each variable. More... | |
Protected Attributes | |
Geom * | G |
Need to define a geometry for collision detection. More... | |
Model * | M |
xdot = f(x,u), integration technique, state bounds. More... |
This interface class contains protected instances of Geom and Model. Wrappers to methods from Geom provide collision detection and distance computation. Wrappers to methods from Model provide incremental simulation of a kinematic or dynamical system. It is expected a planner can get all (or nearly all) of the information it needs from Problem.
|
Problem must be given any instance of Geom and any instance of Model from each of their class hierarchies.
|
|
Empty destructor.
|
|
The collision checker passed in from Geom.
|
|
Compute a MSLVector based on q2-q1. In R^n, the configurations are simply subtracted to make the MSLVector. This method exists to make things work correctly for other configuration-space topologies.
|
|
The distance computation algorithm from Geom.
|
|
Return a list of possible inputs.
|
|
Return a list of possible inputs, which may depend on state.
|
|
Perform integration from state x, using input u, over time deltat.
|
|
Linearly interpolate two states while respecting topology. If a=0, then x1 is returned; if a=1, then x2 is returned. All intermediate values of $a \in [0,1]$ yield intermediate states. This method is defined by Model. |
|
A distance metric defined in Model.
|
|
This takes the logical AND of CollisionFree from Geom, and Satisfied from Model.
|
|
Change the instance of Geom.
|
|
Change the instance of Model.
|
|
Compute a MSLVector based on x2-x1. In R^n, the states are simply subtracted to make the MSLVector. This method exists to make things work correctly for other state-space topologies.
|
|
A method that converts a Model state in to a Geom configuration.
|
|
The directory in which all files for a problem will be stored.
|
|
Need to define a geometry for collision detection.
|
|
The dimension of the geometric model.
|
|
The goal state for a planner.
|
|
The starting state for a planner.
|
|
The dimension of the input space.
|
|
MSLVector of minimum values for each state variable.
|
|
xdot = f(x,u), integration technique, state bounds.
|
|
Maximum displacement of geometry with respect to change in each variable.
|
|
The number of rigid bodies.
|
|
The dimenson of the state space.
|
|
MSLVector of maximum values for each state variable.
|