mmm_body_68.h
Go to the documentation of this file.
1/**
2 * This file is part of ArmarX.
3 *
4 * ArmarX is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 *
8 * ArmarX is distributed in the hope that it will be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * @author Fabian Reister ( fabian dot reister at kit dot edu )
17 * @date 2022
18 * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
19 * GNU General Public License
20 */
21
22#pragma once
23
24#include <SimoxUtility/color/Color.h>
25#include <SimoxUtility/meta/enum/EnumNames.hpp>
26
28{
29 inline const std::string ModelId = "MMM_BODY_68";
30
31 enum class Joints
32 {
38
43
48
53
57 //
61 //
65 //
70 //
75 //
77
81 //
85 //
89 //
94 //
99 //
101
105
109
113
118
123 };
124
125 inline const simox::meta::EnumNames<Joints> JointNames{
126 {Joints::HeadTip, "HeadSegment_joint"},
127 {Joints::MidHeadSegment_joint, "MidHeadSegment_joint"},
128 // Upper and lower neck as defined in the MMM Model
129 {Joints::NeckAnatomicallyUpper, "BUNsegment_joint"},
130 {Joints::NeckAnatomicallyLower, "BLNsegment_joint"},
131 // to comply with other models, like K4ABT_BODY_32 and BODY_25, use the mid
132 // between the left and right hip as "Neck"
133 {Joints::Neck, "collarSegment_joint"},
134
135 {Joints::EyeLeftProjected, "LeftEyeSegmentX_joint"},
136 {Joints::EyeLeft, "LeftEyeSegmentY_joint"},
137 {Joints::EyeRightProjected, "RightEyeSegmentX_joint"},
138 {Joints::EyeRight, "RightEyeSegmentY_joint"},
139
140 {Joints::ShoulderLeft, "LSsegment_joint"},
141 {Joints::ClavicleLeft, "LSCsegment_joint"},
142 {Joints::ElbowLeft, "LEsegment_joint"},
143 {Joints::WristLeft, "LWsegment_joint"},
144
145 {Joints::ShoulderRight, "RSsegment_joint"},
146 {Joints::ClavicleRight, "RSCsegment_joint"},
147 {Joints::ElbowRight, "REsegment_joint"},
148 {Joints::WristRight, "RWsegment_joint"},
149
150 {Joints::ThumbCarpometacarpalLeft, "LeftFingerJoint11z_joint"},
151 {Joints::ThumbMetacarpophalangealLeft, "LeftFingerJoint12y_joint"},
152 {Joints::ThumbDistalInterphalangealLeft, "LeftFingerJoint13z_joint"},
153 //
154 {Joints::IndexMetacarpophalangealLeft, "LeftFingerJoint21y_joint"},
155 {Joints::IndexProximalInterphalangealLeft, "LeftFingerJoint22y_joint"},
156 {Joints::IndexDistalInterphalangealLeft, "LeftFingerJoint23y_joint"},
157 //
158 {Joints::MiddleMetacarpophalangealLeft, "LeftFingerJoint31y_joint"},
159 {Joints::MiddleProximalInterphalangealLeft, "LeftFingerJoint32y_joint"},
160 {Joints::MiddleDistalInterphalangealLeft, "LeftFingerJoint33y_joint"},
161 //
162 {Joints::RingFingersCarpometacarpalLeft, "LeftFingerJoint40y_joint"},
163 {Joints::RingMetacarpophalangealLeft, "LeftFingerJoint41y_joint"},
164 {Joints::RingProximalInterphalangealLeft, "LeftFingerJoint42y_joint"},
165 {Joints::RingDistalInterphalangealLeft, "LeftFingerJoint43y_joint"},
166 //
167 {Joints::PinkyFingersCarpometacarpalLeft, "LeftFingerJoint50y_joint"},
168 {Joints::PinkyMetacarpophalangealLeft, "LeftFingerJoint51y_joint"},
169 {Joints::PinkyProximalInterphalangealLeft, "LeftFingerJoint52y_joint"},
170 {Joints::PinkyDistalInterphalangealLeft, "LeftFingerJoint53y_joint"},
171 //
172 {Joints::HandTCPLeft, "Hand L TCP"},
173
174 {Joints::ThumbCarpometacarpalRight, "RightFingerJoint11z_joint"},
175 {Joints::ThumbMetacarpophalangealRight, "RightFingerJoint12y_joint"},
176 {Joints::ThumbDistalInterphalangealRight, "RightFingerJoint13z_joint"},
177 //
178 {Joints::IndexMetacarpophalangealRight, "RightFingerJoint21y_joint"},
179 {Joints::IndexProximalInterphalangealRight, "RightFingerJoint22y_joint"},
180 {Joints::IndexDistalInterphalangealRight, "RightFingerJoint23y_joint"},
181 //
182 {Joints::MiddleMetacarpophalangealRight, "RightFingerJoint31y_joint"},
183 {Joints::MiddleProximalInterphalangealRight, "RightFingerJoint32y_joint"},
184 {Joints::MiddleDistalInterphalangealRight, "RightFingerJoint33y_joint"},
185 //
186 {Joints::RingFingersCarpometacarpalRight, "RightFingerJoint40y_joint"},
187 {Joints::RingMetacarpophalangealRight, "RightFingerJoint41y_joint"},
188 {Joints::RingProximalInterphalangealRight, "RightFingerJoint42y_joint"},
189 {Joints::RingDistalInterphalangealRight, "RightFingerJoint43y_joint"},
190 //
191 {Joints::PinkyFingersCarpometacarpalRight, "RightFingerJoint50y_joint"},
192 {Joints::PinkyMetacarpophalangealRight, "RightFingerJoint51y_joint"},
193 {Joints::PinkyProximalInterphalangealRight, "RightFingerJoint52y_joint"},
194 {Joints::PinkyDistalInterphalangealRight, "RightFingerJoint53y_joint"},
195 //
196 {Joints::HandTCPRight, "Hand R TCP"},
197
198 {Joints::Torso, "BTSegment_joint"},
199 // Pelvis as defined in the MMM Model
200 {Joints::PelvisAnatomically, "BPSegment_joint"},
201 // to comply with other models, like K4ABT_BODY_32 and BODY_25, that use the mid
202 // between the left and right hip as "Pelvis"
203 {Joints::Pelvis, "root_joint"},
204
205 {Joints::HipLeft, "LHsegment_joint"},
206 {Joints::KneeLeft, "LKsegment_joint"},
207 {Joints::AnkleLeft, "LAsegment_joint"},
208
209 {Joints::HipRight, "RHsegment_joint"},
210 {Joints::KneeRight, "RKsegment_joint"},
211 {Joints::AnkleRight, "RAsegment_joint"},
212
213 {Joints::HeelLeft, "LeftFootHeight_joint"},
214 {Joints::ToeLeft, "LeftFootLength_joint"},
215 {Joints::FootInversionLeft, "LMrot_joint"}, // ?
216 {Joints::FootToeFlexionLeft, "LFx_joint"}, // ?
217
218 {Joints::HeelRight, "RightFootHeight_joint"},
219 {Joints::ToeRight, "RightFootLength_joint"},
220 {Joints::FootInversionRight, "RMrot_joint"}, // ?
221 {Joints::FootToeFlexionRight, "RFx_joint"}, // ?
222 };
223
224
225 inline const std::vector<std::pair<Joints, Joints>> Segments = {
234
239
244
248 //
252 //
256 //
261 //
266 //
267 //{Joints::WristLeft, Joints::HandTCPLeft},
268
272 //
276 //
280 //
285 //
290 //
291 //{Joints::WristRight, Joints::HandTCPRight},
292
296
300
304
309
314
315
316 inline const std::map<Joints, simox::Color> Colors = {
317 {Joints::HeadTip, {0.68f, 0.51f, 0.33f}},
318 {Joints::MidHeadSegment_joint, {0.68f, 0.51f, 0.33f}},
319 {Joints::NeckAnatomicallyUpper, {0.68f, 0.51f, 0.33f}},
320 {Joints::NeckAnatomicallyLower, {0.68f, 0.51f, 0.33f}},
321 {Joints::Neck, {0.68f, 0.51f, 0.33f}},
322 {Joints::EyeLeftProjected, {0.68f, 0.51f, 0.33f}},
323 {Joints::EyeLeft, {0.68f, 0.51f, 0.33f}},
324 {Joints::EyeRightProjected, {0.68f, 0.51f, 0.33f}},
325 {Joints::EyeRight, {0.68f, 0.51f, 0.33f}},
326 {Joints::ShoulderLeft, {0.68f, 0.51f, 0.33f}},
327 {Joints::ClavicleLeft, {0.68f, 0.51f, 0.33f}},
328 {Joints::ElbowLeft, {0.68f, 0.51f, 0.33f}},
329 {Joints::WristLeft, {0.68f, 0.51f, 0.33f}},
330 {Joints::ShoulderRight, {0.68f, 0.51f, 0.33f}},
331 {Joints::ClavicleRight, {0.68f, 0.51f, 0.33f}},
332 {Joints::ElbowRight, {0.68f, 0.51f, 0.33f}},
333 {Joints::WristRight, {0.68f, 0.51f, 0.33f}},
334 {Joints::ThumbCarpometacarpalLeft, {0.68f, 0.51f, 0.33f}},
335 {Joints::ThumbMetacarpophalangealLeft, {0.68f, 0.51f, 0.33f}},
336 {Joints::ThumbDistalInterphalangealLeft, {0.68f, 0.51f, 0.33f}},
337 {Joints::IndexMetacarpophalangealLeft, {0.68f, 0.51f, 0.33f}},
338 {Joints::IndexProximalInterphalangealLeft, {0.68f, 0.51f, 0.33f}},
339 {Joints::IndexDistalInterphalangealLeft, {0.68f, 0.51f, 0.33f}},
340 {Joints::MiddleMetacarpophalangealLeft, {0.68f, 0.51f, 0.33f}},
341 {Joints::MiddleProximalInterphalangealLeft, {0.68f, 0.51f, 0.33f}},
342 {Joints::MiddleDistalInterphalangealLeft, {0.68f, 0.51f, 0.33f}},
343 {Joints::RingFingersCarpometacarpalLeft, {0.68f, 0.51f, 0.33f}},
344 {Joints::RingMetacarpophalangealLeft, {0.68f, 0.51f, 0.33f}},
345 {Joints::RingProximalInterphalangealLeft, {0.68f, 0.51f, 0.33f}},
346 {Joints::RingDistalInterphalangealLeft, {0.68f, 0.51f, 0.33f}},
347 {Joints::PinkyFingersCarpometacarpalLeft, {0.68f, 0.51f, 0.33f}},
348 {Joints::PinkyMetacarpophalangealLeft, {0.68f, 0.51f, 0.33f}},
349 {Joints::PinkyProximalInterphalangealLeft, {0.68f, 0.51f, 0.33f}},
350 {Joints::PinkyDistalInterphalangealLeft, {0.68f, 0.51f, 0.33f}},
351 {Joints::HandTCPLeft, {1.f, 1.f, 1.f, 0.25f}},
352 {Joints::ThumbCarpometacarpalRight, {0.68f, 0.51f, 0.33f}},
353 {Joints::ThumbMetacarpophalangealRight, {0.68f, 0.51f, 0.33f}},
354 {Joints::ThumbDistalInterphalangealRight, {0.68f, 0.51f, 0.33f}},
355 {Joints::IndexMetacarpophalangealRight, {0.68f, 0.51f, 0.33f}},
356 {Joints::IndexProximalInterphalangealRight, {0.68f, 0.51f, 0.33f}},
357 {Joints::IndexDistalInterphalangealRight, {0.68f, 0.51f, 0.33f}},
358 {Joints::MiddleMetacarpophalangealRight, {0.68f, 0.51f, 0.33f}},
359 {Joints::MiddleProximalInterphalangealRight, {0.68f, 0.51f, 0.33f}},
360 {Joints::MiddleDistalInterphalangealRight, {0.68f, 0.51f, 0.33f}},
361 {Joints::RingFingersCarpometacarpalRight, {0.68f, 0.51f, 0.33f}},
362 {Joints::RingMetacarpophalangealRight, {0.68f, 0.51f, 0.33f}},
363 {Joints::RingProximalInterphalangealRight, {0.68f, 0.51f, 0.33f}},
364 {Joints::RingDistalInterphalangealRight, {0.68f, 0.51f, 0.33f}},
365 {Joints::PinkyFingersCarpometacarpalRight, {0.68f, 0.51f, 0.33f}},
366 {Joints::PinkyMetacarpophalangealRight, {0.68f, 0.51f, 0.33f}},
367 {Joints::PinkyProximalInterphalangealRight, {0.68f, 0.51f, 0.33f}},
368 {Joints::PinkyDistalInterphalangealRight, {0.68f, 0.51f, 0.33f}},
369 {Joints::HandTCPRight, {1.f, 1.f, 1.f, 0.25f}},
370 {Joints::Torso, {0.68f, 0.51f, 0.33f}},
371 {Joints::PelvisAnatomically, {0.68f, 0.51f, 0.33f}},
372 {Joints::Pelvis, {0.68f, 0.51f, 0.33f}},
373 {Joints::HipLeft, {0.68f, 0.51f, 0.33f}},
374 {Joints::KneeLeft, {0.68f, 0.51f, 0.33f}},
375 {Joints::AnkleLeft, {0.68f, 0.51f, 0.33f}},
376 {Joints::HipRight, {0.68f, 0.51f, 0.33f}},
377 {Joints::KneeRight, {0.68f, 0.51f, 0.33f}},
378 {Joints::AnkleRight, {0.68f, 0.51f, 0.33f}},
379 {Joints::HeelLeft, {0.68f, 0.51f, 0.33f}},
380 {Joints::ToeLeft, {0.68f, 0.51f, 0.33f}},
381 {Joints::FootInversionLeft, {0.68f, 0.51f, 0.33f}},
382 {Joints::FootToeFlexionLeft, {0.68f, 0.51f, 0.33f}},
383 {Joints::HeelRight, {0.68f, 0.51f, 0.33f}},
384 {Joints::ToeRight, {0.68f, 0.51f, 0.33f}},
385 {Joints::FootInversionRight, {0.68f, 0.51f, 0.33f}},
386 {Joints::FootToeFlexionRight, {0.68f, 0.51f, 0.33f}}};
387
388} // namespace armarx::human::pose::model::mmm_body_68
This file is part of ArmarX.
Definition mmm_body_68.h:28
const std::map< Joints, simox::Color > Colors
const simox::meta::EnumNames< Joints > JointNames
const std::vector< std::pair< Joints, Joints > > Segments