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

Generic collision detection test suite #1543

Merged

Conversation

j-petit
Copy link
Contributor

@j-petit j-petit commented Jul 8, 2019

Description

To share the same test cases across different collision checkers, I changed the originally for FCL designed test cases to a generic typed test suite. Consequently, I also moved the test implementation out of the FCL folder and into the general collision_detection. For testing a specific collision checker, one can now simply include the tests and instantiate them with the specific type.

To make the changes easy to see, take a look at the first commit which contains the changes to the test whereas the second one deals with moving the files.

Checklist

Copy link
Contributor

@BryceStevenWilley BryceStevenWilley left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, with a few small comments.


acm_.reset(new collision_detection::AllowedCollisionMatrix(robot_model_->getLinkModelNames(), true));

collision_detection::CollisionDetectorAllocatorPtr alloc(new T);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you need a new T here, or can you reference the pointer to value_, i.e. alloc(&value_);?

Copy link
Contributor Author

@j-petit j-petit Jul 10, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, this does not work as, I get a double free error. I think the reason is that the shared pointer deletes the managed object and the destructor of the object also tries that and then the corruption occurs.

I now initialized the value_ member as a shared pointer.

@rhaschke rhaschke merged commit 3566b4e into moveit:feature-bullet-collision Jul 11, 2019
BryceStevenWilley pushed a commit to BryceStevenWilley/moveit that referenced this pull request Jul 24, 2019
Generalize collision detection tests by using a templated test fixture.
j-petit added a commit to j-petit/moveit that referenced this pull request Aug 23, 2019
Generalize collision detection tests by using a templated test fixture.
j-petit added a commit to j-petit/moveit that referenced this pull request Nov 20, 2019
Generalize collision detection tests by using a templated test fixture.
j-petit added a commit to j-petit/moveit that referenced this pull request Jan 12, 2020
Generalize collision detection tests by using a templated test fixture.
davetcoleman pushed a commit that referenced this pull request Jan 23, 2020
* 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)
sjahr pushed a commit to sjahr/moveit that referenced this pull request Jun 21, 2024
…it#1543)

* [Servo] Use a WallRate so the clock is monotonically increasing

* Re-enable a commented integration test
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

3 participants