18 #ifndef HPP_CORE_OBSTACLE_USER_HH 19 # define HPP_CORE_OBSTACLE_USER_HH 21 # include <hpp/fcl/collision_data.h> 48 virtual void removeObstacleFromJoint(
const JointPtr_t& joint,
68 virtual void setSecurityMargins(
const matrix_t& securityMatrix) = 0;
74 virtual void setSecurityMarginBetweenBodies(
const std::string& body_a,
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)
182 values_t validations_;
193 fcl::CollisionResult& res,
195 pinocchio::DeviceData& data);
223 return defaultRequest_;
226 void setRequests (
const fcl::CollisionRequest& r);
238 const JointPtr_t& joint,
const bool includeChildren);
243 virtual void removeObstacleFromJoint(
const JointPtr_t& joint,
257 virtual void setSecurityMargins(
const matrix_t& securityMatrix);
260 virtual void setSecurityMarginBetweenBodies(
const std::string& body_a,
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_)
284 void addRobotCollisionPairs ();
298 #endif // HPP_CORE_OBSTACLE_USER_HH fcl::CollisionRequest & defaultRequest()
Definition: obstacle-user.hh:221
const CollisionPairs_t & pairs() const
Definition: obstacle-user.hh:198
pinocchio::DevicePtr_t DevicePtr_t
Definition: fwd.hh:114
Definition: obstacle-user.hh:96
Derived value_t
Definition: obstacle-user.hh:174
ObstacleUserVector(std::initializer_list< value_t > validations)
Definition: obstacle-user.hh:178
Definition: bi-rrt-planner.hh:24
ObstacleUser(DevicePtr_t robot)
Constructor of body pair collision.
Definition: obstacle-user.hh:266
void addObstacle(const CollisionObjectConstPtr_t &object)
Definition: obstacle-user.hh:106
CollisionRequests_t pRequests_
Active collision requests.
Definition: obstacle-user.hh:292
pinocchio::JointPtr_t JointPtr_t
Definition: fwd.hh:133
std::vector< CollisionPair_t > CollisionPairs_t
Definition: fwd.hh:221
std::vector< fcl::CollisionRequest > CollisionRequests_t
Definition: collision-pair.hh:32
CollisionPairs_t & pairs()
Definition: obstacle-user.hh:204
void setSecurityMarginBetweenBodies(const std::string &body_a, const std::string &body_b, const value_type &margin)
Definition: obstacle-user.hh:155
void clear()
Definition: obstacle-user.hh:168
DevicePtr_t robot_
Definition: obstacle-user.hh:286
pinocchio::matrix_t matrix_t
Definition: fwd.hh:145
fcl::CollisionRequest defaultRequest_
Definition: obstacle-user.hh:287
void filterCollisionPairs(const RelativeMotion::matrix_type &relMotion)
Definition: obstacle-user.hh:135
pinocchio::value_type value_type
Definition: fwd.hh:157
void setSecurityMargins(const matrix_t &securityMatrix)
Definition: obstacle-user.hh:145
void removeObstacleFromJoint(const JointPtr_t &joint, const CollisionObjectConstPtr_t &object)
Definition: obstacle-user.hh:120
CollisionRequests_t & requests()
Definition: obstacle-user.hh:216
Definition: obstacle-user.hh:36
const CollisionRequests_t & requests() const
Definition: obstacle-user.hh:210
std::vector< value_t > values_t
Definition: obstacle-user.hh:175
#define HPP_CORE_DLLAPI
Definition: config.hh:64
ObstacleUser(const ObstacleUser &other)
Copy constructor.
Definition: obstacle-user.hh:273
Eigen::Matrix< RelativeMotionType, Eigen::Dynamic, Eigen::Dynamic > matrix_type
Definition: relative-motion.hh:51
Stores a set of obstacles (movable or static).
Definition: obstacle-user.hh:186
CollisionPairs_t pPairs_
Active collision pairs.
Definition: obstacle-user.hh:289
pinocchio::CollisionObjectConstPtr_t CollisionObjectConstPtr_t
Definition: fwd.hh:90