princeton-vl / lietorch

BSD 3-Clause "New" or "Revised" License
679 stars 50 forks source link

what does * mean for SE3 type data? #30

Open minghuiwsw opened 1 year ago

minghuiwsw commented 1 year ago

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?