fix: Set disabled plugins to current even with no bounds to update#5962
fix: Set disabled plugins to current even with no bounds to update#5962SteveMacenski merged 1 commit intoros-navigation:mainfrom
Conversation
Signed-off-by: Tony Najjar <tony.najjar@dexory.com>
|
Now that I look at this again, I think there might be another potential bug: 1- We disable obstacle layer Unless I'm missing something, I think the artifacts of the disabled obstacle layer would never be cleared with this scenarios. The It feels like this should be something generic: if a plugin is disabled, it should set the full costmap bounds for the next cycle to cleanup its artifacts. @SteveMacenski can you mentally check my logic? |
Codecov Report❌ Patch coverage is
... and 17 files with indirect coverage changes 🚀 New features to boost your workflow:
|
Where is this? Also, if we have no layers that increase the bounds (i.e. no sensor processing layers), why would we need to update the map? There's no new information to update. The inflation has no work because there's no new data either.
How does this logic differ when we do have other layers that increase bounds? Should we think that disabling the layer means we should clear all its previously contributed data? I don't think that's immediately obvious that that is the intended behavior. How does it all get cleared with other sensor processing layers (just in bounds) & is that expected either?
If the expected behavior is to clear out its contributions, sure. But that also is a pretty big computational hit for large costmaps, no? |
This is the logic that would return early if no bounds are expanded, skipping
I'd imagine the disabled layers would set the full bounds to clear out its artifacts
Hmm, my instinct was yes but maybe it's not obvious for others like you said. In that case.......
It is but I mean you gotta do what you gotta do to clear artifacts, I don't see a way around it. Alternative one would call As a good next step, we experimentally confirm that what I'm saying is true, that is, that disabling a layer does not clear its artifacts - no guarantee that I get to this soon but this PR is independent anyway; if this gets merged I'll create a follow up ticket |
|
First test works great, thanks. For the other questions, I also assume that the "disable/enable" parameter should work as a "pause/resume" and not a clear. In our case, we want to clear it, so we just call the clear_region service. In my opinion, the current behavior is correct. |
Ok if you both think so then let's not change that default behavior, a |
|
So do we agree this is good to merge? |
|
Good to go from my side |
…os-navigation#5962) Signed-off-by: Tony Najjar <tony.najjar@dexory.com> Signed-off-by: panav <panav@10xconstruction.com>
…os-navigation#5962) Signed-off-by: Tony Najjar <tony.najjar@dexory.com> Signed-off-by: panav <panav@10xconstruction.com>
…os-navigation#5962) Signed-off-by: Tony Najjar <tony.najjar@dexory.com>
…os-navigation#5962) Signed-off-by: Tony Najjar <tony.najjar@dexory.com> Signed-off-by: panav <panav@10xconstruction.com>
…os-navigation#5962) Signed-off-by: Tony Najjar <tony.najjar@dexory.com> Signed-off-by: panav <panav@10xconstruction.com> Signed-off-by: Maurice <mauricepurnawan@gmail.com>
…os-navigation#5962) Signed-off-by: Tony Najjar <tony.najjar@dexory.com>
Basic Info
Description of contribution in a few bullet points
Description of documentation updates required from your changes
Description of how this change was tested
Future work that may be required in bullet points
For Maintainers:
backport-*.