Physics:Rational motion

From HandWiki

In kinematics, the motion of a rigid body is defined as a continuous set of displacements. One-parameter motions can be defined as 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.

Background

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-spline motions. Ge and Ravani,[2][3] developed a new framework for geometric constructions of spatial motions by combining the concepts from kinematics and CAGD. Their work was built upon the seminal paper of Shoemake,[4] in which he used the concept of a quaternion[5] for rotation interpolation. A detailed list of references on this topic can be found in [6] and.[7]

Rational Bézier and B-spline motions

Let [math]\displaystyle{ \hat {\textbf{q}} = \textbf{q} + \varepsilon \textbf{q}^0 }[/math] denote a unit dual quaternion. A homogeneous dual quaternion may be written as a pair of quaternions, [math]\displaystyle{ \hat {\textbf{Q}}= \textbf{Q} + \varepsilon \textbf{Q}^0 }[/math]; where [math]\displaystyle{ \textbf{Q} = w\textbf{q}, \textbf{Q}^0 = w\textbf{q}^0 + w^0\textbf{q} }[/math]. This is obtained by expanding [math]\displaystyle{ \hat {\textbf{Q}} = \hat {w} \hat {\textbf{q}} }[/math] using dual number algebra (here, [math]\displaystyle{ \hat{w}=w+\varepsilon w^0 }[/math]).

In terms of dual quaternions and the homogeneous coordinates of a point [math]\displaystyle{ \textbf{P}:(P_1, P_2, P_3, P_4) }[/math] of the object, the transformation equation in terms of quaternions is given by

[math]\displaystyle{ \tilde {\textbf{P}} = \textbf{Q}\textbf{P}\textbf{Q}^\ast + P_4 [(\textbf{Q}^0)\textbf{Q}^\ast - \textbf{Q}(\textbf{Q}^0)^\ast], }[/math] where [math]\displaystyle{ \textbf{Q}^\ast }[/math] and [math]\displaystyle{ (\textbf{Q}^0)^\ast }[/math] are conjugates of [math]\displaystyle{ \textbf{Q} }[/math] and [math]\displaystyle{ \textbf{Q}^0 }[/math], respectively and [math]\displaystyle{ \tilde {\textbf{P}} }[/math] denotes homogeneous coordinates of the point after the displacement.[7]

Given a set of unit dual quaternions and dual weights [math]\displaystyle{ \hat {\textbf{q}}_i, \hat {w}_i; i = 0...n }[/math] respectively, the following represents a rational Bézier curve in the space of dual quaternions.

[math]\displaystyle{ \hat{\textbf{Q}}(t) = \sum\limits_{i = 0}^n {B_i^n (t)\hat {\textbf{Q}}_i} = \sum\limits_{i = 0}^n {B_i^n (t)\hat {w}_i \hat{\textbf{q}}_i} }[/math]

where [math]\displaystyle{ B_i^n(t) }[/math] are the Bernstein polynomials. The Bézier dual quaternion curve given by above equation defines a rational Bézier motion of degree [math]\displaystyle{ 2n }[/math].

Similarly, a B-spline dual quaternion curve, which defines a NURBS motion of degree 2p, is given by,

[math]\displaystyle{ \hat {\textbf{Q}}(t) = \sum\limits_{i = 0}^n {N_{i,p}(t) \hat {\textbf{Q}}_i } = \sum\limits_{i = 0}^n {N_{i,p}(t) \hat {w}_i \hat {\textbf{q}}_i } }[/math]

where [math]\displaystyle{ N_{i,p}(t) }[/math] are the pth-degree B-spline basis functions.

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 [math]\displaystyle{ \hat {\textbf{Q}}(t) }[/math] in the equation for point transform. In what follows, we deal with the case of rational Bézier motion. The trajectory of a point undergoing rational Bézier motion is given by,

[math]\displaystyle{ \tilde {\textbf{P}}^{2n}(t) = [H^{2n}(t)]\textbf{P}, }[/math]
[math]\displaystyle{ H^{2n}(t)] = \sum\limits_{k = 0}^{2n} {B_k^{2n}(t)[H_k]}, }[/math]

where [math]\displaystyle{ [H^{2n}(t)] }[/math] is the matrix representation of the rational Bézier motion of degree [math]\displaystyle{ 2n }[/math] in Cartesian space. The following matrices [math]\displaystyle{ [H_k ] }[/math] (also referred to as Bézier Control Matrices) define the affine control structure of the motion:

[math]\displaystyle{ [H_k] = \frac{1}{C_k^{2n}} \sum\limits_{i+j=k}{C_i^n C_j^n w_i w_j [H_{ij}^\ast]}, }[/math]

where [math]\displaystyle{ [H_{ij}^\ast] = [H_i^+][H_j^-] + [H_j^-][H_i^{0+}] - [H_i^+][H_j^{0-} ] + (\alpha_i - \alpha_j )[H_j^-][Q_i^+] }[/math].

In the above equations, [math]\displaystyle{ C_i^n }[/math] and [math]\displaystyle{ C_j^n }[/math] are binomial coefficients and [math]\displaystyle{ \alpha_i = w_i^0/w_i, \alpha_j = w_j^0/w_j }[/math] are the weight ratios and

[math]\displaystyle{ [H_j^-] = \left[ \begin{array}{rrrr} q_{j,4} & -q_{j,3} & q_{j,2} & -q_{j,1} \\ q_{j,3} & q_{j,4} & -q_{j,1} & -q_{j,2} \\ -q_{j,2} & q_{j,1} & q_{j,4} & -q_{j,3} \\ q_{j,1} & q_{j,2} & q_{j,3} & q_{j,4} \\ \end{array} \right], }[/math]
[math]\displaystyle{ [Q_i^+] = \left[ \begin{array}{rrrr} 0 & 0 & 0 & q_{i,1} \\ 0 & 0 & 0 & q_{i,2} \\ 0 & 0 & 0 & q_{i,3} \\ 0 & 0 & 0 & q_{i,4} \\ \end{array} \right], }[/math]
[math]\displaystyle{ [H_i^{0+}] = \left[ \begin{array}{rrrr} 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}^0 \\ \end{array} \right], }[/math]
[math]\displaystyle{ [H_j^{0-}] = \left[ \begin{array}{rrrr} 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}^0 \\ \end{array} \right], }[/math]
[math]\displaystyle{ [H_i^+] = \left[ \begin{array}{rrrr} q_{i,4} & -q_{i,3} & q_{i,2} & q_{i,1} \\ q_{i,3} & q_{i,4} & -q_{i,1} & q_{i,2} \\ -q_{i,2} & q_{i,1} & q_{i,4} & q_{i,3} \\ -q_{i,1} & -q_{i,2} & -q_{i,3} & q_{i,4} \\ \end{array} \right]. }[/math]

In above matrices, [math]\displaystyle{ (q_{i,1}, q_{i,2}, q_{i,3}, q_{i,4}) }[/math] are four components of the real part [math]\displaystyle{ (\textbf{q}_i) }[/math] and [math]\displaystyle{ (q_{i,1}^0, q_{i,2}^0, q_{i,3}^0, q_{i,4}^0) }[/math] are four components of the dual part[math]\displaystyle{ (\textbf{q}_i^0) }[/math] of the unit dual quaternion [math]\displaystyle{ (\hat {\textbf{q}}_i) }[/math].

Example

A teapot under Rational Bézier motion of degree 6 with (on the left) unit real weights ([math]\displaystyle{ \hat{w}_i = 1 + \epsilon 0; i = 0..3 }[/math]) (on the right) non-unit real weights ([math]\displaystyle{ \hat{w}_i = 1 + \epsilon 0; i = 0,3 }[/math] and [math]\displaystyle{ \hat{w}_i = 4 + \epsilon 0; i = 1,2 }[/math]); also shown are affine positions (distorted) as well as the given control positions (in blue color).

See also

References

  1. McCarthy, J. M. (1990). An Introduction to Theoretical Kinematics. MIT Press Cambridge, MA, USA. ISBN 978-0-262-13252-7. 
  2. Ge, Q. J.; Ravani, B. (1994). "Computer-Aided Geometric Design of Motion Interpolants". Journal of Mechanical Design 116 (3): 756–762. doi:10.1115/1.2919447. http://scitation.aip.org/getabs/servlet/GetabsServlet?prog=normal&id=JMDEDB000116000003000756000001&idtype=cvips&gifs=yes. 
  3. Ge, Q. J.; Ravani, B. (1994). "Geometric Construction of Bézier Motions". Journal of Mechanical Design 116 (3): 749–755. doi:10.1115/1.2919446. http://scitation.aip.org/getabs/servlet/GetabsServlet?prog=normal&id=JMDEDB000116000003000749000001&idtype=cvips&gifs=yes. 
  4. Shoemake, K. (1985). "Animating rotation with quaternion curves". Proceedings of the 12th annual conference on Computer graphics and interactive techniques - SIGGRAPH '85. 19. pp. 245–254. doi:10.1145/325334.325242. ISBN 978-0897911665. 
  5. Bottema, O.; Roth, B. (1990). Theoretical kinematics (Theoretical kinematics). Dover Publications. ISBN 978-0-486-66346-3. https://books.google.com/books?id=f8I4yGVi9ocC. 
  6. Röschel, O. (1998). "Rational motion design—a survey". Computer-Aided Design 30 (3): 169–178. doi:10.1016/S0010-4485(97)00056-0. 
  7. 7.0 7.1 Purwar, A.; Ge, Q. J. (2005). "On the effect of dual weights in computer-aided design of rational motions". Journal of Mechanical Design 127 (5): 967–972. doi:10.1115/1.1906263. http://scitation.aip.org/getabs/servlet/GetabsServlet?prog=normal&id=JMDEDB000127000005000967000001&idtype=cvips&gifs=yes88. 

External links