According to angular-velocity-expressed-via-euler-angles you can express angular velocity in euler angles. Would the coordinate transformation be the same if I were to convert torque vector $\vec{\tau}$ to a torque in each rotation axis?
2 Answers
Let's say you have a 3DOF rotational joint, like a gimbal, with three rotations, about three local axes $\boldsymbol{\hat{z}}_1$, $\boldsymbol{\hat{z}}_2$ and $\boldsymbol{\hat{z}}_3$ with angles $\theta_1$, $\theta_2$ and $\theta_3$ in sequence.
The resulting rotational velocity is
$$ \boldsymbol{\omega} = \boldsymbol{\hat{z}}_1 \dot\theta_1 + \mathrm{rot}(\boldsymbol{\hat{z}}_1,\theta_1) \left( \boldsymbol{\hat{z}}_2 \dot{\theta}_2 + \mathrm{rot}(\boldsymbol{\hat{z}}_2,\theta_2) \boldsymbol{\hat{z}}_3 \dot{\theta}_3 \right) \tag{1}$$
From that you extract the 3×3 Jacobian matrix
$$ \boldsymbol{\omega} = \mathbf{J} \pmatrix{ \dot \theta_1 \\ \dot \theta_2 \\ \dot \theta_2 } \tag{2} $$
where $\mathbf{J}$ is defined by three column vectors
$$ \mathbf{J} = \left( \begin{array}{c|c|c} \boldsymbol{\hat{z}}_1 & \mathrm{rot}(\boldsymbol{\hat{z}}_1,\theta_1)\boldsymbol{\hat{z}}_2 & \mathrm{rot}(\boldsymbol{\hat{z}}_1,\theta_1)\mathrm{rot}(\boldsymbol{\hat{z}}_2,\theta_2)\boldsymbol{\hat{z}}_3 \end{array} \right) \tag{3} $$
Now suppose each axis has a motor attached to it supplying torques $Q_1$, $Q_2$ and $Q_3$ such as the total power of the system is $$ P = Q_1 \dot \theta_1 + Q_2 \dot \theta_2 + Q_3 \dot \theta_3 \tag{4}$$
The question is, how are the individual torques add up to the total torque on the base of the gimbal $\boldsymbol{\tau}$?
If the end effector 3×3 mass moment of inertia matrix is $\mathbf{I}$ then the answer is
$$ \boldsymbol{\tau} = \underbrace{ \mathbf{I}\, \mathbf{J} \left( \mathbf{J}^\top \mathbf{I} \,\mathbf{J} \right)^{-1} }_{\mathbf{J}^\star} \pmatrix{Q_1 \\ Q_2 \\ Q_3} + \ldots \text{(velocity related terms)}\tag{5} $$
Where the 3×3 matrix $\mathbf{J}^\star = \mathbf{I}\, \mathbf{J} \left( \mathbf{J}^\top \mathbf{I} \,\mathbf{J} \right)^{-1}$ is the Jacobian pseudo inverse (transposed), since $\mathbf{J}^\top \mathbf{J}^\star = \mathbf{1}$.
You can easily prove the above by evaluating power as follows and comparing it to (4)
$$ P = \boldsymbol{\omega} \cdot \boldsymbol{\tau} = (\mathbf{J} \dot{q})^\top (\mathbf{J}^\star Q) = \dot{q}^\top ( \mathbf{J}^\top \mathbf{J}^\star ) Q = \dot{q}^\top Q \tag{6} $$
where $\dot{q} = \pmatrix{ \dot \theta_1 \\ \dot \theta_2 \\ \dot \theta_3}$ are the joint speeds and $Q = \pmatrix{Q_1 \\ Q_2 \\ Q_3}$ the joint torques.
If you expand out (6) you will find (4).
The reverse operation is rather simple. Going from the torque vector $\boldsymbol{\tau}$ to the individual motor torques is done by
$$ Q = \mathbf{J}^\top \boldsymbol{\tau} \tag{7} $$
Appendix
The full expression for torque (5) including the velocity related terms is
$$ \boldsymbol{\tau} = \mathbf{J}^\star Q + \left( \mathbf{1} - \mathbf{J}^\star \mathbf{J}^\top \right) \left( \mathbf{I} \,\dot{\mathbf{J}} \dot{q} + \boldsymbol{\omega} \times \mathbf{I} \boldsymbol{\omega} \right) $$
where $\mathbf{1}$ is the 3×3 identity matrix, and $\dot{\mathbf{J}}$ is the time rate of the jacobian. It can be found from the derivative of (3) as
$$ \dot{\mathbf{J}}\dot{q}=\mathbf{R}_{1}\left(\left(\boldsymbol{\hat{z}}_{1}\times\boldsymbol{\hat{z}}_{2}\right)\dot{\theta}_{2}\dot{\theta}_{1}+\left(\boldsymbol{\hat{z}}_{1}\times\mathbf{R}_{2}\boldsymbol{\hat{z}}_{3}\right)\dot{\theta}_{3}\dot{\theta}_{1}+\left(\mathbf{R}_{2}\left(\boldsymbol{\hat{z}}_{2}\times\boldsymbol{\hat{z}}_{3}\right)\right)\dot{\theta}_{3}\dot{\theta}_{2}\right) $$
and with the rotation matrices $\mathbf{R}_{1} = \mathrm{rot}(\boldsymbol{\hat{z}}_1,\theta_1)$ and $\mathbf{R}_{2} = \mathrm{rot}(\boldsymbol{\hat{z}}_2,\theta_2)$.
You can also prove (7) by
$$ Q = \mathbf{J}^\top \boldsymbol{\tau} = \mathbf{J}^\top \mathbf{J}^\star Q + \mathbf{J}^\top \left( \mathbf{1} - \mathbf{J}^\star \mathbf{J}^\top \right) \left( \mathbf{I} \,\dot{\mathbf{J}} \dot{q} + \boldsymbol{\omega} \times \mathbf{I} \boldsymbol{\omega} \right)$$ $$\require{cancel} = \cancelto{1}{(\mathbf{J}^\top \mathbf{J}^\star)} Q + \left( \mathbf{J}^\top - \cancelto{1}{(\mathbf{J}^\top \mathbf{J}^\star)} \mathbf{J}^\top \right) \left( \mathbf{I} \,\dot{\mathbf{J}} \dot{q} + \boldsymbol{\omega} \times \mathbf{I} \boldsymbol{\omega} \right)= Q $$

- 38,341
-
After some testing, I confirmed that when $\mathbf{J}$ is rank three (3 DOF) then $\mathbf{1} - \mathbf{J}^\star \mathbf{J}^\top = \mathbf{0}$. Only when the system has < 3 DOF the velocity related terms enter into the torque vector. – John Alexiou Aug 26 '20 at 07:54
Let's look at this example:
The Euler equations of motion given in components of a body fixed frame are:
$$I\,\vec{\dot{\omega}}_B+\vec{\omega}_B\times (I\,\vec{{\omega}}_B)=\vec{\tau}_B\tag 1$$
assume that you know the components of the external torque in inertial frame $\vec{\tau}_I$, so to solve equation (1), you have to transfer the torque components from inertial frame to the body frame.
$$\vec{\tau}_B=R\,\vec{\tau}_I$$
where $R$ is the rotation matrix between body frame and inertial frame that depend on the Euler angles $R=R(\alpha,\beta,\gamma)$
thus eq. (1)
$$I\,\vec{\dot{\omega}}_B+\vec{\omega}_B\times (I\,\vec{{\omega}}_B)=R(\alpha,\beta,\gamma)\,\vec{\tau}_I\tag 2$$
equation (2) are 3 equations for 6 unknowns ,$\quad\vec{\omega}\quad$ and $\quad \alpha,\beta,\gamma$
the additional 3 equations are the angular velocity equations those are function of the Euler angles .
$$\vec{\omega}=A(\vec{\phi})\,\vec{\dot{\phi}}\tag 3$$
where the matrix $A$ is a $(3\times 3)$ matrix, and$\quad \vec{\phi}=\left[\alpha,\beta,\gamma\right]^T$
equations (2) and (3) are 6 equation for 6 unknowns $\vec{\omega}\,,\vec{\phi}$
Numerical simulation:
for numerical simulation we must transfer equation (1) and (2) to the first order differential equations $\vec{\dot{y}}=\vec{f}(\vec{y},t)$
with :
$$\vec{y}=\begin{bmatrix} \vec{\omega} \\ \vec{\phi} \\ \end{bmatrix}$$
we get with eq. (2) and (3)
$$\vec{\dot{y}}=\begin{bmatrix} I^{-1}\left[R(\vec{\phi})\,\vec{\tau}_I-\vec{\omega}_B\times (I\,\vec{{\omega}}_B)\right]\\ A^{-1}(\vec{\phi})\,\vec{\omega} \end{bmatrix}=\vec{f}(\vec{y})$$
notiz that the equation has singularity in one of the Euler angles

- 11,878
-
2
-
the answer you gave me makes no sense to me and seems unrelated judging from what your result is. can you just check if
$$ \begin{bmatrix} \tau_x \ \tau_y \ \tau_z \end{bmatrix} = \begin{bmatrix} a\dot{\tau_p} - bc\dot{\tau_r} \ \dot{\tau_y'}+d\dot{\tau_r} \b\dot{\tau_p} + ac\dot{\tau_r} \end{bmatrix} $$
which i got from just substituting stuff from
$$ \begin{bmatrix} \omega_x \ \omega_y \ \omega_z \end{bmatrix} = \begin{bmatrix} a\dot{\theta_p} - bc\dot{\theta_r} \ \dot{\theta_y}+d\dot{\theta_r} \b\dot{\theta_p} + ac\dot{\theta_r} \end{bmatrix} $$
– fullnitrous Aug 04 '19 at 18:42 -
$\tau_r$, $\tau_p$ and $\tau_y'$ are the torques in each axis. so basically i just put the torques in each axis on one side of each the equations and then i basically have the torques in each axis expressed via the torque vector right? like this is what i mean
is this method valid?
– fullnitrous Aug 04 '19 at 18:44