-
Notifications
You must be signed in to change notification settings - Fork 946
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
Unified Collision Environment Bullet #1572
Conversation
c143e20
to
2129045
Compare
0975404
to
f8d507f
Compare
@j-petit, looks like you messed up the commit history by rebasing? There are many commits of the master branch listed in this PR. |
Not done with rebasing yet @BryceStevenWilley, I have one failing test case which I still need to work on... |
I see. But I think this PR not only requires #1584 but also the changes made in the branch |
The plan is to rebase the feature branch onto master. I asked Jens to go ahead an resolve many of the rebase conflicts by rebasing himself, and then I'll force-push the conflict-free version of the feature branch once I get the go-ahead. |
Can anyone give me a hint to understand the Travis failure (clang-tidy):
|
I need to analyze this failure. Looks like the feature branch is not checked out by Travis... |
I pushed a fix for the clang-tidy check. However, the root cause of your Travis failure is not the clang-tidy check, but the clang build:
clang complains that BulletDiscreteBVHManager doesn't have a virtual destructor. |
7cdb9e4
to
b78b8b5
Compare
Addressed the issue, Travis passes now. |
* shortening namespace * documentation improvements * virtual destructor of BVH manager * remove extra speed benchmark * bugfix for not initialized managers
I noticed due to the restructuring some the authors and copyright information was not transferred to the new files. It would be worth taking another look. |
Thanks for pointing that out, I will have a closer look at all the licenses
and copyright info again.
Levi Armstrong <notifications@github.com> schrieb am Do., 29. Aug. 2019,
22:18:
… I noticed due to the restructuring some the authors and copyright
information was not transferred to the new files. It would be worth taking
another look.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#1572>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AETC5JWPYNAQGR3BAPEDBJ3QHAVKPANCNFSM4IE2M4UA>
.
|
@j-petit Also it would be good to add your name to the author list where you feel it is relevant since you ported it to work with moveit. |
Addressed the license comments in last commit |
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 left some small comments. This is a massive diff. Would it be possible to add some unit tests? Is it documented somewhere how you select the collision checker in MoveIt?
Do you have a benchmarking tool to compare Bullet vs. FCL performance for a given robot & environment model? I imagine Bullet is typically faster, but it'd be nice to know when perhaps FCL should be used (perhaps when the robot is represented is by a collection of spheres or the environment by a point cloud?).
...ion_bullet/include/moveit/collision_detection_bullet/bullet_integration/bullet_bvh_manager.h
Outdated
Show resolved
Hide resolved
...ullet/include/moveit/collision_detection_bullet/bullet_integration/bullet_cast_bvh_manager.h
Outdated
Show resolved
Hide resolved
...ullet/include/moveit/collision_detection_bullet/bullet_integration/bullet_cast_bvh_manager.h
Outdated
Show resolved
Hide resolved
* replaced include guards through pragma * used default instead of empty {} for ctor/dtor
Thanks for taking the time to review @mamoll! Indeed this PR is big, but this mainly comes from the fact that I combined the two separate collision manager parent classes into a single one. It does not really add new functionality but involves a lot of copying code around. Tests are covered through the existing templated collision checking tests and an additional test suite for continuous collision detection. There exists a tutorial on how to use Bullet in a pending PR. Furthermore, there is a benchmarking script available which is described in the README PR #1648 with a corresponding benchmarking environment. I also updated the top post in my GSoC github issue #1427 to reflect the most recent speed improvements. My benchmarking setup is by far not exhaustive and it would be nice to have many more scenarios like you described (point clouds, etc.). See also my future work post here #1646. However, I am not sure when and if I will be able to work on those personally. |
I am not sure what is the current status of this PR, any thoughts @mamoll ? I'd like to see this merged :) |
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 am ok with getting this merged in.
awesome, then let's get this merged! |
* Templated tests adapted for unified collision env * Unified Bullet collision environment: * broadphase filtering adapted for early culling * ACM from SRDF in test * cleanup for bullet single collision env * removed link2castcow for CCD and only use constructor of COW directly * parent class for collision managers * removed function pointer for ACM check * removed extra self-collision manager and use only single manager * speed benchmark for unified environment * PR review: * more descriptive variable names * added user to TODO * PR review: * shortening namespace * documentation improvements * virtual destructor of BVH manager * remove extra speed benchmark * bugfix for not initialized managers * Licenses revised of old tesseract files * PR review: * replaced include guards through pragma * used default instead of empty {} for ctor/dtor * Comments in Bullet readme about thread safety and speed
* Templated tests adapted for unified collision env * Unified Bullet collision environment: * broadphase filtering adapted for early culling * ACM from SRDF in test * cleanup for bullet single collision env * removed link2castcow for CCD and only use constructor of COW directly * parent class for collision managers * removed function pointer for ACM check * removed extra self-collision manager and use only single manager * speed benchmark for unified environment * PR review: * more descriptive variable names * added user to TODO * PR review: * shortening namespace * documentation improvements * virtual destructor of BVH manager * remove extra speed benchmark * bugfix for not initialized managers * Licenses revised of old tesseract files * PR review: * replaced include guards through pragma * used default instead of empty {} for ctor/dtor * Comments in Bullet readme about thread safety and speed
* Empty collision checker template for usage with tesseract and bullet (#1499) * Adding documentation to collision detection (#1488) * CMake adaptions for Tesseract integration * Empty collision detector template for tesseract and bullet * Making bullet as a collision plugin available * Adding missing error messages * Adding new folders and libraries to cmake * Fixing the BSD license * clang-format * Generic collision detection test suite (#1543) Generalize collision detection tests by using a templated test fixture. * Bullet Collision Detection (#1504) * Added discrete BVH Bullet manager * Added continuous collision detection * Cleanup of tesseract code * removed simple collision managers * changed enum to enum classes * fixed typos * removing debugging statements * removing tesseract allowed collision matrix * removed tesseract macros * replaced typedefs of stl containers * removed tesseract attached object code * ACM members of collision robot and world removed and ACM check into callback out of class * remove ContactTestType and replace through MoveIt CollisionRequest * BodyType int changed to enum * removed tesseract_msgs dependency and unnecessary tesseract code * changed dependency from bullet3_ros to debian Bullet package * Adding bullet and tesseract simple collision manager to the template: * added benchmark case for checking collision speed * tests for bullet collision checking * Adding missing features: * attached objects * contact reporting max number of contacts fixed * Bullet plugin xml name fixed * padding and scaling for robot added * updated tests * Adding continuous collision detection to Bullet (#1551) * Adding continous collision detection: * check only active links added * benchmark FCL vs Bullet * renaming files from bt to bullet * renaming variables from bt to bullet * clang-tidy and clang-format * renaming of variables to be in moveit format * continuous tests added * CCD active links changed * distance testing added to panda test suite * New collision features: * broadphase early culling * minimal distance reporting * renaming collision filter and group * removed extra margin on AABB for bullet * ACM in test from SRDF * PR review * Unified Collision Environment Bullet (#1572) * Templated tests adapted for unified collision env * Unified Bullet collision environment: * broadphase filtering adapted for early culling * ACM from SRDF in test * cleanup for bullet single collision env * removed link2castcow for CCD and only use constructor of COW directly * parent class for collision managers * removed function pointer for ACM check * removed extra self-collision manager and use only single manager * speed benchmark for unified environment * PR review: * more descriptive variable names * added user to TODO * PR review: * shortening namespace * documentation improvements * virtual destructor of BVH manager * remove extra speed benchmark * bugfix for not initialized managers * Licenses revised of old tesseract files * PR review: * replaced include guards through pragma * used default instead of empty {} for ctor/dtor * Comments in Bullet readme about thread safety and speed * Readme for speed benchmark (#1648) * FCL Bullet benchmark readme * Benchmark script and launch file updated * PR review fixups * Adapt cmake for Bullet (#1744) * cmake for using Bullet only if correct version available * Fixup * PR review fixup * Rewrite with own FindBullet.cmake * Use pkg-config * Fix travis failure for melodic * Fix moveit_ros_planning dependency on Bullet * Rename PR2-related collision test files (#1856)
Description
This PR unifies the Bullet collision environment and gets the feature branch to build again.
I reduced / improved the Bullet glue code in many places through creating a common parent class for both discrete and cast collision checkers and removed a lot of unnecessary code in
bullet_utils.h
.