Perform collision checking with the environment. The collision world maintains a representation of the environment that the robot is operating in. More...
#include <collision_world.h>

| Public Types | |
| typedef World::ObjectConstPtr | ObjectConstPtr | 
| typedef World::ObjectPtr | ObjectPtr | 
| Public Member Functions | |
| virtual void | checkCollision (const CollisionRequest &req, CollisionResult &res, const CollisionRobot &robot, const robot_state::RobotState &state) const | 
| Check whether the robot model is in collision with itself or the world at a particular state. Any collision between any pair of links is checked for, NO collisions are ignored. | |
| virtual void | checkCollision (const CollisionRequest &req, CollisionResult &res, const CollisionRobot &robot, const robot_state::RobotState &state, const AllowedCollisionMatrix &acm) const | 
| Check whether the robot model is in collision with itself or the world at a particular state. Allowed collisions specified by the allowed collision matrix are taken into account. | |
| virtual void | checkCollision (const CollisionRequest &req, CollisionResult &res, const CollisionRobot &robot, const robot_state::RobotState &state1, const robot_state::RobotState &state2) const | 
| Check whether the robot model is in collision with itself or the world in a continuous manner (between two robot states) Any collision between any pair of links is checked for, NO collisions are ignored. | |
| virtual void | checkCollision (const CollisionRequest &req, CollisionResult &res, const CollisionRobot &robot, const robot_state::RobotState &state1, const robot_state::RobotState &state2, const AllowedCollisionMatrix &acm) const | 
| Check whether the robot model is in collision with itself or the world in a continuous manner (between two robot states). Allowed collisions specified by the allowed collision matrix are taken into account. | |
| virtual void | checkRobotCollision (const CollisionRequest &req, CollisionResult &res, const CollisionRobot &robot, const robot_state::RobotState &state) const =0 | 
| Check whether the robot model is in collision with the world. Any collisions between a robot link and the world are considered. Self collisions are not checked. | |
| virtual void | checkRobotCollision (const CollisionRequest &req, CollisionResult &res, const CollisionRobot &robot, const robot_state::RobotState &state, const AllowedCollisionMatrix &acm) const =0 | 
| Check whether the robot model is in collision with the world. Allowed collisions are ignored. Self collisions are not checked. | |
| virtual void | checkRobotCollision (const CollisionRequest &req, CollisionResult &res, const CollisionRobot &robot, const robot_state::RobotState &state1, const robot_state::RobotState &state2) const =0 | 
| Check whether the robot model is in collision with the world in a continuous manner (between two robot states). Any collisions between a robot link and the world are considered. Self collisions are not checked. | |
| virtual void | checkRobotCollision (const CollisionRequest &req, CollisionResult &res, const CollisionRobot &robot, const robot_state::RobotState &state1, const robot_state::RobotState &state2, const AllowedCollisionMatrix &acm) const =0 | 
| Check whether the robot model is in collision with the world in a continuous manner (between two robot states). Allowed collisions are ignored. Self collisions are not checked. | |
| virtual void | checkWorldCollision (const CollisionRequest &req, CollisionResult &res, const CollisionWorld &other_world) const =0 | 
| Check whether a given set of objects is in collision with objects from another world. Any contacts are considered. | |
| virtual void | checkWorldCollision (const CollisionRequest &req, CollisionResult &res, const CollisionWorld &other_world, const AllowedCollisionMatrix &acm) const =0 | 
| Check whether a given set of objects is in collision with objects from another world. Allowed collisions are ignored. Any contacts are considered. | |
| CollisionWorld () | |
| CollisionWorld (const WorldPtr &world) | |
| CollisionWorld (const CollisionWorld &other, const WorldPtr &world) | |
| A copy constructor. other should not be changed while the copy constructor is running. world must be the same world as used by other or a (not-yet-modified) copy of the world used by other. | |
| virtual double | distanceRobot (const CollisionRobot &robot, const robot_state::RobotState &state) const =0 | 
| Compute the shortest distance between a robot and the world. | |
| virtual double | distanceRobot (const CollisionRobot &robot, const robot_state::RobotState &state, const AllowedCollisionMatrix &acm) const =0 | 
| Compute the shortest distance between a robot and the world. | |
| virtual double | distanceWorld (const CollisionWorld &world) const =0 | 
| The shortest distance to another world instance (world) | |
| virtual double | distanceWorld (const CollisionWorld &world, const AllowedCollisionMatrix &acm) const =0 | 
| The shortest distance to another world instance (world), ignoring the distances between world elements that are allowed to collide (as specified by acm) | |
| const WorldPtr & | getWorld () | 
| const WorldConstPtr & | getWorld () const | 
| virtual void | setWorld (const WorldPtr &world) | 
| virtual | ~CollisionWorld () | 
| Private Attributes | |
| WorldPtr | world_ | 
| WorldConstPtr | world_const_ | 
Perform collision checking with the environment. The collision world maintains a representation of the environment that the robot is operating in.
Definition at line 53 of file collision_world.h.
Definition at line 235 of file collision_world.h.
Definition at line 234 of file collision_world.h.
Definition at line 40 of file collision_world.cpp.
| collision_detection::CollisionWorld::CollisionWorld | ( | const WorldPtr & | world | ) |  [explicit] | 
Definition at line 46 of file collision_world.cpp.
| collision_detection::CollisionWorld::CollisionWorld | ( | const CollisionWorld & | other, | 
| const WorldPtr & | world | ||
| ) | 
A copy constructor. other should not be changed while the copy constructor is running. world must be the same world as used by other or a (not-yet-modified) copy of the world used by other.
Definition at line 52 of file collision_world.cpp.
| virtual collision_detection::CollisionWorld::~CollisionWorld | ( | ) |  [inline, virtual] | 
Definition at line 65 of file collision_world.h.
| void collision_detection::CollisionWorld::checkCollision | ( | const CollisionRequest & | req, | 
| CollisionResult & | res, | ||
| const CollisionRobot & | robot, | ||
| const robot_state::RobotState & | state | ||
| ) | const  [virtual] | 
Check whether the robot model is in collision with itself or the world at a particular state. 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 | 
Definition at line 58 of file collision_world.cpp.
| void collision_detection::CollisionWorld::checkCollision | ( | const CollisionRequest & | req, | 
| CollisionResult & | res, | ||
| const CollisionRobot & | robot, | ||
| const robot_state::RobotState & | state, | ||
| const AllowedCollisionMatrix & | acm | ||
| ) | const  [virtual] | 
Check whether the robot model is in collision with itself or the world at a particular state. 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. | 
Definition at line 65 of file collision_world.cpp.
| void collision_detection::CollisionWorld::checkCollision | ( | const CollisionRequest & | req, | 
| CollisionResult & | res, | ||
| const CollisionRobot & | robot, | ||
| const robot_state::RobotState & | state1, | ||
| const robot_state::RobotState & | state2 | ||
| ) | const  [virtual] | 
Check whether the robot model is in collision with itself or the world in a continuous manner (between two robot states) 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 | 
Definition at line 72 of file collision_world.cpp.
| void collision_detection::CollisionWorld::checkCollision | ( | const CollisionRequest & | req, | 
| CollisionResult & | res, | ||
| const CollisionRobot & | robot, | ||
| const robot_state::RobotState & | state1, | ||
| const robot_state::RobotState & | state2, | ||
| const AllowedCollisionMatrix & | acm | ||
| ) | const  [virtual] | 
Check whether the robot model is in collision with itself or the world in a continuous manner (between two robot states). 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. | 
Definition at line 80 of file collision_world.cpp.
| virtual void collision_detection::CollisionWorld::checkRobotCollision | ( | const CollisionRequest & | req, | 
| CollisionResult & | res, | ||
| const CollisionRobot & | robot, | ||
| const robot_state::RobotState & | state | ||
| ) | const  [pure virtual] | 
Check whether the robot model is in collision with the world. Any collisions between a robot link and the world are considered. Self collisions are not checked.
| req | A CollisionRequest object that encapsulates the collision request | 
| res | A CollisionResult object that encapsulates the collision result robot The collision model for the robot | 
| state | The kinematic state for which checks are being made | 
Implemented in collision_detection::CollisionWorldFCL, and collision_detection::CollisionWorldAllValid.
| virtual void collision_detection::CollisionWorld::checkRobotCollision | ( | const CollisionRequest & | req, | 
| CollisionResult & | res, | ||
| const CollisionRobot & | robot, | ||
| const robot_state::RobotState & | state, | ||
| const AllowedCollisionMatrix & | acm | ||
| ) | const  [pure virtual] | 
Check whether the robot model is in collision with the world. Allowed collisions are ignored. Self collisions are not checked.
| req | A CollisionRequest object that encapsulates the collision request | 
| res | A CollisionResult object that encapsulates the collision result robot The collision model for the robot | 
| state | The kinematic state for which checks are being made | 
| acm | The allowed collision matrix. | 
Implemented in collision_detection::CollisionWorldFCL, and collision_detection::CollisionWorldAllValid.
| virtual void collision_detection::CollisionWorld::checkRobotCollision | ( | const CollisionRequest & | req, | 
| CollisionResult & | res, | ||
| const CollisionRobot & | robot, | ||
| const robot_state::RobotState & | state1, | ||
| const robot_state::RobotState & | state2 | ||
| ) | const  [pure virtual] | 
Check whether the robot model is in collision with the world in a continuous manner (between two robot states). Any collisions between a robot link and the world are considered. Self collisions are not checked.
| req | A CollisionRequest object that encapsulates the collision request | 
| res | A CollisionResult object that encapsulates the collision result robot The collision model for the robot | 
| 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 | 
Implemented in collision_detection::CollisionWorldFCL, and collision_detection::CollisionWorldAllValid.
| virtual void collision_detection::CollisionWorld::checkRobotCollision | ( | const CollisionRequest & | req, | 
| CollisionResult & | res, | ||
| const CollisionRobot & | robot, | ||
| const robot_state::RobotState & | state1, | ||
| const robot_state::RobotState & | state2, | ||
| const AllowedCollisionMatrix & | acm | ||
| ) | const  [pure virtual] | 
Check whether the robot model is in collision with the world in a continuous manner (between two robot states). Allowed collisions are ignored. Self collisions are not checked.
| req | A CollisionRequest object that encapsulates the collision request | 
| res | A CollisionResult object that encapsulates the collision result robot The collision model for the robot | 
| 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. | 
Implemented in collision_detection::CollisionWorldFCL, and collision_detection::CollisionWorldAllValid.
| virtual void collision_detection::CollisionWorld::checkWorldCollision | ( | const CollisionRequest & | req, | 
| CollisionResult & | res, | ||
| const CollisionWorld & | other_world | ||
| ) | const  [pure virtual] | 
Check whether a given set of objects is in collision with objects from another world. Any contacts are considered.
| req | A CollisionRequest object that encapsulates the collision request | 
| res | A CollisionResult object that encapsulates the collision result | 
| other_world | The other collision world | 
Implemented in collision_detection::CollisionWorldFCL, and collision_detection::CollisionWorldAllValid.
| virtual void collision_detection::CollisionWorld::checkWorldCollision | ( | const CollisionRequest & | req, | 
| CollisionResult & | res, | ||
| const CollisionWorld & | other_world, | ||
| const AllowedCollisionMatrix & | acm | ||
| ) | const  [pure virtual] | 
Check whether a given set of objects is in collision with objects from another world. Allowed collisions are ignored. Any contacts are considered.
| req | A CollisionRequest object that encapsulates the collision request | 
| res | A CollisionResult object that encapsulates the collision result | 
| other_world | The other collision world | 
| acm | The allowed collision matrix. | 
Implemented in collision_detection::CollisionWorldFCL, and collision_detection::CollisionWorldAllValid.
| virtual double collision_detection::CollisionWorld::distanceRobot | ( | const CollisionRobot & | robot, | 
| const robot_state::RobotState & | state | ||
| ) | const  [pure virtual] | 
Compute the shortest distance between a robot and the world.
| robot | The robot to check distance for | 
| state | The state for the robot to check distances from | 
Implemented in collision_detection::CollisionWorldFCL, and collision_detection::CollisionWorldAllValid.
| virtual double collision_detection::CollisionWorld::distanceRobot | ( | const CollisionRobot & | robot, | 
| const robot_state::RobotState & | state, | ||
| const AllowedCollisionMatrix & | acm | ||
| ) | const  [pure virtual] | 
Compute the shortest distance between a robot and the world.
| robot | The robot to check distance for | 
| state | The state for the robot to check distances from | 
| acm | Using an allowed collision matrix has the effect of ignoring distances from links that are always allowed to be in collision. | 
Implemented in collision_detection::CollisionWorldFCL, and collision_detection::CollisionWorldAllValid.
| virtual double collision_detection::CollisionWorld::distanceWorld | ( | const CollisionWorld & | world | ) | const  [pure virtual] | 
The shortest distance to another world instance (world)
Implemented in collision_detection::CollisionWorldFCL, and collision_detection::CollisionWorldAllValid.
| virtual double collision_detection::CollisionWorld::distanceWorld | ( | const CollisionWorld & | world, | 
| const AllowedCollisionMatrix & | acm | ||
| ) | const  [pure virtual] | 
The shortest distance to another world instance (world), ignoring the distances between world elements that are allowed to collide (as specified by acm)
Implemented in collision_detection::CollisionWorldFCL, and collision_detection::CollisionWorldAllValid.
| const WorldPtr& collision_detection::CollisionWorld::getWorld | ( | ) |  [inline] | 
access the world geometry
Definition at line 223 of file collision_world.h.
| const WorldConstPtr& collision_detection::CollisionWorld::getWorld | ( | ) | const  [inline] | 
access the world geometry
Definition at line 229 of file collision_world.h.
| void collision_detection::CollisionWorld::setWorld | ( | const WorldPtr & | world | ) |  [virtual] | 
set the world to use. This can be expensive unless the new and old world are empty. Passing NULL will result in a new empty world being created.
Reimplemented in collision_detection::CollisionWorldFCL.
Definition at line 88 of file collision_world.cpp.
Definition at line 238 of file collision_world.h.
Definition at line 239 of file collision_world.h.