Tesseract Collision Package

Background

This package is a used for performing both discrete and continuous collision checking. It understands nothing about connectivity of the object within. It purely allows for the user to add objects to the checker, set object transforms, enable/disable objects, set contact distance per objects and perform collision checks.

../_images/continuous_first.gif

Features

  1. Add/Remove collision objects consisting of multiple collision shapes.
  2. Enable/Disable collision objects
  3. Set collision objects transformation
  4. Set contact distance threshold. If two objects are further than this distance they are ignored.
  5. Perform Contact Test with various exit conditions
    • Exit on first tesseract::ContactTestType::FIRST
    • Store only closets for each collision object tesseract::ContactTestType::CLOSEST
    • Store all contacts for each collision object tesseract::ContactTestType::ALL

Discrete Collision Checker Example

Example Explanation

Create Contact Checker

There are several available contact checkers.

  • Recommended
    • BulletDiscreteBVHManager
    • BulletCastBVHManager
  • Alternative
    • BulletDiscreteSimpleManager
    • BulletCastSimpleManager
  • Beta
    • FCLDiscreteBVHManager

Add Collision Objects to Contact Checker

Add collision object in a enabled state

Note

A collision object can consist of multiple collision shape.

Add collision object in a disabled state
Add another collision object

Set the active collision object’s

Set the contact distance threshold

Set the collision object’s transform

Perform collision check

Note

One object is inside another object

Set the collision object’s transform

Perform collision check

Note

The objects are outside the contact threshold

Change contact distance threshold

Perform collision check

Note

The objects are inside the contact threshold