Classes | Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
exotica::CollisionSceneFCL Class Reference

#include <collision_scene_fcl.h>

Inheritance diagram for exotica::CollisionSceneFCL:
Inheritance graph
[legend]

Classes

struct  CollisionData
 

Public Member Functions

std::vector< std::string > GetCollisionRobotLinks () override
 Gets the collision robot links. More...
 
std::vector< std::string > GetCollisionWorldLinks () override
 Gets the collision world links. More...
 
Eigen::Vector3d GetTranslation (const std::string &name) override
 
bool IsCollisionFree (const std::string &o1, const std::string &o2, double safe_distance=0.0) override
 
bool IsStateValid (bool self=true, double safe_distance=0.0) override
 Check if the whole robot is valid (collision only). More...
 
void Setup () override
 
void UpdateCollisionObjects (const std::map< std::string, std::weak_ptr< KinematicElement >> &objects) override
 Creates the collision scene from kinematic elements. More...
 
void UpdateCollisionObjectTransforms () override
 Updates collision object transformations from the kinematic tree. More...
 
- Public Member Functions inherited from exotica::CollisionScene
void AssignScene (std::shared_ptr< Scene > scene)
 
 CollisionScene ()
 
virtual std::vector< ContinuousCollisionProxyContinuousCollisionCast (const std::vector< std::vector< std::tuple< std::string, Eigen::Isometry3d, Eigen::Isometry3d >>> &motion_transforms)
 
virtual ContinuousCollisionProxy ContinuousCollisionCheck (const std::string &o1, const KDL::Frame &tf1_beg, const KDL::Frame &tf1_end, const std::string &o2, const KDL::Frame &tf2_beg, const KDL::Frame &tf2_end)
 
bool get_replace_cylinders_with_capsules () const
 
bool GetAlwaysExternallyUpdatedCollisionScene () const
 
virtual std::vector< CollisionProxyGetCollisionDistance (const std::string &o1, const std::string &o2)
 
virtual std::vector< CollisionProxyGetCollisionDistance (const std::string &o1, const bool &self)
 
virtual std::vector< CollisionProxyGetCollisionDistance (const std::string &o1, const bool &self, const bool &disable_collision_scene_update)
 
virtual std::vector< CollisionProxyGetCollisionDistance (const std::vector< std::string > &objects, const bool &self)
 
virtual std::vector< CollisionProxyGetCollisionDistance (bool self)
 
bool GetReplacePrimitiveShapesWithMeshes () const
 
double GetRobotLinkPadding () const
 
double GetRobotLinkScale () const
 
virtual std::vector< CollisionProxyGetRobotToRobotCollisionDistance (double check_margin)
 
virtual std::vector< CollisionProxyGetRobotToWorldCollisionDistance (double check_margin)
 
double GetWorldLinkPadding () const
 
double GetWorldLinkScale () const
 
virtual bool IsAllowedToCollide (const std::string &o1, const std::string &o2, const bool &self)
 
void set_replace_cylinders_with_capsules (const bool value)
 
void SetACM (const AllowedCollisionMatrix &acm)
 
void SetAlwaysExternallyUpdatedCollisionScene (const bool value)
 
void SetReplacePrimitiveShapesWithMeshes (const bool value)
 
void SetRobotLinkPadding (const double padding)
 
void SetRobotLinkScale (const double scale)
 
void SetWorldLinkPadding (const double padding)
 
void SetWorldLinkScale (const double scale)
 
virtual ~CollisionScene ()
 
- Public Member Functions inherited from exotica::Uncopyable
 Uncopyable ()=default
 
 ~Uncopyable ()=default
 

Static Public Member Functions

static bool CollisionCallback (fcl::CollisionObject *o1, fcl::CollisionObject *o2, void *data)
 
static bool IsAllowedToCollide (fcl::CollisionObject *o1, fcl::CollisionObject *o2, bool self, CollisionSceneFCL *scene)
 

Private Member Functions

std::shared_ptr< fcl::CollisionObject > ConstructFclCollisionObject (long i, std::shared_ptr< KinematicElement > element)
 

Static Private Member Functions

static void CheckCollision (fcl::CollisionObject *o1, fcl::CollisionObject *o2, CollisionData *data)
 

Private Attributes

std::map< std::string, std::shared_ptr< fcl::CollisionObject > > fcl_cache_
 
std::vector< fcl::CollisionObject * > fcl_objects_
 
std::vector< std::weak_ptr< KinematicElement > > kinematic_elements_
 

Additional Inherited Members

- Public Attributes inherited from exotica::CollisionScene
bool debug_
 
- Protected Attributes inherited from exotica::CollisionScene
AllowedCollisionMatrix acm_
 
bool always_externally_updated_collision_scene_
 
bool needs_update_of_collision_objects_
 
bool replace_cylinders_with_capsules_
 
bool replace_primitive_shapes_with_meshes_
 
double robot_link_padding_
 
double robot_link_scale_
 
std::weak_ptr< Scenescene_
 
double world_link_padding_
 
double world_link_scale_
 

Detailed Description

Definition at line 49 of file collision_scene_fcl.h.

Member Function Documentation

void exotica::CollisionSceneFCL::CheckCollision ( fcl::CollisionObject *  o1,
fcl::CollisionObject *  o2,
CollisionData data 
)
staticprivate

Definition at line 230 of file collision_scene_fcl.cpp.

bool exotica::CollisionSceneFCL::CollisionCallback ( fcl::CollisionObject *  o1,
fcl::CollisionObject *  o2,
void *  data 
)
static

Definition at line 246 of file collision_scene_fcl.cpp.

std::shared_ptr< fcl::CollisionObject > exotica::CollisionSceneFCL::ConstructFclCollisionObject ( long  i,
std::shared_ptr< KinematicElement element 
)
private

Definition at line 95 of file collision_scene_fcl.cpp.

std::vector< std::string > exotica::CollisionSceneFCL::GetCollisionRobotLinks ( )
overridevirtual

Gets the collision robot links.

Returns
The collision robot links.

Implements exotica::CollisionScene.

Definition at line 323 of file collision_scene_fcl.cpp.

std::vector< std::string > exotica::CollisionSceneFCL::GetCollisionWorldLinks ( )
overridevirtual

Gets the collision world links.

Returns
The collision world links.

Implements exotica::CollisionScene.

Definition at line 309 of file collision_scene_fcl.cpp.

Eigen::Vector3d exotica::CollisionSceneFCL::GetTranslation ( const std::string &  name)
overridevirtual

Implements exotica::CollisionScene.

Definition at line 296 of file collision_scene_fcl.cpp.

bool exotica::CollisionSceneFCL::IsAllowedToCollide ( fcl::CollisionObject *  o1,
fcl::CollisionObject *  o2,
bool  self,
CollisionSceneFCL scene 
)
static

Definition at line 205 of file collision_scene_fcl.cpp.

bool exotica::CollisionSceneFCL::IsCollisionFree ( const std::string &  o1,
const std::string &  o2,
double  safe_distance = 0.0 
)
overridevirtual

Reimplemented from exotica::CollisionScene.

Definition at line 269 of file collision_scene_fcl.cpp.

bool exotica::CollisionSceneFCL::IsStateValid ( bool  self = true,
double  safe_distance = 0.0 
)
overridevirtual

Check if the whole robot is valid (collision only).

Parameters
selfIndicate if self collision check is required.
Returns
True, if the state is collision free..

Implements exotica::CollisionScene.

Definition at line 256 of file collision_scene_fcl.cpp.

void exotica::CollisionSceneFCL::Setup ( )
overridevirtual

Reimplemented from exotica::CollisionScene.

Definition at line 47 of file collision_scene_fcl.cpp.

void exotica::CollisionSceneFCL::UpdateCollisionObjects ( const std::map< std::string, std::weak_ptr< KinematicElement >> &  objects)
overridevirtual

Creates the collision scene from kinematic elements.

Parameters
objectsVector kinematic element pointers of collision objects.

Implements exotica::CollisionScene.

Definition at line 52 of file collision_scene_fcl.cpp.

void exotica::CollisionSceneFCL::UpdateCollisionObjectTransforms ( )
overridevirtual

Updates collision object transformations from the kinematic tree.

Implements exotica::CollisionScene.

Definition at line 79 of file collision_scene_fcl.cpp.

Member Data Documentation

std::map<std::string, std::shared_ptr<fcl::CollisionObject> > exotica::CollisionSceneFCL::fcl_cache_
private

Definition at line 94 of file collision_scene_fcl.h.

std::vector<fcl::CollisionObject*> exotica::CollisionSceneFCL::fcl_objects_
private

Definition at line 96 of file collision_scene_fcl.h.

std::vector<std::weak_ptr<KinematicElement> > exotica::CollisionSceneFCL::kinematic_elements_
private

Definition at line 97 of file collision_scene_fcl.h.


The documentation for this class was generated from the following files:


exotica_collision_scene_fcl
Author(s):
autogenerated on Wed Jul 1 2020 03:33:49