types.h
Go to the documentation of this file.
00001 #ifndef _TYPES_H_
00002 #define _TYPES_H_
00003 
00004 #include <Eigen/Core>
00005 #include <vector>
00006 #include <iostream>
00007 
00008 #define LOG(X) std::cout << X << std::endl;
00009 
00010 namespace MPC {
00011 
00012         typedef Eigen::MatrixXf MatrixT;
00013         typedef Eigen::VectorXf VectorT;
00014         
00015         struct DDPParams {
00016                 float zMin;
00017                 float lamInit;
00018                 float lambdaFactor;
00019                 float lambdaMax;
00020                 float lambdaMin;
00021                 float tolFun;
00022                 float tolGrad;
00023                 float dlamInit;
00024                 
00025                 DDPParams() {
00026                         zMin =  0.2;
00027                         lamInit = 1;
00028                         lambdaFactor = 1.2;
00029                         lambdaMax = 1e10;
00030                         lambdaMin = 1e-6;
00031                         tolFun = 1e-9;
00032                         tolGrad = 1e-6;
00033                         dlamInit = 1;
00034                 }
00035                 
00036         };
00037         
00038         struct Trajectory {
00039                 EIGEN_MAKE_ALIGNED_OPERATOR_NEW;
00040 
00041                 MatrixT x;
00042                 MatrixT u;
00043                 VectorT cost;
00044                 bool started;
00045 
00046                 Trajectory() {
00047                         started = false;
00048                 }
00049         };
00050 
00051         struct Deriv {
00052                 EIGEN_MAKE_ALIGNED_OPERATOR_NEW;
00053 
00054                 MatrixT fx;
00055                 MatrixT fu;
00056                 std::vector<MatrixT> fxx;
00057                 std::vector<MatrixT> fxu;
00058                 std::vector<MatrixT> fuu;
00059                 VectorT cx;
00060                 VectorT cu;
00061                 MatrixT cxx;
00062                 MatrixT cxu;
00063                 MatrixT cuu;
00064         };
00065         
00066         struct LocalValueFunction {
00067                 EIGEN_MAKE_ALIGNED_OPERATOR_NEW;
00068 
00069                 MatrixT V; // TODO: we do not actually compute this right now do we ?
00070                 MatrixT Vx;
00071                 std::vector<MatrixT> Vxx;
00072                 VectorT dV;
00073 
00074                 MatrixT l;
00075                 std::vector<MatrixT> L;
00076         };
00077 
00078 
00079         typedef std::vector<Deriv> TrajectoryDeriv;
00080 
00081         typedef std::function<float(const VectorT &, const VectorT &)> CostFunction;
00082         typedef std::function<void(const VectorT &, const VectorT &, Deriv &)> CostFunctionD;
00083         typedef std::function<void(const VectorT &, const VectorT &, VectorT &)> Dynamics;
00084         typedef std::function<void(const VectorT &, const VectorT &, Deriv &)> DynamicsD;
00085 
00086 }
00087 
00088 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Properties Friends Defines


mpc
Author(s): Jost Tobias Springenberg
autogenerated on Wed Dec 26 2012 16:21:14