Closed akshayantony12 closed 1 year ago
Hi, I agree that this is not the best name for the variable. If you have any suggestions I will love to hear it !
As you can see in the comments just below the line of code you provided https://github.com/tier4/CalibrationTools/blob/83b210334169daa712b5215fdfca9558198538e5/sensor/extrinsic_ground_plane_calibrator/src/extrinsic_ground_plane_calibrator.cpp#L487
The intention is just to provide a visualization of a tf that is in the ground plane. If you are interested in this method I would recommend following the updated branch for this method.
If my answer was insufficient or you have any more doubts about the methods and its applications let me know !
Thanks for the quick reply. I have some clarifications
Hi, The ground plane is estimated in whatever the pointcloud's frame is (it could be the base link depending on your particular data, but usually would be the lidar's own frame)
The (0,0,1) forces the z-axis of a basis to correspond to the normal of the plane (in both the real base link or the auxiliar tf defined in the plane)
So if i know my ground plane's real normal is like (0.001, 0, 0.99) I can substitute that to get the transformation?
I don't quite follow. I defined a coordinate system placed in the ground plane with its z-axis corresponding to the normal of the plane
Sorry I did not explain it correctly. The real world ground may not be always (0, 0, 1) due irregularities. So can we put the real normal of the plane?
I don't think you can do that. This method strongly assumes that the points lie in a plane, and the computed normal by RANSAC would be just the result of that assumption. In practice, surfaces would not be perfect locally, which is why we fit a model on a larger area. If you are still not convinced I think we should move to using some drawings or similar graphic tools
@akshayantony12 Since there has not been any updates in this issue, I will be closing it in about a week.
Thank you for your exciting and useful work. I was going through extrinsic_ground_plane_calibrator.cpp. In publishTF there is a line
Eigen::Isometry3d raw_lidar_to_base_eigen = modelPlaneToPose(ground_plane_model)
. Is'nt the function making a transformation from base to lidar? As in the modelPlaneToPose function, the transformation takes the default basis of (0, 0, 1) to the new basis which is the normal of the plane detected in the lidar frame. Am I missing something. Thanks