|
a |
|
b/docs/source/suite.rst |
|
|
1 |
Models and Tasks |
|
|
2 |
############################## |
|
|
3 |
|
|
|
4 |
.. _suite: |
|
|
5 |
|
|
|
6 |
Models and tasks are the most important aspects of Myosuite. To provide further, |
|
|
7 |
|
|
|
8 |
|
|
|
9 |
* :ref:`models` |
|
|
10 |
* :ref:`myoFinger` |
|
|
11 |
* :ref:`myoElbow` |
|
|
12 |
* :ref:`myoHand` |
|
|
13 |
* :ref:`myoLeg` |
|
|
14 |
* :ref:`myoArm` |
|
|
15 |
* :ref:`tasks` |
|
|
16 |
* :ref:`task_and_variations` |
|
|
17 |
|
|
|
18 |
|
|
|
19 |
|
|
|
20 |
|
|
|
21 |
.. _models: |
|
|
22 |
|
|
|
23 |
Models |
|
|
24 |
******** |
|
|
25 |
|
|
|
26 |
MyoSuite consists of five models: :ref:`myoFinger`, :ref:`myoElbow`, :ref:`myoHand`, :ref:`myoArm` and :ref:`myoLeg`. |
|
|
27 |
Using these models, we design a rich collection of tasks ranging across simple reaching movements, |
|
|
28 |
contact-rich movements involving object-manipulation such as pen-twirling and baoding balls, as well as locomotion behaviors. |
|
|
29 |
|
|
|
30 |
|
|
|
31 |
.. _myoFinger: |
|
|
32 |
|
|
|
33 |
myoFinger |
|
|
34 |
========== |
|
|
35 |
Simplified and intuitive model (based on Xu et al. (2012)[https://ieeexplore.ieee.org/document/6290710]) of a 4 Degree of Freedom (DoF) finger |
|
|
36 |
which is actuated through a series of 5 simplified antagonistic muscle-tendon units. |
|
|
37 |
We also provide its robotic counterpart with simple torque actuators |
|
|
38 |
to facilitate the comparative investigation. |
|
|
39 |
|
|
|
40 |
Details of this model can be found at `myoFinger <https://github.com/MyoHub/myo_sim/tree/main/finger>`__ |
|
|
41 |
|
|
|
42 |
|
|
|
43 |
.. image:: images/myoFinger.png |
|
|
44 |
:height: 200 |
|
|
45 |
|
|
|
46 |
======== ============================= |
|
|
47 |
Acronym Muscle |
|
|
48 |
======== ============================= |
|
|
49 |
EXTN Central Extensor |
|
|
50 |
adabR Abduction Tendon(Right) |
|
|
51 |
adabL Abduction Tendon(left) |
|
|
52 |
mflx Pip Flexor |
|
|
53 |
dflx DIP Flexor |
|
|
54 |
======== ============================= |
|
|
55 |
|
|
|
56 |
|
|
|
57 |
|
|
|
58 |
.. _myoElbow: |
|
|
59 |
|
|
|
60 |
myoElbow |
|
|
61 |
=========== |
|
|
62 |
A model of 2 DoF human elbow joint -- based on OpenSim’s default testing arm model (Delp et al. (2007); Seth et al. (2018)) |
|
|
63 |
-- and actuated using multiple agonist/antagonist pairs (3 flexors and 3 extensors). |
|
|
64 |
|
|
|
65 |
Details of this model can be found at `myoElbow <https://github.com/MyoHub/myo_sim/tree/main/elbow>`__ |
|
|
66 |
|
|
|
67 |
.. image:: images/myoElbow.png |
|
|
68 |
:height: 200 |
|
|
69 |
|
|
|
70 |
======== ======== |
|
|
71 |
Acronym Muscle |
|
|
72 |
======== ======== |
|
|
73 |
TRIlong Triceps long |
|
|
74 |
TRIlat Triceps lateral |
|
|
75 |
TRImed Triceps medial |
|
|
76 |
BIClong Biceps long |
|
|
77 |
BICshort Biceps short |
|
|
78 |
BRA Brachioradialis |
|
|
79 |
======== ======== |
|
|
80 |
|
|
|
81 |
.. _myoHand: |
|
|
82 |
|
|
|
83 |
myoHand |
|
|
84 |
========= |
|
|
85 |
The dexterous human hand requires coordination of multiple highly redundant muscles, which have complementary and antagonistic effects on various joints. |
|
|
86 |
This musculoskeletal model is comprised of 29 bones, 23 joints, and 39 muscles-tendon units. |
|
|
87 |
|
|
|
88 |
Details of this model can be found at `myoHand <https://github.com/MyoHub/myo_sim/tree/main/hand>`__ |
|
|
89 |
|
|
|
90 |
.. image:: images/myoHand.png |
|
|
91 |
:height: 200 |
|
|
92 |
|
|
|
93 |
|
|
|
94 |
======= ======== |
|
|
95 |
Acronym Muscle |
|
|
96 |
======= ======== |
|
|
97 |
ECRL Extensor Carpis Radialis Longus |
|
|
98 |
ECRB Extensor Carpis Radialis Brevis |
|
|
99 |
ECU Extensor Carpi Ulnaris |
|
|
100 |
FCR Flexor Carpi Radialis |
|
|
101 |
FCU Flexor Carpi Ulnaris |
|
|
102 |
PL Palmaris longus |
|
|
103 |
PT Pronator teres |
|
|
104 |
PQ Pronator |
|
|
105 |
EIP Extensor Indicis Proprius |
|
|
106 |
EPL Extensor Pollicis Longus |
|
|
107 |
EPB Extensor Pollicis Brevis |
|
|
108 |
FPL Flexor Pollicis Longus |
|
|
109 |
APL Abductor Pollicis Longus |
|
|
110 |
OP Opponens Pollicis |
|
|
111 |
FDS Flexor Digitorum Superficialis (2- index, 3- middle, 4- ring, 5- little) |
|
|
112 |
FDP Flexor Digitorum Profundus (2- index, 3- middle, 4- ring, 5- little) |
|
|
113 |
EDC Extensor Digitorum Communis (2- index, 3- middle, 4- ring, 5- little) |
|
|
114 |
EDM Extensor Digiti Minimi |
|
|
115 |
RI Radial Interosseous (2- index, 3- middle, 4- ring, 5- little) |
|
|
116 |
LU-RB Lumbrical (2- index, 3- middle, 4- ring, 5- little) |
|
|
117 |
UI-UB Palmar or Ulnar Interosseous (2- index, 3- middle, 4- ring, 5- little) |
|
|
118 |
======= ======== |
|
|
119 |
|
|
|
120 |
.. _myoLeg: |
|
|
121 |
|
|
|
122 |
myoLeg |
|
|
123 |
========= |
|
|
124 |
The 3D dexterous human leg requires coordination of multiple highly redundant muscles, which have complementary and antagonistic effects on various joints. |
|
|
125 |
|
|
|
126 |
This musculoskeletal model is comprised of 10 joints, 20 DoFs, and 80 muscles-tendon units. This musculoskeletal model takes |
|
|
127 |
Rajagopal's full body gait model [https://github.com/opensim-org/opensim-models/tree/master/Models/RajagopalModel] as close reference. |
|
|
128 |
|
|
|
129 |
Joints and muscle details can be found in Rajagopal's paper [https://ieeexplore.ieee.org/document/7505900] |
|
|
130 |
|
|
|
131 |
The model implementation details can be found on our github repo at `myoLeg <https://github.com/MyoHub/myo_sim/tree/main/leg>`__ |
|
|
132 |
|
|
|
133 |
.. image:: images/MyoLeg.png |
|
|
134 |
:height: 200 |
|
|
135 |
|
|
|
136 |
============= ================================= |
|
|
137 |
Acronym Muscle |
|
|
138 |
============= ================================= |
|
|
139 |
addbrev_r Adductor brevis |
|
|
140 |
addlong_r Adductor longus |
|
|
141 |
addmagDist_r Adductor magnus (distal) |
|
|
142 |
addmagIsch_r Adductor magnus (ischial) |
|
|
143 |
addmagMid_r Adductor magnus (middle) |
|
|
144 |
addmagProx_r Adductor magnus (proximal) |
|
|
145 |
bflh_r Biceps femoris long head |
|
|
146 |
bfsh_r Biceps femoris short head |
|
|
147 |
edl_r Extensor digitorum longusc |
|
|
148 |
ehl_r Extensor hallucis longusc |
|
|
149 |
fdl_r Flexor digitorum longus |
|
|
150 |
fhl_r Flexor hallucis longus |
|
|
151 |
gaslat_r Gastrocnemius lateral head |
|
|
152 |
gasmed_r Gastrocnemius medial head |
|
|
153 |
glmax1_r Gluteus maximus (superior) |
|
|
154 |
glmax2_r Gluteus maximus (middle) |
|
|
155 |
glmax3_r Gluteus maximus (inferior) |
|
|
156 |
glmed1_r Gluteus medius (anterior) |
|
|
157 |
glmed2_r Gluteus medius (middle) |
|
|
158 |
glmed3_r Gluteus medius (posterior) |
|
|
159 |
glmin1_r Gluteus minimus (anterior) |
|
|
160 |
glmin2_r Gluteus minimus (middle) |
|
|
161 |
glmin3_r Gluteus minimus (posterior) |
|
|
162 |
grac_r Gracilis |
|
|
163 |
iliacus_r Iliacus |
|
|
164 |
perbrev_r Peroneus brevis |
|
|
165 |
perlong_r Peroneus longus |
|
|
166 |
piri_r Piriformis |
|
|
167 |
psoas_r Psoas |
|
|
168 |
recfem_r Rectus femoris |
|
|
169 |
sart_r Sartorius |
|
|
170 |
semimem_r Semimembranosus |
|
|
171 |
semiten_r Semitendinosus |
|
|
172 |
soleus_r Soleus |
|
|
173 |
tfl_r Tensor fascia latae |
|
|
174 |
tibant_r Tibialis anterior |
|
|
175 |
tibpost_r Tibialis posterior |
|
|
176 |
vasint_r Vastus intermedius |
|
|
177 |
vaslat_r Vastus lateralis |
|
|
178 |
vasmed_r Vastus medialis |
|
|
179 |
============= ================================= |
|
|
180 |
|
|
|
181 |
.. _myoArm: |
|
|
182 |
|
|
|
183 |
myoArm |
|
|
184 |
========= |
|
|
185 |
The 3D dexterous human arm reaching and manipulation. |
|
|
186 |
|
|
|
187 |
This musculoskeletal model is comprised of 27 Degree of Freedom, and 63 muscles-tendon units. |
|
|
188 |
|
|
|
189 |
Model specification can be found on our github repo of `myoArm <https://github.com/MyoHub/myo_sim/tree/main/arm>`__ |
|
|
190 |
|
|
|
191 |
|
|
|
192 |
.. image:: images/myoArm.png |
|
|
193 |
:height: 200 |
|
|
194 |
|
|
|
195 |
.. _tasks: |
|
|
196 |
|
|
|
197 |
Tasks |
|
|
198 |
******* |
|
|
199 |
|
|
|
200 |
|
|
|
201 |
Finger Joint Pose |
|
|
202 |
===================== |
|
|
203 |
|
|
|
204 |
Objective: |
|
|
205 |
- Strike a joint pose |
|
|
206 |
|
|
|
207 |
Variants: |
|
|
208 |
- **Easy**: Move to a fixed specified joint pose ``myoFingerPoseFixed-v0`` |
|
|
209 |
- **Hard**: Move to randomly selected joint poses ``myoFingerPoseRandom-v0`` |
|
|
210 |
- **More**: Random resets, no resets, dense rewards, sparse rewards |
|
|
211 |
|
|
|
212 |
.. image:: images/finger_joint_pose.png |
|
|
213 |
:width: 200 |
|
|
214 |
|
|
|
215 |
|
|
|
216 |
|
|
|
217 |
Finger Tip Reach |
|
|
218 |
===================== |
|
|
219 |
Objective: |
|
|
220 |
- Reach using finger tips |
|
|
221 |
|
|
|
222 |
Variants: |
|
|
223 |
- **Easy**: Reach to a fixed location ``myoFingerReachFixed-v0`` |
|
|
224 |
- **Hard**: Reach to random locations ``myoFingerReachRandom-v0`` |
|
|
225 |
- **More**: Random resets, no resets, dense rewards, sparse rewards |
|
|
226 |
|
|
|
227 |
.. image:: images/finger_tip_reach.png |
|
|
228 |
:width: 200 |
|
|
229 |
|
|
|
230 |
|
|
|
231 |
Elbow Joint Pose |
|
|
232 |
===================== |
|
|
233 |
:ref:`myoElbow` model with 6 muscles (3 flexors and 3 extensors) was simplified to have only elbow rotations. |
|
|
234 |
Although it is not a physiologically accurate model it can be a very simple model for troubleshooting initial control schemes. |
|
|
235 |
|
|
|
236 |
Objective: |
|
|
237 |
Move elbow to a specified pose. |
|
|
238 |
|
|
|
239 |
Variants: |
|
|
240 |
- **Easy**: Move to random joint poses using 1 muscle ``ElbowPose1D1MRandom-v0`` |
|
|
241 |
- **Hard**: Move to random joint poses using 6 muscles ``myoElbowPose1D6MRandom-v0`` |
|
|
242 |
- **More**: Random resets, no resets, dense rewards, sparse rewards |
|
|
243 |
|
|
|
244 |
.. image:: images/elbow_joint_pose.png |
|
|
245 |
:width: 200 |
|
|
246 |
|
|
|
247 |
Hand Joints Pose |
|
|
248 |
===================== |
|
|
249 |
Drive the :ref:`myoHand` model to achieve a joint poses. |
|
|
250 |
In addition to making co-ordinated movements, avoiding self collisions poses additional challenges in solving this task. |
|
|
251 |
|
|
|
252 |
Objective: |
|
|
253 |
Strike a hand pose |
|
|
254 |
|
|
|
255 |
Variants: |
|
|
256 |
- **Easy**: Move to a fixed joint pose ``myoHandPoseFixed-v0`` |
|
|
257 |
- **Hard**: Move to a randomly selected joint pose ``myoHandPoseRandom-v0`` |
|
|
258 |
- **More**: Random resets, no resets, dense rewards, sparse rewards |
|
|
259 |
|
|
|
260 |
.. image:: images/hand_joint_pose.png |
|
|
261 |
:width: 200 |
|
|
262 |
|
|
|
263 |
|
|
|
264 |
Hand Tips Reach |
|
|
265 |
===================== |
|
|
266 |
Make reaching movements using the :ref:`myoHand` model to have finger tips achieve a specific spatial position. |
|
|
267 |
In addition to making co-ordinated movements, avoiding self collisions poses additional challenges in solving this task. |
|
|
268 |
|
|
|
269 |
Objective: |
|
|
270 |
Reach using finger tips |
|
|
271 |
|
|
|
272 |
Variants: |
|
|
273 |
- **Easy**: Reach fixed positions using finger tips ``myoHandReachFixed-v0`` |
|
|
274 |
- **Hard**: Reach random positions using finger tips ``myoHandReachRandom-v0`` |
|
|
275 |
- **More**: Random resets, no resets, dense rewards, sparse rewards |
|
|
276 |
|
|
|
277 |
.. image:: images/hand_tip_reach.png |
|
|
278 |
:width: 200 |
|
|
279 |
|
|
|
280 |
|
|
|
281 |
Hand Key Turn |
|
|
282 |
============== |
|
|
283 |
Use the the :ref:`myoHand` model to rotate a key. |
|
|
284 |
The complexity of this task is due to the use of only index and thumb fingers to solve the task with intermittent contact |
|
|
285 |
with the key. |
|
|
286 |
|
|
|
287 |
Objective: |
|
|
288 |
Coordinate finger movements to rotate a key |
|
|
289 |
|
|
|
290 |
Variants: |
|
|
291 |
- **Easy**: Achieve half rotation of the key ``myoHandKeyTurnFixed-v0`` |
|
|
292 |
- **Hard**: Achieve full rotation + random initial configuration ``myoHandKeyTurnRandom-v0`` |
|
|
293 |
- **More**: Random resets, no resets, dense rewards, sparse rewards |
|
|
294 |
|
|
|
295 |
.. image:: images/hand_key_turn.png |
|
|
296 |
:width: 200 |
|
|
297 |
|
|
|
298 |
|
|
|
299 |
Hand Object Hold |
|
|
300 |
===================== |
|
|
301 |
A :ref:`myoHand` model moves an object in the hand to a given orientation without dropping it. |
|
|
302 |
The complexity of this task is due to the intermittent contacts between the object and multiple fingers needing co-ordination to stabilize the object. |
|
|
303 |
|
|
|
304 |
Objective: |
|
|
305 |
Reposition an object to reach a given target without dropping it. |
|
|
306 |
|
|
|
307 |
Variants: |
|
|
308 |
- **Easy**: Reposition to a fixed position ``myoHandObjHoldFixed-v0`` |
|
|
309 |
- **Hard**: Reposition a random object to random positions ``myoHandObjHoldRandom-v0`` |
|
|
310 |
- **More**: sparse rewards, dense rewards, random resets, reset free |
|
|
311 |
|
|
|
312 |
.. image:: images/hand_object_hold.png |
|
|
313 |
:width: 200 |
|
|
314 |
|
|
|
315 |
Hand Pen Twirl |
|
|
316 |
============== |
|
|
317 |
A :ref:`myoHand` model rotates a pen in the hand to a given orientation without dropping it. |
|
|
318 |
The complexity of this task is due to the intermittent contacts between the object and multiple fingers while trying to stabilize the object. |
|
|
319 |
|
|
|
320 |
Objective: |
|
|
321 |
Rotate the object to reach a given orientation (indicated by the green object in the scene) without dropping it. |
|
|
322 |
|
|
|
323 |
Variants: |
|
|
324 |
- **Easy**: Rotate to fixed orientation ``myoHandPenTwirlFixed-v0`` |
|
|
325 |
- **Hard**: Rotate of random orientation ``myoHandPenTwirlRandom-v0`` |
|
|
326 |
- **More**: sparse rewards, dense rewards, random resets, reset free |
|
|
327 |
|
|
|
328 |
.. image:: images/hand_pen_twirl.png |
|
|
329 |
:width: 200 |
|
|
330 |
|
|
|
331 |
Hand Multiobject Reorientation |
|
|
332 |
====================================== |
|
|
333 |
A :ref:`myoHand` model reorients a set of parameterized geometries to a given target orientation without dropping it. |
|
|
334 |
As with before, the complexity of this task is due to the intermittent contacts between the object and multiple fingers while trying to stabilize the object, as well as the multiobject nature of the task. |
|
|
335 |
|
|
|
336 |
Objective: |
|
|
337 |
Rotate one randomly chosen object in the set to reach a given orientation without dropping it. |
|
|
338 |
|
|
|
339 |
Variants: |
|
|
340 |
- **Easiest**: Eight-object reorientation ``myoHandReorient8-v0`` |
|
|
341 |
- **Easy**: 100-object reorientation ``myoHandReorient100-v0`` |
|
|
342 |
- **Hard**: 1000-object orientation (in-domain parameterized geoms) ``myoHandReorientID-v0`` |
|
|
343 |
- **Hardest**: 1000-object orientation (out-of-domain parameterized geoms) ``myoHandReorientOOD-v0`` |
|
|
344 |
|
|
|
345 |
|
|
|
346 |
.. image:: images/multiobj_reorient.png |
|
|
347 |
:width: 200 |
|
|
348 |
|
|
|
349 |
Hand Die Rotation (MyoChallenge 2022) |
|
|
350 |
======================================== |
|
|
351 |
A :ref:`myoHand` model involved for reconfiguring a die to match desired goal orientations. |
|
|
352 |
This task require delicate coordination of various muscles to manipulate the die without dropping it. |
|
|
353 |
|
|
|
354 |
Objective: |
|
|
355 |
Rotate the object to reach a given orientation (indicated by the green reference object in the scene) without dropping it. |
|
|
356 |
|
|
|
357 |
Action Space: |
|
|
358 |
The whole set of muscle [0, 1] |
|
|
359 |
|
|
|
360 |
Observation Space: |
|
|
361 |
All joints angles [-:math:`\pi`, :math:`\pi`] |
|
|
362 |
|
|
|
363 |
|
|
|
364 |
Variants: |
|
|
365 |
- **Easy**: Goal position and orientation limited ``myoChallengeDieReorientP1-v0`` |
|
|
366 |
- **Hard**: Large range of goal position and rotations. Variability in object size and frictions. ``myoChallengeDieReorientP2-v0`` |
|
|
367 |
- **More**: Sparse rewards, 3 different dense reward options to choose from |
|
|
368 |
|
|
|
369 |
.. image:: images/hand_die_rotation.png |
|
|
370 |
:width: 200 |
|
|
371 |
|
|
|
372 |
Hand Baoding Balls (MyoChallenge 2022) |
|
|
373 |
======================================== |
|
|
374 |
A :ref:`myoHand` model involved for simultaneous rotation of two free-floating spheres over the palm. |
|
|
375 |
This task requires both dexterity and coordination. |
|
|
376 |
|
|
|
377 |
Objective: |
|
|
378 |
Achieve relative rotation of the balls around each other without dropping them. |
|
|
379 |
|
|
|
380 |
Action Space: |
|
|
381 |
The whole set of muscle [0, 1] |
|
|
382 |
|
|
|
383 |
Observation Space: |
|
|
384 |
All joints angles [-:math:`\pi`, :math:`\pi`] |
|
|
385 |
|
|
|
386 |
|
|
|
387 |
Variants: |
|
|
388 |
- **Easy**: Swap the position of the balls ``myoChallengeBaodingP1-v1`` |
|
|
389 |
- **Hard**: Large range of goal position and rotations. Variability in object size and frictions. ``myoChallengeBaodingP2-v1`` |
|
|
390 |
- **More**: Sparse rewards, 3 different dense reward options to choose from |
|
|
391 |
|
|
|
392 |
.. image:: images/hand_baoding_balls.png |
|
|
393 |
:width: 200 |
|
|
394 |
|
|
|
395 |
Leg Walk |
|
|
396 |
======================================== |
|
|
397 |
A :ref:`myoLeg` model walks across a flat (or rough) surface. |
|
|
398 |
This task requires the control of 80 muscles while stabilizing the body to not fall down. |
|
|
399 |
|
|
|
400 |
Objective: |
|
|
401 |
Achieve target velocities while periodically moving your hip joints. |
|
|
402 |
|
|
|
403 |
Variants: |
|
|
404 |
- **Easy**: Achieve a forward velocity in the y-direction without moving in the x-direction. ``myoLegWalk-v0`` |
|
|
405 |
- **Hard**: Achieve a forward velocity in the y-direction without moving in the x-direction on uneven terrain. ``myoLeg<Rough|Hilly|Stair>Walk-v0`` |
|
|
406 |
|
|
|
407 |
.. image:: images/myoLeg_walk.png |
|
|
408 |
:width: 200 |
|
|
409 |
|
|
|
410 |
|
|
|
411 |
.. Relocate Mobjects |
|
|
412 |
.. ======================================== |
|
|
413 |
.. A :ref:`myoArm` model |
|
|
414 |
|
|
|
415 |
|
|
|
416 |
|
|
|
417 |
.. Non-stationarities task variations |
|
|
418 |
.. *********************************** |
|
|
419 |
|
|
|
420 |
|
|
|
421 |
.. .. _sarcopenia: |
|
|
422 |
|
|
|
423 |
.. Sarcopenia |
|
|
424 |
.. ============== |
|
|
425 |
|
|
|
426 |
.. Sarcopenia is a muscle disorder that occurs commonly in the elderly population (Cruz-Jentoft and Sayer (2019)) |
|
|
427 |
.. and characterized by a reduction in muscle mass or volume. |
|
|
428 |
.. The peak in grip strength can be reduced up to 50% from age 20 to 40 (Dodds et al. (2016)). |
|
|
429 |
.. We modeled sarcopenia for each muscle as a reduction of 50% of its maximal isometric force. |
|
|
430 |
|
|
|
431 |
|
|
|
432 |
.. .. _fatigue: |
|
|
433 |
|
|
|
434 |
.. Fatigue |
|
|
435 |
.. ============================ |
|
|
436 |
.. Muscle Fatigue is a short-term (second to minutes) effect that happens after sustained or repetitive voluntary movement |
|
|
437 |
.. and it has been linked to traumas e.g. cumulative trauma disorder (Chaffin et al. (2006)). |
|
|
438 |
.. A dynamic muscle fatigue model (Ma et al. (2009)) was integrated into the modeling framework. |
|
|
439 |
.. This model was based on the idea that different types of muscle fiber that have different contributions |
|
|
440 |
.. and resistance to fatigue (Vøllestad (1997)). |
|
|
441 |
.. The current implementation is simplified to consider the same fatigue factor for all muscles and |
|
|
442 |
.. that muscle can be completely fatigued. |
|
|
443 |
|
|
|
444 |
.. .. image:: images/Fatigue.png |
|
|
445 |
.. :width: 800 |
|
|
446 |
|
|
|
447 |
|
|
|
448 |
.. .. _ttransfer: |
|
|
449 |
|
|
|
450 |
.. Tendon transfer |
|
|
451 |
.. ================================= |
|
|
452 |
.. Contrary to muscle fatigue or sarcopenia that occurs to all muscles, tendon transfer surgery can target a single |
|
|
453 |
.. muscle-tendon unit. Tendon transfer surgery allows redirecting the application point of muscle forces from one joint |
|
|
454 |
.. DoF to another (see below). It can be used to regain functional control of a joint or limb motion after injury. |
|
|
455 |
.. One of the current procedures in the hand is the tendon transfer of Extensor Indicis Proprius (EIP) to replace the |
|
|
456 |
.. Extensor Pollicis Longus (EPL) (Gelb (1995)). Rupture of the EPL can happen after a broken wrist and create a loss of control |
|
|
457 |
.. of the Thumb extension. We introduce a physical tendon transfer where the EIP application point of the tendon was moved |
|
|
458 |
.. from the index to the thumb and the EPL was removed (see Figure 3). |
|
|
459 |
|
|
|
460 |
.. .. image:: images/tendon_transfer.png |
|
|
461 |
.. :width: 400 |
|
|
462 |
|
|
|
463 |
.. .. _exo: |
|
|
464 |
|
|
|
465 |
.. Exoskeleton assistance |
|
|
466 |
.. ====================== |
|
|
467 |
.. Exoskeleton assisted rehabilitation is becoming more and more common practice (Jezernik et al. (2003)) due to its multiple benefit (Nam et al. (2017)). |
|
|
468 |
.. Modeling of an exoskeleton for the elbow was done via an ideal actuator and the addition of two supports with a weight of 0.101 Kg for the upper arm and 0.111 Kg on the forearm. The assistance given by the exoskeleton was a percentage of the biological joint torque, this was based on the neuromusculoskeletal controller presented in Durandau et al. (2019). |
|
|
469 |
|
|
|
470 |
.. .. image:: images/elbow_exo.png |
|
|
471 |
.. :width: 200 |
|
|
472 |
|
|
|
473 |
|
|
|
474 |
.. _task_and_variations: |
|
|
475 |
|
|
|
476 |
|
|
|
477 |
Task and Variantions |
|
|
478 |
************************************ |
|
|
479 |
|
|
|
480 |
For convenience, Myosuite has implemented a set of muscle decifiencies that currently includes: :ref:`test_muscle_fatigue` , sarcopenia and tendon transfer alongside with the tasks. |
|
|
481 |
|
|
|
482 |
Here are a list of the tasks currently implement in Myosuite. See :ref:`task_variation` on how to include the additional features. |
|
|
483 |
|
|
|
484 |
|
|
|
485 |
+------------------------+----------------------------------+-----------------+-----------------------+---------------------------+--------------------------------+ |
|
|
486 |
|:ref:`tasks` | **Environment** | **Difficulty** |:ref:`test_sarcopenia` |:ref:`test_muscle_fatigue` | :ref:`test_tendon_transfer` | |
|
|
487 |
+------------------------+----------------------------------+-----------------+-----------------------+---------------------------+--------------------------------+ |
|
|
488 |
| Finger Joint Pose | ``myoFingerPoseFixed-v0`` | Easy | ✓ | ✓ | | |
|
|
489 |
+------------------------+----------------------------------+-----------------+-----------------------+---------------------------+--------------------------------+ |
|
|
490 |
| Finger Joint Pose | ``myoFingerPoseRandom-v0`` | Hard | ✓ | ✓ | | |
|
|
491 |
+------------------------+----------------------------------+-----------------+-----------------------+---------------------------+--------------------------------+ |
|
|
492 |
| Finger Tip Reach | ``myoFingerReachFixed-v0`` | Easy | ✓ | ✓ | | |
|
|
493 |
+------------------------+----------------------------------+-----------------+-----------------------+---------------------------+--------------------------------+ |
|
|
494 |
| Finger Tip Reach | ``myoFingerReachRandom-v0`` | Hard | ✓ | ✓ | | |
|
|
495 |
+------------------------+----------------------------------+-----------------+-----------------------+---------------------------+--------------------------------+ |
|
|
496 |
| Elbow Joint Pose | ``myoElbowPose1D6MRandom-v0`` | Hard | ✓ | ✓ | | |
|
|
497 |
+------------------------+----------------------------------+-----------------+-----------------------+---------------------------+--------------------------------+ |
|
|
498 |
| Hand Joints Pose | ``myoHandPoseFixed-v0`` | Easy | ✓ | ✓ | ✓ | |
|
|
499 |
+------------------------+----------------------------------+-----------------+-----------------------+---------------------------+--------------------------------+ |
|
|
500 |
| Hand Joints Pose | ``myoHandPoseRandom-v0`` | Hard | ✓ | ✓ | ✓ | |
|
|
501 |
+------------------------+----------------------------------+-----------------+-----------------------+---------------------------+--------------------------------+ |
|
|
502 |
| Hand Tips Reach | ``myoHandReachFixed-v0`` | Easy | ✓ | ✓ | ✓ | |
|
|
503 |
+------------------------+----------------------------------+-----------------+-----------------------+---------------------------+--------------------------------+ |
|
|
504 |
| Hand Tips Reach | ``myoHandReachRandom-v0`` | Hard | ✓ | ✓ | ✓ | |
|
|
505 |
+------------------------+----------------------------------+-----------------+-----------------------+---------------------------+--------------------------------+ |
|
|
506 |
| Hand Key Turn | ``myoHandKeyTurnFixed-v0`` | Easy | ✓ | ✓ | ✓ | |
|
|
507 |
+------------------------+----------------------------------+-----------------+-----------------------+---------------------------+--------------------------------+ |
|
|
508 |
| Hand Key Turn | ``myoHandKeyTurnRandom-v0`` | Hard | ✓ | ✓ | ✓ | |
|
|
509 |
+------------------------+----------------------------------+-----------------+-----------------------+---------------------------+--------------------------------+ |
|
|
510 |
| Hand Object Hold | ``myoHandObjHoldFixed-v0`` | Easy | ✓ | ✓ | ✓ | |
|
|
511 |
+------------------------+----------------------------------+-----------------+-----------------------+---------------------------+--------------------------------+ |
|
|
512 |
| Hand Object Hold | ``myoHandObjHoldRandom-v0`` | Hard | ✓ | ✓ | ✓ | |
|
|
513 |
+------------------------+----------------------------------+-----------------+-----------------------+---------------------------+--------------------------------+ |
|
|
514 |
| Hand Pen Twirl | ``myoHandPenTwirlFixed-v0`` | Easy | ✓ | ✓ | ✓ | |
|
|
515 |
+------------------------+----------------------------------+-----------------+-----------------------+---------------------------+--------------------------------+ |
|
|
516 |
| Hand Pen Twirl | ``myoHandPenTwirlRandom-v0`` | Hard | ✓ | ✓ | ✓ | |
|
|
517 |
+------------------------+----------------------------------+-----------------+-----------------------+---------------------------+--------------------------------+ |
|
|
518 |
| Die Rotation | ``myoChallengeDieReorientP1-v1`` | Easy | ✓ | ✓ | ✓ | |
|
|
519 |
+------------------------+----------------------------------+-----------------+-----------------------+---------------------------+--------------------------------+ |
|
|
520 |
| Die Rotation | ``myoChallengeDieReorientP2-v1`` | Hard | ✓ | ✓ | ✓ | |
|
|
521 |
+------------------------+----------------------------------+-----------------+-----------------------+---------------------------+--------------------------------+ |
|
|
522 |
| Hand Baoding Balls | ``myoChallengeBaodingP1-v1`` | Easy | ✓ | ✓ | ✓ | |
|
|
523 |
+------------------------+----------------------------------+-----------------+-----------------------+---------------------------+--------------------------------+ |
|
|
524 |
| Hand Baoding Balls | ``myoChallengeBaodingP2-v1`` | Hard | ✓ | ✓ | ✓ | |
|
|
525 |
+------------------------+----------------------------------+-----------------+-----------------------+---------------------------+--------------------------------+ |
|
|
526 |
| 8 Obj. Rotation | ``myoHandReorient8-v0`` | Easy | ✓ | ✓ | ✓ | |
|
|
527 |
+------------------------+----------------------------------+-----------------+-----------------------+---------------------------+--------------------------------+ |
|
|
528 |
| 100 Obj. Rotation | ``myoHandReorient100-v0`` | Easy | ✓ | ✓ | ✓ | |
|
|
529 |
+------------------------+----------------------------------+-----------------+-----------------------+---------------------------+--------------------------------+ |
|
|
530 |
| 1000 Obj. Rotation | ``myoHandReorientID-v0`` | Hard | ✓ | ✓ | ✓ | |
|
|
531 |
+------------------------+----------------------------------+-----------------+-----------------------+---------------------------+--------------------------------+ |
|
|
532 |
| 1000 Obj. Rotation | ``myoHandReorientOOD-v0`` | Hard | ✓ | ✓ | ✓ | |
|
|
533 |
+------------------------+----------------------------------+-----------------+-----------------------+---------------------------+--------------------------------+ |
|
|
534 |
| Leg walk | ``myoLegWalk-v0`` | Easy | ✓ | ✓ | | |
|
|
535 |
+------------------------+----------------------------------+-----------------+-----------------------+---------------------------+--------------------------------+ |
|
|
536 |
| Leg walk Rough Ground | ``myoLegRoughTerrainWalk-v0`` | Hard | ✓ | ✓ | | |
|
|
537 |
+------------------------+----------------------------------+-----------------+-----------------------+---------------------------+--------------------------------+ |
|
|
538 |
| Leg walk Hilly Ground | ``myoLegHillyTerrainWalk-v0`` | Hard | ✓ | ✓ | | |
|
|
539 |
+------------------------+----------------------------------+-----------------+-----------------------+---------------------------+--------------------------------+ |
|
|
540 |
| Leg walk Stair Ground | ``myoLegStairTerrainWalk-v0`` | Hard | ✓ | ✓ | | |
|
|
541 |
+------------------------+----------------------------------+-----------------+-----------------------+---------------------------+--------------------------------+ |
|
|
542 |
| Grasping & Placing | ``myoChallengeRelocateP1-v0`` | Easy | ✓ | ✓ | | |
|
|
543 |
+------------------------+----------------------------------+-----------------+-----------------------+---------------------------+--------------------------------+ |
|
|
544 |
| Chase Tag | ``myoChallengeChaseTagP1-v0`` | Easy | ✓ | ✓ | | |
|
|
545 |
+------------------------+----------------------------------+-----------------+-----------------------+---------------------------+--------------------------------+ |
|
|
546 |
|
|
|
547 |
.. _task_variation: |
|
|
548 |
|
|
|
549 |
Variations |
|
|
550 |
- **Sarcopenia**: myoSarc<Environment> e.g. myoSarcHandPoseFixed-v0 |
|
|
551 |
- **Fatigue**: myoFati<Environment> e.g. myoFatiElbowPose1D6MRandom-v0 |
|
|
552 |
- **TTransfer / Reafferentation**: myoReaf<Environment> e.g. myoReafHandPoseFixed-v0 |