You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1.2 KiB

How the inverse kinematics is calculated

The concept uses the following assumptions:

  • The degrees-of-freedom are limited to
    • Shoulder joint with 3dof and restrictive joint limits
    • The elbow with only 1dof
    • The wrist with 3dof and restrictive joint limits
  • for humans, within the reachable elbow positions, some areas are more likely to be used due to less muscle strain

Proposal 1 for am pose estimate

Input:

  • controller position
  • shoulder position estimate

Output:

  • Elbow position
  • Shoulder backslash (required to improve shoulder position estimate)

Step 1: Initial elbow position estimate

We try to get a first good estimate using a very simple method: given

  • a vector SpineShoulder, going from the spine at approx. breast-hight to the shoulder position, and
  • a vector ShoulderWrist, going from the shoulder to the wrist position, which can be easily inferred from the controller position,
  • calculate the cross-product like this for the right shoulder: var elbow_dir = SpineShoulder.cross(ShoulderWrist).

Step 2: Consider controller orientation

Step 3: Consider shoulder orientation

Step 4: Determine shoulder backslash for shoulder position estimation