Add optional collision detector: BulletCollisionDetector #156
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
DART has 3 collision detector types:
FCLMeshCollisionDetector
(default)FCLCollisionDetector
DARTCollisionDetector
Both of
FCLMeshCollisionDetector
andFCLCollisionDetector
are based onfcl
. The difference between them is thatFCLMeshCollisionDetector
convert all the primitive shapes to meshs for collision detection whilefcl
uses primitive shapes of 'fcl'.Some simulation requires analytic collision information using primitive shapes for example rolling wheel for vehicle simulation. In this sense,
FCLCollisionDetector
orDARTCollisionDetector
is good solution instead ofFCLMeshCollisionDetector
. However, they have issues to use as default collision detector of DART.fcl
returns only one contact point for one collision pairs. This leads to unexpected behavior. See [#59] for the detail. WhereasDARTCollisionDetector
does not cover all the shapes of DART. It supports onlyBoxShape
andSphere
.Under current circumstance,
BulletCollision
may be considerable solution. It supports primitive shapes and mesh together and returns reasonable number of contact points for primitive shapes. Of courseBullet
is another physics engine as it is. We usesBulletCollision
component only for collision detection and separate debian package of it is delivered since Ubuntu 13.10.This may not our long term solution but I think it is worth in case of that analytic collision solution for primitive shapes and mesh support are required at the same time. Also this pull request does not increase mandatory dependency. When
BulletCollision
is installed on the machine, then cmake detect it and addBulletCollsisionDetector
of DART.