Solving $CT = PC$ for transforms in $SE(3)$

48 Views Asked by At

I have three transforms: $C$, $T$, and $P$. Each of these transforms consists of 3D rotations and translations. I know $T$ and $P$, and I would like to solve for $C$. They are related by $T = C^{-1} P C$. Is there a good way to solve this? Is this even guaranteed to have a solution?

The only way I can think of solving it is to express the equation in the element-wise form, and solve the $16$ equations for the various components of $C$. Besides being painful, this would be error-prone, and I'm hoping that there is a cleaner solution.

2

There are 2 best solutions below

6
On

Assuming all three are rigid transformations:

If such a $C$ exists, then $T$ and $P$ are said to be orthogonally similar. In fact, given that $T$ and $P$ are rigid transformations, we know that the following are equivalent:

  • $T$ and $P$ are orthogonally similar
  • $T$ and $P$ are similar
  • $T$ and $P$ are rotations by the same angle

If $T$ and $P$ are similar, we can find a similarity through the (real) spectral decompositions:

Suppose $C_1,C_2$ are unitary matrices (rigid transformations) such that $$ C_1TC_1^{-1} = R\\ C_2 P C_2^{-1} = R $$ where $R$ is the corresponding rotation around the $z$-axis. We then have $$ T = C_1^{-1} C_2 R C_2^{-1} C_1 = (C_2^{-1}C_1)^{-1} R (C_2^{-1}C_1) $$

0
On

The solution in other words

$C$ is rigid transformations therefore: $C^{-1}=C^T$ and

\begin{equation} (1) T=C^TPC \end{equation}

Use orthogonal decomposition for T and P:
(According to (1) $T$ and $P$ have the same eigenvalues so diagonal matrix will be the same)

\begin{equation} P = U_p^TDU_p \end{equation} \begin{equation} T = U_t^TDU_t \end{equation}

(Note that this is not a standart SVD decomposition)
where $U_p, U_t$ is orthogonal in $D$ is diagonal matrix And and according to (1) $U_t^TDU_t=C^TU_p^TDU_pC$
Therefore: $U_t=U_pC$
And $C$ can be obtained: $C=U_p^TU_t$