Add plugins Parameter to BT XML for Selective Clearing of Costmap Layers#5548
Add plugins Parameter to BT XML for Selective Clearing of Costmap Layers#5548BCKSELFDRIVEWORLD wants to merge 33 commits intoros-navigation:mainfrom
Conversation
Codecov Report❌ Patch coverage is
... and 5 files with indirect coverage changes 🚀 New features to boost your workflow:
|
nav2_behavior_tree/include/nav2_behavior_tree/plugins/action/clear_costmap_service.hpp
Outdated
Show resolved
Hide resolved
nav2_behavior_tree/include/nav2_behavior_tree/plugins/action/clear_costmap_service.hpp
Outdated
Show resolved
Hide resolved
nav2_behavior_tree/include/nav2_behavior_tree/plugins/action/clear_costmap_service.hpp
Outdated
Show resolved
Hide resolved
nav2_behavior_tree/include/nav2_behavior_tree/plugins/action/clear_costmap_service.hpp
Outdated
Show resolved
Hide resolved
nav2_behavior_tree/include/nav2_behavior_tree/plugins/action/clear_costmap_service.hpp
Show resolved
Hide resolved
9aa9b0b to
584d698
Compare
|
thanks for reviews @Sushant-Chavan |
Sushant-Chavan
left a comment
There was a problem hiding this comment.
LGTM.
Awaiting Steve's comment regarding the response from the service in case a requested costmap plugin could not be cleared.
nav2_costmap_2d/include/nav2_costmap_2d/clear_costmap_service.hpp
Outdated
Show resolved
Hide resolved
|
A number of tests related to code changes are now failing |
|
If a requested plugin is not clearable, is it enough to skip it and reset the master, since I already log it? @Sushant-Chavan I’d appreciate your review on this |
I think if atleast one layer was reset, we should reset the master costmap. Otherwise we shouldn't. I also think that once you find a non-clearable plugin that was requested to be cleared by the client, you should stop clearing any further requested plugins. Then reset the master costmap (if any previous plugins were reset), and return a failure response. Do you agree @SteveMacenski ? |
i agree too
I think the service response should only return false if a plugin is clearable but fails to clear.
|
I agree. I believe that @BCKSELFDRIVEWORLD implemented this in the last few commits, please re-review @Sushant-Chavan when you have a moment. Thanks for your time! |
|
Summary i belive that true implementation: Return false when:
Return true when:
Skipping non-clearable layers should not by itself cause the service to return false. user may provide a mixed list of plugins, and as long as at least one clearable layer was cleared, the request is considered successful. Our only additional responsibility in these cases is to log or inform that some plugins were skipped, without treating that as a failure condition. |
|
I think I agree with @Sushant-Chavan that if a user requests layers to clear explicitly (rather than 'clear all') all of those should be valid. If its not valid, its not a valid request and that should be made clear to a caller in more than just logging. Whether we fail immediately or continue (and log all errors) and then return |
|
@BCKSELFDRIVEWORLD any update? I'd love to get this in this week! |
Signed-off-by: BCKSELFDRIVEWORLD <bckselfdrive@gmail.com>
Signed-off-by: BCKSELFDRIVEWORLD <bckselfdrive@gmail.com>
…lear_costmap_service.hpp Co-authored-by: Sushant Chavan <gitecsvc@gmail.com> Signed-off-by: Burak Can Kaya <146545020+BCKSELFDRIVEWORLD@users.noreply.github.com> Signed-off-by: BCKSELFDRIVEWORLD <bckselfdrive@gmail.com>
…lear_costmap_service.hpp Co-authored-by: Sushant Chavan <gitecsvc@gmail.com> Signed-off-by: Burak Can Kaya <146545020+BCKSELFDRIVEWORLD@users.noreply.github.com> Signed-off-by: BCKSELFDRIVEWORLD <bckselfdrive@gmail.com>
…ce responses Signed-off-by: BCKSELFDRIVEWORLD <bckselfdrive@gmail.com>
…ng cleared Signed-off-by: BCKSELFDRIVEWORLD <bckselfdrive@gmail.com>
Signed-off-by: BCKSELFDRIVEWORLD <bckselfdrive@gmail.com>
Signed-off-by: BCKSELFDRIVEWORLD <bckselfdrive@gmail.com>
Signed-off-by: BCKSELFDRIVEWORLD <bckselfdrive@gmail.com>
Signed-off-by: BCKSELFDRIVEWORLD <bckselfdrive@gmail.com>
Signed-off-by: BCKSELFDRIVEWORLD <bckselfdrive@gmail.com>
40d295a to
b8b88af
Compare
… methods Signed-off-by: BCKSELFDRIVEWORLD <bckselfdrive@gmail.com>
@SteveMacenski I’ve completed all the requested changes and attached a few screenshots. |
|
Sorry you missed me from leaving for Singapore for ROSCon. I'm back now. @Sushant-Chavan does this meet your needs? |
mini-1235
left a comment
There was a problem hiding this comment.
A bit late to join the discussion here, but just to confirm my understanding: the idea is to return false if clearing any of the specified plugins fails, yes?
I can see that this PR is missing a significant amount of code coverage. The documentation PR also needs to be updated
|
Yes. If the review is approved, I can follow up by adding the necessary tests to improve coverage. I’ll also update the documentation |
|
@Sushant-Chavan are you back yet to take a look? |
Sushant-Chavan
left a comment
There was a problem hiding this comment.
Sorry for the delay. I just returned back from my vacation.
The PR looks good now. Just a few more fixes required IMO.
|
|
||
| /** | ||
| * @brief Clears the region outside of a user-specified area reverting to the static map | ||
| * @return true if at least one layer was successfully cleared, false otherwise |
There was a problem hiding this comment.
| * @return true if at least one layer was successfully cleared, false otherwise | |
| * @return true if all the requested plugins were successfully cleared, false otherwise |
Same for clearAroundPose and clearEntirely methods below
|
This pull request is in conflict. Could you fix it @BCKSELFDRIVEWORLD? |
Signed-off-by: BCKSELFDRIVEWORLD <bckselfdrive@gmail.com>
Signed-off-by: BCKSELFDRIVEWORLD <bckselfdrive@gmail.com>
6ba5df8 to
962b85c
Compare
Signed-off-by: Burak Can Kaya <146545020+BCKSELFDRIVEWORLD@users.noreply.github.com>
|
@BCKSELFDRIVEWORLD ping @Sushant-Chavan again when you've addressed all his comments please :-) |



PR #5400 was broken due to my mistake
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-*.