18 #ifndef HPP_CORE_OBSTACLE_USER_HH
19 # define HPP_CORE_OBSTACLE_USER_HH
21 # include <hpp/fcl/collision_data.h>
75 const std::string& body_b,
95 template<
typename Derived>
108 for (std::size_t i = 0; i < validations_.size(); ++i) {
109 shared_ptr<ObstacleUserInterface> oui =
111 if (oui) oui->addObstacle (
object);
123 for (std::size_t i = 0; i < validations_.size(); ++i) {
124 shared_ptr<ObstacleUserInterface> oui =
126 if (oui) oui->removeObstacleFromJoint (joint,
object);
137 for (std::size_t i = 0; i < validations_.size(); ++i) {
138 shared_ptr<ObstacleUserInterface> oui =
140 if (oui) oui->filterCollisionPairs (relMotion);
147 for (std::size_t i = 0; i < validations_.size(); ++i) {
148 shared_ptr<ObstacleUserInterface> oui =
150 if (oui) oui->setSecurityMargins (securityMatrix);
156 const std::string& body_b,
159 for (std::size_t i = 0; i < validations_.size(); ++i) {
160 shared_ptr<ObstacleUserInterface> oui =
163 oui->setSecurityMarginBetweenBodies (body_a, body_b, margin);
170 validations_.clear ();
179 validations_ (validations)
193 fcl::CollisionResult& res,
195 pinocchio::DeviceData& data);
223 return defaultRequest_;
238 const JointPtr_t& joint,
const bool includeChildren);
261 const std::string& body_b,
267 : robot_ (robot), defaultRequest_ (fcl::NO_REQUEST,1)
269 defaultRequest_.enable_cached_gjk_guess =
true;
274 : robot_ (other.robot_),
275 defaultRequest_ (other.defaultRequest_),
276 cPairs_ (other.cPairs_),
277 pPairs_ (other.pPairs_),
278 dPairs_ (other.dPairs_),
279 cRequests_ (other.cRequests_),
280 pRequests_ (other.pRequests_),
281 dRequests_ (other.dRequests_)
Definition: obstacle-user.hh:37
virtual void removeObstacleFromJoint(const JointPtr_t &joint, const CollisionObjectConstPtr_t &object)=0
virtual void addObstacle(const CollisionObjectConstPtr_t &object)=0
virtual void filterCollisionPairs(const RelativeMotion::matrix_type &relMotion)=0
virtual ~ObstacleUserInterface()=default
virtual void setSecurityMarginBetweenBodies(const std::string &body_a, const std::string &body_b, const value_type &margin)=0
virtual void setSecurityMargins(const matrix_t &securityMatrix)=0
Definition: obstacle-user.hh:97
ObstacleUserVector(std::initializer_list< value_t > validations)
Definition: obstacle-user.hh:178
void filterCollisionPairs(const RelativeMotion::matrix_type &relMotion)
Definition: obstacle-user.hh:135
void clear()
Definition: obstacle-user.hh:168
virtual ~ObstacleUserVector()=default
values_t validations_
Definition: obstacle-user.hh:180
Derived value_t
Definition: obstacle-user.hh:174
void setSecurityMarginBetweenBodies(const std::string &body_a, const std::string &body_b, const value_type &margin)
Definition: obstacle-user.hh:155
void addObstacle(const CollisionObjectConstPtr_t &object)
Definition: obstacle-user.hh:106
ObstacleUserVector()=default
void removeObstacleFromJoint(const JointPtr_t &joint, const CollisionObjectConstPtr_t &object)
Definition: obstacle-user.hh:120
std::vector< value_t > values_t
Definition: obstacle-user.hh:175
void setSecurityMargins(const matrix_t &securityMatrix)
Definition: obstacle-user.hh:145
Stores a set of obstacles (movable or static).
Definition: obstacle-user.hh:187
virtual void setSecurityMarginBetweenBodies(const std::string &body_a, const std::string &body_b, const value_type &margin)
virtual void setSecurityMargins(const matrix_t &securityMatrix)
CollisionRequests_t cRequests_
Disabled collision pairs.
Definition: obstacle-user.hh:292
fcl::CollisionRequest defaultRequest_
Definition: obstacle-user.hh:287
virtual ~ObstacleUser()=default
CollisionPairs_t pPairs_
Active collision pairs.
Definition: obstacle-user.hh:290
static bool collide(const CollisionPairs_t &pairs, CollisionRequests_t &reqs, fcl::CollisionResult &res, std::size_t &i, pinocchio::DeviceData &data)
ObstacleUser(DevicePtr_t robot)
Constructor of body pair collision.
Definition: obstacle-user.hh:266
fcl::CollisionRequest & defaultRequest()
Definition: obstacle-user.hh:221
CollisionRequests_t dRequests_
Parameterized collision requests.
Definition: obstacle-user.hh:294
CollisionPairs_t dPairs_
Parameterized collision pairs.
Definition: obstacle-user.hh:291
DevicePtr_t robot_
Definition: obstacle-user.hh:286
virtual void removeObstacleFromJoint(const JointPtr_t &joint, const CollisionObjectConstPtr_t &object)
const CollisionPairs_t & pairs() const
Definition: obstacle-user.hh:198
CollisionRequests_t & requests()
Definition: obstacle-user.hh:216
const CollisionRequests_t & requests() const
Definition: obstacle-user.hh:210
ObstacleUser(const ObstacleUser &other)
Copy constructor.
Definition: obstacle-user.hh:273
virtual void addObstacleToJoint(const CollisionObjectConstPtr_t &object, const JointPtr_t &joint, const bool includeChildren)
void setRequests(const fcl::CollisionRequest &r)
CollisionRequests_t pRequests_
Active collision requests.
Definition: obstacle-user.hh:293
void addRobotCollisionPairs()
virtual void filterCollisionPairs(const RelativeMotion::matrix_type &relMotion)
virtual void addObstacle(const CollisionObjectConstPtr_t &object)
CollisionPairs_t & pairs()
Definition: obstacle-user.hh:204
CollisionPairs_t cPairs_
Definition: obstacle-user.hh:289
#define HPP_CORE_DLLAPI
Definition: config.hh:64
std::vector< CollisionPair_t > CollisionPairs_t
Definition: fwd.hh:221
pinocchio::value_type value_type
Definition: fwd.hh:157
pinocchio::JointPtr_t JointPtr_t
Definition: fwd.hh:133
std::vector< fcl::CollisionRequest > CollisionRequests_t
Definition: collision-pair.hh:32
pinocchio::DevicePtr_t DevicePtr_t
Definition: fwd.hh:114
pinocchio::CollisionObjectConstPtr_t CollisionObjectConstPtr_t
Definition: fwd.hh:90
pinocchio::matrix_t matrix_t
Definition: fwd.hh:145
Definition: bi-rrt-planner.hh:24
Eigen::Matrix< RelativeMotionType, Eigen::Dynamic, Eigen::Dynamic > matrix_type
Definition: relative-motion.hh:51