Rigid Body Dynamics Library
luastructs.h
Go to the documentation of this file.
1//==============================================================================
2/*
3 * RBDL - Rigid Body Dynamics Library: Addon : luamodel structs
4 * Copyright (c) 2020 Matthew Millard <millard.matthew@gmail.com>
5 *
6 * Licensed under the zlib license. See LICENSE for more details.
7 */
8
9#ifndef LUASTRUCTS_H
10#define LUASTRUCTS_H
11
12#include <iostream>
13#include <sstream>
14#include <assert.h>
15#include <cstdlib>
16#include <string>
17#include <vector>
18
19#include <limits>
20#include <rbdl/rbdl_math.h>
21
22#include <rbdl/rbdl_config.h>
23#include <rbdl/rbdl_errors.h>
24
38struct Point {
40 name ("unknown"),
41 body_id (std::numeric_limits<unsigned int>::signaling_NaN()),
42 body_name (""),
44 std::numeric_limits<double>::signaling_NaN(),
45 std::numeric_limits<double>::signaling_NaN(),
46 std::numeric_limits<double>::signaling_NaN()
47 )
48 { }
49
50 std::string name;
51 unsigned int body_id;
52 std::string body_name;
54};
55
67 name ("unknown"),
68 body_id (std::numeric_limits<unsigned int>::signaling_NaN()),
69 body_name (""),
71 std::numeric_limits<double>::signaling_NaN(),
72 std::numeric_limits<double>::signaling_NaN(),
73 std::numeric_limits<double>::signaling_NaN()
74 )
75 { }
76
77 std::string name;
78 unsigned int body_id;
79 std::string body_name;
81};
82
94struct LocalFrame {
96 name ("unknown"),
97 body_id (std::numeric_limits<unsigned int>::signaling_NaN()),
98 body_name (""),
99 r ( std::numeric_limits<double>::signaling_NaN(),
100 std::numeric_limits<double>::signaling_NaN(),
101 std::numeric_limits<double>::signaling_NaN()),
102 E ( std::numeric_limits<double>::signaling_NaN(),
103 std::numeric_limits<double>::signaling_NaN(),
104 std::numeric_limits<double>::signaling_NaN(),
105 std::numeric_limits<double>::signaling_NaN(),
106 std::numeric_limits<double>::signaling_NaN(),
107 std::numeric_limits<double>::signaling_NaN(),
108 std::numeric_limits<double>::signaling_NaN(),
109 std::numeric_limits<double>::signaling_NaN(),
110 std::numeric_limits<double>::signaling_NaN())
111 { }
112 std::string name;
113 unsigned int body_id;
114 std::string body_name;
117};
118
129 gender("nan"),
130 age(std::numeric_limits<double>::signaling_NaN()),
131 age_group("nan"),
132 height(std::numeric_limits<double>::signaling_NaN()),
133 mass(std::numeric_limits<double>::signaling_NaN())
134 { }
135 std::string gender;
136 std::string age_group;
137 double age;
138 double height;
139 double mass;
140};
141
142#ifdef RBDL_BUILD_ADDON_MUSCLE
268 name(""),
269 angle_sign(std::numeric_limits<double>::signaling_NaN()),
270 torque_sign(std::numeric_limits<double>::signaling_NaN()),
271 body(""),
272 joint_index(0),
273 q_scale(1.0),
274 activation_index(std::numeric_limits<unsigned int>::signaling_NaN()),
275 q_index(0),
276 qdot_index(0),
277 force_index(0),
278 data_set("Gymnast"),
279 age_group(""),
280 gender(""),
282 activation_time_constant(0.015), //Thelen 2003, Adjustment of muscle ...
283 deactivation_time_constant(0.05),//Thelen 2003, Adjustment of muscle ...
284 max_isometric_torque(std::numeric_limits<double>::signaling_NaN()),
285 max_isometric_torque_scale(std::numeric_limits<double>::signaling_NaN()),
286 max_angular_velocity(std::numeric_limits<double>::signaling_NaN()),
287 max_angular_velocity_scale(std::numeric_limits<double>::signaling_NaN()),
288 passive_element_damping_coeff(std::numeric_limits<double>::signaling_NaN()),
289 passive_element_torque_scale(std::numeric_limits<double>::signaling_NaN()),
290 passive_element_angle_offset(std::numeric_limits<double>::signaling_NaN()),
291 active_torque_angle_blending(std::numeric_limits<double>::signaling_NaN()),
292 passive_torque_angle_blending(std::numeric_limits<double>::signaling_NaN()),
293 torque_velocity_blending(std::numeric_limits<double>::signaling_NaN()),
294 active_torque_angle_scale(std::numeric_limits<double>::signaling_NaN()),
296 std::numeric_limits<double>::signaling_NaN(),
297 std::numeric_limits<double>::signaling_NaN(),
298 std::numeric_limits<double>::signaling_NaN())),
300 std::numeric_limits<double>::signaling_NaN(),
301 std::numeric_limits<double>::signaling_NaN(),
302 std::numeric_limits<double>::signaling_NaN())){
303 }
304 std::string name;
307 std::string body;
308 unsigned int joint_index;
309 double q_scale;
310 unsigned int activation_index;
311 unsigned int q_index; //internal parameter
312 unsigned int qdot_index; //internal parameter
313 unsigned int force_index; //internal parameter
314 std::string data_set;
315 std::string age_group;
316 std::string gender;
317 //double angle_scale;
332 //double torque_velocity_scaling;
333 //double passive_torque_angle_scaling;
336};
337#endif
338
339/* LUASTRUCTS_H */
340#endif
STL namespace.
std::string age_group
Definition: luastructs.h:136
std::string gender
Definition: luastructs.h:135
double height
Definition: luastructs.h:138
unsigned int body_id
Definition: luastructs.h:113
RigidBodyDynamics::Math::Vector3d r
Definition: luastructs.h:115
std::string name
Definition: luastructs.h:112
std::string body_name
Definition: luastructs.h:114
RigidBodyDynamics::Math::Matrix3d E
Definition: luastructs.h:116
RigidBodyDynamics::Math::Vector3d fit_passive_torque_offset
Definition: luastructs.h:335
RigidBodyDynamics::Math::Vector3d fit_passive_torque_scale
Definition: luastructs.h:334
RigidBodyDynamics::Math::Vector3d point_local
Definition: luastructs.h:80
unsigned int body_id
Definition: luastructs.h:78
std::string name
Definition: luastructs.h:77
std::string body_name
Definition: luastructs.h:79
RigidBodyDynamics::Math::Vector3d point_local
Definition: luastructs.h:53
unsigned int body_id
Definition: luastructs.h:51
std::string name
Definition: luastructs.h:50
std::string body_name
Definition: luastructs.h:52
Point()
Definition: luastructs.h:39