Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Feature request: Add traversability information #62

Copy link
Copy link
@miguelcastillon

Description

@miguelcastillon
Issue body actions

Hi @victorreijgwart!

Context
Wavemap is a great tool to efficiently store occupation probabilities in 3D. However, some applications (like path planners for ground robots) have the additional need for traversability information. It would be desirable that the traversability information could also be queried at different resolutions for a more efficient path search.

High-level changes
Inspired by your plan to integrate color (#57), I assume the plan would be adding:

  • a map data structure that stores traversability alongside the occupancy
  • a measurement integrator that also fuses traversability information when updating the map
  • extensions of the ROS interface (wavemap_server) to forward the traversability point cloud to the integrator

I would be happy to contribute but I kinda got stuck in the first point (creating a new map data structure) because I can't really see where or how the traversability information would be stored. My (limited) understanding of wavemap is that the occupancy probability of a certain node is given by a linear combination of Haar coefficients from the root node up to the desired termination height.

If we take a volumetric data structure such as HashedWaveletOctree, we see that it stores a std::unordered_map of HashedWaveletOctreeBlock. Each HashedWaveletOctreeBlock has a float scale and a Ndtree of height - 1 where each NdtreeNode is a std::array<float> storing Haar coefficients at each height.

My questions are:

  • Would we like (is it even possible?) the traversability information to also be expressed via Haar coefficients? That is, using e.g. HaarCoefficients<CellInfo, 3>, where CellInfo contains two floats (occupancy and traversability).
    • If so, I guess that the Harr functions such as ForwardLifted would change?
    • Otherwise, would HashedWaveletOctreeBlock just have an additional float traversability_; variable? But then I don't see how this info could be expressed in different resolutions.
    • Maybe we would just have another Ndtree that encodes traversability, but then I guess we would need to somehow synchronize both Ndtrees.
  • A bit more generic: I understand that each HashedWaveletOctreeBlock has its own Ndtree, is that right? If so, are the Ndtrees somehow connected to each other?

Thank you very much!
Miguel

MrBoriska

Metadata

Metadata

Labels

enhancementNew feature or requestNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions

    Morty Proxy This is a proxified and sanitized view of the page, visit original site.