I'm implementing a planner for a 6DOF underwater robot and I'm using the dynamics derived in chapter 7.5 of Fossen's Handbook of Marine Craft. I'm using the equations of motion expressed in NED using positions and euler angles in order to use differential flatness control. See equation 7.190.

Part of this is the transformation from velocities (linear and angular: [x_dot, y_dot, z_dot, p, q, r]) between the world (NED) frame and the body frame of the robot. This is described in equation 7.191 using the matrix $J$, which transforms the linear and angular velocities between the fixed world frame and the body frame:

$$J_\Theta(\eta) = \begin{bmatrix}R_b^n(\Theta_{nb}) & 0_{3\times3}\\ 0_{3\times3} & T_\Theta(\Theta_{nb})\end{bmatrix}$$ where: $$\dot\eta = J_\Theta(\eta)v$$ $$T_\Theta(\Theta_{nb}) = \begin{bmatrix}1 & \sin\phi \tan\theta & \cos\phi \tan\theta\\0 & \cos\phi & -\sin\phi\\ 0 & \sin\phi / \cos\theta & \cos\phi / \cos\theta\end{bmatrix}$$ $\eta$ is the position/orientation in the fixed world frame: $[x,y,z,\phi,\theta,\psi]$

$\dot\eta$ is the velocities in the world frame: $[\dot x, \dot y, \dot z, p, q, r]$

$v$ is the velocities in the body frame.

My problem is that to find the acceleration in the world frame, I need to know $\dot J$, which I can't seem to find a definition for in Fossen's textbook. See eq 7.192: $C^*$ and $\ddot\eta$ both depend on $\dot J$. I'm aware of the time derivative of the rotation matrix $R$ using the skew symmetric matrix, but I'm not sure how to find the derivative of the whole $J$ matrix. Does anyone know what I should do or where to look for more info?

Example use of $\dot J$: $$\ddot \eta = J_\Theta(\eta)\dot v + \dot J_\Theta(\eta) v$$

  • $\begingroup$ why you put this question? $\endgroup$
    – Eli
    May 20, 2020 at 6:10

2 Answers 2


In the example, J could be solved for using a linear differential equation approach I think? Perhaps an iterative method like Euler's or Runge-Kuta?

This of course assumes that v and it's time derivative don't have a dependence to n(eta) [sorry for formatting, am on mobile].

Once J has been solved I would imagine the correct boundary conditions would lead you to a useful answer.

It is worth a shot at least.


you start with:

$$\vec{R}=\vec{f}(\vec{q})\tag 1$$

where $\vec{q}$ are the generalized coordinates

time derivative :

$$\vec{\dot{R}}=\frac{d}{dt}\left(\vec{f}(\vec{q})\right)=\frac{\partial \vec{f}}{\partial \vec{q}}\,\vec{\dot{q}}=J\,\vec{\dot{q}}$$

thus $$\vec{\dot{R}}=\vec{\dot{R}}(\vec{q},\vec{\dot{q}})=\vec{g}(\vec{q},\vec{\dot{q}})$$

$$\vec{\ddot{R}}=\underbrace{\frac{\partial \vec{g}}{\partial \vec{\dot q}}}_{J}\vec{\ddot{q}}+ \frac{\partial \vec{g}}{\partial \vec{ q}}\vec{\dot{q}}= J\,\vec{\ddot{q}}+\underbrace{\frac{\partial {J\,\vec{\dot{q}}}}{\partial \vec{ q}}}_{\dot{J}}\vec{\dot{q}}\tag 2$$

Remarks: the equations of motion

NEWTON equations:


with equation (2)

$$M\left(J\vec{\ddot{q}}+\dot{J}\,\vec{\dot{q}}\right)=\vec{F}_A+\vec{F}_C\tag A$$

where $\vec{F}_A$ are the applied forces and $\vec{F}_C$ are the constrain forces.

to eliminate the constrain forces you multiply equation (A) from the left with $J^T$



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.