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

LVR Update #70

Open
wants to merge 5 commits into
base: humble
Choose a base branch
from
Open

LVR Update #70

wants to merge 5 commits into from

Conversation

amock
Copy link
Collaborator

@amock amock commented Dec 11, 2024

This is a reaction to the upcoming LVR update (3.0.0). It contains two major changes:

Interchangable Half-Edge-Mesh

The map and all plugins only use the BaseMesh from LVR. This means that as long as you implement the BaseMesh interface of LVR, you can use any half-edge mesh implementation you want. The implementations can be selected with a new ROS parameter “hem” (Half-Edge-Mesh). "hem: pmp" or "hem: lvr" ist possible. If no parameter is specified the new pmp mesh is chosen. The old behavior can be restored by setting "hem" to "lvr". The pmp mesh turned out to be much more robust to load any mesh coming from other meshing software than lvr (such as meshlab or Open3D). Internally, I used a smart pointer to handle the BaseMesh because it makes things easier.

Loading/Writing HDF5

The HDF5 structure has changed slightly over time so that the description of the mesh_tools paper is not valid anymore. I changed parts of it back so that it gets more like the papers again. It also makes things easier to handle since vertex attributes are now separated from the actual mesh geometry inside the HDF5.

Cleanup

I have also removed the mesh_client package for which we have no tests and which is currently not used elsewhere.

Testing instructions

This PR works together with:

amock added 5 commits December 5, 2024 17:33
…em' now. 'pmp' and 'lvr' are implemented.

The old half-edge-mesh can be selected by choosing 'lvr'. The new default half-edge-mesh is 'pmp' since it is more robust to different source meshes. The 'pmp' hem worked also to load all available meshes dynamically.

Cleanup: I removed mesh_client package since it was used nowhere.
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.

1 participant