Table of Contents
Fetching ...

Approximating a matrix as the square of a skew-symmetric matrix, with application to estimating angular velocity from acceleration data

Yang Wan, Benjamin E. Grossman-Ponemona, Haneesh Kesari

TL;DR

This work addresses the problem of approximating an arbitrary real $n\times n$ matrix by a matrix that is the square of a real skew-symmetric matrix, using the Frobenius norm. It delivers a constructive proof of existence and introduces the skew-square-spectral approximant $\mathbf{U}^*[\mathbf{A}]$ as an explicit global minimizer, with an algorithm to compute it directly from the symmetric part of $\mathbf{A}$. The key contributions include the explicit diagonal-assembly rule for $\mathbf{D}^*$ based on eigenvalues $\lambda_i$ of the symmetric part, a practical algorithm, and small illustrative examples. The method is applied to the gyro-free $\,\sqrt{AO}$-algorithm for estimating angular velocity from accelerometer data, demonstrating improved robustness to noise and experimental imperfections in rigid-body kinematics.

Abstract

In this paper we study the problem of finding the best approximation of a real square matrix by a matrix that can be represented as the square of a real, skew-symmetric matrix. This problem is important in the design of robust numerical algorithms aimed at estimating rigid body kinematics from multiple accelerometer measurements. We give a constructive proof for the existence of a best approximant in the Frobenius norm. We demonstrate the construction with some small examples, and we showcase the practical importance of this work to the problem of determining the angular velocity of a rotating rigid body from its acceleration measurements.

Approximating a matrix as the square of a skew-symmetric matrix, with application to estimating angular velocity from acceleration data

TL;DR

This work addresses the problem of approximating an arbitrary real matrix by a matrix that is the square of a real skew-symmetric matrix, using the Frobenius norm. It delivers a constructive proof of existence and introduces the skew-square-spectral approximant as an explicit global minimizer, with an algorithm to compute it directly from the symmetric part of . The key contributions include the explicit diagonal-assembly rule for based on eigenvalues of the symmetric part, a practical algorithm, and small illustrative examples. The method is applied to the gyro-free -algorithm for estimating angular velocity from accelerometer data, demonstrating improved robustness to noise and experimental imperfections in rigid-body kinematics.

Abstract

In this paper we study the problem of finding the best approximation of a real square matrix by a matrix that can be represented as the square of a real, skew-symmetric matrix. This problem is important in the design of robust numerical algorithms aimed at estimating rigid body kinematics from multiple accelerometer measurements. We give a constructive proof for the existence of a best approximant in the Frobenius norm. We demonstrate the construction with some small examples, and we showcase the practical importance of this work to the problem of determining the angular velocity of a rotating rigid body from its acceleration measurements.

Paper Structure

This paper contains 37 sections, 11 theorems, 61 equations, 9 figures, 1 algorithm.

Key Result

Proposition 1

Problem p:OptimizationProblem($\bm{\mathsf{A}}$) admits a solution.

Figures (9)

  • Figure 1: Rigid body rotation experiment setup. (a) shows a sketch of the rigid body rotation experiment described in §\ref{['sec:rotationexp']}. (b) shows a more abstract version of the experiment. Subfigures (i) and (ii) respectively denote the configurations of the rigid body in our experiment at the initial and a later time instance. All the mathematical symbols in this figure are described in §\ref{['sec:rotationexp']}--\ref{['sec:ApplyingAO']}. For instance, the arrows marked $\boldsymbol{e}_i$, $i=1,2,3$, denote the basis vectors, and the blue cuboid marked $A_4$ denotes the accelerometer #4. Its position vector at the initial and at a later time instance is, respectively, marked in (i) and (ii) as ${}^4\!\boldsymbol{x}\left[0 \right ]$ and ${}^4\!\boldsymbol{x}\left[\bm{\tau} \right ]$. The components of ${}^4\!\boldsymbol{x}\left[0 \right ]$ w.r.t. $\left( \boldsymbol{e}_i \right)_{i\in I}$, which we denote as ${}^{4}\!\boldsymbol{\mathsf x}\left[0 \right ]$, in the punctuated rotation trial (see, e.g., §\ref{['sec:experiment']}) are $\left( 0.02,0.03,0.11 \right)$. Similarly, the components of the other accelerometers' initial position vectors are ${}^{1}\!\boldsymbol{\mathsf x}\left[0 \right ]=\left( -0.08,-0.01,0.04 \right)$, ${}^2\!\boldsymbol{\mathsf x}\left[0 \right ]=\left( 0.04,-0.06,0.01 \right)$, and ${}^3\!\boldsymbol{\mathsf x}\left[0 \right ]=\left( 0.02,0.08,-0.05 \right)$. The arrows marked ${}^{4}\boldsymbol{e}_i\left[0 \right ]$, $i=1,2,3$, in (i) denote accelerometer #4's measurement directions at the initial time instance. Their components w.r.t. $\left( \boldsymbol{e}_i \right)_{i\in I}$ in the punctuated rotation trial are $\left( -0.68,0.14,0.71 \right)$, $\left( 0.08,-0.95,0.27 \right)$, and $\left( 0.72,0.24,0.64 \right)$. Similarly, the components of $\left( {}^{1}\boldsymbol{e}_i\left[0 \right ] \right)_{i\in I}$ are $\left( \left( 0.44,0.66,0.61 \right),\left( -0.87,0.48,0.11 \right),\left( -0.22,-0.58,0.79 \right) \right)$, of $\left( {}^{2}\boldsymbol{e}_i\left[0 \right ] \right)_{i\in I}$ are $\left( \left( 0.07,0.97,0.22 \right),\left( -0.96,0,0.28 \right),\left( 0.27,-0.23,0.93 \right) \right)$, and of $\left( {}^{3}\boldsymbol{e}_i\left[0 \right ] \right)_{i\in I}$ are $\left( \left( -0.42,0.45,-0.78 \right),\left( -0.90,-0.24,0.34 \right),\left( -0.03,0.85,0.51 \right) \right)$. Furthermore, the arrows marked $\boldsymbol{e}_i\left[0 \right ]$, $i=1, 2, 3$, in (i) denote the body basis vectors at the initial time instance. Their respective components in the punctuated rotation trial are $\left( 1,0,0 \right)$, $\left( 0,1,0 \right)$, and $\left( 0,0,1 \right)$. The arrow marked $\boldsymbol{n}$ denotes the rotation axis, and its components are $\boldsymbol{\mathsf n}=\left( -0.27,-0.28,-0.92 \right)$.
  • Figure 2: Punctuated rotation experiment. Subfigures (a.i) and (a.ii), respectively, show the variation of the rotation angle and its derivative over time in the punctuated rotation experiment (see §\ref{['sec:experiment']} for details). Subfigure (b) shows the configurations of the rigid body (gray cuboid) and the accelerometers (blue cuboids within the gray cuboid) attached to it for different rotation angles. The three arrows attached to the top corner of the gray cuboid denote the body basis vectors. The three arrows attached to a blue cuboid denote the accelerometer's measurement directions.
  • Figure 3: Acceleration measurements in the punctuated rotation experiment (see §\ref{['sec:accemeasurement']} for details). Subfigures (a)--(d) correspond to the measurements from accelerometers $A_1$--$A_4$, respectively. The positions and orientations of the four accelerometers w.r.t. the rigid body is illustrated in Figs. \ref{['fig:testsetup']}(b) and \ref{['fig:frames']}(b). Each subfigure shows three graphs, labeled $i=1$, $i=2$, and $i=3$. These, respectively, correspond to the acceleration components measured by the accelerometer in its $1$, $2$, and $3$, directions (see, e.g., the three arrows attached to the cuboid in the inset in (a)).
  • Figure 4: Graphs of certain components of $\bm{\mathsf{B}}\left[\cdot \right ]$ in the punctuated rotation experiment. To avoid clutter we arbitrarily chose to only show the $\left( 1,2 \right)$, $\left( 1,3 \right)$, and $\left( 2,2 \right)$ components. Each component is graphed twice: once using the raw measurement for $\bm{\mathsf{B}}\left[\cdot \right ]$, namely $\widetilde{\bm{\mathsf{B}}}\left[\cdot \right ]$, which is computed directly from the acceleration measurements shown in Fig. \ref{['fig:measurment']}, using a thick, solid, partially transparent line; and again using the best approximant of $\widetilde{\bm{\mathsf{B}}}\left[\cdot \right ]$, namely $\widehat{\bm{\mathsf{B}}}\left[\cdot \right ]$, which is obtained by applying Theorem \ref{['thm:main']} to $\widetilde{\bm{\mathsf{B}}}\left[\cdot \right ]$, using a thin, solid, opaque line. See §\ref{['sec:ApplyingAO']} for details.
  • Figure 5: Body angular velocity in the punctuated rotation experiment. Subfigures (a)--(c), respectively, show graphs of the body angular velocity's three components. (These are equivalently the components of the angular velocity w.r.t. the body basis vectors, which are attached to the rigid body and rotate with it. The body basis vectors are illustrated, e.g., by the three arrows attached to the top corner of the gray cuboid (the rigid body) in the inset in (a).) Each component is graphed thrice: once from the ideal body angular velocity, specifically the $\overline{\boldsymbol{\mathsf w}}\left[\cdot \right ]$ given by \ref{['eq:wbfIdeal']} and \ref{['eq:PunctuatedRotationTheta']} for $\omega_m = 31.41$ and $\tau_1 = 5.81$, using a thick, solid, slightly transparent line; once from the body angular velocity yielded by the $\sqrt{\rm AO}$ algorithm, namely $\widetilde{\overline{\boldsymbol{\mathsf w}}}\left[\cdot \right ]$, using a thin, solid, opaque line; and finally from the body angular velocity yielded by the AO-algorithm, namely AO-$\widetilde{\overline{\boldsymbol{\mathsf w}}}\left[\cdot \right ]$, using hollow markers. See §\ref{['sec:comparison']} for details. Subfigure (d) shows the magnitude of the angular velocity. It too is similarly graphed thrice.
  • ...and 4 more figures

Theorems & Definitions (19)

  • Proposition 1
  • Definition 2: Skew-square-spectral approximant
  • Theorem 0
  • Lemma 3
  • Lemma 3
  • Definition 4
  • Lemma 4
  • Lemma 4
  • Theorem 0
  • proof
  • ...and 9 more