Skip to content
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

implemented allignment of point cloud with gravity #19

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

lordreas
Copy link

@lordreas lordreas commented Nov 10, 2023

I've included reorienting the point cloud using the TLS coordinate system if it is given in the pcd file. It is extracted using the "VIEWPORT" key from the header of the pcd file.
This way, the filtering of the ground by normal direction is more reliable for point cloud data that is not yet aligned with gravity (which applys for the payload data of the VILENS slam).

@mmattamala
Copy link
Contributor

Thanks Leonard, a few questions:

  • This is currently applied only when loading the data in the Jupyter notebook. Do you intend that this rotation is always applied?
  • If that's the case, we need to make sure what's the behavior we want for VILENS clouds, payloads, tiles and data generated by other means (e.g. TLS scanning), and add that to the load method instead.

Maybe @benoit-robotics and @nivedchebrolu can provide further insights here.

@lordreas
Copy link
Author

So far I've only experimented with the segmentation part of the pipeline so this Jupyter notebook is where I implemented it so to not be in conflict with other uses of load .
In my mind, it would make sense to always apply this reorientation as for most applications coming to my mind, the point cloud would be viewed in world instead of sensor coordinates.

…rame, do the analysis, and transform all resulting clouds back to the sensor frame right before saving.
@lordreas
Copy link
Author

lordreas commented Dec 1, 2023

I've implemented the new procedure: By default, the header is read and the "VIEWPOINT" transform is used to align the PC with gravity. I've searched through the repo, and wherever processed (sub-) point-clouds are saved, I implemented the re-application of the header transform.
One potential problem to be tested for with more point clouds is that the field-name in the PCD file might be different than "VIEWPOINT" and might not be all caps.

@mmattamala
Copy link
Contributor

Thanks a lot @lordreas ! I'll test it locally on Monday and if it works for me as well I'll merge.

@mauricefallon
Copy link
Contributor

That VIEWPOINT field is very useful. helps to be able carry around the gravity vector while keeping the data in the sensor frame

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants