Graph-Based Layer System for Dynamic Cost Updates#83
Conversation
for processing incomming data e.g. PointClouds
synchronization.
It is enough to only check the two faces current_vh and nh have in common. This greatly reduces the number of faces checked for each neighbor vertex.
… change a layer should be from the layer itself
The dynamic inflation layer was used for protoyping performance improvements. These improvements were now applied to the InflationLayer so this layer is no longer needed.
|
I forgot to mention that these changes require the |
We do not want to normalize the combined costs because this creates the need to recompute/renormalize all costs when the cost range changes due to a local update.
amock
left a comment
There was a problem hiding this comment.
After resolving some of the remaining TODOs and getting the CI running again, this looks good to be merged into this repository’s feature branch. I would also suggest increasing the version of all packages to 2.1.0.
Since we have a lot of changes here, for the next step of merging into the main branch it would be good to have runtime tests. For example, a new tutorial package that uses the dynamic layer or something similar.
|
Since this PR changes the Because we are already changing the interface I would suggest changing the mesh_navigation/mesh_map/include/mesh_map/abstract_layer.h Lines 96 to 108 in c6e4dc7 |
const references instead of mutable references
|
I successfully tested this PR in combination with the "feature/dynamic-cost-updates" branch of the tutorials under Ubuntu 24 / ROS 2 Jazzy. |
9e887a3
into
naturerobots:feature/dynamic-cost-updates
This PR replaces the layer management system with a dependency graph to model how data flows between layers.
The combination of cost layers is now handled using combination layers, which combine the cost maps of multiple input layers in different ways. The CombinationLayer replicates the weighted average used by the old layer system and the MaxCombinationLayer uses the maximum cost of a vertex across all input layers. The layer used for planning and control can be configured using the MeshMap's
default_layerparameter. The costs are copied from the layer into the MeshMap's dense cost buffer to allow for async access and updates and constant time lookup of vertex costs.