trajopt
 All Classes Namespaces Files Functions Variables Typedefs Pages
o3.hpp
1 #pragma once
2 #include <openrave/openrave.h>
3 #include "trajopt/common.hpp"
4 #include "incremental_rb.hpp"
5 
6 
7 namespace trajopt {
8 
9 struct O3Helper {
13  OpenRAVE::KinBodyPtr m_body;
14  vector<IncrementalRBPtr> m_rbs;
15  VarArray m_orivars;
16  O3Helper(const OpenRAVE::KinBodyPtr body, const VarArray& vars);
17  void OptimizerCallback(OptProb*, DblVec& x);
18  void ConfigureOptimizer(Optimizer&);
19  void AddAngVelCosts(OptProb&, double coeff);
20 };
21 
22 
23 
24 struct AngVelCost: public Cost {
25  vector<IncrementalRBPtr> m_rbs;
26  VarArray m_r;
27  double m_coeff;
28 public:
29  AngVelCost(vector<IncrementalRBPtr> rbs, const VarArray& r, double coeff);
30  double value(const DblVec& x);
31  ConvexObjectivePtr convex(const DblVec& x, Model* model);
32 };
33 
34 
35 MatrixXd getW(const MatrixXd& qs, double dt);
36 
37 }