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

Collision Checking Performance Improvement #15

Conversation

Levi-Armstrong
Copy link
Contributor

This change is significant in how collision checking will be handled going forwards. The current implementation will create a collision manager every time a collision check is requested. This is very expensive computationally during trajectory planning. This was required to provide a const method for making collision requests.

The new approach moves away from providing collision methods at the environment class but provides a method for requesting a collision manager which is copy of the existing environment at that point in time. This is usually all that is needed for trajectory planning, but I may add the ability to provided a callback when requesting the collision manager to be notified if the environment changes (Open to sugesstions).

In providing this you can know perform multiple collision checks without recreating the manager each time. Although for multi-threaded application you will need to use the clone method for every thread because the manager is not thread safe. The reasoning behind this is in most cases you will perform significantly more collision checks versus threads.

Current testing shows about 2x improvement when comparing to existing ROS motion planning environments.

Next Step:

  • Clean up commit history
  • Run clang format

@Levi-Armstrong Levi-Armstrong merged commit 7f91063 into tesseract-robotics:kinetic-devel Aug 29, 2018
jrgnicho pushed a commit to jrgnicho/tesseract that referenced this pull request Jul 11, 2019
…-robotics#15)

* Add checkTrajectory for discrete collision check

* Add discrete collision check to trajopt_planner 

And return false if error code is negative

* Fix checkTrajectory
Levi-Armstrong pushed a commit that referenced this pull request Jul 13, 2019
* Add checkTrajectory for discrete collision check

* Add discrete collision check to trajopt_planner 

And return false if error code is negative

* Fix checkTrajectory
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

1 participant