Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

OSCAR::CollisionDetection Class Reference
[ObstacleAvoidance]

Collision Detection Class. More...

#include <CollisionDetection.h>

Inheritance diagram for OSCAR::CollisionDetection:

Inheritance graph
[legend]
List of all members.

Public Types

enum  ResponseType { WITNESSED, DEPTH }

Public Methods

 CollisionDetection (WorkCell *workcell, ResponseType type=WITNESSED, OSCARError &err=DUMMY_ERROR(noError), const String &name=String())
virtual ~CollisionDetection ()
std::vector< CollisionPoint * > & GetCollisionPoints ()
void OutputCollisionPoints ()
bool CheckManipulatorSelfCollisions (String manip)
bool CheckWorkcellCollisions ()
bool RemoveWorkcellCollisionPair (Polytope *obj1, Polytope *obj2)
bool AddWorkcellCollisionPair (Polytope *obj1, Polytope *obj2)
bool RemoveManipulatorCollisionPair (Polytope *obj1, Polytope *obj2, Node *manip)
bool AddManipulatorCollisionPair (Polytope *obj1, Polytope *obj2, Node *manip)
bool GetDistance (const Polytope &obj1, const Polytope &obj2, Vector3 &obj1Wit, Vector3 &obj2Wit, Vector3 &unitVec, double &dist)
ResponseType GetResponseType ()

Private Methods

 CollisionDetection (const CollisionDetection &cd)
CollisionDetection & operator= (const CollisionDetection &cd)
void AddEnvironmentPolytopes (Node *node)
void AddManipulatorPolytopes (Node *node)
bool RemoveManipulatorAttachmentCollisions (Node *currentnode, Node *previousnode, DT_RespTableHandle resptable)
void RemoveNodePolytopes (Node *node)

Private Attributes

WorkCellcell
std::vector< CollisionPoint * > collisionpoints
DistanceCalculator distancecalculator
ResponseType resptype
DT_SceneHandle scene
DT_RespTableHandle globalRespTable
std::vector< std::pair< Node *,
DT_RespTableHandle > > 
manipRespTables

Detailed Description

Author:
Jonathon Knoll


Member Enumeration Documentation

enum OSCAR::CollisionDetection::ResponseType
 

Enumeration values:
WITNESSED 
DEPTH 


Constructor & Destructor Documentation

OSCAR::CollisionDetection::CollisionDetection WorkCell   workcell,
ResponseType    type = WITNESSED,
OSCARError   err = DUMMY_ERROR(noError),
const String   name = String()
 

Constructor for CollisionDetection.

Constructs an WorkCell object, a container object that holds all of the geometric information for the system.

Parameters:
filename String of the name of the file with obstacle volume and robot volume information
fkBegin beginning of an array of pointers to FKAccelleration objects
fkEnd one past the end of an array of pointers to FKAccelleration objects
err If errors were encountered during object construction, this OSCARError object will contain a description of the error, otherwise it will be 'noError'
name If you wish to name this object, provide an argument.
See also:
~WorkCell()

virtual OSCAR::CollisionDetection::~CollisionDetection   [virtual]
 

Destructor for CollisionDetection.

See also:
CollisionDetection()

OSCAR::CollisionDetection::CollisionDetection const CollisionDetection &    cd [private]
 

Copy Constructor This function is declared and not defined to disable copy construction.

Returns:
none


Member Function Documentation

void OSCAR::CollisionDetection::AddEnvironmentPolytopes Node   node [private]
 

bool OSCAR::CollisionDetection::AddManipulatorCollisionPair Polytope   obj1,
Polytope   obj2,
Node   manip
 

void OSCAR::CollisionDetection::AddManipulatorPolytopes Node   node [private]
 

bool OSCAR::CollisionDetection::AddWorkcellCollisionPair Polytope   obj1,
Polytope   obj2
 

Method to add the polytope (primitive) pairs between which collisions should be detected. obj1 and obj2 which correspond to the polytopes between which collision detection should be detected.

bool OSCAR::CollisionDetection::CheckManipulatorSelfCollisions String    manip
 

bool OSCAR::CollisionDetection::CheckWorkcellCollisions  
 

Method to check for collisions within the workspace.

Returns:
'True' if collision occures and 'False' if there is no collision.

std::vector<CollisionPoint*>& OSCAR::CollisionDetection::GetCollisionPoints   [inline]
 

bool OSCAR::CollisionDetection::GetDistance const Polytope   obj1,
const Polytope   obj2,
Vector3   obj1Wit,
Vector3   obj2Wit,
Vector3   unitVec,
double &    dist
 

ResponseType OSCAR::CollisionDetection::GetResponseType   [inline]
 

CollisionDetection& OSCAR::CollisionDetection::operator= const CollisionDetection &    cd [private]
 

Deep Copy operator This function is declared and not defined to disable deep copy (i.e. x = y assignment) of one CollisionDetection object to another.

void OSCAR::CollisionDetection::OutputCollisionPoints  
 

Method to print the names of all the primitives (polytopes) in pairs, between which collisions have been detected.

bool OSCAR::CollisionDetection::RemoveManipulatorAttachmentCollisions Node   currentnode,
Node   previousnode,
DT_RespTableHandle    resptable
[private]
 

bool OSCAR::CollisionDetection::RemoveManipulatorCollisionPair Polytope   obj1,
Polytope   obj2,
Node   manip
 

void OSCAR::CollisionDetection::RemoveNodePolytopes Node   node [private]
 

bool OSCAR::CollisionDetection::RemoveWorkcellCollisionPair Polytope   obj1,
Polytope   obj2
 

Method to remove the polytope (primitive) pairs between which collisions should not be detected. obj1 and obj2 which correspond to the polytopes between which collision detection should be removed.


Member Data Documentation

WorkCell* OSCAR::CollisionDetection::cell [private]
 

std::vector< CollisionPoint* > OSCAR::CollisionDetection::collisionpoints [private]
 

DistanceCalculator OSCAR::CollisionDetection::distancecalculator [private]
 

DT_RespTableHandle OSCAR::CollisionDetection::globalRespTable [private]
 

std::vector< std::pair<Node*,DT_RespTableHandle> > OSCAR::CollisionDetection::manipRespTables [private]
 

ResponseType OSCAR::CollisionDetection::resptype [private]
 

DT_SceneHandle OSCAR::CollisionDetection::scene [private]
 


The documentation for this class was generated from the following file:
RRG Homepage OSCAR Overview OSCAR Tutorials Simulations