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

Potentially upgrade to newer version of FCL #110

Closed
wxmerkt opened this issue Sep 9, 2017 · 3 comments
Closed

Potentially upgrade to newer version of FCL #110

wxmerkt opened this issue Sep 9, 2017 · 3 comments

Comments

@wxmerkt
Copy link
Collaborator

wxmerkt commented Sep 9, 2017

  • Indigo currently uses FCL 0.3.x (0.3.4 as of writing)
  • Kinetic uses FCL 0.5, with the requirement for Octomap 1.8
  • Upstream FCL is on track to release 0.6 which has narrow phase signed distance support.

There are a ton of fixes regarding computing distances including signed distances in the current head and I consider it worth using the new FCL version.

Of particular note:

@wxmerkt
Copy link
Collaborator Author

wxmerkt commented Sep 10, 2017

This may be extended to potentially remove the reliance on the MoveIt Planning Scene in its entirety (or encapsulating the limited functionality we use) as this blocks using a fixed version of FCL. We can continue to use ACM without the planning scene.

After fixing some of the collision distance computation in Exotica, this returns 3.7cm penetration because the Mesh-to-Mesh triangle penetration computation is incorrect:
image

@VladimirIvan
Copy link
Collaborator

Can the FCL 0.6 with any dependencies be put in a debian?

Less dependency on MoveIt Planning Scene is good.
I want to eventually put the collision checking into a separate task map (outside of the Scene). This can also be a separate package in a separate repo, so we can make it depend on non-standard libraries without affecting compatibility of core exotica.

@wxmerkt
Copy link
Collaborator Author

wxmerkt commented Sep 10, 2017

I tried wrapping FCL 0.6 in a catkin package but there were conflicts between the FCL versions and namespaces brought in by MoveIt and the new catkinized FCL. I assume it could be catkinized and used exclusively if we got rid of MoveIt. So it's probably a 1-2-week-or-so project to do so (encapsulate CollisionScene as a class/library that has no MoveIt but allows external updates of transforms and objects in the FCL world; have Scene call these whenever there's an update - and move the ownership of the MoveIt planning scene element to Scene).

For now I've made quite some progress on fixing the distance and penetration depth calculation, just needs tidying up. Of course the collision points and depths aren't that accurate (visually just slightly beyond touching vs what is being returned (3.6cm) is quite off) but I hope it's good enough for now.

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

No branches or pull requests

2 participants