Models and Tasks

Models and tasks are the most important aspects of Myosuite. To provide further,

Models

MyoSuite consists of five models: myoFinger, myoElbow, myoHand, myoArm and myoLeg. Using these models, we design a rich collection of tasks ranging across simple reaching movements, contact-rich movements involving object-manipulation such as pen-twirling and baoding balls, as well as locomotion behaviors.

myoFinger

Simplified and intuitive model (based on Xu et al. (2012)[https://ieeexplore.ieee.org/document/6290710]) of a 4 Degree of Freedom (DoF) finger which is actuated through a series of 5 simplified antagonistic muscle-tendon units. We also provide its robotic counterpart with simple torque actuators to facilitate the comparative investigation.

Details of this model can be found at myoFinger

_images/myoFinger.png

Acronym

Muscle

EXTN

Central Extensor

adabR

Abduction Tendon(Right)

adabL

Abduction Tendon(left)

mflx

Pip Flexor

dflx

DIP Flexor

myoElbow

A model of 2 DoF human elbow joint – based on OpenSim’s default testing arm model (Delp et al. (2007); Seth et al. (2018)) – and actuated using multiple agonist/antagonist pairs (3 flexors and 3 extensors).

Details of this model can be found at myoElbow

_images/myoElbow.png

Acronym

Muscle

TRIlong

Triceps long

TRIlat

Triceps lateral

TRImed

Triceps medial

BIClong

Biceps long

BICshort

Biceps short

BRA

Brachioradialis

myoHand

The dexterous human hand requires coordination of multiple highly redundant muscles, which have complementary and antagonistic effects on various joints. This musculoskeletal model is comprised of 29 bones, 23 joints, and 39 muscles-tendon units.

Details of this model can be found at myoHand

_images/myoHand.png

Acronym

Muscle

ECRL

Extensor Carpis Radialis Longus

ECRB

Extensor Carpis Radialis Brevis

ECU

Extensor Carpi Ulnaris

FCR

Flexor Carpi Radialis

FCU

Flexor Carpi Ulnaris

PL

Palmaris longus

PT

Pronator teres

PQ

Pronator

EIP

Extensor Indicis Proprius

EPL

Extensor Pollicis Longus

EPB

Extensor Pollicis Brevis

FPL

Flexor Pollicis Longus

APL

Abductor Pollicis Longus

OP

Opponens Pollicis

FDS

Flexor Digitorum Superficialis (2- index, 3- middle, 4- ring, 5- little)

FDP

Flexor Digitorum Profundus (2- index, 3- middle, 4- ring, 5- little)

EDC

Extensor Digitorum Communis (2- index, 3- middle, 4- ring, 5- little)

EDM

Extensor Digiti Minimi

RI

Radial Interosseous (2- index, 3- middle, 4- ring, 5- little)

LU-RB

Lumbrical (2- index, 3- middle, 4- ring, 5- little)

UI-UB

Palmar or Ulnar Interosseous (2- index, 3- middle, 4- ring, 5- little)

myoLeg

The 3D dexterous human leg requires coordination of multiple highly redundant muscles, which have complementary and antagonistic effects on various joints.

This musculoskeletal model is comprised of 10 joints, 20 DoFs, and 80 muscles-tendon units. This musculoskeletal model takes Rajagopal’s full body gait model [https://github.com/opensim-org/opensim-models/tree/master/Models/RajagopalModel] as close reference.

Joints and muscle details can be found in Rajagopal’s paper [https://ieeexplore.ieee.org/document/7505900]

The model implementation details can be found on our github repo at myoLeg

_images/MyoLeg.png

Acronym

Muscle

addbrev_r

Adductor brevis

addlong_r

Adductor longus

addmagDist_r

Adductor magnus (distal)

addmagIsch_r

Adductor magnus (ischial)

addmagMid_r

Adductor magnus (middle)

addmagProx_r

Adductor magnus (proximal)

bflh_r

Biceps femoris long head

bfsh_r

Biceps femoris short head

edl_r

Extensor digitorum longusc

ehl_r

Extensor hallucis longusc

fdl_r

Flexor digitorum longus

fhl_r

Flexor hallucis longus

gaslat_r

Gastrocnemius lateral head

gasmed_r

Gastrocnemius medial head

glmax1_r

Gluteus maximus (superior)

glmax2_r

Gluteus maximus (middle)

glmax3_r

Gluteus maximus (inferior)

glmed1_r

Gluteus medius (anterior)

glmed2_r

Gluteus medius (middle)

glmed3_r

Gluteus medius (posterior)

glmin1_r

Gluteus minimus (anterior)

glmin2_r

Gluteus minimus (middle)

glmin3_r

Gluteus minimus (posterior)

grac_r

Gracilis

iliacus_r

Iliacus

perbrev_r

Peroneus brevis

perlong_r

Peroneus longus

piri_r

Piriformis

psoas_r

Psoas

recfem_r

Rectus femoris

sart_r

Sartorius

semimem_r

Semimembranosus

semiten_r

Semitendinosus

soleus_r

Soleus

tfl_r

Tensor fascia latae

tibant_r

Tibialis anterior

tibpost_r

Tibialis posterior

vasint_r

Vastus intermedius

vaslat_r

Vastus lateralis

vasmed_r

Vastus medialis

myoArm

The 3D dexterous human arm reaching and manipulation.

This musculoskeletal model is comprised of 27 Degree of Freedom, and 63 muscles-tendon units.

Model specification can be found on our github repo of myoArm

_images/myoArm.png

Tasks

Finger Joint Pose

Objective:
  • Strike a joint pose

Variants:
  • Easy: Move to a fixed specified joint pose myoFingerPoseFixed-v0

  • Hard: Move to randomly selected joint poses myoFingerPoseRandom-v0

  • More: Random resets, no resets, dense rewards, sparse rewards

_images/finger_joint_pose.png

Finger Tip Reach

Objective:
  • Reach using finger tips

Variants:
  • Easy: Reach to a fixed location myoFingerReachFixed-v0

  • Hard: Reach to random locations myoFingerReachRandom-v0

  • More: Random resets, no resets, dense rewards, sparse rewards

_images/finger_tip_reach.png

Elbow Joint Pose

myoElbow model with 6 muscles (3 flexors and 3 extensors) was simplified to have only elbow rotations. Although it is not a physiologically accurate model it can be a very simple model for troubleshooting initial control schemes.

Objective:

Move elbow to a specified pose.

Variants:
  • Easy: Move to random joint poses using 1 muscle ElbowPose1D1MRandom-v0

  • Hard: Move to random joint poses using 6 muscles myoElbowPose1D6MRandom-v0

  • More: Random resets, no resets, dense rewards, sparse rewards

_images/elbow_joint_pose.png

Hand Joints Pose

Drive the myoHand model to achieve a joint poses. In addition to making co-ordinated movements, avoiding self collisions poses additional challenges in solving this task.

Objective:

Strike a hand pose

Variants:
  • Easy: Move to a fixed joint pose myoHandPoseFixed-v0

  • Hard: Move to a randomly selected joint pose myoHandPoseRandom-v0

  • More: Random resets, no resets, dense rewards, sparse rewards

_images/hand_joint_pose.png

Hand Tips Reach

Make reaching movements using the myoHand model to have finger tips achieve a specific spatial position. In addition to making co-ordinated movements, avoiding self collisions poses additional challenges in solving this task.

Objective:

Reach using finger tips

Variants:
  • Easy: Reach fixed positions using finger tips myoHandReachFixed-v0

  • Hard: Reach random positions using finger tips myoHandReachRandom-v0

  • More: Random resets, no resets, dense rewards, sparse rewards

_images/hand_tip_reach.png

Hand Key Turn

Use the the myoHand model to rotate a key. The complexity of this task is due to the use of only index and thumb fingers to solve the task with intermittent contact with the key.

Objective:

Coordinate finger movements to rotate a key

Variants:
  • Easy: Achieve half rotation of the key myoHandKeyTurnFixed-v0

  • Hard: Achieve full rotation + random initial configuration myoHandKeyTurnRandom-v0

  • More: Random resets, no resets, dense rewards, sparse rewards

_images/hand_key_turn.png

Hand Object Hold

A myoHand model moves an object in the hand to a given orientation without dropping it. The complexity of this task is due to the intermittent contacts between the object and multiple fingers needing co-ordination to stabilize the object.

Objective:

Reposition an object to reach a given target without dropping it.

Variants:
  • Easy: Reposition to a fixed position myoHandObjHoldFixed-v0

  • Hard: Reposition a random object to random positions myoHandObjHoldRandom-v0

  • More: sparse rewards, dense rewards, random resets, reset free

_images/hand_object_hold.png

Hand Pen Twirl

A myoHand model rotates a pen in the hand to a given orientation without dropping it. The complexity of this task is due to the intermittent contacts between the object and multiple fingers while trying to stabilize the object.

Objective:

Rotate the object to reach a given orientation (indicated by the green object in the scene) without dropping it.

Variants:
  • Easy: Rotate to fixed orientation myoHandPenTwirlFixed-v0

  • Hard: Rotate of random orientation myoHandPenTwirlRandom-v0

  • More: sparse rewards, dense rewards, random resets, reset free

_images/hand_pen_twirl.png

Hand Multiobject Reorientation

A myoHand model reorients a set of parameterized geometries to a given target orientation without dropping it. 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.

Objective:

Rotate one randomly chosen object in the set to reach a given orientation without dropping it.

Variants:
  • Easiest: Eight-object reorientation myoHandReorient8-v0

  • Easy: 100-object reorientation myoHandReorient100-v0

  • Hard: 1000-object orientation (in-domain parameterized geoms) myoHandReorientID-v0

  • Hardest: 1000-object orientation (out-of-domain parameterized geoms) myoHandReorientOOD-v0

_images/multiobj_reorient.png

Hand Die Rotation (MyoChallenge 2022)

A myoHand model involved for reconfiguring a die to match desired goal orientations. This task require delicate coordination of various muscles to manipulate the die without dropping it.

Objective:

Rotate the object to reach a given orientation (indicated by the green reference object in the scene) without dropping it.

Action Space:

The whole set of muscle [0, 1]

Observation Space:

All joints angles [-\(\pi\), \(\pi\)]

Variants:
  • Easy: Goal position and orientation limited myoChallengeDieReorientP1-v0

  • Hard: Large range of goal position and rotations. Variability in object size and frictions. myoChallengeDieReorientP2-v0

  • More: Sparse rewards, 3 different dense reward options to choose from

_images/hand_die_rotation.png

Hand Baoding Balls (MyoChallenge 2022)

A myoHand model involved for simultaneous rotation of two free-floating spheres over the palm. This task requires both dexterity and coordination.

Objective:

Achieve relative rotation of the balls around each other without dropping them.

Action Space:

The whole set of muscle [0, 1]

Observation Space:

All joints angles [-\(\pi\), \(\pi\)]

Variants:
  • Easy: Swap the position of the balls myoChallengeBaodingP1-v1

  • Hard: Large range of goal position and rotations. Variability in object size and frictions. myoChallengeBaodingP2-v1

  • More: Sparse rewards, 3 different dense reward options to choose from

_images/hand_baoding_balls.png

Leg Walk

A myoLeg model walks across a flat (or rough) surface. This task requires the control of 80 muscles while stabilizing the body to not fall down.

Objective:

Achieve target velocities while periodically moving your hip joints.

Variants:
  • Easy: Achieve a forward velocity in the y-direction without moving in the x-direction. myoLegWalk-v0

  • Hard: Achieve a forward velocity in the y-direction without moving in the x-direction on uneven terrain. myoLeg<Rough|Hilly|Stair>Walk-v0

_images/myoLeg_walk.png

Task and Variantions

For convenience, Myosuite has implemented a set of muscle decifiencies that currently includes: Muscle Fatigue , sarcopenia and tendon transfer alongside with the tasks.

Here are a list of the tasks currently implement in Myosuite. See Variations on how to include the additional features.

Tasks

Environment

Difficulty

Sarcopenia

Muscle Fatigue

Physical tendon transfer

Finger Joint Pose

myoFingerPoseFixed-v0

Easy

Finger Joint Pose

myoFingerPoseRandom-v0

Hard

Finger Tip Reach

myoFingerReachFixed-v0

Easy

Finger Tip Reach

myoFingerReachRandom-v0

Hard

Elbow Joint Pose

myoElbowPose1D6MRandom-v0

Hard

Hand Joints Pose

myoHandPoseFixed-v0

Easy

Hand Joints Pose

myoHandPoseRandom-v0

Hard

Hand Tips Reach

myoHandReachFixed-v0

Easy

Hand Tips Reach

myoHandReachRandom-v0

Hard

Hand Key Turn

myoHandKeyTurnFixed-v0

Easy

Hand Key Turn

myoHandKeyTurnRandom-v0

Hard

Hand Object Hold

myoHandObjHoldFixed-v0

Easy

Hand Object Hold

myoHandObjHoldRandom-v0

Hard

Hand Pen Twirl

myoHandPenTwirlFixed-v0

Easy

Hand Pen Twirl

myoHandPenTwirlRandom-v0

Hard

Die Rotation

myoChallengeDieReorientP1-v1

Easy

Die Rotation

myoChallengeDieReorientP2-v1

Hard

Hand Baoding Balls

myoChallengeBaodingP1-v1

Easy

Hand Baoding Balls

myoChallengeBaodingP2-v1

Hard

8 Obj. Rotation

myoHandReorient8-v0

Easy

100 Obj. Rotation

myoHandReorient100-v0

Easy

1000 Obj. Rotation

myoHandReorientID-v0

Hard

1000 Obj. Rotation

myoHandReorientOOD-v0

Hard

Leg walk

myoLegWalk-v0

Easy

Leg walk Rough Ground

myoLegRoughTerrainWalk-v0

Hard

Leg walk Hilly Ground

myoLegHillyTerrainWalk-v0

Hard

Leg walk Stair Ground

myoLegStairTerrainWalk-v0

Hard

Grasping & Placing

myoChallengeRelocateP1-v0

Easy

Chase Tag

myoChallengeChaseTagP1-v0

Easy

Variations
  • Sarcopenia: myoSarc<Environment> e.g. myoSarcHandPoseFixed-v0

  • Fatigue: myoFati<Environment> e.g. myoFatiElbowPose1D6MRandom-v0

  • TTransfer / Reafferentation: myoReaf<Environment> e.g. myoReafHandPoseFixed-v0