Properties of the dynamic model

Based on Section 7.2 of Robotics: Modelling, Planning and Control.

The matrix \(\boldsymbol{\dot B} - 2C\) is skew symmetric

\(C\) is an \(n \times n\) matrix such that its elements \(C_{ij}\) satisfy (see Equations of motion):

\[\sum_{j=1}^{n} C_{ij}\,\dot{q}_{j} = \sum_{j=1}^{n} \sum_{k=1}^{n} h_{ijk}\,\dot{q}_{k}\,\dot{q}_{j}\]
\[\text{where:}\]
\[h_{ijk} = \frac{\partial b_{ij}}{\partial q_{k}} - \tfrac{1}{2}\,\frac{\partial b_{jk}}{\partial q_{i}}\]

Hence:

\[\sum_{j=1}^n C_{ij}\,\dot q_j = \sum_{j=1}^n \sum_{k=1}^n \frac{\partial b_{ij}}{\partial q_k}\,\dot q_k\,\dot q_j \;-\;\frac12 \sum_{j=1}^n \sum_{k=1}^n \frac{\partial b_{jk}}{\partial q_i}\,\dot q_k\,\dot q_j\]
\[\sum_{j=1}^n C_{ij}\,\dot q_j = \underbrace{\sum_{j=1}^n \sum_{k=1}^n \frac{\partial b_{ij}}{\partial q_k}\,\dot q_k\,\dot q_j}_{\text{this is the same as:}} \;-\;\tfrac12 \sum_{j=1}^n \sum_{k=1}^n \frac{\partial b_{jk}}{\partial q_i}\,\dot q_k\,\dot q_j\]
\[\quad\quad\quad\quad\quad\quad\sum_{j=1}^n\sum_{k=1}^n \frac{\partial b_{ik}}{\partial q_j}\,\dot q_k\,\dot q_j \quad\text{or equivalently}\quad \sum_{j=1}^n\sum_{k=1}^n \tfrac12 \Bigl[ \frac{\partial b_{ij}}{\partial q_k} + \frac{\partial b_{ik}}{\partial q_j} \Bigr] \dot q_k\,\dot q_j\]

Then:

\[\sum_{j=1}^n C_{ij}\,\dot q_j = \sum_{j=1}^n \underbrace{\sum_{k=1}^n\tfrac12 \Bigl[ \frac{\partial b_{ij}}{\partial q_k} + \frac{\partial b_{ik}}{\partial q_j} - \frac{\partial b_{jk}}{\partial q_i} \Bigr] \dot q_k}_{C_{ij}}\,\dot q_j\]

That is:

\[C_{ij} = \sum_{k=1}^n C_{ijk}\,\dot q_k,\]
\[C_{ijk} = \tfrac12 \Bigl( \frac{\partial b_{ij}}{\partial q_k} + \frac{\partial b_{ik}}{\partial q_j} - \frac{\partial b_{jk}}{\partial q_i} \Bigr)\]
\[\text{which are the Christoffel symbols of the first type } (C_{ijk} = C_{ikj}).\]

Let’s rewrite \(C_{ij}\) as:

\[ \begin{align}\begin{aligned}C_{ij} = \tfrac12 \sum_{k=1}^n \frac{\partial b_{ij}}{\partial q_k}\,\dot q_k + \tfrac12 \sum_{k=1}^n \Bigl( \frac{\partial b_{ik}}{\partial q_j} - \frac{\partial b_{jk}}{\partial q_i} \Bigr) \dot q_k\\= \tfrac12\,\dot b_{ij} + \tfrac12 \sum_{k=1}^n \Bigl( \frac{\partial b_{ik}}{\partial q_j} - \frac{\partial b_{jk}}{\partial q_i} \Bigr) \dot q_k\end{aligned}\end{align} \]

Let us now define:

\[N(\boldsymbol q,\boldsymbol{\dot{q}}) = \dot{B}(\boldsymbol q)\;-\;2\,C(\boldsymbol q,\dot{\boldsymbol q})\]
\[n_{ij} = \dot{b}_{ij}\;-\;2\,C_{ij} = \sum_{k=1}^{n} \Bigl( \frac{\partial b_{ik}}{\partial q_{j}} - \frac{\partial b_{jk}}{\partial q_{i}} \Bigr) \dot q_{k}\]

We observe that \(n_{ij} = -n_{ji}\), i.e. \(N(\boldsymbol q,\dot{\boldsymbol q})\) is skew-symmetric.

Then:

\[\boxed{\boldsymbol \omega^{T}\,N(\boldsymbol q,\dot{\boldsymbol q})\,\boldsymbol{\omega} \;=\; 0}\]

In particular we will use:

\[\boxed{\boldsymbol{\dot q^{T}}\,N(\boldsymbol q,\boldsymbol{\dot{q}})\,\boldsymbol{\dot{q}} \;=\; 0}\]

Linearity with the dynamic parameters

The Lagrangian \(\mathcal{L}(\boldsymbol q,\boldsymbol{\dot{q}}) = \mathcal{T}(\boldsymbol q,\boldsymbol{\dot{q}}) - \mathcal{U}(\boldsymbol q)\) can be rewritten as

\[\mathcal{L}(\boldsymbol q,\boldsymbol{\dot{q}}) = \sum_{j=1}^{n} \bigl( \beta_{T_j}^{T}(\boldsymbol q,\boldsymbol{\dot{q}}) - \beta_{U_j}^{T}(\boldsymbol q) \bigr)\,\boldsymbol{\pi}_{j}\]

where

  • \(\boldsymbol{\pi}_{j}\) is a \((p\times 1)\) vector of parameters of link \(i\) (mass, position of center of mass, inertia).

  • \(\beta_{T_j}\) and \(\beta_{U_j}\) are \((p\times 1)\) vectors of the coefficients that multiply the dynamic parameters of \(\boldsymbol{\pi}_{j}\).

Then the Lagrange equations:

\[\frac{d}{dt}\Bigl(\frac{\partial \mathcal{L}}{\partial \dot q_i}\Bigr) \;-\;\frac{\partial \mathcal{L}}{\partial q_i} = \xi_i,\quad i=1,\dots,n\]

can be rewritten as:

\[\xi_i = \sum_{j=1}^n \boldsymbol y_{ij}^{T}\,\boldsymbol{\pi}_j,\quad i=1,\dots,n\]

where

\[\boldsymbol y_{ij} = \frac{d}{dt}\Bigl(\frac{\partial \beta_{T_j}}{\partial \dot q_i}\Bigr) - \Bigl(\frac{\partial \beta_{T_j}}{\partial q_i}\Bigr) + \Bigl(\frac{\partial \beta_{U_j}}{\partial q_i}\Bigr)\]

The derivatives appearing in \(\boldsymbol y_{ij}\) are null when \(j<i\). Then:

\[\begin{split}\begin{bmatrix} \xi_1 \\[6pt] \vdots \\[3pt] \xi_n \end{bmatrix} = \begin{bmatrix} \boldsymbol y_{11}^{T} & \boldsymbol y_{12}^{T} & \cdots & \boldsymbol y_{1n}^{T} \\[3pt] 0 & \boldsymbol y_{22}^{T} & \cdots & \boldsymbol y_{2n}^{T} \\[3pt] \vdots & \ddots & \ddots & \vdots \\[3pt] 0 & \cdots & 0 & \boldsymbol y_{nn}^{T} \end{bmatrix} \begin{bmatrix} \boldsymbol{\pi}_1 \\[3pt] \vdots \\[3pt] \boldsymbol{\pi}_n \end{bmatrix}\,.\end{split}\]

If we add the friction coefficients in vector \(\boldsymbol \pi_i\), then this can be rewritten in matrix form as:

\[\boxed{\boldsymbol \tau = y(\boldsymbol q,\dot{\boldsymbol q},\ddot{\boldsymbol q})\,\boldsymbol \pi}\]

and \(y(\boldsymbol q,\boldsymbol{\dot q},\boldsymbol{\ddot q})\) is called the regressor.