#include <collision_robot_fcl.h>

Public Member Functions | |
| virtual void | checkOtherCollision (const CollisionRequest &req, CollisionResult &res, const robot_state::RobotState &state, const CollisionRobot &other_robot, const robot_state::RobotState &other_state) const |
| Check for collision with a different robot (possibly a different kinematic model as well). Any collision between any pair of links is checked for, NO collisions are ignored. | |
| virtual void | checkOtherCollision (const CollisionRequest &req, CollisionResult &res, const robot_state::RobotState &state, const CollisionRobot &other_robot, const robot_state::RobotState &other_state, const AllowedCollisionMatrix &acm) const |
| Check for collision with a different robot (possibly a different kinematic model as well). Allowed collisions specified by the allowed collision matrix are taken into account. | |
| virtual void | checkOtherCollision (const CollisionRequest &req, CollisionResult &res, const robot_state::RobotState &state1, const robot_state::RobotState &state2, const CollisionRobot &other_robot, const robot_state::RobotState &other_state1, const robot_state::RobotState &other_state2) const |
| Check for collision with a different robot (possibly a different kinematic model as well), in a continuous fashion. Any collision between any pair of links is checked for, NO collisions are ignored. | |
| virtual void | checkOtherCollision (const CollisionRequest &req, CollisionResult &res, const robot_state::RobotState &state1, const robot_state::RobotState &state2, const CollisionRobot &other_robot, const robot_state::RobotState &other_state1, const robot_state::RobotState &other_state2, const AllowedCollisionMatrix &acm) const |
| Check for collision with a different robot (possibly a different kinematic model as well), in a continuous fashion. Allowed collisions specified by the allowed collision matrix are taken into account. | |
| virtual void | checkSelfCollision (const CollisionRequest &req, CollisionResult &res, const robot_state::RobotState &state) const |
| Check for self collision. Any collision between any pair of links is checked for, NO collisions are ignored. | |
| virtual void | checkSelfCollision (const CollisionRequest &req, CollisionResult &res, const robot_state::RobotState &state, const AllowedCollisionMatrix &acm) const |
| Check for self collision. Allowed collisions specified by the allowed collision matrix are taken into account. | |
| virtual void | checkSelfCollision (const CollisionRequest &req, CollisionResult &res, const robot_state::RobotState &state1, const robot_state::RobotState &state2) const |
| Check for self collision in a continuous manner. Any collision between any pair of links is checked for, NO collisions are ignored. | |
| virtual void | checkSelfCollision (const CollisionRequest &req, CollisionResult &res, const robot_state::RobotState &state1, const robot_state::RobotState &state2, const AllowedCollisionMatrix &acm) const |
| Check for self collision. Allowed collisions specified by the allowed collision matrix are taken into account. | |
| CollisionRobotFCL (const robot_model::RobotModelConstPtr &kmodel, double padding=0.0, double scale=1.0) | |
| CollisionRobotFCL (const CollisionRobotFCL &other) | |
| virtual double | distanceOther (const robot_state::RobotState &state, const CollisionRobot &other_robot, const robot_state::RobotState &other_state) const |
| The distance to another robot instance. | |
| virtual double | distanceOther (const robot_state::RobotState &state, const CollisionRobot &other_robot, const robot_state::RobotState &other_state, const AllowedCollisionMatrix &acm) const |
| The distance to another robot instance, ignoring distances between links that are allowed to always collide. | |
| virtual double | distanceSelf (const robot_state::RobotState &state) const |
| The distance to self-collision given the robot is at state state. | |
| virtual double | distanceSelf (const robot_state::RobotState &state, const AllowedCollisionMatrix &acm) const |
| The distance to self-collision given the robot is at state state, ignoring the distances between links that are allowed to always collide (as specified by acm) | |
Protected Member Functions | |
| void | allocSelfCollisionBroadPhase (const robot_state::RobotState &state, FCLManager &manager) const |
| void | checkOtherCollisionHelper (const CollisionRequest &req, CollisionResult &res, const robot_state::RobotState &state, const CollisionRobot &other_robot, const robot_state::RobotState &other_state, const AllowedCollisionMatrix *acm) const |
| void | checkSelfCollisionHelper (const CollisionRequest &req, CollisionResult &res, const robot_state::RobotState &state, const AllowedCollisionMatrix *acm) const |
| void | constructFCLObject (const robot_state::RobotState &state, FCLObject &fcl_obj) const |
| double | distanceOtherHelper (const robot_state::RobotState &state, const CollisionRobot &other_robot, const robot_state::RobotState &other_state, const AllowedCollisionMatrix *acm) const |
| double | distanceSelfHelper (const robot_state::RobotState &state, const AllowedCollisionMatrix *acm) const |
| void | getAttachedBodyObjects (const robot_state::AttachedBody *ab, std::vector< FCLGeometryConstPtr > &geoms) const |
| virtual void | updatedPaddingOrScaling (const std::vector< std::string > &links) |
| When the scale or padding is changed for a set of links by any of the functions in this class, updatedPaddingOrScaling() function is called. This function has an empty default implementation. The intention is to override this function in a derived class to allow for updating additional structures that may need such updating when link scale or padding changes. | |
Protected Attributes | |
| std::vector < FCLCollisionObjectConstPtr > | fcl_objs_ |
| std::vector< FCLGeometryConstPtr > | geoms_ |
Friends | |
| class | CollisionWorldFCL |
Definition at line 44 of file collision_robot_fcl.h.
| collision_detection::CollisionRobotFCL::CollisionRobotFCL | ( | const robot_model::RobotModelConstPtr & | kmodel, |
| double | padding = 0.0, |
||
| double | scale = 1.0 |
||
| ) |
Definition at line 39 of file collision_robot_fcl.cpp.
Definition at line 69 of file collision_robot_fcl.cpp.
| void collision_detection::CollisionRobotFCL::allocSelfCollisionBroadPhase | ( | const robot_state::RobotState & | state, |
| FCLManager & | manager | ||
| ) | const [protected] |
Definition at line 126 of file collision_robot_fcl.cpp.
| void collision_detection::CollisionRobotFCL::checkOtherCollision | ( | const CollisionRequest & | req, |
| CollisionResult & | res, | ||
| const robot_state::RobotState & | state, | ||
| const CollisionRobot & | other_robot, | ||
| const robot_state::RobotState & | other_state | ||
| ) | const [virtual] |
Check for collision with a different robot (possibly a different kinematic model as well). Any collision between any pair of links is checked for, NO collisions are ignored.
| req | A CollisionRequest object that encapsulates the collision request |
| res | A CollisionResult object that encapsulates the collision result |
| state | The kinematic state for which checks are being made. |
| other_robot | The collision representation for the other robot |
| other_state | The kinematic state corresponding to the other robot |
Implements collision_detection::CollisionRobot.
Definition at line 178 of file collision_robot_fcl.cpp.
| void collision_detection::CollisionRobotFCL::checkOtherCollision | ( | const CollisionRequest & | req, |
| CollisionResult & | res, | ||
| const robot_state::RobotState & | state, | ||
| const CollisionRobot & | other_robot, | ||
| const robot_state::RobotState & | other_state, | ||
| const AllowedCollisionMatrix & | acm | ||
| ) | const [virtual] |
Check for collision with a different robot (possibly a different kinematic model as well). Allowed collisions specified by the allowed collision matrix are taken into account.
| req | A CollisionRequest object that encapsulates the collision request |
| res | A CollisionResult object that encapsulates the collision result |
| state | The kinematic state for which checks are being made. |
| other_robot | The collision representation for the other robot |
| other_state | The kinematic state corresponding to the other robot |
| acm | The allowed collision matrix. |
Implements collision_detection::CollisionRobot.
Definition at line 186 of file collision_robot_fcl.cpp.
| void collision_detection::CollisionRobotFCL::checkOtherCollision | ( | const CollisionRequest & | req, |
| CollisionResult & | res, | ||
| const robot_state::RobotState & | state1, | ||
| const robot_state::RobotState & | state2, | ||
| const CollisionRobot & | other_robot, | ||
| const robot_state::RobotState & | other_state1, | ||
| const robot_state::RobotState & | other_state2 | ||
| ) | const [virtual] |
Check for collision with a different robot (possibly a different kinematic model as well), in a continuous fashion. Any collision between any pair of links is checked for, NO collisions are ignored.
| req | A CollisionRequest object that encapsulates the collision request |
| res | A CollisionResult object that encapsulates the collision result |
| state1 | The kinematic state at the start of the segment for which checks are being made (this robot) |
| state2 | The kinematic state at the end of the segment for which checks are being made (this robot) |
| other_robot | The collision representation for the other robot |
| other_state1 | The kinematic state at the start of the segment for which checks are being made (other robot) |
| other_state2 | The kinematic state at the end of the segment for which checks are being made (other robot) |
Implements collision_detection::CollisionRobot.
Definition at line 195 of file collision_robot_fcl.cpp.
| void collision_detection::CollisionRobotFCL::checkOtherCollision | ( | const CollisionRequest & | req, |
| CollisionResult & | res, | ||
| const robot_state::RobotState & | state1, | ||
| const robot_state::RobotState & | state2, | ||
| const CollisionRobot & | other_robot, | ||
| const robot_state::RobotState & | other_state1, | ||
| const robot_state::RobotState & | other_state2, | ||
| const AllowedCollisionMatrix & | acm | ||
| ) | const [virtual] |
Check for collision with a different robot (possibly a different kinematic model as well), in a continuous fashion. Allowed collisions specified by the allowed collision matrix are taken into account.
| req | A CollisionRequest object that encapsulates the collision request |
| res | A CollisionResult object that encapsulates the collision result |
| state1 | The kinematic state at the start of the segment for which checks are being made (this robot) |
| state2 | The kinematic state at the end of the segment for which checks are being made (this robot) |
| other_robot | The collision representation for the other robot |
| other_state1 | The kinematic state at the start of the segment for which checks are being made (other robot) |
| other_state2 | The kinematic state at the end of the segment for which checks are being made (other robot) |
| acm | The allowed collision matrix. |
Implements collision_detection::CollisionRobot.
Definition at line 205 of file collision_robot_fcl.cpp.
| void collision_detection::CollisionRobotFCL::checkOtherCollisionHelper | ( | const CollisionRequest & | req, |
| CollisionResult & | res, | ||
| const robot_state::RobotState & | state, | ||
| const CollisionRobot & | other_robot, | ||
| const robot_state::RobotState & | other_state, | ||
| const AllowedCollisionMatrix * | acm | ||
| ) | const [protected] |
Definition at line 216 of file collision_robot_fcl.cpp.
| void collision_detection::CollisionRobotFCL::checkSelfCollision | ( | const CollisionRequest & | req, |
| CollisionResult & | res, | ||
| const robot_state::RobotState & | state | ||
| ) | const [virtual] |
Check for self collision. Any collision between any pair of links is checked for, NO collisions are ignored.
| req | A CollisionRequest object that encapsulates the collision request |
| res | A CollisionResult object that encapsulates the collision result |
| state | The kinematic state for which checks are being made |
Implements collision_detection::CollisionRobot.
Definition at line 137 of file collision_robot_fcl.cpp.
| void collision_detection::CollisionRobotFCL::checkSelfCollision | ( | const CollisionRequest & | req, |
| CollisionResult & | res, | ||
| const robot_state::RobotState & | state, | ||
| const AllowedCollisionMatrix & | acm | ||
| ) | const [virtual] |
Check for self collision. Allowed collisions specified by the allowed collision matrix are taken into account.
| req | A CollisionRequest object that encapsulates the collision request |
| res | A CollisionResult object that encapsulates the collision result |
| state | The kinematic state for which checks are being made |
| acm | The allowed collision matrix. |
Implements collision_detection::CollisionRobot.
Definition at line 143 of file collision_robot_fcl.cpp.
| void collision_detection::CollisionRobotFCL::checkSelfCollision | ( | const CollisionRequest & | req, |
| CollisionResult & | res, | ||
| const robot_state::RobotState & | state1, | ||
| const robot_state::RobotState & | state2 | ||
| ) | const [virtual] |
Check for self collision in a continuous manner. Any collision between any pair of links is checked for, NO collisions are ignored.
| req | A CollisionRequest object that encapsulates the collision request |
| res | A CollisionResult object that encapsulates the collision result |
| state1 | The kinematic state at the start of the segment for which checks are being made |
| state2 | The kinematic state at the end of the segment for which checks are being made |
Implements collision_detection::CollisionRobot.
Definition at line 150 of file collision_robot_fcl.cpp.
| void collision_detection::CollisionRobotFCL::checkSelfCollision | ( | const CollisionRequest & | req, |
| CollisionResult & | res, | ||
| const robot_state::RobotState & | state1, | ||
| const robot_state::RobotState & | state2, | ||
| const AllowedCollisionMatrix & | acm | ||
| ) | const [virtual] |
Check for self collision. Allowed collisions specified by the allowed collision matrix are taken into account.
| req | A CollisionRequest object that encapsulates the collision request |
| res | A CollisionResult object that encapsulates the collision result |
| state1 | The kinematic state at the start of the segment for which checks are being made |
| state2 | The kinematic state at the end of the segment for which checks are being made |
| acm | The allowed collision matrix. |
Implements collision_detection::CollisionRobot.
Definition at line 157 of file collision_robot_fcl.cpp.
| void collision_detection::CollisionRobotFCL::checkSelfCollisionHelper | ( | const CollisionRequest & | req, |
| CollisionResult & | res, | ||
| const robot_state::RobotState & | state, | ||
| const AllowedCollisionMatrix * | acm | ||
| ) | const [protected] |
Definition at line 165 of file collision_robot_fcl.cpp.
| void collision_detection::CollisionRobotFCL::constructFCLObject | ( | const robot_state::RobotState & | state, |
| FCLObject & | fcl_obj | ||
| ) | const [protected] |
Definition at line 87 of file collision_robot_fcl.cpp.
| double collision_detection::CollisionRobotFCL::distanceOther | ( | const robot_state::RobotState & | state, |
| const CollisionRobot & | other_robot, | ||
| const robot_state::RobotState & | other_state | ||
| ) | const [virtual] |
The distance to another robot instance.
| state | The state of this robot to consider |
| other_robot | The other robot instance to measure distance to |
| other_state | The state of the other robot |
Implements collision_detection::CollisionRobot.
Definition at line 290 of file collision_robot_fcl.cpp.
| double collision_detection::CollisionRobotFCL::distanceOther | ( | const robot_state::RobotState & | state, |
| const CollisionRobot & | other_robot, | ||
| const robot_state::RobotState & | other_state, | ||
| const AllowedCollisionMatrix & | acm | ||
| ) | const [virtual] |
The distance to another robot instance, ignoring distances between links that are allowed to always collide.
| state | The state of this robot to consider |
| other_robot | The other robot instance to measure distance to |
| other_state | The state of the other robot |
| acm | The collision matrix specifying which links are allowed to always collide |
Implements collision_detection::CollisionRobot.
Definition at line 297 of file collision_robot_fcl.cpp.
| double collision_detection::CollisionRobotFCL::distanceOtherHelper | ( | const robot_state::RobotState & | state, |
| const CollisionRobot & | other_robot, | ||
| const robot_state::RobotState & | other_state, | ||
| const AllowedCollisionMatrix * | acm | ||
| ) | const [protected] |
Definition at line 305 of file collision_robot_fcl.cpp.
| double collision_detection::CollisionRobotFCL::distanceSelf | ( | const robot_state::RobotState & | state | ) | const [virtual] |
The distance to self-collision given the robot is at state state.
Implements collision_detection::CollisionRobot.
Definition at line 263 of file collision_robot_fcl.cpp.
| double collision_detection::CollisionRobotFCL::distanceSelf | ( | const robot_state::RobotState & | state, |
| const AllowedCollisionMatrix & | acm | ||
| ) | const [virtual] |
The distance to self-collision given the robot is at state state, ignoring the distances between links that are allowed to always collide (as specified by acm)
Implements collision_detection::CollisionRobot.
Definition at line 268 of file collision_robot_fcl.cpp.
| double collision_detection::CollisionRobotFCL::distanceSelfHelper | ( | const robot_state::RobotState & | state, |
| const AllowedCollisionMatrix * | acm | ||
| ) | const [protected] |
Definition at line 274 of file collision_robot_fcl.cpp.
| void collision_detection::CollisionRobotFCL::getAttachedBodyObjects | ( | const robot_state::AttachedBody * | ab, |
| std::vector< FCLGeometryConstPtr > & | geoms | ||
| ) | const [protected] |
Definition at line 75 of file collision_robot_fcl.cpp.
| void collision_detection::CollisionRobotFCL::updatedPaddingOrScaling | ( | const std::vector< std::string > & | links | ) | [protected, virtual] |
When the scale or padding is changed for a set of links by any of the functions in this class, updatedPaddingOrScaling() function is called. This function has an empty default implementation. The intention is to override this function in a derived class to allow for updating additional structures that may need such updating when link scale or padding changes.
| links | the names of the links whose padding or scaling were updated |
Reimplemented from collision_detection::CollisionRobot.
Definition at line 238 of file collision_robot_fcl.cpp.
friend class CollisionWorldFCL [friend] |
Definition at line 46 of file collision_robot_fcl.h.
std::vector<FCLCollisionObjectConstPtr> collision_detection::CollisionRobotFCL::fcl_objs_ [protected] |
Definition at line 102 of file collision_robot_fcl.h.
std::vector<FCLGeometryConstPtr> collision_detection::CollisionRobotFCL::geoms_ [protected] |
Definition at line 101 of file collision_robot_fcl.h.