Public Types | Public Member Functions | Private Attributes
collision_detection::CollisionWorld Class Reference

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>

Inheritance diagram for collision_detection::CollisionWorld:
Inheritance graph
[legend]

List of all members.

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_

Detailed Description

Perform collision checking with the environment. The collision world maintains a representation of the environment that the robot is operating in.

Definition at line 55 of file collision_world.h.


Member Typedef Documentation

Definition at line 213 of file collision_world.h.

Definition at line 212 of file collision_world.h.


Constructor & Destructor Documentation

Definition at line 40 of file collision_world.cpp.

collision_detection::CollisionWorld::CollisionWorld ( const WorldPtr &  world) [explicit]

Definition at line 44 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 48 of file collision_world.cpp.

Definition at line 66 of file collision_world.h.


Member Function Documentation

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.

Parameters:
reqA CollisionRequest object that encapsulates the collision request
resA CollisionResult object that encapsulates the collision result
stateThe kinematic state for which checks are being made

Definition at line 53 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.

Parameters:
reqA CollisionRequest object that encapsulates the collision request
resA CollisionResult object that encapsulates the collision result
stateThe kinematic state for which checks are being made
acmThe allowed collision matrix.

Definition at line 62 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.

Parameters:
reqA CollisionRequest object that encapsulates the collision request
resA CollisionResult object that encapsulates the collision result
state1The kinematic state at the start of the segment for which checks are being made
state2The 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.

Parameters:
reqA CollisionRequest object that encapsulates the collision request
resA CollisionResult object that encapsulates the collision result
state1The kinematic state at the start of the segment for which checks are being made
state2The kinematic state at the end of the segment for which checks are being made
acmThe allowed collision matrix.

Definition at line 82 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.

Parameters:
reqA CollisionRequest object that encapsulates the collision request
resA CollisionResult object that encapsulates the collision result robot The collision model for the robot
stateThe 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.

Parameters:
reqA CollisionRequest object that encapsulates the collision request
resA CollisionResult object that encapsulates the collision result robot The collision model for the robot
stateThe kinematic state for which checks are being made
acmThe 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.

Parameters:
reqA CollisionRequest object that encapsulates the collision request
resA CollisionResult object that encapsulates the collision result robot The collision model for the robot
state1The kinematic state at the start of the segment for which checks are being made
state2The 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.

Parameters:
reqA CollisionRequest object that encapsulates the collision request
resA CollisionResult object that encapsulates the collision result robot The collision model for the robot
state1The kinematic state at the start of the segment for which checks are being made
state2The kinematic state at the end of the segment for which checks are being made
acmThe 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.

Parameters:
reqA CollisionRequest object that encapsulates the collision request
resA CollisionResult object that encapsulates the collision result
other_worldThe other collision world

Implemented in collision_detection::CollisionWorldAllValid, and collision_detection::CollisionWorldFCL.

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.

Parameters:
reqA CollisionRequest object that encapsulates the collision request
resA CollisionResult object that encapsulates the collision result
other_worldThe other collision world
acmThe allowed collision matrix.

Implemented in collision_detection::CollisionWorldAllValid, and collision_detection::CollisionWorldFCL.

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.

Parameters:
robotThe robot to check distance for
stateThe state for the robot to check distances from

Implemented in collision_detection::CollisionWorldAllValid, and collision_detection::CollisionWorldFCL.

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.

Parameters:
robotThe robot to check distance for
stateThe state for the robot to check distances from
acmUsing an allowed collision matrix has the effect of ignoring distances from links that are always allowed to be in collision.

Implemented in collision_detection::CollisionWorldAllValid, and collision_detection::CollisionWorldFCL.

virtual double collision_detection::CollisionWorld::distanceWorld ( const CollisionWorld world) const [pure virtual]

The shortest distance to another world instance (world)

Implemented in collision_detection::CollisionWorldAllValid, and collision_detection::CollisionWorldFCL.

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::CollisionWorldAllValid, and collision_detection::CollisionWorldFCL.

const WorldPtr& collision_detection::CollisionWorld::getWorld ( ) [inline]

access the world geometry

Definition at line 201 of file collision_world.h.

const WorldConstPtr& collision_detection::CollisionWorld::getWorld ( ) const [inline]

access the world geometry

Definition at line 207 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 93 of file collision_world.cpp.


Member Data Documentation

Definition at line 216 of file collision_world.h.

Definition at line 217 of file collision_world.h.


The documentation for this class was generated from the following files:


moveit_core
Author(s): Ioan Sucan , Sachin Chitta , Acorn Pooley
autogenerated on Wed Jun 19 2019 19:23:50