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
Improve handling of empty octomap messages and "clear octomap" actions #3134
Conversation
Thanks for helping in improving MoveIt and open source robotics! |
Codecov ReportPatch coverage:
Additional details and impacted files@@ Coverage Diff @@
## master #3134 +/- ##
==========================================
+ Coverage 61.60% 61.72% +0.12%
==========================================
Files 376 376
Lines 33309 33318 +9
==========================================
+ Hits 20518 20562 +44
+ Misses 12791 12756 -35
... and 6 files with indirect coverage changes Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks a lot for this fix and sorry that your PR was ignored for so long.
In prinicple I approve, but I suggest to set a non-empty id only if the octomap was actually cleared. Otherwise, a corresponding update will be always triggered.
Description
Currently, if a
PlanningScene
message is published on themonitoried_planning_scene
topic with an emptymsg.world.octomap.octomap.data
field, the octomap is skipped altogether in if it is amsg.is_diff
is True (source). I think perhaps an emptydata
field is interpreted as the octomap field not being filled. But this makes it impossible to clear the octomap by sending an empty octomap message (for example via the "Clear octomap" button in the MotionPlanning panel in RViz).This PR sets
octomap.id
to"empty"
if the octomap is empty (this string can be anything except an empty string), and checksoctomap.id.empty()
instead ofoctomap.data.empty()
to see if the octomap should be processed.Fixes #3045.
Checklist