Tekkotsu Homepage
Demos
Overview
Downloads
Dev. Resources
Reference
Credits

GrasperRequest Class Reference

Request to the Grasper to manipulate something. More...

#include <GrasperRequest.h>


Detailed Description

Request to the Grasper to manipulate something.

Definition at line 22 of file GrasperRequest.h.

List of all members.

Public Types

enum  GrasperRequestType_t {
  checkGraspable, checkMovable, checkRestable, computeReach,
  reach, grasp, touch, release,
  moveTo, rest, sweep, computeMove,
  computeRest
}
 

What we're asking the Grasper to do.

More...
enum  GrasperErrorType_t {
  noError = 0, someError, invalidRequest, noGraspState,
  noGraspPath, lostObject, noDeliverState, noDeliverPath,
  noRestPath, badGrasp, badMove, pickUpUnreachable,
  dropOffUnreachable
}
 

What error is the Grasper going to return.

More...
enum  GraspStrategy_t { unconstrainedGrasp, sideGrasp, overheadGrasp }
 

The grasp strategy to use.

More...
enum  GrasperPathType_t { noPath, doApproach, doDeliver, doRelease }
 

What path are we talking about, e.g., to return in the GrasperEvent.

More...
enum  GrasperRestType_t { stationary, settleArm, settleBodyAndArm }
 

The kind of rest state to reach. stationary means none, settleArm moves the arm to the arm configuration in armRestState, settleBodyAndArm does settleArm and resets the ground plane.

More...
enum  GrasperVerifyStrategy_t {
  verifyNone, verifyAprilTag, verifyDomino, verifyCross,
  verifyLoad, verifyUser
}
 

How to verify a grasp.

More...
typedef ShapeSpacePlanner3DR
< NumArmJoints-2 > 
Planner
typedef PlannerObstacle3D PlannerObstacleG
typedef Planner::NodeType_t NodeType_t
typedef NodeType_t::NodeValue_t NodeValue_t

Public Member Functions

 GrasperRequest (GrasperRequestType_t _type)
 Constructor.
 GrasperRequest (const GrasperRequest &req)
 Copy constructor.
GrasperErrorType_t validateRequest ()
 Validate the GrasperRequest and return an error code if there is a problem.

Public Attributes

GrasperRequestType_t requestType
 The type of this Grasper request.
GraspStrategy_t graspStrategy
 Type of grasp strategy to use.
GrasperRestType_t restType
 The rest type for this request.
NodeValue_t armRestState
 The rest arm configuration.
GrasperVerbosity_t setVerbosity
 Verbosity elements to force on.
GrasperVerbosity_t clearVerbosity
 Verbosity elements to force off.
unsigned int effectorOffset
 Offset of the end effector in the Kinematic chain to use (typically GripperFrameOffset).
unsigned int rrtMaxIterations
 The maximum number of iterations the RRT should undergo.
float rrtInflation
 The amount to inflate obstacles for safe planning (mm).
NodeValue_t rrtInterpolationStep
 The amount to move each joint while extending.
float armTimeFactor
 Factor to change how fast arm movements will be executed.
bool openGripperOnRest
 Whether to open the gripper upon resting.
ShapeRoot object
 The object to manipulate.
unsigned int objectFeature
 Object-dependent enumerated type, e.g., "high end" or "low end" for a domino.
std::vector< Point > objectGraspPoints
 Points on the object where a grasp could be made (relative to its centroid); currently unused.
AngTwoPi approachOrientation
 Orientation with which to approach the object.
GrasperVerifyStrategy_t verifyStrategy
 Grasp verify strategy.
bool(* verifyGraspFunction )(ShapeRoot &)
 User-supplied function to verify object has been grasped.
ShapeRoot targetLocation
 Where to place the object.
AngTwoPi targetOrientation
 Orientation at which to place the object.
bool allowBodyMotion
 If true, the Grasper can issue Pilot requests to move the body.
float gripPressure
 Desired grip pressure (units are robot-dependent).
std::vector< std::pair< float,
float > > 
gripperAngleRangesX
 Vector of ranges of egocentric angles in which the gripper is allowed to end up.
std::vector< std::pair< float,
float > > 
gripperAngleRangesY
 Vector of ranges of egocentric angles in which the gripper is allowed to end up.
std::vector< std::pair< float,
float > > 
gripperAngleRangesZ
 Vector of ranges of egocentric angles in which the gripper is allowed to end up.
unsigned int maxNumberOfAngles
 Maximum number of angles to allow the gripper to have in angle ranges.
float angleResolution
 Resolution of angles to use within gripperAngleRanges.
std::vector< ShapeRoot > sweepObjects
 vector of objects to be swept
std::vector< ShapeRoot > envObstacles
 List of obstacles in the environment.
AdmissibilityPredicate
< NodeType_t > * 
predicate
 The desired predicate to use during planning for moveConstrainedPath.
GrasperPathType_t populateEventPathWith
 What kind of path to return with the GrasperEvent.
PilotRequest pilotreq
 Template to use for Pilot requests for body motion.
MapBuilderRequestmapreq
 MapBuilder request to reacquire the object after motion.
bool displayPath
 If true, the planned path is displayed in the shape space.
bool displayTree
 If true, the RRT search tree is displayed in the shape space.

Static Public Attributes

static const unsigned int numPlannerJoints = NumArmJoints-2

Protected Member Functions

GrasperRequestoperator= (const GrasperRequest &)
 don't call this

Protected Attributes

unsigned int requestID

Private Types

typedef unsigned int GrasperVerbosity_t

Private Attributes

Shape< AgentData > approachPose
 Robot's desired location and heading for reaching to an object.
Shape< AgentData > transportPose
 Robot's desired location and heading for transporting the object.
Shape< AgentData > withdrawPose
 Robot's desired location and heading for withdrawing.
std::vector< NodeValue_tapproachPath
 The "approach" arm path, which is not predicate-constrained.
std::vector< NodeValue_tdeliverPath
 The predicate-constrained arm path for moving an object.
std::vector< NodeValue_treleasePath
 The "release" arm path, which is not predicate-constrained.
BehaviorBaserequestingBehavior
 The Behavior making this request; used for posting grasper events.
GrasperVerbosity_t verbosity
 Verbosity value computed by Grasper::executeRequest.

Friends

class Grasper

Member Typedef Documentation

typedef unsigned int GrasperRequest::GrasperVerbosity_t [private]

Definition at line 56 of file GrasperRequest.h.

Definition at line 25 of file GrasperRequest.h.


Member Enumeration Documentation

What error is the Grasper going to return.

Enumerator:
noError 
someError 

Generic error will match anything but noError in a GrasperTrans.

invalidRequest 
noGraspState 

IK cannot get the gripper around the object.

noGraspPath 

No unobstructed path to the grasp configuration.

lostObject 

Lost sight of the object.

noDeliverState 
noDeliverPath 
noRestPath 
badGrasp 
badMove 
pickUpUnreachable 
dropOffUnreachable 

Definition at line 79 of file GrasperRequest.h.

What path are we talking about, e.g., to return in the GrasperEvent.

Enumerator:
noPath 

Don't return any path.

doApproach 

Return the unconstrained path to object.

doDeliver 

Return the constrained path to move object to targetLocation.

doRelease 

Return the path to disengage from the object and move the arm to the rest position.

Definition at line 103 of file GrasperRequest.h.

What we're asking the Grasper to do.

Enumerator:
checkGraspable 

Check whether object is graspable; don't actually move.

checkMovable 

Check whether object can be moved to targetLocation; don't actually move.

checkRestable 

Check whether the arm can be moved to the resting position; don't actually move.

computeReach 

Compute and return a path for the arm to reach to a point.

reach 

Move the arm to targetLocation, then rest.

grasp 

Approach and grasp object, then rest the arm.

touch 

Grasp the object but don't rest the arm afterwards.

release 

Release and disengage from whatever the arm is holding.

moveTo 

Move object to targetLocation.

rest 

Move the arm (and possibly the body) to a resting position.

sweep 

Sweep arm along an arc (to clear a region of the workspace).

computeMove 

Compute and return a path for moving object to targetLocation.

computeRest 

Compute and return a path for moving the arm to the resting position.

Definition at line 61 of file GrasperRequest.h.

The kind of rest state to reach. stationary means none, settleArm moves the arm to the arm configuration in armRestState, settleBodyAndArm does settleArm and resets the ground plane.

Enumerator:
stationary 
settleArm 
settleBodyAndArm 

Definition at line 111 of file GrasperRequest.h.

How to verify a grasp.

Enumerator:
verifyNone 

Don't try to verify the grasp,.

verifyAprilTag 

Check for an AprilTag in the gripper.

verifyDomino 

Check for a domino in the gripper.

verifyCross 

Check for a cross in the gripper.

verifyLoad 

Verify by gripper load signal.

verifyUser 

User will supply a verify function.

Definition at line 118 of file GrasperRequest.h.

The grasp strategy to use.

Enumerator:
unconstrainedGrasp 

Any orientation.

sideGrasp 

Side approach: fingers parallel to the ground.

overheadGrasp 

Overhead approach: fingers perpendicular to the ground.

Definition at line 96 of file GrasperRequest.h.


Constructor & Destructor Documentation

GrasperRequest::GrasperRequest ( GrasperRequestType_t  _type  ) 

Constructor.

Definition at line 9 of file GrasperRequest.cc.

GrasperRequest::GrasperRequest ( const GrasperRequest req  ) 

Copy constructor.

Definition at line 84 of file GrasperRequest.cc.


Member Function Documentation

GrasperRequest& GrasperRequest::operator= ( const GrasperRequest  )  [protected]

don't call this

GrasperRequest::GrasperErrorType_t GrasperRequest::validateRequest (  ) 

Validate the GrasperRequest and return an error code if there is a problem.

Definition at line 128 of file GrasperRequest.cc.

Referenced by Grasper::executeRequest().


Friends And Related Function Documentation

friend class Grasper [friend]

Definition at line 54 of file GrasperRequest.h.


Member Data Documentation

If true, the Grasper can issue Pilot requests to move the body.

Definition at line 196 of file GrasperRequest.h.

Referenced by Grasper::PlanBodyTransport::doStart(), Grasper::PlanBodyApproach::doStart(), and GrasperRequest().

Resolution of angles to use within gripperAngleRanges.

Definition at line 214 of file GrasperRequest.h.

Referenced by Grasper::PathPlanConstrained::doStart(), and Grasper::PlanArmApproach::doStart().

Orientation with which to approach the object.

Definition at line 181 of file GrasperRequest.h.

Referenced by Grasper::PlanBodyApproach::doStart().

Shape<AgentData> GrasperRequest::approachPose [private]

Robot's desired location and heading for reaching to an object.

Definition at line 242 of file GrasperRequest.h.

Referenced by Grasper::DoBodyApproach::doStart(), and Grasper::PlanBodyApproach::doStart().

The rest arm configuration.

Definition at line 146 of file GrasperRequest.h.

Referenced by Grasper::PathPlanToRest::doStart(), and GrasperRequest().

Factor to change how fast arm movements will be executed.

Definition at line 166 of file GrasperRequest.h.

Referenced by Grasper::MoveArm::advTime(), and validateRequest().

Verbosity elements to force off.

Definition at line 149 of file GrasperRequest.h.

Referenced by Grasper::executeRequest().

std::vector<NodeValue_t> GrasperRequest::deliverPath [private]

The predicate-constrained arm path for moving an object.

Definition at line 254 of file GrasperRequest.h.

Referenced by Grasper::GrasperSucceeded::doStart(), Grasper::MoveArm::doStart(), Grasper::PathPlanToRest::doStart(), and Grasper::PlanArmDeliver::doStart().

If true, the planned path is displayed in the shape space.

Definition at line 235 of file GrasperRequest.h.

Referenced by Grasper::PathPlanToRest::doStart(), Grasper::PathPlanConstrained::doStart(), and Grasper::PlanArmApproach::doStart().

If true, the RRT search tree is displayed in the shape space.

Definition at line 238 of file GrasperRequest.h.

Referenced by Grasper::PathPlanToRest::doStart(), Grasper::PathPlanConstrained::doStart(), and Grasper::PlanArmApproach::doStart().

Offset of the end effector in the Kinematic chain to use (typically GripperFrameOffset).

Definition at line 154 of file GrasperRequest.h.

Referenced by Grasper::computeGoalStates(), Grasper::PathPlanToRest::doStart(), Grasper::PathPlanConstrained::doStart(), Grasper::PlanArmApproach::doStart(), Grasper::getCurrentState(), and GrasperRequest().

std::vector<ShapeRoot> GrasperRequest::envObstacles

List of obstacles in the environment.

Definition at line 220 of file GrasperRequest.h.

Type of grasp strategy to use.

Definition at line 140 of file GrasperRequest.h.

Referenced by Grasper::checkGoalCandidate().

std::vector<std::pair<float, float> > GrasperRequest::gripperAngleRangesX

Vector of ranges of egocentric angles in which the gripper is allowed to end up.

Definition at line 202 of file GrasperRequest.h.

Referenced by Grasper::PathPlanConstrained::doStart(), Grasper::PlanArmApproach::doStart(), and GrasperRequest().

std::vector<std::pair<float, float> > GrasperRequest::gripperAngleRangesY

Vector of ranges of egocentric angles in which the gripper is allowed to end up.

Definition at line 205 of file GrasperRequest.h.

Referenced by Grasper::PathPlanConstrained::doStart(), Grasper::PlanArmApproach::doStart(), and GrasperRequest().

std::vector<std::pair<float, float> > GrasperRequest::gripperAngleRangesZ

Vector of ranges of egocentric angles in which the gripper is allowed to end up.

Definition at line 208 of file GrasperRequest.h.

Referenced by Grasper::PathPlanConstrained::doStart(), Grasper::PlanArmApproach::doStart(), and GrasperRequest().

Desired grip pressure (units are robot-dependent).

Definition at line 199 of file GrasperRequest.h.

Referenced by Grasper::ArmGrasp::doStart(), and Grasper::Verify::CheckGripperLoad::doStart().

MapBuilder request to reacquire the object after motion.

Definition at line 232 of file GrasperRequest.h.

Referenced by Grasper::FindObj::doStart().

Maximum number of angles to allow the gripper to have in angle ranges.

Definition at line 211 of file GrasperRequest.h.

Referenced by Grasper::computeGoalStates().

const unsigned int GrasperRequest::numPlannerJoints = NumArmJoints-2 [static]

Definition at line 27 of file GrasperRequest.h.

Referenced by GrasperRequest().

Object-dependent enumerated type, e.g., "high end" or "low end" for a domino.

Definition at line 175 of file GrasperRequest.h.

Referenced by Grasper::Verify::CheckDomino::doStart(), Grasper::PlanArmApproach::doStart(), and Grasper::PlanBodyApproach::doStart().

Points on the object where a grasp could be made (relative to its centroid); currently unused.

Definition at line 178 of file GrasperRequest.h.

Whether to open the gripper upon resting.

Definition at line 169 of file GrasperRequest.h.

Referenced by Grasper::Rest::GetOpenGripperFlag::doStart().

What kind of path to return with the GrasperEvent.

Definition at line 226 of file GrasperRequest.h.

Referenced by Grasper::GrasperSucceeded::doStart().

The desired predicate to use during planning for moveConstrainedPath.

Definition at line 223 of file GrasperRequest.h.

Referenced by Grasper::PathPlanConstrained::doStart(), and GrasperRequest().

std::vector<NodeValue_t> GrasperRequest::releasePath [private]

The "release" arm path, which is not predicate-constrained.

Definition at line 257 of file GrasperRequest.h.

Referenced by Grasper::GrasperSucceeded::doStart(), Grasper::MoveArm::doStart(), and Grasper::PathPlanToRest::doStart().

unsigned int GrasperRequest::requestID [protected]

Definition at line 266 of file GrasperRequest.h.

Referenced by Grasper::executeRequest().

The Behavior making this request; used for posting grasper events.

Definition at line 260 of file GrasperRequest.h.

Referenced by Grasper::GrasperFailed::doStart(), Grasper::GrasperSucceeded::doStart(), and Grasper::executeRequest().

The amount to inflate obstacles for safe planning (mm).

Definition at line 160 of file GrasperRequest.h.

Referenced by Grasper::PathPlanToRest::doStart(), Grasper::PathPlanConstrained::doStart(), and Grasper::PlanArmApproach::doStart().

The maximum number of iterations the RRT should undergo.

Definition at line 157 of file GrasperRequest.h.

Referenced by Grasper::PathPlanToRest::doStart(), Grasper::PathPlanConstrained::doStart(), and Grasper::PlanArmApproach::doStart().

Verbosity elements to force on.

Definition at line 148 of file GrasperRequest.h.

Referenced by Grasper::executeRequest().

std::vector<ShapeRoot> GrasperRequest::sweepObjects

vector of objects to be swept

Definition at line 217 of file GrasperRequest.h.

Orientation at which to place the object.

Definition at line 193 of file GrasperRequest.h.

Referenced by Grasper::planBodyPath().

Shape<AgentData> GrasperRequest::transportPose [private]

Robot's desired location and heading for transporting the object.

Definition at line 245 of file GrasperRequest.h.

Referenced by Grasper::DoBodyTransport::doStart(), and Grasper::PlanBodyTransport::doStart().

User-supplied function to verify object has been grasped.

Definition at line 187 of file GrasperRequest.h.

Referenced by Grasper::Verify::CheckUserVerify::doStart(), and validateRequest().

Shape<AgentData> GrasperRequest::withdrawPose [private]

Robot's desired location and heading for withdrawing.

Definition at line 248 of file GrasperRequest.h.


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

Tekkotsu v5.1CVS
Generated Mon May 9 04:59:09 2016 by Doxygen 1.6.3