Go to the documentation of this file.00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 #ifndef APPROX_ESC_2D_H_
00018 #define APPROX_ESC_2D_H_
00019 
00020 #include "esc_common/esc.h"
00021 #include <vector>
00022 #include <eigen3/Eigen/Dense>
00023 #include "stdio.h"
00024 class ApproxESC2D:public ESC{
00025 protected:
00026         int data_size_,sampling_;
00027         double k_grad_, init_vel_;
00028         bool initialized_;
00029         int sample_, ptr_;
00030         Eigen::MatrixXf states_;
00031         Eigen::VectorXf obj_vals_;
00032         Eigen::VectorXf vel_ref_,state_curr_;
00033 public:
00034         ApproxESC2D();
00035         ApproxESC2D(int data_size, double k_grad, double init_vel, int sampling = 1);
00036         void init(int data_size, double k_grad, double init_vel, int sampling = 1);
00037         std::vector<double>  step(std::vector<double> state, double obj_val);
00038         inputType getInputType();
00039         outputType getOutputType();
00040         std::vector<double> monitor();
00041         std::vector<std::string> monitorNames();
00042         void reset();
00043 
00044 };
00045 
00046 
00047 #endif