Tesseract
Motion Planning Environment
Loading...
Searching...
No Matches
Namespaces | Functions
bullet_utils.cpp File Reference

Tesseract ROS Bullet environment utility function. More...

#include "tesseract_collision/bullet/bullet_utils.h"
#include <LinearMath/btConvexHullComputer.h>
#include <BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h>
#include <BulletCollision/CollisionShapes/btShapeHull.h>
#include <BulletCollision/Gimpact/btTriangleShapeEx.h>
#include <boost/thread/mutex.hpp>
#include <memory>
#include <octomap/octomap.h>
#include <tesseract_geometry/geometries.h>
Include dependency graph for bullet_utils.cpp:

Namespaces

namespace  tesseract_collision
 
namespace  tesseract_collision::tesseract_collision_bullet
 

Functions

btVector3 tesseract_collision::tesseract_collision_bullet::convertEigenToBt (const Eigen::Vector3d &v)
 
Eigen::Vector3d tesseract_collision::tesseract_collision_bullet::convertBtToEigen (const btVector3 &v)
 
btQuaternion tesseract_collision::tesseract_collision_bullet::convertEigenToBt (const Eigen::Quaterniond &q)
 
btMatrix3x3 tesseract_collision::tesseract_collision_bullet::convertEigenToBt (const Eigen::Matrix3d &r)
 
Eigen::Matrix3d tesseract_collision::tesseract_collision_bullet::convertBtToEigen (const btMatrix3x3 &r)
 
btTransform tesseract_collision::tesseract_collision_bullet::convertEigenToBt (const Eigen::Isometry3d &t)
 
Eigen::Isometry3d tesseract_collision::tesseract_collision_bullet::convertBtToEigen (const btTransform &t)
 
std::shared_ptr< btCollisionShape > tesseract_collision::tesseract_collision_bullet::createShapePrimitive (const tesseract_geometry::Box::ConstPtr &geom)
 
std::shared_ptr< btCollisionShape > tesseract_collision::tesseract_collision_bullet::createShapePrimitive (const tesseract_geometry::Sphere::ConstPtr &geom)
 
std::shared_ptr< btCollisionShape > tesseract_collision::tesseract_collision_bullet::createShapePrimitive (const tesseract_geometry::Cylinder::ConstPtr &geom)
 
std::shared_ptr< btCollisionShape > tesseract_collision::tesseract_collision_bullet::createShapePrimitive (const tesseract_geometry::Cone::ConstPtr &geom)
 
std::shared_ptr< btCollisionShape > tesseract_collision::tesseract_collision_bullet::createShapePrimitive (const tesseract_geometry::Capsule::ConstPtr &geom)
 
std::shared_ptr< btCollisionShape > tesseract_collision::tesseract_collision_bullet::createShapePrimitive (const tesseract_geometry::Mesh::ConstPtr &geom, CollisionObjectWrapper *cow, int shape_index)
 
std::shared_ptr< btCollisionShape > tesseract_collision::tesseract_collision_bullet::createShapePrimitive (const tesseract_geometry::ConvexMesh::ConstPtr &geom)
 
std::shared_ptr< btCollisionShape > tesseract_collision::tesseract_collision_bullet::createShapePrimitive (const tesseract_geometry::Octree::ConstPtr &geom, CollisionObjectWrapper *cow, int shape_index)
 
std::shared_ptr< btCollisionShape > tesseract_collision::tesseract_collision_bullet::createShapePrimitive (const CollisionShapeConstPtr &geom, CollisionObjectWrapper *cow, int shape_index)
 Create a bullet collision shape from tesseract collision shape. More...
 
void tesseract_collision::tesseract_collision_bullet::updateCollisionObjectFilters (const std::vector< std::string > &active, const COW::Ptr &cow)
 Update a collision objects filters. More...
 
void tesseract_collision::tesseract_collision_bullet::GetAverageSupport (const btConvexShape *shape, const btVector3 &localNormal, btScalar &outsupport, btVector3 &outpt)
 
btTransform tesseract_collision::tesseract_collision_bullet::getLinkTransformFromCOW (const btCollisionObjectWrapper *cow)
 This transversus the parent tree to find the base object and return its world transform This should be the links transform and it should only need to transverse twice at max. More...
 
bool tesseract_collision::tesseract_collision_bullet::needsCollisionCheck (const COW &cow1, const COW &cow2, const IsContactAllowedFn &acm, bool verbose=false)
 This is used to check if a collision check is required between the provided two collision objects. More...
 
btScalar tesseract_collision::tesseract_collision_bullet::addDiscreteSingleResult (btManifoldPoint &cp, const btCollisionObjectWrapper *colObj0Wrap, const btCollisionObjectWrapper *colObj1Wrap, ContactTestData &collisions)
 
void tesseract_collision::tesseract_collision_bullet::calculateContinuousData (ContactResult *col, const btCollisionObjectWrapper *cow, const btVector3 &pt_world, const btVector3 &normal_world, const btTransform &link_tf_inv, size_t link_index)
 Calculate the continuous contact data for casted collision shape. More...
 
btScalar tesseract_collision::tesseract_collision_bullet::addCastSingleResult (btManifoldPoint &cp, const btCollisionObjectWrapper *colObj0Wrap, int index0, const btCollisionObjectWrapper *colObj1Wrap, int index1, ContactTestData &collisions)
 
COW::Ptr tesseract_collision::tesseract_collision_bullet::createCollisionObject (const std::string &name, const int &type_id, const CollisionShapesConst &shapes, const tesseract_common::VectorIsometry3d &shape_poses, bool enabled=true)
 
COW::Ptr tesseract_collision::tesseract_collision_bullet::makeCastCollisionObject (const COW::Ptr &cow)
 
void tesseract_collision::tesseract_collision_bullet::updateBroadphaseAABB (const COW::Ptr &cow, const std::unique_ptr< btBroadphaseInterface > &broadphase, const std::unique_ptr< btCollisionDispatcher > &dispatcher)
 Update the Broadphase AABB for the input collision object. More...
 
void tesseract_collision::tesseract_collision_bullet::removeCollisionObjectFromBroadphase (const COW::Ptr &cow, const std::unique_ptr< btBroadphaseInterface > &broadphase, const std::unique_ptr< btCollisionDispatcher > &dispatcher)
 Remove the collision object from broadphase. More...
 
void tesseract_collision::tesseract_collision_bullet::addCollisionObjectToBroadphase (const COW::Ptr &cow, const std::unique_ptr< btBroadphaseInterface > &broadphase, const std::unique_ptr< btCollisionDispatcher > &dispatcher)
 Add the collision object to broadphase. More...
 
void tesseract_collision::tesseract_collision_bullet::updateCollisionObjectFilters (const std::vector< std::string > &active, const COW::Ptr &cow, const std::unique_ptr< btBroadphaseInterface > &broadphase, const std::unique_ptr< btCollisionDispatcher > &dispatcher)
 Update a collision objects filters for broadphase. More...
 
void tesseract_collision::tesseract_collision_bullet::refreshBroadphaseProxy (const COW::Ptr &cow, const std::unique_ptr< btBroadphaseInterface > &broadphase, const std::unique_ptr< btCollisionDispatcher > &dispatcher)
 Refresh the broadphase data structure. More...
 

Detailed Description

Tesseract ROS Bullet environment utility function.

Author
John Schulman
Levi Armstrong
Date
Dec 18, 2017
Version
TODO
Bug:
No known bugs
License
Software License Agreement (BSD-2-Clause)
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.