You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Bug] Adjoint matrix block order inconsistent with twist (v, ω) definition #36
The current implementation of construct_adjoint_matrix() defines the adjoint transformation matrix according to the twist ordering (ω, v), while the action and observation vectors in the environment are organized as (v, ω).
This mismatch causes incorrect coupling between linear and angular velocity components when the translation vector p is non-zero (e.g., when the end-effector is far from the robot base).
📐 Mathematical Background
For a homogeneous transform:
$$
T = \begin{bmatrix}
R & p \\
0 & 1
\end{bmatrix}
$$
The adjoint operator is defined as:
$$
\mathrm{Ad}_T=\begin{bmatrix}
R & 0\\
[\mathbf p]_\times R & R
\end{bmatrix}
$$
which acts on twists ordered as:
$$
V=\begin{bmatrix}
\boldsymbol{\omega} \\
\mathbf v
\end{bmatrix}
$$
However, if the twist is represented as (v, ω), the equivalent form should be:
$$
\mathrm{Ad}_T=\begin{bmatrix}
R & [\mathbf p]_\times R\\
0 & R
\end{bmatrix}
$$
Activity