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

ObstacleAvoidance

The Obstacle Avoidance Library. More...

Files

file  CriteriaFuncs.hpp

Compounds

class  ArtificialPotentialF
 A function to calculate artificial potential field (APF). More...

class  Box
 A box obstacle used for modeling of objects in workcells. More...

class  CollisionDetection
 Collision Detection Class. More...

class  Cone
 A cone primitive used for modeling of objects in workcells The cone (in its local frame) will be symmetric about the y axis and its total height will be centered at y=0 with the tip of the cone at y=height/2. The cone can then be moved in its local from by specifying a local transform. More...

class  Cylisphere
 A cylispherical object for use in robot or as obstacle. More...

class  DistanceCalculator
 Interface class for Distance Calculators. More...

class  DistanceResultsRepository
 DistanceResultsRepository is a repository which holds DistanceResults objects, which in turn contain the witness points between manipulators and their surroundings, unit vectors pointing from the manipulator witness points, the magnitude of the distance between witness points, and the G and H functions of the witness points. More...

class  ModelingObject
 Abstract base class for Primitives and Nodes.

class  ModelingObjectMap
 Contains an STL map which indexes the name of ModelingObjects (Nodes and Primitives) with their address. Useful for finding the address of a modeling Node or Primitive just by knowing its name. The key to the STL map is an OSCAR::String, the data type being stored is ModelingObject*. More...

class  Node
 A Node a tree modeling structure containing instances of the primitives and child nodes, as well as methods to update the locations of the Node and the modeling objects contained within this Node and its children. Basically, a Node has a list of Node's inside it. This list of nodes constitutes its children. A Node also has a list of Primitive's in it. This list of Primitives constitutes the obstacles associated with just itself. More...

class  ObAvData
 Contains the functionality to read/write data from/to a file for obstacle avoidance. More...

class  ObAvInfo
 Holds results of manipulator-obstacle distance calculations. More...

class  ObAvInfoRepository
 ObAvInfoRepository is a repository which holds ObAvInfo objects, which in turn contain the witness points between manipulators and their surroundings, unit vectors pointing from the manipulator witness points, the magnitude of the distance between witness points, and the G and H functions of the witness points. More...

class  PCADistToEEWrench
 PCADistToEEWrench is derived from PCADistToTorque and PCJacobianPseudoInverse. More...

class  PCADistToEEWrenchD1
 PCADistToEEWrenchD1 is derived from PCADistToTorque and PCJacobianPseudoInverse. This class is not currently functional and can not be instantiated. More...

class  PCADistToForce
 PCADistToForce computes the joint Forces/forces based on distances to surrounding obstacles. More...

class  PCADistToForceD1
 PCADistToForceD1 is derived from PCADistToForce. More...

class  PCADistToTorque
 PCADistToTorque computes the joint torques/forces based on distances to surrounding obstacles. More...

class  PCADistToTorqueD1
 Computes the first derivative of the torques due to artificial forces. This class is not currently functional. More...

class  PCAverageDistReciprocal
 PCAverageDistReciprocal calculates the average of the reciprocal of the minimum distance from the robot arm to obstacles. More...

class  PCAWorkCell
 PCAWorkCell uses a WorkCell to compute and store the obstacle avoidance information (see DistanceResults). More...

class  PCEEWrench
 PCEEWrench is derived from PCADistToEEWrench. More...

class  PCEEWrenchD1
 PCEEWrenchD1 is derived from PCAWorkCell. More...

class  PCJointTorque
 Minimizes joint torques due to artificial forces. More...

class  PCLinkForce
 PCLinkForce minimizes the average of the artificial forces acting on the links. More...

class  PCSmallestMinDist
 PCSmallestMinDist calculates the minimum distance from the robot arm to any obstacle in the environment. More...

class  Plane
 Define a planar primitive for use in robot obstacle avoidance. More...

class  Polytope
 Class for STL based polytope obstacle models Currently an empty class which can be instantiated but can not be used for anything useful. More...

class  Primitive
 Base for geometric primitives.

class  ScaleInverseF
 \ ScaleInverseF One type of APF where Scalar function goes as the inverse of the argument The function is F(x) = k*[(mx-mn)/(x-mn)]^z + thresh, so that as (x->inf), (F(x)->thresh), (x=mx), (F(x) = k + thresh), and as (x->mn), (F(x)->inf). Note: this function object does not check for x < mn. A special case is when k=1, z=1, mx=1, mn=0, and thresh=0, then F(x) = 1/x.

class  ScaleInverseVanishF
 \ ScaleInverseVanishF One type of APF where Scalar function starts from infinity at a certain value and decreases as the argument grows until vanishing completely at a certain value. The function is F(x) = k*[(mx-x)/(x-mn)]^z + thresh, so that if (x>=mx), (F(x) = thresh), and as (x->mn), (F(x)->inf). If thres = 0, then it means that APF will have no effect when x >= mx. Note: this function object does not check for x < mn.

class  SkeletalPrimitive
 Base for skeletal geometric primitives. More...

class  Sphere
 Define a spherical primitive for use in robot obstacle avoidance. More...

class  WorkCell
 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...


Functions

double PointLine (const Vector3 &a, const Vector3 &b0, const Vector3 &b1, Vector3 &bWit, Vector3 &unitVec, double &t)
double LineLine (const Vector3 &a0, const Vector3 &a1, const Vector3 &b0, const Vector3 &b1, Vector3 &aWit, Vector3 &bWit, Vector3 &unitVec, double &t0, double &t1)
double LineFacet (const Vector3 &a0, const Vector3 &a1, const std::vector< Vector3 > &facetPoints, Vector3 &unitVec, double &t1, double &t2)
double LineFacet (const Vector3 &a0, const Vector3 &a1, const std::vector< Vector3 > &facetPoints, const Vector3 &facetNormal, Vector3 &unitVec, double &t1, double &t2)
void calcJointTorques (const Xform *globalXforms, const Vector3 &forceLocation, const Vector3 &force, unsigned int linkIndex, Vector &torques)
void calcJointTorquesToBase (const Xform *globalXforms, const Vector3 &forceLocation, const Vector3 &force, unsigned int linkIndex, Vector &torques)
void calcJointTorquesToEE (const Xform *globalXforms, const Vector3 &forceLocation, const Vector3 &force, unsigned int linkIndex, Vector &torques)
bool CalcJointTorques (FKPosition &fk, const Vector &jointPositions, Vector &torques, const Vector3 &forceLocation, const Vector3 &force, unsigned int linkIndex)
bool CalcJointTorques (const FKPosition &fk, Vector &torques, const Vector3 &forceLocation, const Vector3 &force, unsigned int linkIndex)
void calculateSupportReactionForces (const Vector3 &base0, const Vector3 &base1, const Vector3 &forceLocation, const Vector3 &force, Vector3 &base0FRX, Vector3 &base1FRX)
void calculateSupportReactions (const Vector3 &base0, const Vector3 &base1, const Vector3 &forceLocation, const Vector3 &force, Vector3 &base0FRX, Vector3 &base0TRX, Vector3 &base1FRX, Vector3 &base1TRX)
template<class T> VectorNumeric< T > & RowToVector (const Matrix &matx, unsigned int row, VectorNumeric< T > &copy)
template<class T> VectorNumeric< T > & ColToVector (const Matrix &matx, unsigned int col, VectorNumeric< T > &copy)

Variables

const OSCARError ObstacleAvoidanceError
const OSCARError CollisionDetectionError
const OSCARError sampleError

Detailed Description

This library contains obstacle avoidance criteria and the modeling system used to compute them.

Function Documentation

bool CalcJointTorques const FKPosition   fk,
Vector   torques,
const Vector3   forceLocation,
const Vector3   force,
unsigned int    linkIndex
 

Maps external forces to reactive torques at the joints and adds them to the torque argument.

Parameters:
fk A FKPosition object used to get the global transformations
torques A vector of length fk.GetDOF() in which to store the torques. This should be zeroed by the caller, if desired.
forceLocation The location acted upon by the force
force A force vector The index of the link where the force is acting

bool CalcJointTorques FKPosition   fk,
const Vector   jointPositions,
Vector   torques,
const Vector3   forceLocation,
const Vector3   force,
unsigned int    linkIndex
 

Maps external forces to reactive torques at the joints and adds them to the torque argument.

Parameters:
fk A FKPosition object used to get the global transformations
jointPositions The joint positions for the manipulator
torques A vector of length fk.GetDOF() in which to store the torques. This should be zeroed by the caller, if desired.
forceLocation The location acted upon by the force
force A force vector The index of the link where the force is acting

void calcJointTorques const Xform   globalXforms,
const Vector3   forceLocation,
const Vector3   force,
unsigned int    linkIndex,
Vector   torques
 

Maps external forces to reactive torques at the joints and adds them to the torque argument.

Parameters:
globalXforms Array of Xform object representing the global transformations for each frame
forceLocation The location acted upon by the force
force A force vector The index of the link where the force is acting
torques A vector of length fk.GetDOF() in which to store the torques. This should be zeroed by the caller, if desired.

void calcJointTorquesToBase const Xform   globalXforms,
const Vector3   forceLocation,
const Vector3   force,
unsigned int    linkIndex,
Vector   torques
 

Maps external forces to reactive torques at the joints proximal to linkIndex and adds them to the torque argument.

Parameters:
globalXforms Array of Xform object representing the global transformations for each frame
forceLocation The location acted upon by the force
force A force vector The index of the link where the force is acting
torques A vector of length fk.GetDOF() in which to store the torques. This should be zeroed by the caller, if desired.

void calcJointTorquesToEE const Xform   globalXforms,
const Vector3   forceLocation,
const Vector3   force,
unsigned int    linkIndex,
Vector   torques
 

Maps external forces to reactive torques at the joints distal to linkIndex and adds them to the torque argument.

Parameters:
globalXforms Array of Xform object representing the global transformations for each frame
forceLocation The location acted upon by the force
force A force vector The index of the link where the force is acting
torques A vector of length fk.GetDOF() in which to store the torques. This should be zeroed by the caller, if desired.

void calculateSupportReactionForces const Vector3   base0,
const Vector3   base1,
const Vector3   forceLocation,
const Vector3   force,
Vector3   base0FRX,
Vector3   base1FRX
 

Calculates the support reactions due to a force loading an object with two supports.

Parameters:
base0 First support location
base1 Second support location
forceLocation The point that the force acts upon
force The force The reactive force at the first support The reactive force at the second support

void calculateSupportReactions const Vector3   base0,
const Vector3   base1,
const Vector3   forceLocation,
const Vector3   force,
Vector3   base0FRX,
Vector3   base0TRX,
Vector3   base1FRX,
Vector3   base1TRX
 

Calculates the support reactions due to a force loading an object with two supports.

The torque reactions are computed by considering the arm to be cantilevered at the base and the force reaction for that base.

Parameters:
base0 First support location
base1 Second support location
forceLocation The point that the force acts upon
force The force The reactive force at the first support The reactive torque at the first support The reactive force at the second support The reactive torque at the second support

template<class T>
VectorNumeric<T>& ColToVector const Matrix   matx,
unsigned int    col,
VectorNumeric< T > &    copy
 

Copies a matrix column to an VectorNumeric, truncating to the end of the column or end of the vector, whichever is first.

Parameters:
matx The matrix to copy from
col The index of the column to copy
copy The VectorNumeric which to copy the values into
Returns:
A reference to copy

double LineFacet const Vector3   a0,
const Vector3   a1,
const std::vector< Vector3 > &    facetPoints,
const Vector3   facetNormal,
Vector3   unitVec,
double &    t1,
double &    t2
 

Lacks implementation.

double LineFacet const Vector3   a0,
const Vector3   a1,
const std::vector< Vector3 > &    facetPoints,
Vector3   unitVec,
double &    t1,
double &    t2
 

Calculates the minimum distance between two line segments.

double LineLine const Vector3   a0,
const Vector3   a1,
const Vector3   b0,
const Vector3   b1,
Vector3   aWit,
Vector3   bWit,
Vector3   unitVec,
double &    t0,
double &    t1
 

Calculates the minimum distance between a line segment and a point unitVec points from b to a upon return.

double PointLine const Vector3   a,
const Vector3   b0,
const Vector3   b1,
Vector3   bWit,
Vector3   unitVec,
double &    t
 

Calculates the minimum distance between a line segment and a point unitVec points from b to a upon return.

template<class T>
VectorNumeric<T>& RowToVector const Matrix   matx,
unsigned int    row,
VectorNumeric< T > &    copy
 

Copies a matrix row to an VectorNumeric, truncating to the end of the row or end of the vector, whichever is first.

This method is particularly useful for copying the x, y, or z axis from an Xform

Parameters:
matx The matrix to copy from
row The index of the row to copy
copy The VectorNumeric which to copy the values into
Returns:
A reference to copy


Variable Documentation

const OSCARError OSCAR::CollisionDetectionError
 

const OSCARError OSCAR::ObstacleAvoidanceError
 

const OSCARError OSCAR::sampleError
 

RRG Homepage OSCAR Overview OSCAR Tutorials Simulations