Numerical Methods to Compute the Coriolis Matrix and Christoffel Symbols for Rigid-Body Systems
This work addresses a computational bottleneck for model-based control applications in robotics, enabling high-rate loops (>1kHz), though it is incremental as it builds on classical recursive methods.
The paper tackles the problem of efficiently computing the Coriolis matrix and Christoffel symbols for rigid-body systems, presenting numerical algorithms that achieve computation times of 10-20 μs for the Coriolis matrix and 40-120 μs for Christoffel symbols on systems with 20 degrees of freedom.
This article presents methods to efficiently compute the Coriolis matrix and underlying Christoffel symbols (of the first kind) for tree-structure rigid-body systems. The algorithms can be executed purely numerically, without requiring partial derivatives as in unscalable symbolic techniques. The computations share a recursive structure in common with classical methods such as the Composite-Rigid-Body Algorithm and are of the lowest possible order: $O(Nd)$ for the Coriolis matrix and $O(Nd^2)$ for the Christoffel symbols, where $N$ is the number of bodies and $d$ is the depth of the kinematic tree. Implementation in C/C++ shows computation times on the order of 10-20 $μ$s for the Coriolis matrix and 40-120 $μ$s for the Christoffel symbols on systems with 20 degrees of freedom. The results demonstrate feasibility for the adoption of these algorithms within high-rate ($>$1kHz) loops for model-based control applications.