Skip to content
Survey of Higher Order Rigid Body Motion Interpolation Methods for Keyframe Animation and Continuous-Time Trajectory Estimation
C++ JavaScript CMake Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Survey of Higher Order Rigid Body Motion Interpolation Methods for Keyframe Animation and Continuous-Time Trajectory Estimation

Fork me on GitHub

3DV 2018

Adrian Haarbach, Tolga Birdal, Slobodan Ilic

Technische Universität München, Germany & Siemens AG, Munich, Germany

orientation rigid-body-motion


In this survey we carefully analyze the characteristics of higher order rigid body motion interpolation methods to obtain a continuous trajectory from a discrete set of poses. We first discuss the tradeoff between continuity, local control and approximation of classical Euclidean interpolation schemes such as Bezier and B-splines. The benefits of the manifold of unit quaternions SU(2), a double-cover of rotation matrices SO(3), as rotation parameterization are presented, which allow for an elegant formulation of higher order orientation interpolation with easy analytic derivatives, made possible through the Lie Algebra su(2) of pure quaternions and the cumulative form of cubic B-splines. The same construction scheme is then applied for joint interpolation in the full rigid body pose space, which had previously been done for the matrix representation SE(3) and its twists, but not for the more efficient unit dual quaternion DH1 and its screw motions. Both suffer from the effects of coupling translation and rotation that have mostly been ignored by previous work. We thus conclude that split interpolation in R3 × SU(2) is preferable for most applications. Our final runtime experiments show that joint interpolation in SE(3) is 2 times and in DH1 1.3 times slower - which furthermore justifies our suggestion from a practical point of view.


Paper | BibTex


<iframe width="560" height="315" src="" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>

Overview Table:

<iframe width="100%" height="700px" src=""></iframe>

Euclidean Interpolation (WebApp)

composite cubic Bezier curve

0 1 2

cubic B-spline

<script src="" charset="utf-8"></script> <script src="webapp/plotBasis.js"></script> <script src="webapp/deBoor.js"></script> <script src="webapp/demo.js"></script>

Orientation Interpolation (screencast of our C++ App)

Bezier Slerp Squad B-spline

source code (C++, Eigen, OpenGL)

You can’t perform that action at this time.