-
Notifications
You must be signed in to change notification settings - Fork 20
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
Instrument NDT map extraction #310
Comments
Some relevant notes and ideas.
|
@hidmic @nahueespinosa I'm currently working on the serialization part of this issue. My argument is that the format is meant for flexible datasets, and for maps we want the exact opposite. I can see us supporting HDF5 for benchmarking datasets but for maps I just don't see it. On top of that, just from skimming through this my stomach started to ache 🤢 . Thoughts? |
Hmm, how so? A collection of N-dimensional Gaussian distributions of M size can easily fit in a M * (N + N * (N + 1) / 2) matrix (i.e. M rows of N columns for the mean vector plus N * (N + 1) / 2 for the covariance matrix, which will always be symmetric). Ultimately, I think the decision goes back to #309 and how we want to deal with this data. It shouldn't be a pain to deserialize into our in-memory data structures.
The thing I don't love about those is that they are always painful to integrate. HDF5 (or NetCDF or Parquet or any of those) is easy to work with and well supported by people that is not us :) What do you think @nahueespinosa?
Oof, yeah, that type erased I/O isn't pretty. |
I'm not well versed in storage formats, but HDF5 does seem like a widely-supported format. Also, unlike protobuf and ROS messages, it is self-describing. This isn't something we particularly need today, but it's certainly useful for external tools that don't need/want to create a dependency on our packages. You probably have more experience than me, but HDF5 also supports data slicing which seems to lend itself well to map slicing for localization in big environments. Although we we're not going to solve that today. |
FWIW we could use HighFive instead of raw |
### Proposed changes Adds a python script for converting ROS occupancy grid representations into NDT maps and serialize them to `HDF5` format. Closes #310. #### Type of change - [ ] 🐛 Bugfix (change which fixes an issue) - [x] 🚀 Feature (change which adds functionality) - [ ] 📚 Documentation (change which fixes or extends documentation) ### Checklist - [x] Lint and unit tests (if any) pass locally with my changes - [x] I have added tests that prove my fix is effective or that my feature works - [x] I have added necessary documentation (if appropriate) - [x] All commits have been signed for [DCO](https://developercertificate.org/) --------- Signed-off-by: Ramiro Serra <[email protected]> Signed-off-by: Michel Hidalgo <[email protected]> Co-authored-by: Michel Hidalgo <[email protected]>
Feature description
Connected to #93. The vast majority of SLAM systems do not provide NDT maps. Whether it's occupancy grids, voxel grids, point clouds, meshes, pose graphs, we need a procedure or tool to turn these (at least one) into something we can populate NDT maps (#309) with.
Implementation considerations
https://github.com/cogsys-tuebingen/cslibs_ndt may be of interest.
The text was updated successfully, but these errors were encountered: