#include <model.h>
Inheritance diagram for Model::
Public Methods | |
Model (string path) | |
Empty constructor. More... | |
virtual | ~Model () |
Empty destructor. More... | |
virtual list<MSLVector> | GetInputs (const MSLVector &x) |
Return a list of inputs, which may depend on state. More... | |
virtual MSLVector | StateTransitionEquation (const MSLVector &x, const MSLVector &u)=0 |
The state transition equation, or equations of motion, xdot=f(x,u). More... | |
virtual bool | Satisfied (const MSLVector &x) |
Test whether global state-space constraints are satisfied. More... | |
virtual MSLVector | Integrate (const MSLVector &x, const MSLVector &u, const double &h)=0 |
Perform integration from state x, using input u, over time step h. More... | |
virtual MSLVector | LinearInterpolate (const MSLVector &x1, const MSLVector &x2, const double &a) |
Linearly interpolate two state while respecting topology. 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 MSLVector | StateToConfiguration (const MSLVector &x) |
A method that converts a Model state in to a Geom configuration. More... | |
virtual double | Metric (const MSLVector &x1, const MSLVector &x2) |
A distance metric, which is Euclidean in the base class. More... | |
virtual void | Partialf_x (const MSLVector &x, const MSLVector &u, MSLMatrix &m) |
Partial with respect to x of the state transition equation. More... | |
virtual void | Partialf_u (const MSLVector &x, const MSLVector &u, MSLMatrix &m) |
Partial with respect to u of the state transition equation. More... | |
virtual void | L (const MSLVector &x, const MSLVector &u, double &l) |
A cost or loss function, to be used in optimization problems. More... | |
virtual void | PartialL_x (const MSLVector &x, const MSLVector &u, MSLMatrix &m) |
Partial of the loss with respect to x. More... | |
virtual void | PartialL_u (const MSLVector &x, const MSLVector &u, MSLMatrix &m) |
Partial of the loss with respect to u. More... | |
virtual void | Phi (const MSLVector &x, const MSLVector &u, const MSLVector &goalstate, double &phi) |
The final-state cost or loss. More... | |
virtual void | PartialPhi_x (const MSLVector &x, const MSLVector &u, const MSLVector &goalstate, MSLMatrix &m) |
Partial of the final-state loss with respect to x. More... | |
virtual void | PartialPhi_t (const MSLVector &x, const MSLVector &u, const MSLVector &goalstate, MSLMatrix &m) |
Partial of the final-state loss with respect to u. More... | |
virtual void | Psi (const MSLVector &x, const MSLVector &goalstate, MSLVector &psi) |
An error MSLVector that compares a goal state to a given state. More... | |
virtual void | PartialPsi_x (const MSLVector &x, const MSLVector &u, MSLMatrix &m) |
Partial of the error MSLVector with respect to x. More... | |
virtual void | PartialPsi_t (const MSLVector &x, const MSLVector &u, MSLMatrix &m) |
Partial of the error MSLVector with respect to time. More... | |
Public Attributes | |
string | FilePath |
This file path is used for all file reads. More... | |
MSLVector | LowerState |
MSLVector of minimum values for each state variable. More... | |
MSLVector | UpperState |
MSLVector of maximum values for each state variable. More... | |
MSLVector | LowerInput |
MSLVector of minimum values for each input variable. More... | |
MSLVector | UpperInput |
MSLVector of maximum values for each input variable. More... | |
int | StateDim |
The dimension of the state space. More... | |
int | InputDim |
The dimension of the input space. More... | |
Protected Methods | |
MSLVector | RungeKuttaIntegrate (const MSLVector &x, const MSLVector &u, const double &h) |
Integrate xdot using 4th-order Runge-Kutta. More... | |
MSLVector | EulerIntegrate (const MSLVector &x, const MSLVector &u, const double &h) |
Integrate xdot using Euler integration. More... | |
Protected Attributes | |
double | ModelDeltaT |
The time interval to use for numerical integration (affects accuracy). More... | |
list<MSLVector> | Inputs |
The complete set of inputs. More... |
The Model classes contain incremental simulators that model the kinematics and dynamics of a variety of mechanical systems. The methods allow planning algorithms to compute the future system state, given the current state, an interval of time, and a control input applied over that interval. (The planning algorithms select the appropriate inputs using this information.) Using object-oriented class derivations, a wide variety of simulators can be included.
|
Empty constructor.
|
|
Empty destructor.
|
|
Integrate xdot using Euler integration.
|
|
Return a list of inputs, which may depend on state.
|
|
Perform integration from state x, using input u, over time step h.
Reimplemented in Model2DPoint, Model2DPointCar, Model2DRigid, Model2DRigidCarSmooth, Model2DRigidDyncar, Model2DRigidLander, Model3DRigid, ModelCarDynRollover, Model1D, ModelLinear, ModelND, ModelNintegrator, and Model3DRigidHelical. |
|
A cost or loss function, to be used in optimization problems.
|
|
Linearly interpolate two state 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. Reimplemented in Model2DRigid, Model2DRigidDyncar, Model2DRigidMulti, Model2DRigidChain, Model3DRigid, Model3DRigidMulti, Model3DRigidChain, Model3DRigidTree, and ModelCarDynSmoothRollover. |
|
A distance metric, which is Euclidean in the base class.
Reimplemented in Model2DPoint, Model2DPointCar, Model2DRigid, Model2DRigidCarSmooth, Model2DRigidCarSmoothTrailer, Model2DRigidCarSmooth2Trailers, Model2DRigidCarSmooth3Trailers, Model2DRigidDyncar, Model2DRigidLander, Model2DRigidMulti, Model2DRigidChain, Model3DRigid, Model3DRigidMulti, Model3DRigidChain, Model3DRigidTree, ModelCarDyn, ModelCarDynNtire, ModelCarDynRollover, ModelCarDynSmoothRollover, and Model1D. |
|
Partial of the loss with respect to u.
|
|
Partial of the loss with respect to x.
|
|
Partial of the final-state loss with respect to u.
|
|
Partial of the final-state loss with respect to x.
|
|
Partial of the error MSLVector with respect to time.
|
|
Partial of the error MSLVector with respect to x.
|
|
Partial with respect to u of the state transition equation.
|
|
Partial with respect to x of the state transition equation.
|
|
The final-state cost or loss.
|
|
An error MSLVector that compares a goal state to a given state.
|
|
Integrate xdot using 4th-order Runge-Kutta.
|
|
Test whether global state-space constraints are satisfied.
Reimplemented in Model2DRigidCarSmooth, Model2DRigidCarSmoothTrailer, Model2DRigidCarSmooth2Trailers, Model2DRigidCarSmooth3Trailers, Model2DRigidChain, Model3DRigidChain, Model3DRigidTree, Model3DDyn, ModelCar, and ModelCarDynRollover. |
|
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.
Reimplemented in Model2D, Model2DRigid, Model2DRigidCarSmooth, Model2DRigidCarSmoothTrailer, Model2DRigidCarSmooth2Trailers, Model2DRigidCarSmooth3Trailers, Model2DRigidDyncar, Model2DRigidLander, Model2DRigidMulti, Model2DRigidChain, Model3DRigidChain, Model3DRigidTree, ModelCar, ModelCarSmooth, ModelCarDyn, ModelCarDynNtire, ModelCarDynRollover, ModelCarDynSmoothRollover, Model1D, ModelLinear, ModelND, and ModelNintegrator. |
|
The state transition equation, or equations of motion, xdot=f(x,u).
Reimplemented in Model2DPoint, Model2DPointCar, Model2DRigid, Model2DRigidCar, Model2DRigidCarSmooth, Model2DRigidCarSmoothTrailer, Model2DRigidCarSmooth2Trailers, Model2DRigidCarSmooth3Trailers, Model2DRigidDyncar, Model2DRigidDyncarNtire, Model2DRigidLander, Model2DRigidChain, Model3DRigid, Model3DRigidChain, Model3DRigidTree, Model3DDyn, ModelCarDynRollover, ModelCarDynSmoothRollover, Model1D, ModelLinear, ModelND, ModelNintegrator, and Model3DRigidHelical. |
|
This file path is used for all file reads.
|
|
The dimension of the input space.
|
|
The complete set of inputs.
|
|
MSLVector of minimum values for each input variable.
|
|
MSLVector of minimum values for each state variable.
|
|
The time interval to use for numerical integration (affects accuracy).
|
|
The dimension of the state space.
|
|
MSLVector of maximum values for each input variable.
|
|
MSLVector of maximum values for each state variable.
|