trajopt
 All Classes Namespaces Files Functions Variables Typedefs Pages
trajectory_costs.hpp
1 #pragma once
2 
7 #include "macros.h"
8 #include "sco/modeling.hpp"
9 #include "trajopt/common.hpp"
10 
11 namespace trajopt {
12 
13 class TRAJOPT_API JointPosCost : public Cost {
14 public:
15  JointPosCost(const VarVector& vars, const VectorXd& vals, const VectorXd& coeffs);
16  virtual ConvexObjectivePtr convex(const vector<double>& x, Model* model);
17  virtual double value(const vector<double>&);
18 private:
19  VarVector vars_;
20  VectorXd vals_, coeffs_;
21  QuadExpr expr_;
22 };
23 
24 class TRAJOPT_API JointVelCost : public Cost {
25 public:
26  JointVelCost(const VarArray& traj, const VectorXd& coeffs);
27  virtual ConvexObjectivePtr convex(const vector<double>& x, Model* model);
28  virtual double value(const vector<double>&);
29 private:
30  VarArray vars_;
31  VectorXd coeffs_;
32  QuadExpr expr_;
33 };
34 
35 class TRAJOPT_API JointAccCost : public Cost {
36 public:
37  JointAccCost(const VarArray& traj, const VectorXd& coeffs);
38  virtual ConvexObjectivePtr convex(const vector<double>& x, Model* model);
39  virtual double value(const vector<double>&);
40 private:
41  VarArray vars_;
42  VectorXd coeffs_;
43  QuadExpr expr_;
44 };
45 
46 }
47