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

OSCAR::WorkCell Class Reference
[ObstacleAvoidance]

Contains a geometric description of the work cell (from an ObAvData object) and computes witness points (minimum distances between robots and other models) and derivatives of witness points (stored in an ObAvInfo object). More...

#include <WorkCell.hpp>

Inheritance diagram for OSCAR::WorkCell:

Inheritance graph
[legend]
List of all members.

Public Types

enum  INFO_TYPE { DISTANCE, FIRST_ORDER, SECOND_ORDER, SECOND_ORDER_FD }

Public Methods

 WorkCell (const String &filename, OSCARError &err, FKAcceleration **fkBegin=NULL, FKAcceleration **fkEnd=NULL, const String &name=String())
 WorkCell (OSCARError &err=DUMMY_ERROR(noError), const String &name=String())
virtual ~WorkCell ()
bool UpdateAllArms ()
bool UpdateAllArmsXML ()
bool UpdateArm (unsigned int armIndex, const Vector &jointPos)
bool UpdateArmXML (unsigned int armIndex, const Vector &jointPos)
bool UpdateArm (unsigned int armIndex)
bool UpdateArmXML (unsigned int armIndex)
bool UpdateArm (Node *arm, const Vector &jointPos)
bool UpdateArm (Node *arm, const Xform &base, const Xform *globalTransformations)
bool UpdateSphere (unsigned int index, Vector3 &pt, double rd)
bool UpdateCylinder (unsigned int index, Vector3 &pt1, Vector3 &pt2, double rd)
bool UpdatePlane (unsigned int index, Vector3 &pt0, Vector3 &pt1, Vector3 &pt2, double th=0.0, bool bounded=false)
bool GetSizeParameters (unsigned int armIndex, unsigned int &armLngth, unsigned int &obNum, unsigned int &DOF) const
bool GetObAvInfo (unsigned int armIndex, const Vector &jointPos, ObAvInfo &obInfo, INFO_TYPE iType=FIRST_ORDER)
bool OutputModelInfo (std::ostream &fout=std::cout)
const Vector3GetLinkInfo (unsigned int armIndex, int linkIndex, int pointIndex) const
const Vector3GetSphrInfo (unsigned int index) const
unsigned int NumPrimitives () const
const FKAccelerationFKAccel (unsigned int armIndex) const
FKAccelerationFKAccel (unsigned int armIndex)
bool CalcDist (const Node *arm, DistanceResults &results)
bool CalcGFunctions (const Node *arm, DistanceResults &results)
const FKAccelerationGetFK (const Node *arm) const
FKAccelerationGetFK (const Node *arm)
bool CalcDist (const String &arm, DistanceResults &results)
bool CalcDist (unsigned int armIndex, DistanceResults &results)
bool CalcDist (unsigned int armIndex, ObAvInfo &obInfo)
bool CalcDist (ObAvInfo &obInfo)
bool CalcGHfunctions (ObAvInfo &obInfo) const
bool LoadFile (const String &file, FKAcceleration **fkBegin=NULL, FKAcceleration **fkEnd=NULL)
bool LoadXMLFile (const String &file, std::vector< FKAcceleration * > &fkAccels)
bool LoadWorkcellData (const WorkcellData &workcellData)
bool LoadWorkcellData (const WorkcellData &workcellData, std::vector< FKAcceleration * > &fkAccels)
NodeListGetManipulators ()
NodeListGetEnvironment ()
const ObAvDataGetData () const
bool Add (Node *node, const Primitive *toAdd)
bool Add (Node *newParent, Node *toAdd)
bool Remove (Node *parent, Node *toRemove)
bool Remove (Node *containedIn, Primitive *toRemove)
bool Move (Node *fromNode, Node *toNode, Node *toMove)
bool Move (Node *fromNode, Node *toNode, Primitive *toMove)
ModelingObjectLocateModelingObject (const String &name)
double RetrieveMinimumDistance (Node *manipulator, const DistanceResults &results, Primitive *&manipulatorPrim, Primitive *&enviPrim)
unsigned int GetNumberManipulatorPrimitives (Node *arm)
unsigned int GetNumberEnvironmentPrimitives (Node *arm)
bool CalculateSelfDistances (Node *arm, DistanceResults &results)

Private Methods

bool LoadMap ()
bool LoadMap (Node &toLoad)
bool minDist (double &mindist, Node *from, Node *to, const DistanceResults &results, Primitive *&smallestFromOn, Primitive *&smallestToOn)
bool iterateEnvironmentMinDist (double &mindist, Node *manip, Node *envi, const DistanceResults &results, Primitive *&smallestManipOn, Primitive *&smallestEnviOn)
unsigned int countEnvironmentPrimitives (Node *envi)
bool updateArm (NodeList::iterator &arm, unsigned int accelIndex)
bool calcH_FD (unsigned int armIndex, const Vector &jointPos, ObAvInfo &obInfo)
bool calcACylH (unsigned int armIndex, Vector3 &p1, Vector3 &p2, Vector3 &p3, Vector3 &p4, unsigned int joint_No, double t1, double t2, double d, Matrix &dHat, const Matrix &Gp, Matrix &HdT, Matrix &GdSq, Matrix &Hd) const
bool calcCylH (unsigned int armIndex, const Vector3 &p1, const Vector3 &p2, const Vector3 &p3, const Vector3 &p4, int joint_No, double t1, double t2, double d, Matrix &dHat, const Matrix &Gp, Matrix &HdT, Matrix &GdSq, Matrix &Hd) const
bool calcSpH (unsigned int armIndex, const Vector3 &p1, const Vector3 &p2, Vector3 &p3, int joint_No, double t, double d, Matrix &dHat, const Matrix &Gp, Matrix &HdT, Matrix &GdSq, Matrix &Hd) const
bool calcPlH (unsigned int armIndex, Vector3 &p1, Vector3 &p2, Vector3 &p3, Vector3 &p4, Vector3 &p5, int joint_No, double t1, double &t2, double d, Matrix &dHat, const Matrix &Gp, Matrix &HdT, Matrix &GdSq, Matrix &Hd) const
 WorkCell (const WorkCell &cont)
WorkCell & operator= (const WorkCell &cont)

Private Attributes

ModelingObjectMap objectMap
DistanceCalculator calculator
NodeList manipulators
NodeList environment
Xform base
String compare
INFO_TYPE iType
ObAvData obDat
vector< FKAcceleration * > fkAccel
bool ownFKAccelerations

Detailed Description

Author:
Troy Harden, Ethan Swint
See also:
ObAvData

ObAvInfo

Primitive

Todo:
-Remove FKAcceleration objects and just use arrays of position transformation, G, & H matrices. This will require the user to set the joint positions of the FK objects, but will allow for more flexible modeling.


Member Enumeration Documentation

enum OSCAR::WorkCell::INFO_TYPE
 

Enumeration values:
DISTANCE 
FIRST_ORDER 
SECOND_ORDER 
SECOND_ORDER_FD 


Constructor & Destructor Documentation

OSCAR::WorkCell::WorkCell const String   filename,
OSCARError   err,
FKAcceleration **    fkBegin = NULL,
FKAcceleration **    fkEnd = NULL,
const String   name = String()
 

Constructor for WorkCell.

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()

OSCAR::WorkCell::WorkCell OSCARError   err = DUMMY_ERROR(noError),
const String   name = String()
 

Constructor for WorkCell.

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

Parameters:
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::WorkCell::~WorkCell   [virtual]
 

Destructor for WorkCell.

See also:
WorkCell()

OSCAR::WorkCell::WorkCell const WorkCell &    cont [private]
 

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

Returns:
none


Member Function Documentation

bool OSCAR::WorkCell::Add Node   newParent,
Node   toAdd
 

Add a new child node to the specified node. Will automatically add the new node and all of its children/primitives to the MOdelingObjectMap Note that this function invokes the Node classes Add(Node* node) function, so all caveats posed there will also apply here.

Parameters:
Node* newParent The new parent node of the node which will be added.
Node* toAdd The node which will be added as a child to the parent node.
True upon completion, false if there is an error

bool OSCAR::WorkCell::Add Node   node,
const Primitive   toAdd
 

Add a primitive to the specified node. Will automatically add the primitive to the ModelingObjectMap.

Parameters:
Node* node The node which the primitive will be added to
Primitive* toAdd The primitive which will be added
Returns:
True upon completion, false if there is an error

bool OSCAR::WorkCell::calcACylH unsigned int    armIndex,
Vector3   p1,
Vector3   p2,
Vector3   p3,
Vector3   p4,
unsigned int    joint_No,
double    t1,
double    t2,
double    d,
Matrix   dHat,
const Matrix   Gp,
Matrix   HdT,
Matrix   GdSq,
Matrix   Hd
const [private]
 

bool OSCAR::WorkCell::calcCylH unsigned int    armIndex,
const Vector3   p1,
const Vector3   p2,
const Vector3   p3,
const Vector3   p4,
int    joint_No,
double    t1,
double    t2,
double    d,
Matrix   dHat,
const Matrix   Gp,
Matrix   HdT,
Matrix   GdSq,
Matrix   Hd
const [private]
 

bool OSCAR::WorkCell::CalcDist ObAvInfo   obInfo
 

Calculates the witness points, witness direction unit vectors and magnitudes for an arm.

Arm index is deduced from the obInfo object

Parameters:
obInfo store various values inside obInfo structure.

bool OSCAR::WorkCell::CalcDist unsigned int    armIndex,
ObAvInfo   obInfo
 

Calculate the witnesspoints, witness direction unit vectors and magnitudes for an arm.

Parameters:
armIndex The index of the manipulator for which all of the above will be calculated
DistanceResults results Where the results of the calculations will be stored
Returns:
True upon comletion, false if there is a failure (if arm doesn't exist, etc);

bool OSCAR::WorkCell::CalcDist unsigned int    armIndex,
DistanceResults   results
 

Calculates the witness points, witness direction unit vectors and magnitudes for an arm.

Parameters:
armIndex Index of the arm to calculate witness points
obInfo store various values inside obInfo structure.

bool OSCAR::WorkCell::CalcDist const String   arm,
DistanceResults   results
 

Calculates the wintesspoints, witness direction unit vectors and magnitudes for an arm.

Parameters:
const String arm The name of the manipulator for which all of the above will be calculated
DistanceResults results Where the results of the calculations will be stored
Returns:
True upon completion, false if there is a failure (if arm doesn't exist, etc).

bool OSCAR::WorkCell::CalcDist const Node   arm,
DistanceResults   results
 

Calculates the witnesspoints, witness direction unit vectors and magnitudes for an arm.

Parameters:
const Node* A const pointer to the root node of the manipulator for which all of the above will be calculated for
DistanceResults results Where the results of the calculations will be stored.
Returns:
True upon completion, false if there is a failure

bool OSCAR::WorkCell::CalcGFunctions const Node   arm,
DistanceResults   results
 

bool OSCAR::WorkCell::CalcGHfunctions ObAvInfo   obInfo const
 

Calculates the G and H functions of witness points, depending on obInfo.iType, and stores them in obInfo.

Parameters:
obInfo ObAvInfo object which contains arm index and witness points. Will promote obInfo.iType to FIRST_ORDER
Returns:
true - success, false - call GetError() for reason of failure

bool OSCAR::WorkCell::calcH_FD unsigned int    armIndex,
const Vector   jointPos,
ObAvInfo   obInfo
[private]
 

bool OSCAR::WorkCell::calcPlH unsigned int    armIndex,
Vector3   p1,
Vector3   p2,
Vector3   p3,
Vector3   p4,
Vector3   p5,
int    joint_No,
double    t1,
double &    t2,
double    d,
Matrix   dHat,
const Matrix   Gp,
Matrix   HdT,
Matrix   GdSq,
Matrix   Hd
const [private]
 

bool OSCAR::WorkCell::calcSpH unsigned int    armIndex,
const Vector3   p1,
const Vector3   p2,
Vector3   p3,
int    joint_No,
double    t,
double    d,
Matrix   dHat,
const Matrix   Gp,
Matrix   HdT,
Matrix   GdSq,
Matrix   Hd
const [private]
 

bool OSCAR::WorkCell::CalculateSelfDistances Node   arm,
DistanceResults   results
 

unsigned int OSCAR::WorkCell::countEnvironmentPrimitives Node   envi [private]
 

FKAcceleration* OSCAR::WorkCell::FKAccel unsigned int    armIndex
 

Returns pointer to the FKAcceleration object for the specified arm.

Parameters:
armIndex index of arm
Returns:
a const pointer to the FKAcceleration object for the specified arm

const FKAcceleration* OSCAR::WorkCell::FKAccel unsigned int    armIndex const
 

Returns pointer to the FKAcceleration object for the specified arm.

Parameters:
armIndex index of arm
Returns:
a const pointer to the FKAcceleration object for the specified arm

const ObAvData& OSCAR::WorkCell::GetData   const
 

Gives acess to the information held in the workcells main ObAvData object.

Returns:
A const reference to obData

NodeList& OSCAR::WorkCell::GetEnvironment   [inline]
 

FKAcceleration* OSCAR::WorkCell::GetFK const Node   arm
 

const FKAcceleration* OSCAR::WorkCell::GetFK const Node   arm const
 

const Vector3& OSCAR::WorkCell::GetLinkInfo unsigned int    armIndex,
int    linkIndex,
int    pointIndex
const
 

Get location of point on arm.

Parameters:
armIndex Index of arm
linkIndex Index of link on arm
pointIndex Index of point on link
Returns:
Vector3 Location of point

NodeList& OSCAR::WorkCell::GetManipulators   [inline]
 

unsigned int OSCAR::WorkCell::GetNumberEnvironmentPrimitives Node   arm
 

Returns the total number of primitives in a manipulator's environment (including other manipulators).

Parameters:
Node* arm The manipulator whose environment primitives are to be counted.
Returns:
unsigned int Total number of environment primitives

unsigned int OSCAR::WorkCell::GetNumberManipulatorPrimitives Node   arm
 

Returns the total number of primitives contained within a manipulator arm.

Parameters:
Node* arm The manipulator whose primitives will be counted
Returns:
unsigned int Total number of primitives in the arm

bool OSCAR::WorkCell::GetObAvInfo unsigned int    armIndex,
const Vector   jointPos,
ObAvInfo   obInfo,
INFO_TYPE    iType = FIRST_ORDER
 

Calculate obstacle avoidance info for given arm.

Updates the location of arm armIndex with jointPos, then calculates all the obstacle avoidance info and store in _obInfo.

Parameters:
armIndex Index of desired arm
jointPos Joint positions of arm
obInfo Calculated information storage container
iType Order of derivatives to calculate
Returns:
1 if successful

bool OSCAR::WorkCell::GetSizeParameters unsigned int    armIndex,
unsigned int &    armLngth,
unsigned int &    obNum,
unsigned int &    DOF
const
 

Get info about model of arm.

Parameters:
armIndex index of desired arm
armLngth # of cylispheres in arm
obNum # of obstacles around arm
DOF DOF of given arm stored
Returns:
1

const Vector3& OSCAR::WorkCell::GetSphrInfo unsigned int    index const
 

Get location of spherical obstacle.

Parameters:
index Index of sphere
Returns:
Vector3 Location of center of sphere

bool OSCAR::WorkCell::iterateEnvironmentMinDist double &    mindist,
Node   manip,
Node   envi,
const DistanceResults   results,
Primitive *&    smallestManipOn,
Primitive *&    smallestEnviOn
[private]
 

bool OSCAR::WorkCell::LoadFile const String   file,
FKAcceleration **    fkBegin = NULL,
FKAcceleration **    fkEnd = NULL
 

Load a description of the robot and environment into the work cell.

Parameters:
fkBegin beginning of an array of pointers to FKAccelleration objects
fkEnd one past the end of an array of pointers to FKAccelleration objects
file Name of the file that contains the environment data
Returns:
true - success, false - call GetError() to learn reason of failure

bool OSCAR::WorkCell::LoadMap Node   toLoad [private]
 

bool OSCAR::WorkCell::LoadMap   [private]
 

bool OSCAR::WorkCell::LoadWorkcellData const WorkcellData   workcellData,
std::vector< FKAcceleration * > &    fkAccels
 

Load WorkcellData object in to the workcell.

This method is prefered over the LoadWorkcellData(const WorkcellData& workcellData) above if memory is of great concern. This method uses the existing FKAcceleration objects, thus saving memory when compared with the LoadWorkcellData(const WorkcellData& workcellData) method, which generates new FKAcceleration objects.

Parameters:
const WorkcellData& workcellData A WorkcellData object that contains the robot and environment data
vector<FKAcceleration*> fkAccels A std vector of pointers to FKAcceleration objects. These FKACceleration objects represent the manipulators, in order, which are contained in the inputted XML file. Note that these FKAcceleration objects will not be loaded if the function returns an error.
Returns:
true - sucess, false - call GetError() to learn reason of failure

bool OSCAR::WorkCell::LoadWorkcellData const WorkcellData   workcellData
 

Load WorkcellData object in to the workcell.

This is a convenient method for the LoadWorkcellData(const WorkcellData& workcellData, std::vector<FKAcceleration*>& fkAccels) below. Basically, this method will generate a vector of FKAcceleration objects within itself using the data in the WorkcellData object.

Parameters:
const WorkcellData& workcellData A WorkcellData object that contains the robot and environment data
Returns:
true - sucess, false - call GetError() to learn reason of failure

bool OSCAR::WorkCell::LoadXMLFile const String   file,
std::vector< FKAcceleration * > &    fkAccels
 

Load an XML description of the robot and the environment in to the workcell.

Parameters:
const String& file Name of the XML file that contains the environment data
vector<FKAcceleration*> fkAccels A std vector of pointers to FKAcceleration objects. These FKACceleration objects represent the manipulators, in order, which are contained in the inputted XML file. Note that these FKAcceleration objects will not be loaded if the function returns an error.
Returns:
true - sucess, false - call GetError() to learn reason of failure

ModelingObject* OSCAR::WorkCell::LocateModelingObject const String   name
 

Retrieve the address of a uniquely named ModelingObject (Node or Primitive) within the WorkCell. This function directly invokes the Get function of the ModelingObjectMap contained within the WorkCell.

Parameters:
const String& name The name of the object whose address will be returned.
Returns:
ModelingObject* The address of the requested ModelingObject. Will be NULL if the requested object is not found

bool OSCAR::WorkCell::minDist double &    mindist,
Node   from,
Node   to,
const DistanceResults   results,
Primitive *&    smallestFromOn,
Primitive *&    smallestToOn
[private]
 

bool OSCAR::WorkCell::Move Node   fromNode,
Node   toNode,
Primitive   toMove
 

Move a primitive from one node to another. This invokes the Node function Move(Node& from, Primitive* primitive).

Parameters:
Node* fromNode The node from which the primitive is being moved
Node* toNode The node to which the primitive is being moved
Primitive* toMove The primitive which is being moved
Returns:
True if successful, false if there is an error

bool OSCAR::WorkCell::Move Node   fromNode,
Node   toNode,
Node   toMove
 

Move a modeling node from being the child of one node to being a child of another. This invokes the node function Move(Node& from, Node* node).

Parameters:
Node* fromNode The node from which the node to be moved is being moved from
Node* toNode The node where the node to be moved is being moved to
Node* toMove The node which is being moved
Returns:
True if successful, false if there is an error

unsigned int OSCAR::WorkCell::NumPrimitives   const
 

Returns the number of geometric primitives in the work cell.

The total number of primitives in the work cell include all primitives used to model robot arms and all obstacles in the cell

Returns:
number of geometric primitives in the work cell

WorkCell& OSCAR::WorkCell::operator= const WorkCell &    cont [private]
 

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

bool OSCAR::WorkCell::OutputModelInfo std::ostream &    fout = std::cout
 

Outputs locations of obstacles Prints locations of obstacles onto stream.

Parameters:
fout Output stream to print on
Returns:
1 if successful

bool OSCAR::WorkCell::Remove Node   containedIn,
Primitive   toRemove
 

Remove a primitive from the modeling arhictecture. This will invoke the Node function Remove(Primitive* Primitive) This function will also remove the node from the ModelingObjectMap contained within the WorkCell.

Parameters:
Node* containedIn The node where the primitive is contained. This must be correct for the method to work.
Primitive* toRemove The primitive which will be removed.
Returns:
True if successful, false if there is an error

bool OSCAR::WorkCell::Remove Node   parent,
Node   toRemove
 

Remove a node from the modeling architecture. This will invoke the Node function Remove(Node* node); This function will also remove the node from the ModelingObjectMap contained within the WorkCell.

Parameters:
Node* parent The parent of the node which will be removed. Null if the node is to just be destroyed.
Node* toRemove The node which is to be removed
Returns:
True if successful, false if there is an error

double OSCAR::WorkCell::RetrieveMinimumDistance Node   manipulator,
const DistanceResults   results,
Primitive *&    manipulatorPrim,
Primitive *&    enviPrim
 

Calculates the minimum distance between a paticular manipulator and the rest of the work cell.

Parameters:
Node* manipulator The manipulator for which to find the minimum distance
DistanceResults& results The DistanceResults object which contains the distance information for the manipulator
Primitive*& After the function has run, this will contain a pointer to the primitive contained within the manipulator from which the shortest minimum distance was found
Primitive*& After the function has run, this will contain a pointer to the primitive contained within the environment to which the shorest minimum distance was found
Returns:
double minimum distance from the manipulator to an obstacle. If an error occurs, the distance will be returned as a negative number.

bool OSCAR::WorkCell::UpdateAllArms  
 

Update the location of all arm models.

Updates the location of all the arms modeled based on the last location set in the internal forward kinematics.

Returns:
true - success, false otherwise

bool OSCAR::WorkCell::UpdateAllArmsXML  
 

Update the location of all arm models loaded in through XML to the node structure. This function will eventually be called UpdateAllArms, and the old function will be removed.

Updates the location of all the arms modeled based on the last location set in the FKAcceleration objects which were initially sent into the WorkCell

Returns:
true - success, false otherwise

bool OSCAR::WorkCell::updateArm NodeList::iterator &    arm,
unsigned int    accelIndex
[private]
 

bool OSCAR::WorkCell::UpdateArm Node   arm,
const Xform   base,
const Xform   globalTransformations
 

Update the location of the given arm, using the specified global transformations (Xforms).

Parameters:
Node* arm A pointer to the root of the manipulator to be updated
Xform& base A reference to the Xform that represents the base pose of the manipulator
Xform* globalTransformations A pointer to an array of Xforms DOF long. These xforms represent the position of the DH frames of the robot.
Returns:
True upon completion, false otherwise

bool OSCAR::WorkCell::UpdateArm Node   arm,
const Vector   jointPos
 

Update the location of the given arm, using the specified joint positions.

Parameters:
Node* arm A pointer to the root of the manipulator to be updated
Vector jointPos The joint position to be used in the update
Returns:
True upon completion, false otherwise

bool OSCAR::WorkCell::UpdateArm unsigned int    armIndex
 

Update the location of the give arm.

Updates the location of the arm # specified based on the last location set in the internal forward kinematics.

Returns:
Returns 1 if successful 0 otherwise
Parameters:
armIndex The index of the arm to update

bool OSCAR::WorkCell::UpdateArm unsigned int    armIndex,
const Vector   jointPos
 

Update the location of the give arm with the provided joint angles.

Updates the location of the arm # specified after updating the location of the arm in the internal forward kinematics using jointPos.

Returns:
true - success, false otherwise
Parameters:
armIndex - index of arm model to update
jointPos The joint angles desired for the specified arm in radians.

bool OSCAR::WorkCell::UpdateArmXML unsigned int    armIndex
 

Update the location of the given arm.

Updates the location of the arm # specified based on the last location set in the internal forward kinematics.

Parameters:
armIndex The index of the arm to update
Returns:
True upon completion, false otherwise

bool OSCAR::WorkCell::UpdateArmXML unsigned int    armIndex,
const Vector   jointPos
 

brief Update the location of the given arm with the provided joint angles Updates the location of the arm specified by the arm # given as an argument.

This is a temporary function to be used with XML loaded data, and will eventually be renammed UpdateArm with the same arguments

Parameters:
armIndex - index of arm model to update
jointPos The joint angles desired for the specified arm in radians.
Returns:
true - success, false otherwise.

bool OSCAR::WorkCell::UpdateCylinder unsigned int    index,
Vector3   pt1,
Vector3   pt2,
double    rd
 

Update the location of the give cylisphere.

Returns:
true - success, false otherwise
Parameters:
index The number of the cylisphere to update. Numbering starts from 0.
pt1 The first endpoint of the cylisphere in world coordinates.
pt2 The second endpoint of the cylisphere in world coordinates.
rd The radius of the cylisphere.

bool OSCAR::WorkCell::UpdatePlane unsigned int    index,
Vector3   pt0,
Vector3   pt1,
Vector3   pt2,
double    th = 0.0,
bool    bounded = false
 

Update the location of the give plane.

Returns:
true - success, false otherwise
Parameters:
index The number of the plane to update. Numbering starts from 0.
pt0 The base corner point of the plane in world coordinates.
pt1 The pt1 corner point of the plane in world coordinates.
pt2 The pt2 corner point of the plane in world coordinates.
th The half thickness of the plane. Defaults to 0.0.
th The half thickness of the plane. Defaults to 0.0.
bounded Specify halfspace (false) or quadrilateral (true). Defaults to false.

bool OSCAR::WorkCell::UpdateSphere unsigned int    index,
Vector3   pt,
double    rd
 

Update the location of a sphere.

Updates the location and size of the spherical obstacle specified. if successful, false otherwise

Parameters:
index of sphere to update
pt Center point of the sphere, world coordinates.
rd Radius of sphere.


Member Data Documentation

Xform OSCAR::WorkCell::base [private]
 

DistanceCalculator OSCAR::WorkCell::calculator [private]
 

String OSCAR::WorkCell::compare [private]
 

NodeList OSCAR::WorkCell::environment [private]
 

vector<FKAcceleration*> OSCAR::WorkCell::fkAccel [private]
 

INFO_TYPE OSCAR::WorkCell::iType [private]
 

NodeList OSCAR::WorkCell::manipulators [private]
 

ObAvData OSCAR::WorkCell::obDat [private]