SMC_SolveEulerWrist (FUN)

 

FUNCTION SMC_SolveEulerWrist : BOOL

Solves the inverse kinematics of an euler wrist, i.e. a robot hand built from three rotary joints whose axes intersect in a single point. The three joints 4, 5, and 6 are assumed to be arranged according to the following Denavit-Hartenberg parameters:

i

Joint angle (offset) [deg]

Link offset [u]

Link length [u]

Link twist [deg]

4

0

d4

0

90

5

0

0

0

-90

6

0

d6

0

0

InOut:

Scope

Name

Type

Comment

Return

SMC_SolveEulerWrist

BOOL

Inout Const

mOTool

SMC_Matrix3

The orientation of the tool as a matrix. The columns of the matrix are the unit vectors of the tool coordinate system, expressed in world coordinates. Used read-only.

Input

bHandDown

BOOL

To disambiguate the two possible configurations of joint 5

Output

q3

LREAL

The angle of joint 3 in rad.

q4

LREAL

The angle of joint 4 in rad.

q5

LREAL

The angle of joint 5 in rad.

bSingularity

BOOL

True if q4 is (almost) zero. In this case q5 is set to zero (as there is no unique solution for q3 and q5).