-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Fix] fix wrong coordinate transform in sweep loading #3007
base: main
Are you sure you want to change the base?
Conversation
Are you sure @windhw ? The |
Yes, I am sure. My modification is not related to the same topic as the code you quoted. The matrix saved in info of v1 is sensor2lidar. In the code you quoted, this matrix is converted to lidar2sensor through inverse transformation. But in fact, when transforming the point cloud of sweep, the required matrix is still sensor2lidar, so the author performed another inverse transformation in the loading function. The modification I submitted is that the author has an error in the processing order of R and T in the inverse transformation operation in the loading function, and I have verified this error through visualization. I don't know if my explanation is clear. If you still have questions, we can continue to discuss. |
So just to be clear - This is code to obtain
Now going to v2 and
so now So then I agree again that the transform should be but in Do we agree here? If yes then we can discuss further. or if there is any correction so far let me know. |
In your post: actually, from this code: we can get that (we assume lidar_points is [Nx3], R is [3x3] and T is [3]): i.e. we can use a 3x4 or 4x4 tranform matrix : [R.T, T.T] to denote the sensor2lidar transform and lidar2sensor is the inverse transform of sensor2lidar, and can be denoted as [R, [email protected]] in loading function, I need transform sensor(sweep) points to lidar, but in the original code in mmdet3d, I'll get: correct operation is:
I think you may misunderstand the meaning of R rotation in sensor2lidar variabl, and the comment in this code is misleading:
You can deduce R and T yourself~
|
Motivation
Fix wrong coordinate transform in sweep loading, the wrong transform caused bad input for model, especially when rotation is large
Modification
the sensor to lidar transform is
Y = X @ Rt + T
so the reverse transform should be:
X= (Y - T) @ R