Skip to content
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

Merged
merged 2 commits into from
Mar 13, 2020
Merged

Conversation

v4hn
Copy link
Contributor

@v4hn v4hn commented Mar 12, 2020

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.

Copy link
Contributor

@rhaschke rhaschke left a 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");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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.
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.
@rhaschke
Copy link
Contributor

Do you want to merge this as a merge commit, keeping the two rather independent commits?

@v4hn
Copy link
Contributor Author

v4hn commented Mar 13, 2020

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.

@rhaschke rhaschke merged commit 628365b into moveit:master Mar 13, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants