-
Notifications
You must be signed in to change notification settings - Fork 938
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
Resolve PSI lock-up in RViz display #1951
Conversation
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.
The proposed solution is even better than what we discussed. Thanks.
nitpick: small typo.
{ | ||
if (!planning_scene_service_.exists() || !apply_planning_scene_service_.exists()) | ||
{ | ||
throw std::runtime_error("ROS Services not available"); |
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.
throw std::runtime_error("ROS Services not available"); | |
throw std::runtime_error("ROS services not available"); |
It is still impossible to create a PSI if no move_group is running, but this allows users to detect the failure to create an instance. Might be useful for people who want to run the same node with and without a `move_group` node.
1024a30
to
1916d2c
Compare
The display maintains a PSM listening to move_group's PSM. Using an additional PSI (connecting to the move_group via services) is bad design and the use of it - to poll via ros-services - is even worse. Implemented the same functionality through the local PSM. Note that the second argument of updateDetectedObjectsList was never used.
1916d2c
to
acaebbf
Compare
Do you want to merge this as a merge commit, keeping the two rather independent commits? |
That was the idea, yes. Still waiting for CI though after clang-tidy was still complaining. |
Supersedes #1950 .
I implemented an alternative way to construct a PSI, enabling users to detect issues with the ROS services instead of locking up the thread waiting for them.
It does not harm to have this option around.
Looking at the RViz display code again, I decided against making use of this feature here though.
The display already maintains a PSM, so I rewrote the logic to use this instead and altogether got rid of the PSI.