spatial-dyn
options.h
1 
10 #ifndef SPATIAL_DYN_STRUCTS_OPTIONS_H_
11 #define SPATIAL_DYN_STRUCTS_OPTIONS_H_
12 
13 #include <cstddef> // size_t
14 
15 namespace spatial_dyn {
16 
17 struct InverseDynamicsOptions;
18 struct ForwardDynamicsOptions;
19 struct IntegrationOptions;
20 
21 namespace opspace {
22 
23 struct InverseDynamicsOptions;
24 
25 } // namespace opspace
26 
27 namespace discrete {
28 
29 struct InverseDynamicsOptions;
30 struct IntegrationOptions;
31 
32 } // namespace discrete
33 
39 
40  InverseDynamicsOptions(bool gravity = true, bool centrifugal_coriolis = false,
41  bool friction = false, double stiction_epsilon = 0.01)
44 
46 
48 
52  bool gravity = true;
53 
57  bool centrifugal_coriolis = false;
58 
62  bool friction = false;
63 
67  double stiction_epsilon = 0.01;
68 
69 };
70 
75 struct ForwardDynamicsOptions /*: InverseDynamicsOptions*/ {
76 
77  ForwardDynamicsOptions(bool gravity = true, bool centrifugal_coriolis = true,
78  bool friction = false, double stiction_epsilon = 0.01)
81 
83 
85 
89  bool gravity = true;
90 
94  bool centrifugal_coriolis = true;
95 
99  bool friction = false;
100 
104  double stiction_epsilon = 0.01;
105 
106 };
107 
108 struct IntegrationOptions /*: ForwardDynamicsOptions*/ {
109 
113  enum class Method {
114  kEuler,
115  kHeuns,
116  kRk4
117  };
118 
119  IntegrationOptions(bool gravity = true, bool centrifugal_coriolis = true,
120  bool friction = false, bool joint_limits = false,
121  Method method = Method::kRk4, bool aba = false,
122  double stiction_epsilon = 0.01)
126 
130  bool gravity = true;
131 
135  bool centrifugal_coriolis = true;
136 
140  bool friction = false;
141 
145  bool joint_limits = false;
146 
151 
155  bool aba = false;
156 
160  double stiction_epsilon = 0.01;
161 
162 };
163 
164 namespace opspace {
165 
167 
168  InverseDynamicsOptions(bool gravity = false, bool centrifugal_coriolis = false,
169  bool friction = false, double svd_epsilon = 0.,
170  double stiction_epsilon = 0.01)
174 
178  bool gravity = false;
179 
183  bool centrifugal_coriolis = false;
184 
188  bool friction = false;
189 
193  double svd_epsilon = 0.;
194 
198  double stiction_epsilon = 0.01;
199 
204  double f_acc_max = 0.;
205 
206 };
207 
208 } // namespace opspace
209 
210 namespace discrete {
211 
213 
214  InverseDynamicsOptions(bool gravity = true)
215  : gravity(gravity) {}
216 
218 
222  bool gravity = true;
223 
224 };
225 
227 
228  IntegrationOptions(bool gravity = true)
229  : gravity(gravity) {}
230 
234  bool gravity = true;
235 
239  double variational_epsilon = 1e-8;
240 
244  size_t max_iterations = 100;
245 
246 };
247 
248 } // namespace discrete
249 
250 } // namespace spatial_dyn
251 
252 #endif // SPATIAL_DYN_STRUCTS_OPTIONS_H_
Definition: discrete_dynamics.cc:21
Definition: options.h:75
bool centrifugal_coriolis
Definition: options.h:94
bool friction
Definition: options.h:99
double stiction_epsilon
Definition: options.h:104
bool gravity
Definition: options.h:89
Definition: options.h:108
Method
Definition: options.h:113
@ kEuler
Euler's method (order 1).
@ kHeuns
Heun's method (order 2).
@ kRk4
Runge-Kutta 4 (order 4).
bool friction
Definition: options.h:140
bool joint_limits
Definition: options.h:145
bool gravity
Definition: options.h:130
bool aba
Definition: options.h:155
bool centrifugal_coriolis
Definition: options.h:135
double stiction_epsilon
Definition: options.h:160
Method method
Definition: options.h:150
Definition: options.h:38
bool gravity
Definition: options.h:52
bool centrifugal_coriolis
Definition: options.h:57
bool friction
Definition: options.h:62
double stiction_epsilon
Definition: options.h:67
size_t max_iterations
Definition: options.h:244
double variational_epsilon
Definition: options.h:239
bool gravity
Definition: options.h:234
bool gravity
Definition: options.h:222
bool centrifugal_coriolis
Definition: options.h:183
double f_acc_max
Definition: options.h:204
double stiction_epsilon
Definition: options.h:198
double svd_epsilon
Definition: options.h:193
bool gravity
Definition: options.h:178
bool friction
Definition: options.h:188