Go to the documentation of this file.
1 #pragma once
3 #include <Eigen/Dense>
5 template <typename T>
8 class IKoptions {
9  private:
10  RigidBodyTree<double> *robot_;
11  int nq_;
12  Eigen::MatrixXd Q_;
13  Eigen::MatrixXd Qa_;
14  Eigen::MatrixXd Qv_;
15  bool debug_mode_;
16  bool sequentialSeedFlag_;
17  double SNOPT_MajorFeasibilityTolerance_;
18  int SNOPT_MajorIterationsLimit_;
19  int SNOPT_IterationsLimit_;
20  int SNOPT_SuperbasicsLimit_;
21  double SNOPT_MajorOptimalityTolerance_;
22  Eigen::RowVectorXd additional_tSamples_;
23  bool fixInitialState_;
24  Eigen::VectorXd q0_lb_;
25  Eigen::VectorXd q0_ub_;
26  Eigen::VectorXd qd0_lb_;
27  Eigen::VectorXd qd0_ub_;
28  Eigen::VectorXd qdf_lb_;
29  Eigen::VectorXd qdf_ub_;
31  protected:
34  public:
35  explicit IKoptions(RigidBodyTree<double> *robot);
36  IKoptions(const IKoptions &rhs);
37  ~IKoptions(void);
40  /**
41  * Sets the quadratic cost matrix Q where the cost
42  * for the optimization is formulated as q_err' Q q_err,
43  * where q_err = q - q_nominal
44  */
45  void setQ(const Eigen::MatrixXd &Q);
46  void setQa(const Eigen::MatrixXd &Qa);
47  void setQv(const Eigen::MatrixXd &Qv);
48  void setDebug(bool flag);
49  void setSequentialSeedFlag(bool flag);
50  void setMajorOptimalityTolerance(double tol);
51  void setMajorFeasibilityTolerance(double tol);
52  void setSuperbasicsLimit(int limit);
53  void setMajorIterationsLimit(int limit);
54  void setIterationsLimit(int limit);
55  void setFixInitialState(bool flag);
56  void setq0(const Eigen::VectorXd &lb, const Eigen::VectorXd &ub);
57  void setqd0(const Eigen::VectorXd &lb, const Eigen::VectorXd &ub);
58  void setqdf(const Eigen::VectorXd &lb, const Eigen::VectorXd &ub);
59  void setAdditionaltSamples(const Eigen::RowVectorXd &t_samples);
60  void updateRobot(RigidBodyTree<double> *new_robot);
61  // TODO(#2274) Fix NOLINTNEXTLINE(runtime/references).
62  void getQ(Eigen::MatrixXd &Q) const;
63  // TODO(#2274) Fix NOLINTNEXTLINE(runtime/references).
64  void getQa(Eigen::MatrixXd &Qa) const;
65  // TODO(#2274) Fix NOLINTNEXTLINE(runtime/references).
66  void getQv(Eigen::MatrixXd &Qv) const;
67  bool getDebug() const;
68  bool getSequentialSeedFlag() const;
69  double getMajorOptimalityTolerance() const;
70  double getMajorFeasibilityTolerance() const;
71  int getSuperbasicsLimit() const;
72  int getMajorIterationsLimit() const;
73  int getIterationsLimit() const;
74  // TODO(#2274) Fix NOLINTNEXTLINE(runtime/references).
75  void getAdditionaltSamples(Eigen::RowVectorXd &additional_tSamples) const;
76  bool getFixInitialState() const;
77  // TODO(#2274) Fix NOLINTNEXTLINE(runtime/references).
78  void getq0(Eigen::VectorXd &lb, Eigen::VectorXd &ub) const;
79  // TODO(#2274) Fix NOLINTNEXTLINE(runtime/references).
80  void getqd0(Eigen::VectorXd &lb, Eigen::VectorXd &ub) const;
81  // TODO(#2274) Fix NOLINTNEXTLINE(runtime/references).
82  void getqdf(Eigen::VectorXd &lb, Eigen::VectorXd &ub) const;
83 };
void setSuperbasicsLimit(int limit)
Definition: ik_options.cc:151
void getQv(Eigen::MatrixXd &Qv) const
Definition: ik_options.cc:115
void getAdditionaltSamples(Eigen::RowVectorXd &additional_tSamples) const
Definition: ik_options.cc:263
IKoptions(RigidBodyTree< double > *robot)
Definition: ik_options.cc:15
void setQ(const Eigen::MatrixXd &Q)
Sets the quadratic cost matrix Q where the cost for the optimization is formulated as q_err&#39; Q q_err...
Definition: ik_options.cc:70
void updateRobot(RigidBodyTree< double > *new_robot)
Definition: ik_options.cc:267
int getIterationsLimit() const
Definition: ik_options.cc:180
void setQv(const Eigen::MatrixXd &Qv)
Definition: ik_options.cc:98
void setIterationsLimit(int limit)
Definition: ik_options.cc:173
void getqd0(Eigen::VectorXd &lb, Eigen::VectorXd &ub) const
Definition: ik_options.cc:225
void setqd0(const Eigen::VectorXd &lb, const Eigen::VectorXd &ub)
Definition: ik_options.cc:212
bool getSequentialSeedFlag() const
Definition: ik_options.cc:125
void getQ(Eigen::MatrixXd &Q) const
Definition: ik_options.cc:111
RigidBodyTree< double > * getRobotPtr() const
Definition: ik_options.cc:68
void setq0(const Eigen::VectorXd &lb, const Eigen::VectorXd &ub)
Definition: ik_options.cc:188
void setFixInitialState(bool flag)
Definition: ik_options.cc:184
void getQa(Eigen::MatrixXd &Qa) const
Definition: ik_options.cc:113
int getSuperbasicsLimit() const
Definition: ik_options.cc:158
void setqdf(const Eigen::VectorXd &lb, const Eigen::VectorXd &ub)
Definition: ik_options.cc:230
void setDebug(bool flag)
Definition: ik_options.cc:117
void setQa(const Eigen::MatrixXd &Qa)
Definition: ik_options.cc:84
void setMajorFeasibilityTolerance(double tol)
Definition: ik_options.cc:140
void setMajorOptimalityTolerance(double tol)
Definition: ik_options.cc:129
bool getFixInitialState() const
Definition: ik_options.cc:186
void getq0(Eigen::VectorXd &lb, Eigen::VectorXd &ub) const
Definition: ik_options.cc:207
void setAdditionaltSamples(const Eigen::RowVectorXd &t_samples)
Definition: ik_options.cc:248
bool getDebug() const
Definition: ik_options.cc:119
Definition: ik_options.h:8
double getMajorFeasibilityTolerance() const
Definition: ik_options.cc:147
void setSequentialSeedFlag(bool flag)
Definition: ik_options.cc:121
Definition: ik_options.cc:43
double getMajorOptimalityTolerance() const
Definition: ik_options.cc:136
void getqdf(Eigen::VectorXd &lb, Eigen::VectorXd &ub) const
Definition: ik_options.cc:243
int getMajorIterationsLimit() const
Definition: ik_options.cc:169
Maintains a vector of RigidBody objects that are arranged into a kinematic tree via DrakeJoint object...
Definition: ik_options.h:6
void setMajorIterationsLimit(int limit)
Definition: ik_options.cc:162
void setDefaultParams(RigidBodyTree< double > *robot)
Definition: ik_options.cc:45