-
Notifications
You must be signed in to change notification settings - Fork 88
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
Add hpp-fcl as a collision checker #986
base: master
Are you sure you want to change the base?
Conversation
There seems to be a CI problem with
If I test this locally |
838a368
to
11bf54c
Compare
dependencies.repos
Outdated
- git: | ||
local-name: hpp-fcl | ||
uri: https://github.com/humanoid-path-planner/hpp-fcl.git | ||
version: v2.4.1 |
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.
Can we update this to point to the latest hash to see if the unit tests will pass?
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.
Yes, but I wanted to test this locally first. Will do this week.
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've done more extensive testing, see the table in the first post. I've also updated the PR to use the devel
branch.
Depending on how it is implemented. In had to hack the safety margin piece in by creating the What does this mean |
Yes, we would set this to the contact threshold for normal collision checking and in trajopts case it would be set to safety_margin + safety_margin_buffer. |
Tested with master: same result (as expected, v2.4.1 is very recent). |
Not sure what to do here with so many tests failing. I know between FCL and Bullet there were slight numerical difference; have you looked at the tests to see if that is the case here? |
I've not looked in detail yet. But the hpp-fcl devel branch is under heavy development (some 100 commits since I started this PR), so I'd like to wait for v3 to be released before continuing this PR. I'm also mostly using cast collision checking, so for me it's not urgent anyway. |
Do you want me to create a separate repository for this similar to the newly created tesseract_collision_physx? |
That's a good idea, please do. |
@rjoomen What name do you prefer for the repository: |
I don't really mind, but as the subproject is called |
@rjoomen The repository has been created. Let me know if you run into any access issues. https://github.com/tesseract-robotics/tesseract_collision_hpp_fcl |
This adds HPP-FCL, the improved fork of FCL, as a collision checker.
Notable features:
Most of this work was simply renaming, though a few types and methods differed slightly. By directly comparing the
fcl_\*.\*
andhpp_fcl_\*.\*
source files one can easily check the required modifications.Preliminary benchmarking looks promising.
Status: currently these unit tests fail:
Tests are run using the
master
anddevel
branches of hpp-fcl.In the table below, master 1 uses the current workaround for distance contact normals, and master 2 uses
fcl_result.normal
. For devel there is no difference in test success between the two approaches for normal calculation. This suggests that this closed issue, regarding normals and nearest points solves the workaround as currently used in the FCL plugin.* This test was disabled for FCL already
Interesting to note is that multiple runs of the tests results in a varying number of failed tests (the table lists the maximum number found). Perhaps some of the tests are at the edge of collision and the numerical optimization sometimes finds a collision and sometimes not.