continuous_contact_manager.h
Go to the documentation of this file.
1 
28 #ifndef TESSERACT_COLLISION_CONTINUOUS_CONTACT_MANAGER_H
29 #define TESSERACT_COLLISION_CONTINUOUS_CONTACT_MANAGER_H
30 
33 #include <memory>
35 
37 #include <tesseract_common/fwd.h>
38 
39 namespace tesseract_collision
40 {
42 {
43 public:
44  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
45 
46  using Ptr = std::shared_ptr<ContinuousContactManager>;
47  using ConstPtr = std::shared_ptr<const ContinuousContactManager>;
48  using UPtr = std::unique_ptr<ContinuousContactManager>;
49  using ConstUPtr = std::unique_ptr<const ContinuousContactManager>;
50 
51  ContinuousContactManager() = default;
52  virtual ~ContinuousContactManager() = default;
57 
62  virtual std::string getName() const = 0;
63 
70  virtual ContinuousContactManager::UPtr clone() const = 0;
71 
89  virtual bool addCollisionObject(const std::string& name,
90  const int& mask_id,
91  const CollisionShapesConst& shapes,
92  const tesseract_common::VectorIsometry3d& shape_poses,
93  bool enabled = true) = 0;
94 
100  virtual const CollisionShapesConst& getCollisionObjectGeometries(const std::string& name) const = 0;
101 
108  getCollisionObjectGeometriesTransforms(const std::string& name) const = 0;
109 
115  virtual bool hasCollisionObject(const std::string& name) const = 0;
116 
122  virtual bool removeCollisionObject(const std::string& name) = 0;
123 
128  virtual bool enableCollisionObject(const std::string& name) = 0;
129 
134  virtual bool disableCollisionObject(const std::string& name) = 0;
135 
141  virtual bool isCollisionObjectEnabled(const std::string& name) const = 0;
142 
148  virtual void setCollisionObjectsTransform(const std::string& name, const Eigen::Isometry3d& pose) = 0;
149 
155  virtual void setCollisionObjectsTransform(const std::vector<std::string>& names,
156  const tesseract_common::VectorIsometry3d& poses) = 0;
157 
162  virtual void setCollisionObjectsTransform(const tesseract_common::TransformMap& transforms) = 0;
163 
174  virtual void setCollisionObjectsTransform(const std::string& name,
175  const Eigen::Isometry3d& pose1,
176  const Eigen::Isometry3d& pose2) = 0;
177 
188  virtual void setCollisionObjectsTransform(const std::vector<std::string>& names,
190  const tesseract_common::VectorIsometry3d& pose2) = 0;
191 
202  const tesseract_common::TransformMap& pose2) = 0;
203 
208  virtual const std::vector<std::string>& getCollisionObjects() const = 0;
209 
214  virtual void setActiveCollisionObjects(const std::vector<std::string>& names) = 0;
215 
220  virtual const std::vector<std::string>& getActiveCollisionObjects() const = 0;
221 
226  virtual void setCollisionMarginData(CollisionMarginData collision_margin_data) = 0;
227 
232  virtual const CollisionMarginData& getCollisionMarginData() const = 0;
233 
239  virtual void setCollisionMarginPairData(
240  const CollisionMarginPairData& pair_margin_data,
241  CollisionMarginPairOverrideType override_type = CollisionMarginPairOverrideType::REPLACE) = 0;
242 
247  virtual void setDefaultCollisionMargin(double default_collision_margin) = 0;
248 
259  virtual void setCollisionMarginPair(const std::string& name1, const std::string& name2, double collision_margin) = 0;
260 
265  virtual void incrementCollisionMargin(double increment) = 0;
266 
268  virtual void
269  setContactAllowedValidator(std::shared_ptr<const tesseract_common::ContactAllowedValidator> validator) = 0;
270 
272  virtual std::shared_ptr<const tesseract_common::ContactAllowedValidator> getContactAllowedValidator() const = 0;
273 
279  virtual void contactTest(ContactResultMap& collisions, const ContactRequest& request) = 0;
280 
285  virtual void applyContactManagerConfig(const ContactManagerConfig& config);
286 };
287 
288 } // namespace tesseract_collision
289 
290 #endif // TESSERACT_COLLISION_CONTINUOUS_CONTACT_MANAGER_H
tesseract_common::VectorIsometry3d
AlignedVector< Eigen::Isometry3d > VectorIsometry3d
tesseract_collision::ContinuousContactManager::UPtr
std::unique_ptr< ContinuousContactManager > UPtr
Definition: continuous_contact_manager.h:48
tesseract_collision::ContactManagerConfig
Contains parameters used to configure a contact manager before a series of contact checks.
Definition: types.h:420
tesseract_collision::ContinuousContactManager::Ptr
std::shared_ptr< ContinuousContactManager > Ptr
Definition: continuous_contact_manager.h:46
tesseract_collision::ContinuousContactManager::ContinuousContactManager
ContinuousContactManager()=default
tesseract_collision::ContinuousContactManager::setContactAllowedValidator
virtual void setContactAllowedValidator(std::shared_ptr< const tesseract_common::ContactAllowedValidator > validator)=0
Set the active function for determining if two links are allowed to be in collision.
types.h
Tesseracts Collision Forward Declarations.
tesseract_collision::ContinuousContactManager::clone
virtual ContinuousContactManager::UPtr clone() const =0
Clone the manager.
tesseract_collision::ContinuousContactManager::operator=
ContinuousContactManager & operator=(const ContinuousContactManager &)=delete
tesseract_common::TransformMap
AlignedMap< std::string, Eigen::Isometry3d > TransformMap
tesseract_collision::ContinuousContactManager::getCollisionObjectGeometries
virtual const CollisionShapesConst & getCollisionObjectGeometries(const std::string &name) const =0
Get a collision objects collision geometries.
tesseract_collision::ContinuousContactManager::getContactAllowedValidator
virtual std::shared_ptr< const tesseract_common::ContactAllowedValidator > getContactAllowedValidator() const =0
Get the active function for determining if two links are allowed to be in collision.
tesseract_collision::ContinuousContactManager::getActiveCollisionObjects
virtual const std::vector< std::string > & getActiveCollisionObjects() const =0
Get which collision objects can move.
tesseract_collision::ContinuousContactManager::removeCollisionObject
virtual bool removeCollisionObject(const std::string &name)=0
Remove an object from the checker.
TESSERACT_COMMON_IGNORE_WARNINGS_PUSH
#define TESSERACT_COMMON_IGNORE_WARNINGS_PUSH
tesseract_common::CollisionMarginData
tesseract_collision::ContinuousContactManager
Definition: continuous_contact_manager.h:41
tesseract_collision::ContinuousContactManager::ConstPtr
std::shared_ptr< const ContinuousContactManager > ConstPtr
Definition: continuous_contact_manager.h:47
tesseract_collision::ContactResultMap
This structure hold contact results for link pairs.
Definition: types.h:155
tesseract_common::CollisionMarginPairOverrideType
CollisionMarginPairOverrideType
tesseract_collision::ContinuousContactManager::getCollisionObjects
virtual const std::vector< std::string > & getCollisionObjects() const =0
Get all collision objects.
tesseract_collision::ContinuousContactManager::addCollisionObject
virtual bool addCollisionObject(const std::string &name, const int &mask_id, const CollisionShapesConst &shapes, const tesseract_common::VectorIsometry3d &shape_poses, bool enabled=true)=0
Add a collision object to the checker.
tesseract_collision::ContinuousContactManager::disableCollisionObject
virtual bool disableCollisionObject(const std::string &name)=0
Disable an object.
tesseract_collision::ContinuousContactManager::setCollisionObjectsTransform
virtual void setCollisionObjectsTransform(const std::string &name, const Eigen::Isometry3d &pose)=0
Set a single static collision object's tansforms.
tesseract_collision::ContinuousContactManager::ConstUPtr
std::unique_ptr< const ContinuousContactManager > ConstUPtr
Definition: continuous_contact_manager.h:49
tesseract_collision::CollisionShapesConst
std::vector< CollisionShapeConstPtr > CollisionShapesConst
Definition: types.h:51
tesseract_collision::ContinuousContactManager::hasCollisionObject
virtual bool hasCollisionObject(const std::string &name) const =0
Find if a collision object already exists.
tesseract_collision::ContinuousContactManager::~ContinuousContactManager
virtual ~ContinuousContactManager()=default
tesseract_collision::ContinuousContactManager::getName
virtual std::string getName() const =0
Get the name of the contact manager.
TESSERACT_COMMON_IGNORE_WARNINGS_POP
Definition: create_convex_hull.cpp:37
tesseract_collision::ContinuousContactManager::getCollisionObjectGeometriesTransforms
virtual const tesseract_common::VectorIsometry3d & getCollisionObjectGeometriesTransforms(const std::string &name) const =0
Get a collision objects collision geometries transforms.
tesseract_collision::ContinuousContactManager::setCollisionMarginPairData
virtual void setCollisionMarginPairData(const CollisionMarginPairData &pair_margin_data, CollisionMarginPairOverrideType override_type=CollisionMarginPairOverrideType::REPLACE)=0
Set the pair contact distance thresholds for which collision should be considered on a per pair basis...
tesseract_collision::ContinuousContactManager::incrementCollisionMargin
virtual void incrementCollisionMargin(double increment)=0
Increment the collision margin data by some value.
fwd.h
tesseract_collision::ContinuousContactManager::setCollisionMarginPair
virtual void setCollisionMarginPair(const std::string &name1, const std::string &name2, double collision_margin)=0
Set the margin for a given contact pair.
tesseract_collision::ContinuousContactManager::enableCollisionObject
virtual bool enableCollisionObject(const std::string &name)=0
Enable an object.
tesseract_collision::ContinuousContactManager::isCollisionObjectEnabled
virtual bool isCollisionObjectEnabled(const std::string &name) const =0
Check if collision object is enabled.
tesseract_common::CollisionMarginPairData
tesseract_collision::ContinuousContactManager::applyContactManagerConfig
virtual void applyContactManagerConfig(const ContactManagerConfig &config)
Applies settings in the config.
Definition: continuous_contact_manager.cpp:32
tesseract_collision::ContinuousContactManager::setCollisionMarginData
virtual void setCollisionMarginData(CollisionMarginData collision_margin_data)=0
Set the contact distance threshold.
tesseract_collision::ContinuousContactManager::setDefaultCollisionMargin
virtual void setDefaultCollisionMargin(double default_collision_margin)=0
Set the default collision margin.
tesseract_collision
Definition: bullet_cast_bvh_manager.h:48
macros.h
tesseract_collision::ContinuousContactManager::contactTest
virtual void contactTest(ContactResultMap &collisions, const ContactRequest &request)=0
Perform a contact test for all objects based.
tesseract_collision::ContactRequest
The ContactRequest struct.
Definition: types.h:300
tesseract_collision::ContinuousContactManager::setActiveCollisionObjects
virtual void setActiveCollisionObjects(const std::vector< std::string > &names)=0
Set which collision objects can move.
tesseract_collision::ContinuousContactManager::getCollisionMarginData
virtual const CollisionMarginData & getCollisionMarginData() const =0
Get the contact distance threshold.


tesseract_collision
Author(s): Levi Armstrong
autogenerated on Sun May 18 2025 03:01:52