Computer rotation matrix use SVD (1)

Rotation of a Body

In motion analysis, it is often necessary to compute the transformation matrix directly from the coordinates of the markers fixed on a moving body. This can be done if more than 3 markers are fixed on the body. Once the transformation matrix is known, the orientation angles and eventually the location of center of rotation as well may be computed.

As shown in Figure 1, an object rotates from position 1 to position 2 about the center of rotation (C). Let rotation matrix R be

    Figure 1

.    [1]

The following relationship holds:

,    [2]

where [xcyczc] = the coordinates of the center of rotation, [x1iy1iz1i] = the position of marker i at position 1, and [x2iy2iz2i] = the position of marker i at position 2. [2] involves a total of 12 unknowns, thus requires at least 4 markers since each marker provides 3 equations.

In an effort to reduce the number of unknowns involved, [2] can be reduced to

    [3]

where

    [4]

,    [5]

and N = number of markers. [3] basically shows the rotational transformation about the mean-coordinate point within the body, involving 9 unknowns. At least 3 markers are required here. From [3]:

.    [6]

Top

The Least-Square Approach

Applying the least-square approach to [6]:

.    [7]

Further developing [7]:

    [8]

since

    [9]

and

.    [10]

Matrix  shown in [10] is a 1 x 1 matrix (scalar) so it is equal to its transpose.

The least-square approach presented in [7] is in fact equivalent to

.    [11]

Further developing [11]:

    [12]

since

    [13]

where tr(a) = the trace (sum of the diagonal terms) of matrix a

Now, let

,    [14]

where c = the cross-dispersion matrix or the correlation matrix.

From [11][12] & [14]:

.    [15]

Top

Computation of the Rotation Matrix

The singular value decomposition of matrix c shown in [15] provides

,    [16]

where u & v = orthogonal matrices, and w = diagonal matrix containing the singular values of c. See the Singular Value Decomposition page in this section for the details of this method. Substituting [16] into [15],

,    [17]

where

,    [18]

since

    [19]

Since matrix w shown in [17] is a diagonal matrix, only the diagonal elements of matrix c' shown in [17] and [18] can contribute to the trace. In addition, matrix c' must be orthogonal because all three matrices composing c' are orthogonal. Therefore, tr(c'w) becomes maximum when c' is the identity matrix:

.    [20]

Therefore,

.    [21]

One problem that may arise here in using [21] is that matrix R obtained from [21] can have a determinant of -1. In other words, one can obtain a reflection matrix of the desired rotation matrix. [21] can be modified to solve this problem:

.    [22]

Top

Application

[22] can be used effectively in quantifying the joint motions. As shown in Figure 2, one can transform the global coordinates of the markers fixed to the distal segment to those described in the proximal segment's reference frame (frame P):

    Figure 2

,    [23]

where i = marker, x = the position of the marker observed in frame PTP/G = the transformation matrix from the global frame to frame PX = the global position of the marker, and XP = the global position of the origin of frameP. Thus, vectors x'1i & x'2i shown in [2] can be obtained as

.    [24]

The rotation matrix to be obtained from [22] in this case is therefore the joint motion matrix. One thing, at least 3 markers must be commonly observed at both positions (N shown in [7] >= 3).

Top

References & Related Literature

Challis, J.H. (1995). A procedure for determining rigid body transformation parameters. J. Biomechanics 28, 733-737.




http://kwon3d.com/theory/jkinem/rotmat.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值