In kinematics, the motion of a rigid body is defined as a continuous set of displacements. One-parameter motions can be definedas a continuous displacement of moving object with respect to a fixed frame in Euclidean three-space (E3), where the displacement depends on one parameter, mostly identified as time.
Rational motions are defined by rational functions (ratio of two polynomial functions) of time. They produce rational trajectories, and therefore they integrate well with the existing NURBS (Non-Uniform Rational B-Spline) based industry standard CAD/CAM systems. They are readily amenable to the applications of existing computer-aided geometric design (CAGD) algorithms. By combining kinematics of rigid body motions with NURBS geometry of curves and surfaces, methods have been developed for computer-aided design of rational motions.
These CAD methods for motion design find applications in animation in computer graphics (key frame interpolation), trajectory planning in robotics (taught-position interpolation), spatial navigation in virtual reality, computer-aided geometric design of motion via interactive interpolation, CNC tool path planning, and task specification in mechanism synthesis.
There has been a great deal of research in applying the principles of computer-aided geometric design (CAGD) to the problem of computer-aided motion design. In recent years, it has been well established that rational Bézier and rational B-spline based curve representation schemes can be combined with dual quaternion representation [1] of spatial displacements to obtain rational Bézier and B-splinemotions. Ge and Ravani,[2] [3] developed a new framework for geometric constructionsof spatial motions by combining the concepts from kinematics and CAGD. Their work was built upon the seminal paper of Shoemake,[4] in which heused the concept of a quaternion[5] for rotation interpolation. A detailed list of references on this topic can be found in [6] and.[7]
Let
\hat{bf{q}}=bf{q}+\varepsilonbf{q}0
\hat{bf{Q}}=bf{Q}+ \varepsilonbf{Q}0
bf{Q}=wbf{q}, bf{Q}0=wbf{q}0+w0bf{q}
\hat{bf{Q}}=\hat{w}\hat{bf{q}}
\hat{w}=w+\varepsilonw0
In terms of dual quaternions and the homogeneous coordinates of a point
bf{P}:(P1,P2,P3,P4)
\tilde{bf{P}}=bf{Q}bf{P}bf{Q}\ast+P4[(bf{Q}0)bf{Q}\ast-bf{Q}(bf{Q}0)\ast],
bf{Q}\ast
(bf{Q}0)\ast
bf{Q}
bf{Q}0
\tilde{bf{P}}
Given a set of unit dual quaternions and dual weights
\hat {bf{q}}i,\hat{w}i;i=0...n
\hat{bf{Q}}(t)=
n | |
\sum\limits | |
i=0 |
n | |
{B | |
i |
(t)\hat{bf{Q}}i}
n | |
= \sum\limits | |
i=0 |
n | |
{B | |
i |
(t)\hat{w}i\hat{bf{q}}i}
where
n(t) | |
B | |
i |
2n
Similarly, a B-spline dual quaternion curve, which defines a NURBSmotion of degree 2p, is given by,
\hat
n | |
{bf{Q}}(t)= \sum\limits | |
i=0 |
{Ni,p(t)\hat{bf{Q}}i}
n | |
= \sum\limits | |
i=0 |
{Ni,p(t)\hat{w}i\hat{bf{q}}i}
where
Ni,p(t)
A representation for the rational Bézier motion and rational B-spline motion in the Cartesian space can be obtained by substituting either of the above two preceding expressions for
\hat{bf{Q}}(t)
\tilde{bf{P}}2n(t)= [H2n(t)]bf{P},
H2n(t)]=
2n | |
\sum\limits | |
k=0 |
2n | |
{B | |
k |
(t)[Hk]},
where
[H2n(t)]
2n
[Hk]
[Hk]=
1 | ||||||
|
\sum\limitsi+j=k
n | |
{C | |
i |
n | |
C | |
j |
wiwj
\ast]}, | |
[H | |
ij |
where
\ast] | |
[H | |
ij |
=
-] | |
[H | |
j |
0+ | |
+ [H | |
i |
]-
0- | |
[H | |
j |
]+(\alphai-\alphaj )[H
+] | |
i |
In the above equations,
n | |
C | |
i |
n | |
C | |
j |
\alphai=
0/w | |
w | |
i, |
\alphaj
0/w | |
= w | |
j |
-] | |
[H | |
j |
=\left[\begin{array}{rrrr} qj,4&-qj,3&qj,2&-qj,1\\ qj,3&qj,4&-qj,1&-qj,2\\ -qj,2&qj,1&qj,4&-qj,3\\ qj,1&qj,2&qj,3&qj,4\\ \end{array}\right],
+] | |
[Q | |
i |
=\left[\begin{array}{rrrr} 0&0&0&qi,1\\ 0&0&0&qi,2\\ 0&0&0&qi,3\\ 0&0&0&qi,4\\ \end{array}\right],
0+ | |
[H | |
i |
]=\left[ \begin{array}{rrrr} 0&0&0&
0 | |
q | |
i,1 |
\\ 0&0&0&
0 | |
q | |
i,2 |
\\ 0&0&0&
0 | |
q | |
i,3 |
\\ 0&0&0&
0 | |
q | |
i,4 |
\\ \end{array}\right],
0- | |
[H | |
j |
]=\left[ \begin{array}{rrrr} 0&0&0&
0 | |
-q | |
j,1 |
\\ 0&0&0&
0 | |
-q | |
j,2 |
\\ 0&0&0&
0 | |
-q | |
j,3 |
\\ 0&0&0&
0 | |
q | |
j,4 |
\\ \end{array}\right],
+] | |
[H | |
i |
=\left[\begin{array}{rrrr} qi,4&-qi,3&qi,2&qi,1\\ qi,3&qi,4&-qi,1&qi,2\\ -qi,2&qi,1&qi,4&qi,3\\ -qi,1&-qi,2&-qi,3&qi,4\\ \end{array}\right].
In above matrices,
(qi,1,qi,2,qi,3,qi,4)
(bf{q}i)
0, | |
(q | |
i,1 |
0, | |
q | |
i,2 |
0, | |
q | |
i,3 |
0) | |
q | |
i,4 |
0) | |
(bf{q} | |
i |
(\hat{bf{q}}i)