Announcement

Collapse
No announcement yet.

Re: uniqueness and continuity of Euler angles

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Re: uniqueness and continuity of Euler angles

    Hi Ton and all,

    Ton's argument regarding the problems near the gimbal lock position is
    absolutely correct. That is why I initially assign missing values to the
    frames in which the arm is at or near the gimbal lock position and then
    generate the angles through the interpolation later based on the continuity
    of the motion. Assigning the missing values near the gimbal lock position
    will increase the chance of discontinuity if the arm motion occurs near the
    gimbal lock position. But this problem needs to be addressed regardless of
    the range of theta one chooses to use. Limiting theta within +/-90 degrees
    does not make the orientation angle data free from these problems. Moreover,
    checking the discontinuity by ~180 and/or by ~360 at the same time is not a
    difficult task to do.

    First of all, the discontinuity by ~360 degrees can be easily treated. Let's
    see the following equations:

    c(A[i]-A[i-1]) = c(A[i])c(A[i-1]) + s(A[i])s(A[i-1]) [1]

    s(A[i]-A[i-1]) = s(A[i])c(A[i-1]) - c(A[i])s(A[i-1]) [2]

    where A[i] = the computed orientation angle in frame i (computed already).
    If angles A[i] and A[i-1] are available, the cos and sin values of delta A
    (= A[i] - A[i-1]) can be obtained. Delta A (-180 to +180 degrees) then can
    be determined by using the atan2 function or alternative procedures we have
    discussed so far. If (1) the frame rate is reasonable, (2) you don't have
    too many consecutive frames missing between frames i and i-1, and (3) there
    is no discontinuity by ~180 degrees between frames i and i-1, delta A must
    be fairly small, close to 0. Anyway, the corrected A[i] will be

    A[1]' = A[1]
    A[i]' = A[i-1]' + delta A [3]

    The corrected angles are now free from discontinuity by ~360 degrees.

    The discontinuity by ~180 degrees forces delta A to be close to either +180
    or -180 degrees after the correction described above. I compute delta A's
    for all three orientation angles and their sum of squares (SS). Between the
    two candidate angle sets, the one that provides the smaller SS will be
    selected as the actual true angle set. I am sure there can be a better way
    to do this, but I simply compare the two sets and select the better one with
    less SS since the main focus is which angle set is better than the other.

    I absolutely agree with Richard Baker on the fact that a single rotation
    sequence can not make everyone happy in every possible situation in the
    shoulder. In fact, the example presented in my earlier posting (pure
    shoulder abduction) is an extreme case and the rotation sequence of XYZ may
    not be a good one. However, by expanding the range of theta to +/-180
    degrees, we can certainly accomodate the extreme cases as well. All in all,
    my method will be worth trying if the continuous angle-time curves are of
    importance.

    Cheers,

    Young-Hoo Kwon
    ------------------------------------------------------
    - Young-Hoo Kwon, Ph.D.
    - Biomechanics Lab, Texas Woman's University
    - ykwon@twu.edu
    - http://kwon3d.com
    ------------------------------------------------------

    ---------------------------------------------------------------
    To unsubscribe send SIGNOFF BIOMCH-L to LISTSERV@nic.surfnet.nl
    For information and archives: http://isb.ri.ccf.org/biomch-l
    ---------------------------------------------------------------
Working...
X