|
Exotica
|
#include <collision_scene_fcl_latest.h>


Classes | |
| struct | CollisionData |
| struct | DistanceData |
Public Member Functions | |
| void | Setup () override |
| Setup additional construction that requires initialiser parameter. More... | |
| bool | IsAllowedToCollide (const std::string &o1, const std::string &o2, const bool &self) override |
| Returns whether two collision objects/shapes are allowed to collide by name. More... | |
| bool | IsStateValid (bool self=true, double safe_distance=0.0) override |
| Check if the whole robot is valid (collision only). More... | |
| bool | IsCollisionFree (const std::string &o1, const std::string &o2, double safe_distance=0.0) override |
| Checks if two objects are in collision. More... | |
| std::vector< CollisionProxy > | GetCollisionDistance (bool self) override |
| Computes collision distances. More... | |
| std::vector< CollisionProxy > | GetCollisionDistance (const std::string &o1, const std::string &o2) override |
| Computes collision distances between two objects. More... | |
| std::vector< CollisionProxy > | GetCollisionDistance (const std::string &o1, const bool &self=true) override |
| Gets the closest distance of any collision object which is allowed to collide with any collision object related to object o1. More... | |
| std::vector< CollisionProxy > | GetCollisionDistance (const std::vector< std::string > &objects, const bool &self=true) override |
| Gets the closest distance of any collision object which is allowed to collide with any collision object related to any of the objects. More... | |
| std::vector< CollisionProxy > | GetCollisionDistance (const std::string &o1, const bool &self=true, const bool &disable_collision_scene_update=false) override |
| Gets the closest distance of any collision object which is allowed to collide with any collision object related to object o1. More... | |
| std::vector< CollisionProxy > | GetRobotToRobotCollisionDistance (double check_margin) override |
| Gets the closest distances between links within the robot that are closer than check_margin. More... | |
| std::vector< CollisionProxy > | GetRobotToWorldCollisionDistance (double check_margin) override |
| Gets the closest distances between links of the robot and the environment that are closer than check_margin. More... | |
| 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) override |
| Performs a continuous collision check between two objects with a linear interpolation between two given. More... | |
| std::vector< std::string > | GetCollisionWorldLinks () override |
| Gets the collision world links. More... | |
| std::vector< std::string > | GetCollisionRobotLinks () override |
| Gets the collision robot links. More... | |
| Eigen::Vector3d | GetTranslation (const std::string &name) override |
| Returns the translation of the named collision object. More... | |
| 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 | |
| CollisionScene () | |
| virtual | ~CollisionScene () |
| virtual void | InstantiateBase (const Initializer &init) |
| Instantiates the base properties of the CollisionScene. More... | |
| virtual std::vector< ContinuousCollisionProxy > | ContinuousCollisionCast (const std::vector< std::vector< std::tuple< std::string, Eigen::Isometry3d, Eigen::Isometry3d >>> &motion_transforms) |
| Performs a continuous collision check by casting the active objects passed in against the static environment. More... | |
| void | SetACM (const AllowedCollisionMatrix &acm) |
| bool | GetAlwaysExternallyUpdatedCollisionScene () const |
| void | SetAlwaysExternallyUpdatedCollisionScene (const bool value) |
| double | GetRobotLinkScale () const |
| void | SetRobotLinkScale (const double scale) |
| double | GetWorldLinkScale () const |
| void | SetWorldLinkScale (const double scale) |
| double | GetRobotLinkPadding () const |
| void | SetRobotLinkPadding (const double padding) |
| double | GetWorldLinkPadding () const |
| void | SetWorldLinkPadding (const double padding) |
| bool | GetReplacePrimitiveShapesWithMeshes () const |
| void | SetReplacePrimitiveShapesWithMeshes (const bool value) |
| bool | get_replace_cylinders_with_capsules () const |
| void | set_replace_cylinders_with_capsules (const bool value) |
| void | AssignScene (std::shared_ptr< Scene > scene) |
| Sets a scene pointer to the CollisionScene for access to methods. More... | |
Public Member Functions inherited from exotica::Object | |
| Object () | |
| virtual | ~Object () |
| virtual std::string | type () const |
| Type Information wrapper: must be virtual so that it is polymorphic... More... | |
| std::string | GetObjectName () |
| void | InstantiateObject (const Initializer &init) |
| virtual std::string | Print (const std::string &prepend) const |
Public Member Functions inherited from exotica::Uncopyable | |
| Uncopyable ()=default | |
| ~Uncopyable ()=default | |
Public Member Functions inherited from exotica::InstantiableBase | |
| InstantiableBase ()=default | |
| virtual | ~InstantiableBase ()=default |
| virtual std::vector< Initializer > | GetAllTemplates () const =0 |
Public Member Functions inherited from exotica::Instantiable< CollisionSceneFCLLatestInitializer > | |
| void | InstantiateInternal (const Initializer &init) override |
| Initializer | GetInitializerTemplate () override |
| std::vector< Initializer > | GetAllTemplates () const override |
| virtual void | Instantiate (const CollisionSceneFCLLatestInitializer &init) |
| const CollisionSceneFCLLatestInitializer & | GetParameters () const |
Static Public Member Functions | |
| static bool | IsAllowedToCollide (fcl::CollisionObjectd *o1, fcl::CollisionObjectd *o2, bool self, CollisionSceneFCLLatest *scene) |
| static bool | CollisionCallback (fcl::CollisionObjectd *o1, fcl::CollisionObjectd *o2, void *data) |
| static bool | CollisionCallbackDistance (fcl::CollisionObjectd *o1, fcl::CollisionObjectd *o2, void *data, double &dist) |
Private Member Functions | |
| std::shared_ptr< fcl::CollisionObjectd > | ConstructFclCollisionObject (long i, std::shared_ptr< KinematicElement > element) |
| std::shared_ptr< KinematicElement > | GetKinematicElementFromMapByName (const std::string &frame_name) |
| std::vector< fcl::CollisionObjectd * > | GetRobotCollisionObjectsFromMapByName (const std::string &frame_name) |
| std::vector< fcl::CollisionObjectd * > | GetWorldCollisionObjectsFromMapByName (const std::string &frame_name) |
| std::vector< fcl::CollisionObjectd * > | GetCollisionObjectsFromMapByName (const std::string &frame_name) |
Static Private Member Functions | |
| static void | CheckCollision (fcl::CollisionObjectd *o1, fcl::CollisionObjectd *o2, CollisionData *data) |
| static void | ComputeDistance (fcl::CollisionObjectd *o1, fcl::CollisionObjectd *o2, DistanceData *data) |
Private Attributes | |
| std::shared_ptr< fcl::BroadPhaseCollisionManagerd > | broad_phase_collision_manager_ |
| std::vector< fcl::CollisionObjectd * > | fcl_objects_ |
| std::vector< std::shared_ptr< fcl::CollisionObjectd > > | fcl_cache_ |
| std::vector< std::weak_ptr< KinematicElement > > | kinematic_elements_ |
| std::map< std::string, std::weak_ptr< KinematicElement > > | kinematic_elements_map_ |
| std::map< std::string, std::vector< fcl::CollisionObjectd * > > | fcl_objects_map_ |
| std::map< std::string, std::vector< fcl::CollisionObjectd * > > | fcl_robot_objects_map_ |
| std::map< std::string, std::vector< fcl::CollisionObjectd * > > | fcl_world_objects_map_ |
Additional Inherited Members | |
Public Attributes inherited from exotica::CollisionScene | |
| bool | debug_ = false |
Public Attributes inherited from exotica::Object | |
| std::string | ns_ |
| std::string | object_name_ |
| bool | debug_ |
Protected Attributes inherited from exotica::CollisionScene | |
| bool | needs_update_of_collision_objects_ = true |
| Indicates whether TriggerUpdateCollisionObjects needs to be called. More... | |
| std::weak_ptr< Scene > | scene_ |
| Stores a pointer to the Scene which owns this CollisionScene. More... | |
| AllowedCollisionMatrix | acm_ |
| The allowed collision matrix. More... | |
| bool | always_externally_updated_collision_scene_ = false |
| Whether the collision scene is automatically updated - if not, update on queries. More... | |
| double | robot_link_scale_ = 1.0 |
| Robot link scaling. More... | |
| double | world_link_scale_ = 1.0 |
| World link scaling. More... | |
| double | robot_link_padding_ = 0.0 |
| Robot link padding. More... | |
| double | world_link_padding_ = 0.0 |
| World link padding. More... | |
| bool | replace_primitive_shapes_with_meshes_ = false |
| Replace primitive shapes with meshes internally (e.g. when primitive shape algorithms are brittle, i.e. in FCL) More... | |
| bool | replace_cylinders_with_capsules_ = false |
| Replace cylinders with capsules internally. More... | |
| std::string | robot_link_replacement_config_ = "" |
| Filename for config file (YAML) which contains shape replacements. More... | |
Protected Attributes inherited from exotica::Instantiable< CollisionSceneFCLLatestInitializer > | |
| CollisionSceneFCLLatestInitializer | parameters_ |
|
staticprivate |
|
static |
|
static |
|
staticprivate |
|
private |
|
overridevirtual |
Performs a continuous collision check between two objects with a linear interpolation between two given.
| [in] | o1 | The first collision object, by name. |
| [in] | tf1_beg | The beginning transform for o1. |
| [in] | tf1_end | The end transform for o1. |
| [in] | o2 | The second collision object, by name. |
| [in] | tf2_beg | The beginning transform for o2. |
| [in] | tf2_end | The end transform for o2. |
Reimplemented from exotica::CollisionScene.
|
overridevirtual |
Computes collision distances.
| self | Indicate if self collision check is required. |
Reimplemented from exotica::CollisionScene.
|
overridevirtual |
Gets the closest distance of any collision object which is allowed to collide with any collision object related to object o1.
| [in] | o1 | Name of object 1. |
Reimplemented from exotica::CollisionScene.
|
overridevirtual |
Gets the closest distance of any collision object which is allowed to collide with any collision object related to object o1.
| [in] | o1 | Name of object 1. |
| [in] | disable_collision_scene_update | Allows disabling of collision object transforms (requires manual update). |
Reimplemented from exotica::CollisionScene.
|
overridevirtual |
Computes collision distances between two objects.
| o1 | Name of object 1. |
| o2 | Name of object 2. |
Reimplemented from exotica::CollisionScene.
|
overridevirtual |
Gets the closest distance of any collision object which is allowed to collide with any collision object related to any of the objects.
| [in] | objects | Vector of object names. |
Reimplemented from exotica::CollisionScene.
|
inlineprivate |
|
overridevirtual |
Gets the collision robot links.
Implements exotica::CollisionScene.
|
overridevirtual |
Gets the collision world links.
Implements exotica::CollisionScene.
|
inlineprivate |
|
inlineprivate |
|
overridevirtual |
Gets the closest distances between links within the robot that are closer than check_margin.
| [in] | check_margin | Margin for distance checks - only objects closer than this margin will be checked |
Reimplemented from exotica::CollisionScene.
|
overridevirtual |
Gets the closest distances between links of the robot and the environment that are closer than check_margin.
| [in] | check_margin | Margin for distance checks - only objects closer than this margin will be checked |
Reimplemented from exotica::CollisionScene.
|
overridevirtual |
Returns the translation of the named collision object.
| [in] | name | Name of the collision object to query. |
Implements exotica::CollisionScene.
|
inlineprivate |
|
overridevirtual |
Returns whether two collision objects/shapes are allowed to collide by name.
| o1 | Name of the frame of the collision object (e.g., base_link_collision_0) |
| o2 | Name of the frame of the other collision object (e.g., base_link_collision_0) |
Reimplemented from exotica::CollisionScene.
|
static |
|
overridevirtual |
Checks if two objects are in collision.
| o1 | Name of object 1. |
| o2 | Name of object 2. |
Reimplemented from exotica::CollisionScene.
|
overridevirtual |
Check if the whole robot is valid (collision only).
| self | Indicate if self collision check is required. |
Implements exotica::CollisionScene.
|
overridevirtual |
Setup additional construction that requires initialiser parameter.
Reimplemented from exotica::CollisionScene.
|
overridevirtual |
Creates the collision scene from kinematic elements.
| objects | Vector kinematic element pointers of collision objects. |
Implements exotica::CollisionScene.
|
overridevirtual |
Updates collision object transformations from the kinematic tree.
Implements exotica::CollisionScene.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
1.8.17