-
Notifications
You must be signed in to change notification settings - Fork 526
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
moveit_servo: Fix ACM for collision checking & PSM's scene monitor topic #673
Conversation
Codecov Report
@@ Coverage Diff @@
## main #673 +/- ##
==========================================
- Coverage 54.88% 54.87% -0.00%
==========================================
Files 196 196
Lines 21359 21363 +4
==========================================
+ Hits 11720 11721 +1
- Misses 9639 9642 +3
Continue to review full report at Codecov.
|
planning_scene_monitor_->startSceneMonitor(); | ||
planning_scene_monitor_->startSceneMonitor( | ||
planning_scene_monitor::PlanningSceneMonitor::MONITORED_PLANNING_SCENE_TOPIC); | ||
planning_scene_monitor_->requestPlanningSceneState(); |
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.
I don't understand what this line does. Are you using it to wait for an update?
If so, please add a comment to that effect:
// Request a planning scene update and wait for the service response
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.
I think it is just to make sure the PSM was started on that topic. +1 to a comment
I'm not sure I know enough about how the PSM works to answer the question. It looks like there can be multiple update topics that each PSM listens to, judging by this function. So I would say, it would be very hard to handle all possible topic combinations. I think we should leave it as you have it now. It's a good default. In the future, if somebody wants to do something wild like publish planning scene updates on 4 different topics, and maintain 3 separate planning scenes, we can figure it out then. I'm open to opinions from others. |
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.
I think using same default PSM topic is good default behavior. Supporting a separate PSM, and providing documentation, etc, on how to set that up (especially if they aren't starting at the same time and there might be missed collision object messages) sounds like a separate PR to me. I'm not aware of any MoveIt applications where separate PSMs are desired
planning_scene_monitor_->startSceneMonitor(); | ||
planning_scene_monitor_->startSceneMonitor( | ||
planning_scene_monitor::PlanningSceneMonitor::MONITORED_PLANNING_SCENE_TOPIC); | ||
planning_scene_monitor_->requestPlanningSceneState(); |
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.
I think it is just to make sure the PSM was started on that topic. +1 to a comment
28217d3
to
81fd745
Compare
81fd745
to
9746524
Compare
#713 should fix CI |
Please rebase this change as I recently made some changes that affect it. |
613330a
to
de837ae
Compare
This reverts commit 4a7b840.
I gave this a final test with the Rolling tutorial. LGTM |
Description
This fixes two bugs:
1- The collision checking for servo is only using the initial ACM and doesn't reflect the updates PSM is receiving in the scene monitor topic
2- When using servo with move_group, servo's scene monitor should point to the move_group's one, otherwise we can't sync the planning scene between them
For the second point, I'm not sure whether we should have a parameter or always use
monitored_planning_scene
@AndyZe what do you think .? I think this depends on whether the PSM in servo is the primary one or not, right .?Checklist