29 #ifndef HPP_CORE_OBSTACLE_USER_HH 30 #define HPP_CORE_OBSTACLE_USER_HH 32 #include <hpp/fcl/collision_data.h> 58 virtual void removeObstacleFromJoint(
69 virtual void filterCollisionPairs(
80 virtual void setSecurityMargins(
const matrix_t& securityMatrix) = 0;
85 virtual void setSecurityMarginBetweenBodies(
const std::string& body_a,
86 const std::string& body_b,
106 template <
typename Derived>
117 for (std::size_t i = 0; i < validations_.size(); ++i) {
118 shared_ptr<ObstacleUserInterface> oui =
120 if (oui) oui->addObstacle(
object);
131 for (std::size_t i = 0; i < validations_.size(); ++i) {
132 shared_ptr<ObstacleUserInterface> oui =
134 if (oui) oui->removeObstacleFromJoint(joint,
object);
144 for (std::size_t i = 0; i < validations_.size(); ++i) {
145 shared_ptr<ObstacleUserInterface> oui =
147 if (oui) oui->filterCollisionPairs(relMotion);
153 for (std::size_t i = 0; i < validations_.size(); ++i) {
154 shared_ptr<ObstacleUserInterface> oui =
156 if (oui) oui->setSecurityMargins(securityMatrix);
162 const std::string& body_b,
164 for (std::size_t i = 0; i < validations_.size(); ++i) {
165 shared_ptr<ObstacleUserInterface> oui =
167 if (oui) oui->setSecurityMarginBetweenBodies(body_a, body_b, margin);
172 void clear() { validations_.clear(); }
180 : validations_(validations){};
191 fcl::CollisionResult& res, std::size_t& i,
192 pinocchio::DeviceData& data);
208 void setRequests(
const fcl::CollisionRequest& r);
221 const bool includeChildren);
226 virtual void removeObstacleFromJoint(
const JointPtr_t& joint,
238 virtual void filterCollisionPairs(
242 virtual void setSecurityMargins(
const matrix_t& securityMatrix);
245 virtual void setSecurityMarginBetweenBodies(
const std::string& body_a,
246 const std::string& body_b,
252 : robot_(robot), defaultRequest_(fcl::NO_REQUEST, 1) {
253 defaultRequest_.enable_cached_gjk_guess =
true;
258 : robot_(other.robot_),
259 defaultRequest_(other.defaultRequest_),
260 cPairs_(other.cPairs_),
261 pPairs_(other.pPairs_),
262 dPairs_(other.dPairs_),
263 cRequests_(other.cRequests_),
264 pRequests_(other.pRequests_),
265 dRequests_(other.dRequests_) {}
267 void addRobotCollisionPairs();
281 #endif // HPP_CORE_OBSTACLE_USER_HH fcl::CollisionRequest & defaultRequest()
Definition: obstacle-user.hh:206
const CollisionPairs_t & pairs() const
Definition: obstacle-user.hh:195
pinocchio::DevicePtr_t DevicePtr_t
Definition: fwd.hh:123
Definition: obstacle-user.hh:107
values_t validations_
Definition: obstacle-user.hh:180
Derived value_t
Definition: obstacle-user.hh:175
ObstacleUserVector(std::initializer_list< value_t > validations)
Definition: obstacle-user.hh:179
Definition: bi-rrt-planner.hh:35
ObstacleUser(DevicePtr_t robot)
Constructor of body pair collision.
Definition: obstacle-user.hh:251
void addObstacle(const CollisionObjectConstPtr_t &object)
Definition: obstacle-user.hh:116
CollisionRequests_t pRequests_
Active collision requests.
Definition: obstacle-user.hh:275
pinocchio::JointPtr_t JointPtr_t
Definition: fwd.hh:140
std::vector< CollisionPair_t > CollisionPairs_t
Definition: fwd.hh:228
std::vector< fcl::CollisionRequest > CollisionRequests_t
Definition: collision-pair.hh:43
CollisionPairs_t & pairs()
Definition: obstacle-user.hh:198
void setSecurityMarginBetweenBodies(const std::string &body_a, const std::string &body_b, const value_type &margin)
Definition: obstacle-user.hh:161
void clear()
Definition: obstacle-user.hh:172
DevicePtr_t robot_
Definition: obstacle-user.hh:269
pinocchio::matrix_t matrix_t
Definition: fwd.hh:151
fcl::CollisionRequest defaultRequest_
Definition: obstacle-user.hh:270
void filterCollisionPairs(const RelativeMotion::matrix_type &relMotion)
Definition: obstacle-user.hh:143
pinocchio::value_type value_type
Definition: fwd.hh:163
void setSecurityMargins(const matrix_t &securityMatrix)
Definition: obstacle-user.hh:152
void removeObstacleFromJoint(const JointPtr_t &joint, const CollisionObjectConstPtr_t &object)
Definition: obstacle-user.hh:129
CollisionRequests_t & requests()
Definition: obstacle-user.hh:204
Definition: obstacle-user.hh:47
const CollisionRequests_t & requests() const
Definition: obstacle-user.hh:201
std::vector< value_t > values_t
Definition: obstacle-user.hh:176
#define HPP_CORE_DLLAPI
Definition: config.hh:64
ObstacleUser(const ObstacleUser &other)
Copy constructor.
Definition: obstacle-user.hh:257
Eigen::Matrix< RelativeMotionType, Eigen::Dynamic, Eigen::Dynamic > matrix_type
Definition: relative-motion.hh:62
Stores a set of obstacles (movable or static).
Definition: obstacle-user.hh:186
CollisionPairs_t pPairs_
Active collision pairs.
Definition: obstacle-user.hh:272
pinocchio::CollisionObjectConstPtr_t CollisionObjectConstPtr_t
Definition: fwd.hh:99