Effector & Chain definitions


This overview points out the relationship between the different names and specifies which model includes which joint:

  • Body = all Joints + the 2 Actuators added at the end of the arm links
  • Chain = Joints + Actuators
  • Effectors = all Chain names + Torso



These Effector names are identical to the Chain name except for “Torso”.

Effector name Position End transform
“Head” At the neck joint Position3D(0.0, 0.0, 0.0)
“LArm” Inside the hand Position3D(HandOffsetX, 0.0, -HandOffsetZ)
“LLeg” Below the ankle Position3D(0.0, 0.0, -FootHeight)
“RLeg” Below the ankle Position3D(0.0, 0.0, -FootHeight)
“RArm” Inside the hand Position3D(HandOffsetX, 0.0, -HandOffsetZ)
“Torso” A reference point in the torso Position3D(0.0, 0.0, 0.0)

To see the position of Effectors, see: Links .

For further details, see: Effectors .


The table below lists the chains and all the joints included in each chain:

Body is ... Head + LArm + LLeg + RLeg + RArm
The chain ... Head LArm LLeg RLeg RArm

involves the

joints ...

HeadYaw LShoulderPitch LHipYawPitch 1 RHipYawPitch 1 RShoulderPitch
HeadPitch LShoulderRoll LHipRoll RHipRoll RShoulderRoll
LElbowYaw LHipPitch RHipPitch RElbowYaw
LElbowRoll LKneePitch RKneePitch RElbowRoll
LWristYaw LAnklePitch RAnklePitch RWristYaw
LHand RAnkleRoll LAnkleRoll RHand


1 LHipYawPitch and RHipYawPitch share the same motor so they move simultaneously and symmetrically. In case of conflicting orders, LHipYawPitch always takes the priority.

The group “Body” addresses all the joints of the robot.

It is possible to get the list of joints available on your robot using the ALMotionProxy::getBodyNames method, described in the section: Case 2: Programmatic access to Joint Names .