1 #ifndef GAUSSIANPROCESS_H 2 #define GAUSSIANPROCESS_H 6 #include "smlt/gaussianProcess.hpp" 7 #include "smlt/bayesianOptimization.hpp" 8 #include "smlt/smltUtilities.hpp" 26 void getDesiredValues(
double time, Eigen::MatrixXd& desiredValues, Eigen::VectorXd& variance);
28 void addWaypoint(
const Eigen::VectorXd newWaypoint,
const double waypointTime);
30 void addWaypoint(
const Eigen::VectorXd newWaypoint,
const double waypointTime,
const Eigen::VectorXi& dofToOpt,
const bool useForMean=
true,
const bool useForVar=
true,
const bool useForOpt=
true);
45 Eigen::VectorXd
getBoptVariables(
const int extraPointsToAdd=0, std::vector<Eigen::VectorXi> dofToOptVec = std::vector<Eigen::VectorXi>() );
69 smlt::gaussianProcess* meanGP;
70 smlt::gaussianProcess* varianceGP;
75 Eigen::VectorXd meanKernelCenters;
76 Eigen::VectorXd varKernelCenters;
78 Eigen::MatrixXd meanKernelTrainingData;
79 Eigen::MatrixXd varKernelTrainingData;
81 Eigen::MatrixXd originalWaypoints;
82 Eigen::VectorXd timeline;
85 bool gpParametersAreSet();
86 void calculateGaussianProcessParameters();
88 void precalculateTrajectory(Eigen::MatrixXd& traj, Eigen::MatrixXd& variance, Eigen::VectorXd& timeline,
const double DT=0.01);
91 Eigen::VectorXd maxCovariance;
92 double meanLengthParameter;
93 double varLengthParameter;
95 Eigen::VectorXd posOld;
96 Eigen::VectorXd velOld;
98 double t0, t0_variance;
99 bool varianceStartTrigger;
104 int numberOfOptimizationWaypoints;
105 bool boptVariablesSet;
111 boolVector isMeanWaypoint, isVarWaypoint, isOptWaypoint;
112 std::vector<Eigen::VectorXi> dofToOptimize;
121 #endif // GAUSSIANPROCESS_H
Eigen::VectorXd getMaxCovarianceVector()
bool setVarianceWaypoints(boolVector &bVarVec)
Eigen::VectorXd getBoptVariables(const int extraPointsToAdd=0, std::vector< Eigen::VectorXi > dofToOptVec=std::vector< Eigen::VectorXi >())
double getVarianceLengthParameter()
Eigen::MatrixXd getDesiredValues(double time)
Eigen::VectorXd getBoptSearchSpaceMinBound()
virtual void initializeTrajectory()
#define DEFINE_CLASS_POINTER_TYPEDEFS(Class)
bool setOptimizationWaypoints(boolVector &bOptVec)
void addWaypoint(const Eigen::VectorXd newWaypoint, const double waypointTime)
Optimization-based Robot Controller namespace. a library of classes to write and solve optimization p...
Eigen::VectorXd getVariance(double time)
bool setMeanWaypoints(boolVector &bMeanVec)
void saveTrajectoryToFile(const std::string dirPath="./")
void saveWaypointDataToFile(const std::string dirPath="./")
std::vector< bool > boolVector
Eigen::VectorXd getBoptSearchSpaceMaxBound()
bool setDofToOptimize(std::vector< Eigen::VectorXi > &dofToOptVec)
Eigen::MatrixXd getWaypointData()
Eigen::MatrixXd getMeanGPData()
Eigen::MatrixXd getBoptCovarianceMatrix()
Eigen::MatrixXd getVarGPData()
bool setBoptVariables(const Eigen::VectorXd &newOptVariables)
void removeWaypoint(int index)