Drake
ik_options.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <Eigen/Dense>
4 
5 template <typename T>
7 
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_;
30 
31  protected:
33 
34  public:
35  explicit IKoptions(RigidBodyTree<double> *robot);
36  IKoptions(const IKoptions &rhs);
37  ~IKoptions(void);
39  void setQ(const Eigen::MatrixXd &Q);
40  void setQa(const Eigen::MatrixXd &Qa);
41  void setQv(const Eigen::MatrixXd &Qv);
42  void setDebug(bool flag);
43  void setSequentialSeedFlag(bool flag);
44  void setMajorOptimalityTolerance(double tol);
45  void setMajorFeasibilityTolerance(double tol);
46  void setSuperbasicsLimit(int limit);
47  void setMajorIterationsLimit(int limit);
48  void setIterationsLimit(int limit);
49  void setFixInitialState(bool flag);
50  void setq0(const Eigen::VectorXd &lb, const Eigen::VectorXd &ub);
51  void setqd0(const Eigen::VectorXd &lb, const Eigen::VectorXd &ub);
52  void setqdf(const Eigen::VectorXd &lb, const Eigen::VectorXd &ub);
53  void setAdditionaltSamples(const Eigen::RowVectorXd &t_samples);
54  void updateRobot(RigidBodyTree<double> *new_robot);
55  // TODO(#2274) Fix NOLINTNEXTLINE(runtime/references).
56  void getQ(Eigen::MatrixXd &Q) const;
57  // TODO(#2274) Fix NOLINTNEXTLINE(runtime/references).
58  void getQa(Eigen::MatrixXd &Qa) const;
59  // TODO(#2274) Fix NOLINTNEXTLINE(runtime/references).
60  void getQv(Eigen::MatrixXd &Qv) const;
61  bool getDebug() const;
62  bool getSequentialSeedFlag() const;
63  double getMajorOptimalityTolerance() const;
64  double getMajorFeasibilityTolerance() const;
65  int getSuperbasicsLimit() const;
66  int getMajorIterationsLimit() const;
67  int getIterationsLimit() const;
68  // TODO(#2274) Fix NOLINTNEXTLINE(runtime/references).
69  void getAdditionaltSamples(Eigen::RowVectorXd &additional_tSamples) const;
70  bool getFixInitialState() const;
71  // TODO(#2274) Fix NOLINTNEXTLINE(runtime/references).
72  void getq0(Eigen::VectorXd &lb, Eigen::VectorXd &ub) const;
73  // TODO(#2274) Fix NOLINTNEXTLINE(runtime/references).
74  void getqd0(Eigen::VectorXd &lb, Eigen::VectorXd &ub) const;
75  // TODO(#2274) Fix NOLINTNEXTLINE(runtime/references).
76  void getqdf(Eigen::VectorXd &lb, Eigen::VectorXd &ub) const;
77 };
void getqd0(Eigen::VectorXd &lb, Eigen::VectorXd &ub) const
Definition: ik_options.cc:225
void setSuperbasicsLimit(int limit)
Definition: ik_options.cc:151
IKoptions(RigidBodyTree< double > *robot)
Definition: ik_options.cc:15
void setQ(const Eigen::MatrixXd &Q)
Definition: ik_options.cc:70
int getSuperbasicsLimit() const
Definition: ik_options.cc:158
void updateRobot(RigidBodyTree< double > *new_robot)
Definition: ik_options.cc:267
double getMajorOptimalityTolerance() const
Definition: ik_options.cc:136
void setQv(const Eigen::MatrixXd &Qv)
Definition: ik_options.cc:98
void setIterationsLimit(int limit)
Definition: ik_options.cc:173
bool getFixInitialState() const
Definition: ik_options.cc:186
void setqd0(const Eigen::VectorXd &lb, const Eigen::VectorXd &ub)
Definition: ik_options.cc:212
void getQv(Eigen::MatrixXd &Qv) const
Definition: ik_options.cc:115
void setq0(const Eigen::VectorXd &lb, const Eigen::VectorXd &ub)
Definition: ik_options.cc:188
void setFixInitialState(bool flag)
Definition: ik_options.cc:184
bool getSequentialSeedFlag() const
Definition: ik_options.cc:125
void setqdf(const Eigen::VectorXd &lb, const Eigen::VectorXd &ub)
Definition: ik_options.cc:230
void getQ(Eigen::MatrixXd &Q) const
Definition: ik_options.cc:111
void setDebug(bool flag)
Definition: ik_options.cc:117
void setQa(const Eigen::MatrixXd &Qa)
Definition: ik_options.cc:84
int getIterationsLimit() const
Definition: ik_options.cc:180
void setMajorFeasibilityTolerance(double tol)
Definition: ik_options.cc:140
void setMajorOptimalityTolerance(double tol)
Definition: ik_options.cc:129
void getQa(Eigen::MatrixXd &Qa) const
Definition: ik_options.cc:113
int getMajorIterationsLimit() const
Definition: ik_options.cc:169
void setAdditionaltSamples(const Eigen::RowVectorXd &t_samples)
Definition: ik_options.cc:248
RigidBodyTree< double > * getRobotPtr() const
Definition: ik_options.cc:68
void getq0(Eigen::VectorXd &lb, Eigen::VectorXd &ub) const
Definition: ik_options.cc:207
Definition: ik_options.h:8
bool getDebug() const
Definition: ik_options.cc:119
void setSequentialSeedFlag(bool flag)
Definition: ik_options.cc:121
~IKoptions(void)
Definition: ik_options.cc:43
void getqdf(Eigen::VectorXd &lb, Eigen::VectorXd &ub) const
Definition: ik_options.cc:243
void getAdditionaltSamples(Eigen::RowVectorXd &additional_tSamples) const
Definition: ik_options.cc:263
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
double getMajorFeasibilityTolerance() const
Definition: ik_options.cc:147
void setDefaultParams(RigidBodyTree< double > *robot)
Definition: ik_options.cc:45