I am coding up Sim(3) constraint types for a factor graph, and need to calculate the jacobian of the Sim(3) group action on 3D points.
I am following the guide on http://ethaneade.com/lie.pdf although it does not calculate it for Sim(3).
My generators for the lie algebra associated with Sim(3) are stored as a 7D vector in the order $(t_1,t_2,t_3,R_1,R_2,R_3,s)$.
The matrix representation of a Sim(3) group element in the library I am using (Sophus) stores it as a 4 × 4 matrix $\begin{pmatrix}s R && t \\ 0 && 1\end{pmatrix}$. Thus, the group action on a 4D homogeneous point would be
$$y = sRx + t$$
This derivative wrt $x$ would be $dy/dx = sR$.
Derivative wrt $R$ would be (as calculated for SE(3) in the reference above) = $-[y]_x$ (I hope this is correct!)
Derivative wrt the translation vector would be = Identity(3,3)
I want to calculate the derivative wrt scale '$s$'. Would it be equal to $R x = (1/s)(y - t)$ ?
Then would the jacobian be a 3 × 7 matrix with columns stacked as $[I_3 -[y]_x (1/s)(y - t)]$ ??
I am not really a math major and this is my first face-off with lie groups.
Thanks.
PS: This paper briefly mentions what I am doing. Check from eq(21).
I searched this question online and got no exact answer, and finally figured sim(3) jacobian out by combine some references, and codes. I summarised and write code for sim(3) optimize at repository below.
CeresSim3Optimize, the README is coded in latex format, can be displayed with chrome extension Tex all the things.