Hi,thanks for your work and effort!
Currently I am reading your code in projective_ops.py and have some doubt about line84:
Gij = poses[:,jj] poses[:,ii].inv()
I find poses is of SE3 type and consisted of (trans, quat). But I don't know in which way "poses: and "poses.inv" are multiplied. I firstly transformed poses from SE3 to matrix using poses.matrix() method, then invert it and transform it back using the “mat2SE3" function in your code. Here I found the result is equal to poses.inv().data, I mean the inv() method in your SE3 class is the same of matrix inversion.
But after this, I do the matrix multiplication using torch.matmul and compare it with Gij.matrix(). I find they are quite different, so it seems that here is not matrix multiplication. Can you tell me what does it mean in detail?
Hi,thanks for your work and effort! Currently I am reading your code in projective_ops.py and have some doubt about line84: Gij = poses[:,jj] poses[:,ii].inv() I find poses is of SE3 type and consisted of (trans, quat). But I don't know in which way "poses: and "poses.inv" are multiplied. I firstly transformed poses from SE3 to matrix using poses.matrix() method, then invert it and transform it back using the “mat2SE3" function in your code. Here I found the result is equal to poses.inv().data, I mean the inv() method in your SE3 class is the same of matrix inversion. But after this, I do the matrix multiplication using torch.matmul and compare it with Gij.matrix(). I find they are quite different, so it seems that here is not matrix multiplication. Can you tell me what does it mean in detail?