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

PRM Saving to disk fails when PRM graph is too large because of ROS's SIGTERM #2160

Open
pbeeson opened this issue Jun 22, 2020 · 9 comments
Labels

Comments

@pbeeson
Copy link
Contributor

pbeeson commented Jun 22, 2020

Description

If you have a really large PRM, when you CTRL-C in your ROS terminal (because ROS will eventually escalate to a SIGTERM when move_group is starting to save), the file never gets written.

Your environment

  • ROS Distro: [Melodic]
  • OS Version: Ubuntu 18.04
  • Source or Binary build?
    Source (master) with OMPL 1.6 (master)

Steps to reproduce

Run move_group using roslaunch. Make a really big roadmap by running a planning problem with a timeout for like an hour. Then CTRL-C and see that move_group gets a SIGTERM before it is able to properly write out the graph file.

Expected behaviour

If you do this with let's say planing for 20 seconds, it'll write a nice ~50 MB file because it has time to do so before getting the SIGTERM.

Actual behaviour

When the graph is really large, nothing is written out before the SIGTERM that immediately kills move_group node.

@pbeeson pbeeson added the bug label Jun 22, 2020
@welcome
Copy link

welcome bot commented Jun 22, 2020

Thanks for reporting an issue. Because we're a volunteer community, providing a pull request with suggested changes is always welcomed.

@pbeeson
Copy link
Contributor Author

pbeeson commented Jun 22, 2020

Since this already has ROS hooks in the planner_context_manager.cpp, might I suggest trying to to set up like a ROS timer to similar every N minutes that saves the roadmap to disk in its own thread.

@v4hn
Copy link
Contributor

v4hn commented Jun 23, 2020

Could you please add links to the relevant code lines?

It seems more reasonable to me to save roadmaps via a service call than on shutdown.
After all, the move_group node might progress a number of very different scenes over time and only the user knows when the scene changes (and thus the roadmap becomes invalid).

@pbeeson
Copy link
Contributor Author

pbeeson commented Jun 25, 2020

@v4hn
Copy link
Contributor

v4hn commented Jun 25, 2020 via email

@pbeeson
Copy link
Contributor Author

pbeeson commented Jun 25, 2020 via email

@v4hn
Copy link
Contributor

v4hn commented Jun 26, 2020 via email

@pbeeson
Copy link
Contributor Author

pbeeson commented Jun 26, 2020 via email

@simonschmeisser
Copy link
Contributor

+1 for service calls/functions for loading and saving

Is the size of the network unbounded? Are there "self-cleaning" variants? @mamoll

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants