I'm currently studying from the book Modern Robotics - Mechanics, Planning, and Control, and I'm having a hard time following the derivation of the Newton-Euler inverse dynamics algorithm, particularly the expression for the acceleration of rigid link {i}.
For clarity, the notation is defined as follows:
- $\mathcal{A}_i$: Screw axis of link frame {i}, expressed in frame-{i} coordinates
- $\mathcal{V}_i$: Twist of link frame {i}, expressed in frame-{i} coordinates
- $T_{i-1,i}(\theta)$: Configuration of frame {i} relative to {i-1} given the joint variable $\theta_i$
- $[a]_\times$: Skew-symmetric representation of $a\in\mathbb{R}^3$ $$[a]_\times = \begin{bmatrix}0&-a_3 & a_2 \\ a_3 & 0 & -a_1 \\ -a_2 & a_1 & 0\end{bmatrix}$$
- $[Ad_{T_{i,i-1}}]$: Matrix version of adjoint representation of $T_{i,i-1}$ $$[Ad_{T_{i,i-1}}]= \begin{bmatrix}R_{i,i-1}&0 \\ [p]_{\times}R_{i,i-1}&R_{i,i-1}\end{bmatrix}$$
Now, the expression for $\mathcal{V}_i$ can be written as: $$\mathcal{V_i} = \mathcal{A}_i\dot{\theta}_i + [Ad_{T_{i,i-1}}]\mathcal{V}_{i-1}$$
Taking the derivative $\mathcal{V_i}$, we obtain... $$\dot{\mathcal{V_i}} = \mathcal{A}_i\ddot{\theta}_i + [Ad_{T_{i,i-1}}]\dot{\mathcal{V}}_{i-1} + \frac{d}{dt}\left([Ad_{T_{i,i-1}}]\right)\mathcal{V}_{i-1}$$ To simplify the derivative expression, let us focus on the final term... $$ \begin{align} \frac{d}{dt}\left([Ad_{T_{i,i-1}}]\right)\mathcal{V}_{i-1} &= \frac{d}{dt}\left(\begin{bmatrix}R_{i,i-1}&0 \\ [p]_{\times}R_{i,i-1}&R_{i,i-1}\end{bmatrix}\right)\mathcal{V}_{i-1} \\ &= \left(\begin{bmatrix}\frac{d}{dt}(R_{i,i-1}) & 0 \\ \frac{d}{dt}([p]_{\times})R_{i,i-1} + [p]_{\times}\frac{d}{dt}(R_{i,i-1}) & \frac{d}{dt}(R_{i,i-1})\end{bmatrix}\right)\mathcal{V}_{i-1} \end{align} $$
At this point of the derivation, Lynch & Park make the following claims:
- $\frac{d}{dt}(R_{i,i-1}) = -[\omega\dot{\theta}_i]_{\times}R_{i,i-1}$
- $\frac{d}{dt}([p]_{\times})R_{i,i-1} + [p]_{\times}\frac{d}{dt}(R_{i,i-1}) = -[v\dot{\theta}_i]_{\times}R_{i,i-1}-[\omega\dot{\theta}_i]_{\times}[p]_{\times}R_{i,i-1}$
where $\mathcal{A}_i = \begin{bmatrix} \omega \\ v \end{bmatrix}$
Now, I understand that the negative signs arise as the screw axis is defined in frame {i} while the adjoint representation is for the configuration of {i-1} relative to {i}. The part I'm struggling to understand is how Lynch & Park flipped the order of matrix multiplication in the expression for $\frac{d}{dt}([p]_{\times})R_{i,i-1} + [p]_{\times}\frac{d}{dt}(R_{i,i-1})$.
The expression I was expecting was: $$\begin{align} \frac{d}{dt}([p]_{\times})R_{i,i-1} + [p]_{\times}\frac{d}{dt}(R_{i,i-1}) &= (-[v\dot{\theta}_i]_{\times})R_{i,i-1} + [p]_{\times}(-[\omega\dot{\theta}_i]_{\times}R_{i,i-1}) \\ &= -[v\dot{\theta}_i]_{\times}R_{i,i-1} - [p]_{\times}[\omega\dot{\theta}_i]_{\times}R_{i,i-1}\end{align}$$
I tried to see if my expression is equal to the expression given in the book to no avail. I feel like I'm missing something relatively obvious, but I can't seem to figure it out. If anyone can give me some advice or direction, I would greatly appreciate it.