graspit.final

13
R esearch in robotic grasping has flourished in the last 25 years. A recent survey by Bicchi [1] covered over 140 papers, and many more than that have been published. Stemming from our desire to implement some of the work in grasp analysis for particular hand designs, we created an interactive grasping simulator that can import a wide variety of hand and object models and can evaluate the grasps formed by these hands. This system, dubbed “GraspIt!,” has since expanded in scope to the point where we feel it could serve as a useful tool for other researchers in the field. To that end, we are making the system publicly available (GraspIt! is available for download for a variety of platforms from http://www.cs.columbia.edu/ ~amiller/graspit). Some of the features of this system include: a robot library that includes several hand models, a Puma arm, and a simplified mobile base a flexible robot definition that makes it possible to import new robot designs BY ANDREW T. MILLER AND PETER K. ALLEN ©2001 IMAGESTATE 1070-9932/04/$20.00©2004 IEEE IEEE Robotics & Automation Magazine DECEMBER 2004 110

Upload: snehlata-sinha

Post on 19-Aug-2015

16 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Graspit.final

Research in robotic grasping has flourished in the last 25 years. A recent survey byBicchi [1] covered over 140 papers, and many more than that have been published.Stemming from our desire to implement some of the work in grasp analysis forparticular hand designs, we created an interactive grasping simulator that canimport a wide variety of hand and object models and can evaluate the grasps

formed by these hands. This system, dubbed “GraspIt!,” has since expanded in scope to thepoint where we feel it could serve as a useful tool for other researchers in the field. To thatend, we are making the system publicly available (GraspIt! is available for download for avariety of platforms from http://www.cs.columbia.edu/ ~amiller/graspit).

Some of the features of this system include:◆ a robot library that includes several hand models, a Puma arm, and a simplified

mobile base◆ a flexible robot definition that makes it possible to import new robot designs

BY ANDREW T. MILLER AND PETER K. ALLEN

©20

01 IM

AG

ES

TAT

E

1070-9932/04/$20.00©2004 IEEEIEEE Robotics & Automation Magazine DECEMBER 2004110

Page 2: Graspit.final

DECEMBER 2004 IEEE Robotics & Automation Magazine 111

◆ the ability to connect robots to build a manipulationplatform

◆ the ability to import obstacle models to build a com-plete working environment for the robots

◆ an intuitive interactive interface, as well as an externalinterface to MATLAB

◆ a fast collision detection and contact determinationsystem

◆ grasp analysis routines that evaluate the quality of agrasp on the fly

◆ visualization methods that can show the weak point of agrasp and create projections of the grasp wrench space

◆ a dynamics engine that computes robot and objectmotions under the influence of external forces andcontacts

◆ a simple trajectory generator and control algorithmsthat compute the joint forces necessary to follow thetrajectory.

GraspIt! is an ideal environment for grasp analysis and planning,and it can serve as a test bed for new grasp evaluation, graspsynthesis, and manipulation planning algorithms. It is possibleto test these algorithms much more quickly and for more handdesigns than would be possible in the lab using an actual robot.Ultimately, the planning for an actual grasping task can be per-formed in simulation and then carried out on a physical system.The early Handey [2] worked in a similar way by combiningapproach, grasp, and regrasp planning for a Puma arm with aparallel jaw gripper within a simple simulated environment.The plan generated could then be executed on the real robot.In our own research, we are using GraspIt! to plan the graspsfor a service robot equipped with a Barrett hand, and initialresults [3] showed that by using a real-time vision system to rec-oncile the virtual world with the physical world, it is possible toplan and execute grasps with the real robot.

Designers of robotic hands could also benefit from such asimulation and analysis system. Currently, designing a robotichand is a difficult task with many considerations, such as taskrequirements, mechanism complexity, and physical size and

weight. Often, a physical prototype is necessary to truly test ahand’s ability to perform tasks, but this can be quite costly anddesign changes are not easy to make. By using a simulationsystem, the designer can quickly see how different choices ofkinematic parameters and link geometries affect the hand’sability to grasp different objects.

Of course, there are already several commercial roboticssimulators available, including Delmia’s IGRIP, Flow SoftwareTechnologies’ Workspace5, MCS.Software’s ADAMS, and theEasy-Rob system, as well as past and present research projectsin robot simulation, including GRASP (an early robot armsimulator) [4], IRODESS [5], the Robotics Toolbox forMATLAB [6], RoboSiM [7], and Simpact [8], but none ofthese focus on the grasping problem. Chan and Liu presenteda dynamic simulation system for a five-fingered robot hand[9], but they focus on dynamic manipulation and only allowfingertip contacts.

The following presents the various components of GraspIt!We begin by discussing the different types of world elementsand our general robot definition, and we also present therobot library. Next we briefly describe the user interface ofGraspIt! and present the collision detection and contact deter-mination system. Subsequently, we present the grasp analysisand visualization methods that allow a user to evaluate a graspand compute optimal grasping forces. We provide a briefoverview of our dynamic simulation system, and finally wepresent our plans for future research.

World ElementsThe simulation world in GraspIt! is made up of world ele-ments that are either rigid bodies or robots, which imposeconstraints on how some of these bodies can move withrespect to others. The following describes the different typesof bodies defined within the system, and describes our flexibledefinition for robots. This definition has allowed us to modela number of complex articulated robots, which are a part ofour robot library, and allows the construction of robotic plat-forms made up of multiple robots.

Figure 1. (a) The body types defined within GraspIt! and their associated data. Sub-classes inherit the properties of the typeabove them. (b) The robot class definition and its associated data types. This definition can handle a wide variety of robots, but ifa particular robot has special features or its own methods, it can be defined as a subclass of a robot or a hand.

Contact ListTransform

BodyGeometryMaterial

Link Graspable Body

Dynamic BodyInertia TensorMass

RevoluteJoint

PrismaticJoint

Robot Kinematic Chain

DHParameters

DOFValueJoint List

DOFRelation

JointBase LinkDOF List

KinematicChains

HandPuma560

Barrett

AttachedRobots

Joint ListBaseTransform

Link List

Robot Owner

Grasp

Limits Transform

State (q, v)Center ofMass

(a) (b)

Page 3: Graspit.final

IEEE Robotics & Automation Magazine DECEMBER 2004112

Body Types Figure 1(a) summarizes the different types of bodies definedwithin the system. A basic body consists of a pointer to itsgeometry, a material specification, a list of contacts, and atransform that specifies the body’s pose relative to the worldcoordinate system. The body geometry is defined as anInventor scene graph, and it is read from an Inventor modelfile that has essentially the same format as VRML 1.0. Thematerial is one of a set of predefined material types and is usedwhen computing the coefficient of friction between two con-tacting bodies. Currently, a body can only have one material,but in the future it will be possible to define the surface mate-rial for different parts of a body.

A dynamic body inherits all of the properties of a body anddefines the mass of the body, the location of its center of massrelative to the body frame, and its inertia tensor. It also includesthe body’s dynamic state parameters, q and v, which specify thepose and velocity of a body frame located at the center of massrelative to the world coordinate system. The two types ofdynamic bodies are links, which are elements of a robot, andgraspable bodies, which are not. Graspable bodies are partiallytransparent and show the position of any contacts as well as anydynamic contact forces. The reason for distinguishing betweenbodies and dynamic bodies is that some bodies are simply con-sidered obstacles, and while they are elements of the collisiondetection system and can provide contacts on other bodies,they are not part of the dynamics computations and remain sta-tic. This makes it possible to create a complex world full ofobstacles without making the dynamics intractable to compute.

RobotsWe have tried to make the definition of a robot as general aspossible to allow a wide variety of robot designs to be import-

ed. Figure 1(b) summarizes the defini-tion of a robot. A robot consists of abase link, any number of kinematicchains, and a list of its degrees of free-dom (DOF). Each kinematic chain con-tains a list of its links, a list of its joints,and a transform locating its base framewith respect to the robot’s base frame.Each joint must be either prismatic orrevolute and contains limits on its possi-ble position as well as a Denavit-Harten-berg (DH) transform locating its framerelative to the previous joint in the list.This transform is computed from thefour DH parameters associated with thejoint. We define DOF separately fromjoints because it is common in manyhand designs to have coupled joints thatare passively controlled by other joints.Therefore, a single DOF has a currentvalue and list of joints that it is connect-ed to, and the free parameter of each ofthese joints can be related to the DOF

value with a linear function. When a user imports a robotinto the world, the system reads a configuration file specifyingall of these parameters and imports each of the link bodiessetting their positions based on the initial DOF values.

A hand is a special type of robot that can form grasps ofobjects, and these grasps will be analyzed by the system. Italso includes an auto-grasp method, which closes the joints ofthe hand at preset velocities. Each joint stops when it hasreached its limit or when a link that follows it in the kinemat-ic chain contacts an object or another finger link. Individualtypes of robots can be defined as subclasses of the generalrobot or hand classes. These are only necessary if the robothas special features such as the breakaway feature of the Barretthand (described in the following) or if the user wishes tospecify an analytic solution for the inverse kinematics of therobot, which can be solved much faster than relying on aniterative routine.

The Robot LibraryThe ability to easily add new robot designs is a key benefit ofour system. It is a relatively simple process of specifying theparameters required by the configuration file, creating the linkgeometry files, and in most cases takes less than an hour ortwo to set up. We have already created models of a parallel jawgripper, a Puma 560 arm, and a simplified NomadicsXR4000 mobile robot. Additionally, through collaborationwith other research sites, we have obtained computer aideddesign (CAD) models and kinematic descriptions of four dif-ferent articulated hand designs (Figure 2). Unfortunately, wedo not yet have accurate mass parameters for any of thesehands, and we are currently using an approximate mass andcomputing the inertia tensor of each link assuming a uniformmass distribution.

Figure 2. Robot models: (a) a parallel jaw gripper, (b) the Barrett hand, (c) a DLRhand, (d) thke Robonaut hand, (e) the Rutgers hand, (f) the Puma 560 arm, and (g)the Nomadics XR4000 mobile robot.

(a) (b) (c) (d)

(g)(f)(e)

Page 4: Graspit.final

DECEMBER 2004 IEEE Robotics & Automation Magazine 113

A Parallel Jaw GripperOur gripper model has the approximate dimensions of anactual Lord gripper. For ease of use, we changed the kinemat-ics of our gripper so that each plate can be independentlycontrolled. When only one coupled DOF is used to grip anobject in a static setting, the gripper must be centered overthe object exactly for both plates to come in contact. Besidesthe kinematics, we also specified the surface material of thepalm as metal and the plates as rubber. In the grasp examplepresented later, we have used a larger version of this gripper.To make this change is a simple matter of changing the jointlimits in the kinematic description and modifying the palmgeometry file.

The Barrett HandThe Barrett hand, produced by Barrett Technology, is aneight-axis, three-fingered, mechanical hand with each fingerhaving two joints. One finger is stationary and the other twocan spread synchronously up to 180 degrees about the palm(finger 3 is stationary and fingers 1 and 2 rotate about thepalm). Although there are eight axes, the hand is controlledby four motors. Each of the three fingers has one actuatedproximal link, and a coupled distal link that moves at a fixedrate with the proximal link. A novel clutch mechanism allowsthe distal link to continue to move if the proximal link’smotion is obstructed (referred to as breakaway). An additionalmotor controls the synchronous spread of the two fingersabout the palm. This gives the Barrett hand only four internaldegrees of freedom: one for the spread angle of the fingers,and three for the angles of the proximal links. The links areconstructed of high density plastic.

The DLR HandThe DLR hand [10], developed at the German AerospaceCenter, is a four-fingered, articulated, robotic hand, and,unlike the Barrett hand, the placement of the fingers resem-bles the human hand structure. However, because the jointmotors are all internally contained, the hand is about one andone-half times the size of an average human hand. The fingersare identical, and each consists of three links with two joints atthe base, one joint between the proximal and medial links,and one joint between the medial and distal links. This lastjoint is coupled in a fixed ratio to the previous joint in thechain. The DLR hand has a total of 12 internal degrees offreedom, since there are three independently controllablejoints in each of the four fingers. The materials of the palmand links are metal except for the fingertips, which arerubber.

The Robonaut HandNext, we examine the Robonaut hand [11], which wasdeveloped at NASA’s Johnson Space Center. This hand hasfive fingers and a total of 14 internal degrees of freedom, andit is equivalent in size to a 95th percentile human male hand.The index and middle fingers along with the thumb are con-sidered the primary manipulation fingers and are capable of

abduction and adduction. The ring and pinkie are mountedon a squeezing palm joint, which makes them good graspingfingers capable of wrapping around a tool or other object.Although the link geometry only specifies the metal structureof the hand, we assumed rubber contact surfaces to facilitatestronger grasps.

The Rutgers HandThe Rutgers Hand [12] is being developed at the Mechanicaland Aerospace Engineering Department at Rutgers Universi-ty. While this hand is also a five-fingered anthropomorphicdesign, its most novel aspect is the use of shape memory alloysto actuate the joints. Shape memory alloys are very compactand lightweight and provide a method of actuation similar tohuman muscle fibers, which contract when excited. Althoughone prototype finger has been built, the hand is still in thedesign phase, and the research team is using GraspIt! to exam-ine how changes in the kinematic structure of the hand affectthe hand’s ability to apply the contact forces necessary for dif-ferent tasks. The four fingers each have three links and thethumb has two; the base of each finger is connected to thepalm with a ball and socket joint that has two independentlycontrollable degrees of freedom, but is modeled as two revo-lute joints. The simulation model allows each joint to be indi-vidually controlled, even though the final model will likelyhave fewer degrees of freedom. This makes for a total of 19degrees of freedom: four for each of the four fingers and threefor the thumb.

The Puma560 ArmThe Unimate Puma560 arm is an industrial six-degree offreedom, spherical-wrist robot used at many research sites. Wehave modeled the geometry of the links using approximatedimensions, and we have used the mass parameters found inthe Robotics Toolbox for MATLAB [6].

The Nomadics XR4000 Mobile RobotThe Nomadics XR4000 mobile robot has four-wheels, aholonomic drive system, and enough load capacity to supporta Puma arm mounted on top of it. Again, we modeled thegeometry of this robot using rough measurements. Althoughthe wheels could be modeled as individual kinematic chainswithin the robot class definition, we have chosen to modelthe robot as having a fixed base point with two prismaticjoints controlling its x and y position and a revolute jointaligned with its center z axis. In this way, we avoid having tosimulate the drive system and can simply consider it as athree-degree of freedom robot.

Robot PlatformsAnother feature of GraspIt! is the ability to attach multiplerobots to create robotic platforms. The system allows the defi-nition of a tree of robots, where any number of robots can beattached to the last link of a kinematic chain of another robot,each with a particular offset transform. Then, if the base linkof a robot in the tree is moved, the system checks that the

Page 5: Graspit.final

IEEE Robotics & Automation Magazine DECEMBER 2004114

move is allowed by the inverse kinematics of the parent chain.If the move is possible, the robot is moved along with allrobots below it in the tree, and the parent chain is moved tomaintain the fixed attachment. This feature has allowed us tomodel Obelix, the mobile manipulation platform at the Cen-ter for Autonomous Systems at the Royal Institute of Technol-ogy in Stockholm, Sweden. It consists of an XR4000 mobilebase, a Puma 560 arm, and a Barrett Hand. Having these addi-

tional robots allows us to test reach ability con-straints for the platform. In addition, we havemodeled the real obstacles within a livingroom atCAS, which serves as a test setting for this servicerobot (Figure 3). Together, the full platform andworld model provide us with an environmentwhere we can plan and test our entire graspingtask so that we can avoid planning grasps that willconflict with these obstacles.

User InterfaceOne of the design goals we believe we achievedwas to make the user interface as intuitive andtransparent as possible. When a user starts a newsession, he is presented with an empty world intowhich he can import new obstacles, graspablebodies, or robots, and at any point, the currentstate of the world can be saved to be loaded againlater in another session. The primary element ofthe main window is a standard Inventor viewer,which displays, at the user’s choice, a perspectiveor orthographic projection of a three-dimen-sional (3-D) world in a two-dimensional (2-D)window. The virtual camera can be rotated,panned, or zoomed, and a seek tool allows closeup inspection of a particular detail in the scene.

Obstacles, graspable bodies, and robots may betranslated and rotated in 3-D using an appropriatemanipulator that appears upon clicking on theobject. Manipulating the individual degrees of free-dom of a robot is equally intuitive. Clicking on akinematic chain of the robot brings up an interac-tive manipulator for each actively controllablejoint in the chain. Revolute joints are controlledby dragging a disc whose axis of rotation is coin-cident with the joint axis (Figure 4), and prismat-ic joints are controlled by dragging an arrow, whichis aligned with the joint axis. These manipulatorsobey the joint limits defined in the robot configu-ration file and prevent the user from movingbeyond them. Passive joints also move in responseto changes in the joints they are coupled with.

Various menus and dialog boxes allow the userto change a variety of simulation parameters, andthese are implemented with the Qt library, whichallows the code to be easily ported to differentoperating systems. Currently, both Linux andWindows versions of the system are available.

In addition to direct user interaction, other programs maycommunicate with GraspIt! using a TCP connection and a sim-ple text protocol. We have created a preliminary Matlab inter-face, using mex-files that send queries and commands toGraspIt! This provides an easy way to write dynamic controlalgorithms because contact forces and body accelerations can beread into Matlab arrays and computed joint torques can be sentback to GraspIt! to control the motion of the robot.

Figure 3. A robot or robotic platform can operate within a user definedworld. In this case, it is the manipulation platform and living room environ-ment at the Center for Autonomous Systems.

Figure 4. The angle of a revolute joint can be changed by dragging a discmanipulator located at the joint. The passive distal joint moves in a fixedrelationship with the medial joint.

Page 6: Graspit.final

DECEMBER 2004 IEEE Robotics & Automation Magazine 115

Contacts

Collision DetectionTo prevent bodies from passing througheach other while they are being manipu-lated by the user, the system performsreal-time collision detection using a sys-tem based on the Proximity Query Pack-age [13]. When a body is loaded into thesimulator, it is faceted by the Inventor ren-derer, and its collection of triangles ispassed to the collision detection system,where they become the leaves of a hierar-chical tree of bounding volumes. At thetop of the tree, the set of triangles thatmake up the body is bounded with an axisaligned bounding box, and it is split with aplane perpendicular to the set’s longest axis. The two sub-groups become the children of the root tree node, and theyare each recursively bounded and subdivided until the indi-vidual triangles are reached and cannot be divided further.Fast recursive algorithms can determine if any of the trianglesof one body intersect any of the triangles of another body, orcan provide a minimum distance between the two bodies.

If a collision is detected [Figure 5(a)], the motion of thebodies must be reversed back to the point when the contactfirst occurs. To find this instant, GraspIt! begins by movingthe objects to their previous locations before the collision anddetermines the minimum distance between them. Since bodytransforms must be represented with fixed precision floatingpoint numbers, it is impossible to find the instant of exactcontact between two bodies. Thus, we define a thin contactregion around the surface of each body, and if the distancebetween two bodies is less than this threshold (currently set at0.1mm) then they are considered to be in contact. We use abinary search technique to move two bodies to within thisdistance after they have collided [Figure 5(b)]. When the twobodies interpenetrate, the minimum distance query returnszero rather than an interpenetration distance, which is difficultto define for nonconvex objects. It is possible to use a moreefficient search algorithm, since we are provided with more

than just binary information when the objects are not inter-penetrating, but in practice, the binary search only needs afew iterations to reach the contact threshold distance.

Contact DeterminationAfter the bodies have been moved to within the contact dis-tance, the system must determine the regions of contactbetween the two bodies. The process begins by searching forpairs of triangles that are separated by a distance less than thecontact threshold. For each pair found, the system must deter-mine the region of overlap between them. To do this, itexamines which pair of topological features produced theminimum distance between the triangles (Figure 6). The con-tact region for vertex-vertex, vertex-edge, and edge-edgecontacts is a single point, and on each triangle, it is defined bythe closest point to the other triangle. All other topologicalpairs include a face, and in these cases, the vertices of theother triangle are orthographically projected onto the planecontaining the face. The projected triangle is then used tointersect the first triangle, and vertices of the resulting regionare projected back up to the other triangle. Of those pointsthat are projected back, only the ones closest to the face planeare kept. A vertex-face contact will only have one closestpoint, but a face-face contact could have a contact region

Figure 6. Some of the possible contact regions between a pair of triangles thatdo not actually touch but are within the contact threshold distance of each other.(a) An edge-edge contact is located using the closest points on the two triangles.(b) A vertex-face contact is defined by the closest vertex on one triangle and itsprojected point on the face of the other triangle. (c) A face-face contact will havebetween three and six contact points (in this case four). They are found by pro-jecting one triangle onto the other and finding the intersection points.

Figure 5. The collision detection and contact location process: (a) The collision of a link of the Barrett hand with the side of thephone is detected. (b) A search is conducted to find the joint angle that will cause the link to be within 0.1 mm of the surface. (c) Thegeometry of the contact is determined and friction cones are placed at the vertices bounding the contact region (in this case a line).

Page 7: Graspit.final

IEEE Robotics & Automation Magazine DECEMBER 2004116

bounded by as many as six vertices, all equidistant from theface plane. Each of these vertices is considered a separatepoint contact and is added along with its corresponding pointon the other surface to the set of contact points between thetwo bodies. This set grows as more triangle pairs are exam-ined, but it keeps only those contacts that are unique (theposition on the first body or the contact normal differ), sinceadjacent triangles on one surface will often have identicalcontact points with a triangle on the other surface. Unfortu-nately, this is not always the case, as shown in Figure 7, so wemust verify that any contact involving an edge or vertex ismatched by contacts on the triangles sharing the edge or ver-tex. If not, the contact is discarded.

After the traversal is complete, the system divides the set ofcontacts up into subsets that have the same contact normal. Ifthere are more than two contact points in a subset, the systemchecks to see if the points are all colinear (as in an edge-facecontact), and if so, it removes all contacts but the endpoints ofthe line. If they are not colinear (as in a face-face contact), itfinds the planar convex hull of the contact set and removesany interior contact points. These interior contact points donot affect the mechanics of the grasp, because for any contactwith a distribution of forces along a line or an area, thewrench applied at the contact can be represented as a singleresultant wrench, and this can be specified as a convex sum offorces acting at points on the boundary of the contact region.Once the final set of contacts between the two bodies hasbeen determined, the system draws a red friction cone at eachcontact point, which serves to visually mark the position ofthe contact and its normal [Figure 5(c)]. The width of thiscone identifies how large any frictional forces can be withrespect to a force applied along the contact normal. As eachnew contact is formed or broken, the system performs thegrasp analysis routines described in the following and displaysthe results.

Grasp AnalysisGrasp analysis is used to assess the quality of a grasp by exam-ining its properties. Much of the research in this field has con-centrated on the placement of contacts on the grasped object,

but other types of analysis are possible, including grasp forceoptimization, which is discussed later. Unfortunately, we can-not provide a complete introduction to grasp analysis theory,so we refer the reader to Murry et al.’s textbook [14] for rele-vant background.

Contacts and FrictionWhen two objects touch, it is possible for each of them totransmit forces through the regions of contact. Besides theforces transmitted along the contact normal, any contact canalso support some amount of friction. We use the Coulombmodel to determine the magnitude of forces acting in the tan-gent plane of the contact that can be resisted by friction. Thislaw states: ‖ f t‖ ≤ µf⊥, where f t is the tangential componentof the contact force, µ is the coefficient of friction betweenthe two contacting materials, and f⊥ is the normal componentof the contact force. This means that the forces that may beapplied at the contact lay within a cone aligned with the con-tact normal, commonly known as a friction cone. The halfangle of this cone is tan−1µ. To determine µ, we index a tableof the coefficient values using the two contacting materialtypes. Currently, we have five possible materials: glass, metal,plastic, wood, and rubber, and the user can change the µ val-ues for any pair of materials from the preset values. In thefuture, we will support more complex friction models that adda relationship between torsional and tangential friction limits.

Figure 7. Here triangles 1 and 2 lie in a plane, and triangle 3 isin a perpendicular plane. The edge-edge contact between tri-angles 2 and 3 cannot be matched with an edge-edge contactbetween triangles 1 and 3, which have a face-vertex contact,so the edge-edge contact is discarded.

1

2

3

Figure 8. (a) Frictional forces in the tangent plane have a max-imum magnitude of µf⊥. To prevent slippage, the total con-tact force, f, must lie within a cone of possible directions. (b)During grasp analysis, the friction cone is approximated withan m sided pyramid. f is represented as a convex combinationof m force vectors around the boundary of the cone.

(b)(a)

f1f8

ff7

f2f3

tan−1µ

ff

Page 8: Graspit.final

DECEMBER 2004 IEEE Robotics & Automation Magazine 117

Building the Grasp Wrench SpaceThe space of wrenches that can be applied to an object by agrasp given limits on the contact normal forces is called thegrasp wrench space (GWS). In order to construct this space, itis necessary to approximate a friction cone with a finite num-ber m of force vectors equally spaced around the boundary ofthe cone (Figure 8). Initially we use m = 8, but the user canchange this value.

Ferrari and Canny [15] describe two methods of con-structing a GWS. In both cases, a convex hull bounds thespace, but in one, the sum magnitude of the contact normalforces is bounded, and in the other, the maximum magnitudeof the normal forces is bounded. They denote the first spaceas WL 1 and the second as WL ∞ . For the purposes of the qual-ity measures described later, GraspIt! creates unit graspwrench spaces.

Given the space of forces that can be applied at contactpoint i, assuming a unit contact normal force, we must deter-mine the corresponding space of wrenches that can be exert-ed on the object by that contact. To accomplish this, werequire a torque multiplier λ that relates units of torque tounits of force. In this work, we have chosen to enforce‖τ‖ ≤ ‖ f ‖ by choosing λ = 1

r , where r is the maximumradius of the object from the torque origin, often chosen asthe center of gravity of the object. This will ensure that thequality of a grasp is independent of object scale. Each of the mforce vectors representing the boundary of the friction cone istranslated to the wrench space origin by computing the cor-responding object torque such that

w i, j =[

f i, j

λ(d i × f i, j)

](1)

where f i, j is one the m force vectors on the boundary of thefriction cone at contact i, and d i is the vector from the torqueorigin to the ith point of contact. These wrenches form theboundary of the wrenches that can be applied at that contactpoint, given a unit normal force. To compute the WL 1 space,we simply take the convex hull over the union of each set ofcontact boundary wrenches:

WL 1 = ConvexHull

(n⋃

i=1

(w i,1, . . . , w i,m)

)(2)

where n is the number of contacts. In the case of WL ∞ , wemust compute the convex hull over the Minkowski sum ofeach set of contact boundary wrenches.

WL ∞ = ConvexHull

(n⊕

i=1

(w i,1, . . . , w i,m)

). (3)

These six-dimensional (6-D), convex hull operations areperformed quickly using the qhull library [20]. However, the

first space is computed using only mn points, whereas the sec-ond space is computed with mn points, so the WL ∞ space isonly feasible for small numbers of contacts or crude approxi-mations of the friction cone. In either case, if the wrench spaceorigin is contained with the GWS, the grasp is considered tohave force-closure, and the grasp can resist any disturbancewrench, assuming sufficiently large contact normal forces.

Quality MeasuresIn order to rate a grasp, we must first consider the propertiesof a good grasp. In general, a grasp exists to perform sometask, which can be described by the space of wrenches thatmust be applied to an object to carry out that task. This spacecould be simply the wrench with a force component in theupward direction and no torque component, which would berequired to suspend an object against the force of gravity, or itcould be a complicated space of wrenches required in somemanipulation task. This space is called the task wrench space.If the task wrench space is a subspace of the grasp wrenchspace, then the grasp is valid for that task. However, it is notnecessarily the most efficient grasp that can accomplish thetask, meaning that the internal forces on the object may bemuch larger than necessary. Thus, one method of defininggrasp quality is the ratio of the magnitude of the task wrench-es to the magnitude of the contact forces.

The most general quality measures assume nothing isknown about the task wrench space. If we assume that dis-turbance wrenches could come from any direction, the taskwrench space will be a 6-D ball. Thus, the maximum magni-tude of any task wrench within this ball is equal to its radius.Since grasp quality is defined as a ratio of magnitudes, whichscales linearly, we can rephrase our definition of grasp qualityso that it is the radius of the largest wrench space ball, cen-tered at the origin, that can just fit within the unit graspwrench space. This radius, ε, will be the same as the magni-tude of the shortest vector, wmin, from the wrench space ori-gin to the outer boundary of the hull. We define theminimum radius of the L 1 unit grasp wrench space as ε1.

Examining the definition of ε1 more closely, we find a fewof its intuitive characteristics. If an adversary, who knows theshape of the grasp wrench space, WL 1 , applies a worst-case dis-turbance wrench to the object, the sum magnitude of the nor-mal contact forces would have to be 1/ε1 times the magnitudeof the disturbance wrench. This means that the closer ε1 is to 1,the more efficient the grasp is. The ε1 quality measures can becomputed by simply finding the smallest offset value among thehyper planes making up the facets of the convex hull.

Unfortunately, these measures are not invariant to thechoice of torque origin, so the volume of the unit graspwrench space can be used as an invariant average case qualitymeasure for the grasp. We denote the next quality measure,v1, as the volume of WL 1 . The value of this measure isreported directly by qhull when it computes the convexhull. Example grasps that were evaluated using the ε1 andv1, measures are presented later, and further examples can befound in [16].

Page 9: Graspit.final

IEEE Robotics & Automation Magazine DECEMBER 2004118

Wrench Space VisualizationWhile the numerical quality measures providesome information about the efficiency of thegrasp, graphical feedback can provide even moreinformation. One reason 3-D examples are oftenavoided throughout the grasp-quality literature isbecause of the difficulty of visualizing the results.A 2-D planar object will have a 3-D wrenchspace, but to display the 6-D convex hull result-ing from a 3-D object, we must project it into 3-D space by fixing three of the wrenchcoordinates. The GraspIt! system allows a user tochose which coordinates should be fixed and atwhat value. Although some choices for the fixedcoordinates may be useful for particular types ofgrasps, there are two projections that are of gener-al use for most grasps. If we fix the torque coordi-nates of the wrench space to 0, the resultingprojection shows the space of forces that can beapplied by the grasp without imparting a nettorque to the object, and if we fix the force coor-dinates to 0, we can visualize the space of torquesthat can be applied to the object without a netforce acting on it.

In order to construct a 3-D hull, we first pro-ject each of the 6-D hyper planes into 3-D. Thenwe use qhull to determine the vertices of theintersections of these half spaces, and constructthe hull bodies, which are presented in the fol-lowing examples. In addition to the projections,GraspIt! also shows the components of the worst-case disturbance wrench, −wmin, as a pair of pur-ple indicators emanating from the object’s frameof reference. These help to show where the graspis the weakest.

In the example shown in Figures 9 and 10,the Barrett hand is closed around the outside ofa mug. The purple indicators show that thegrasp is weakest when a disturbance force isapplied in the upward direction (with relation tothe upright position of the mug), and a torque isapplied along an axis between the thumb andfingers. From the wrench space projection into3-D force space (upper projection window), wesee that while the grasp can apply a variety offorces in a horizontal plane, it cannot apply largeforces in the vertical direction. This is becausethe contacts are arranged around the outerperimeter of the mug and there are no contactson the top or bottom of the mug. Thus, thegrasp must rely on frictional forces only to resista disturbance force in the vertical direction. Wealso see from the torque space projection (lowerprojection window) that this grasp cannot applylarge moments to the mug without a net force.This is because the contact normals all point in

Figure 9. A completed force-closure grasp of the mug (top view). The ε1and v1 values that were computed for this grasp are displayed in the lowerleft portion as the values e and v. The pair of purple indicators shows theforce and torque components of the worst-case disturbance wrench. Inthe upper left is a projection of the GWS that shows the space of forcesthat can be applied to the mug without creating a moment, and in thelower left is a projection that shows the space of torques that can beapplied without a net force acting on the object.

Figure 10. A force-closure grasp of the mug (side view).

Page 10: Graspit.final

DECEMBER 2004 IEEE Robotics & Automation Magazine 119

the general direction of the center of mass. Fig-ure 11 shows the same grasp as before, but nowthe finger surface material has been changedfrom plastic to rubber. Since the coefficient offriction at the contacts is much higher, largerfrictional forces can be supported by this grasp,and the quality of the grasp is dramaticallyincreased. Note the size of the force and torquespaces has also increased greatly.

Comparing the Grasps of an Object UsingThree Different HandsSince GraspIt! provides objective measures of thequality of a grasp, it allows a user to compare dif-ferent grasps of an object using the same or differ-ent robotic hands. It also allows the possibility ofautomatic grasp selection algorithms, which auto-matically evaluate a number of test grasps lookingfor the best one.

In these examples, the object to be graspedis the coffee mug, seen previously. It is fairlylarge, having a maximum diameter of 104 mm,and it is grasped from the side in each case. TheBarrett hand is able to wrap around the mug, asshown in Figure 11, and contact occurs on twoof the inner links for additional stability. Thefingers of the DLR hand are longer and able towrap further around the mug (Figure 12), andthe additional finger is able to provide somevertical support underneath the mug handle.Even using the palm, the parallel jaw gripper(Figure 13) can only contact the rounded mugin three places, resulting in a lower qualitygrasp. As is typical with parallel jaw grips of arounded object, the weak point of the grasp is atorque about the axis connecting the two small,opposing contact regions.

DynamicsThe analyses discussed previously are all per-formed on a static grasp. They take into accountthe types and positions of the contacts, but theydo not tell us how to form the grasp or evenwhether such an acquisition is possible. In orderto answer these questions, we must consider howthe hand and object move over time under theinfluence of gravity, inertial forces, and inresponse to collisions.

To compute the motion of each dynamic body in theworld, we use a numerical integration scheme that com-putes the change in velocity of each body over a small finitetime step given a set of forces acting on the body. Beyondthe external forces acting on the bodies, such as gravity andmotor forces, these forces must be solved for. This is doneusing two types of constraints on body motions: equalityconstraints are used to prevent bodies connected by a joint

from separating, and inequality constraints are used to pre-vent other bodies from interpenetrating. These constraintscan be formulated as part of a linear complementarity prob-lem and solved with Lemke’s algorithm, a pivoting methodsimilar to the simplex method. The solution is the set ofbody velocities and impulses that satisfy the constraints (thedetails of our implementation and further references can befound in [17]). After each iteration of the dynamics is

Figure 11. A force-closure grasp of the mug using rubber finger surfacesinstead of plastic.

Figure 12. A force-closure grasp of the mug using the DLR hand, whichhas a metal palm, inner link surfaces, and rubber fingertips.

Page 11: Graspit.final

IEEE Robotics & Automation Magazine DECEMBER 2004120

completed, the system can draw the contact forces at eachcontact point, and at any time, the dynamics may be pausedto examine the state of the system or to change the currentsimulation parameters.

Joint ControlWithout the application of external motor forces on the linksof a robot, they would fall limply under the influence of grav-ity. So, in every iteration of the dynamics, a control routine iscalled for each robot. This routine can be written by the user,but we have provided some default routines. If given a newdesired position for a robot, a trajectory generator creates alinear path in Cartesian space that has a continuous velocityand acceleration profile. The inverse kinematics of the parentrobot are then computed for each sample along this path, andthe joint trajectories are recorded. Or, if given a new set ofjoint positions, the trajectory generator creates the smoothjoint trajectories individually.

We are currently using simple PD controllers to controlthe motor forces of each joint. Given a joint position set pointfrom the trajectory, the controller for that joint determinesthe current error from that position and computes a jointforce using gains defined within the robot configuration file.The problem with using only PD control is that the actualposition never matches the desired position exactly, so in thefuture we plan to add a feed-forward component that wouldcompute the inverse dynamics of the system using the recur-sive Newton-Euler formulation.

Simulating Grasp FormationWith the dynamics in place, it is possible to study the tem-poral formation of grasps. In this example, the Barrett

hand is positioned above a wine glass, whichrests on its side on the table. The PD joint con-trollers of the Puma robot hold the wrist inplace, and the desired final position of the handjoints is set to fully closed. Figure 14 shows theinitial setup and five different time slices duringthe simulation. The default time step is 2.5 ms,but smaller steps may occur due to contactevents. Because there is very little fr ictionbetween the plastic and glass surfaces, andbecause the glass is tapered, the hand squeezesthe glass out of its grasp. As the simulation con-tinues, the wine glass slides and rolls off thetable, hitting the Puma robot on its way downto the floor. The full movie of this experimentcan be viewed at http://www.cs.columbia.edu/~amiller/graspit/movies.html.

Future DirectionsWe have presented a robotic grasping simulatorthat we believe could be a versatile tool for thegrasping community. In its current state, GraspIt!is useful in a variety of applications, but there arestill several features we would like to add.

◆ The focus of our grasp analysis has been on force-clo-sure grasps, which are useful for pick and place typetasks. When a task involves manipulation of the object,it is necessary to plan a manipulable grasp where arbi-trary velocities can be imparted to the object. By incor-porating manipulability and dexterity metrics, thesetypes of grasps could be analyzed as well.

◆ Currently, the force-closure quality metrics assumenothing is known about the space of external forcesthat might be applied to a grasped object during theexecution of the task. If certain task forces were morelikely to occur than others, it would be useful to pro-vide an interface for the operator to specify this taskwrench space. Then the quality metrics would moreaccurately reflect the quality of the grasp for the giventask. One possible method, involving the use of wrenchspace ellipsoids, is described in [18], but in an interac-tive setting, there may be other possible approaches.

◆ The current trajectory generator is quite simplistic anddoes not avoid singularities or joint force limits. Wewould like to implement a more sophisticated trajectorygeneration scheme as well as a path planner that couldplan an approach that avoids obstacles given a desiredgrasp and a starting point.

◆ We would like to move beyond rigid bodies and examinedeformable models. Deformable fingertips is a key advan-tage in human grasping because it provides a larger contactsurface area, and many robots are mimicking this feature byusing rubber coated fingertips. To accurately compute thereaction forces will involve using finite element methodsthat would break up a finger link into discrete deformablemass elements connected to a rigid skeletal structure.

Figure 13. A force-closure grasp of the mug using a parallel jaw gripper.

Page 12: Graspit.final

DECEMBER 2004 IEEE Robotics & Automation Magazine 121

Figure 14. The Barrett hand attempts a grasp of the wine glass, but due the low degree of friction at the contacts and the taperof the glass, the glass is squeezed out of the grasp. (a) shows the initial setup, and following from (b) to (f), snapshots are takenat 0.5103, 0.5425, 0.6148, 0.6586, 0.6956 seconds of simulation time. The full movie is available online athttp://www.cs.columbia.edu/~amiller/ graspit/movies.html..

(a) (b)

(c) (d)

(e) (f)

Page 13: Graspit.final

IEEE Robotics & Automation Magazine DECEMBER 2004122

◆ The last, and perhaps most exciting, area is automaticgrasp selection. This is an extremely difficult problemgiven the large dimensionality of the search space ofpossible grasps, and although it has been studied exten-sively, little progress has been made for general graspsusing complex articulated hands. We have implementeda grasp planner for the Barrett hand that uses a simplifiedversion of an object built out of shape primitives, such ascubes, spheres, and cylinders, and uses heuristic graspstrategies defined for these shapes to generate a set ofpossible grasping configurations [19]. Each of thesegrasping configurations is tested rapidly within the simu-lator, and if the grasp is feasible (there is no conflict withthe arm kinematics and the hand or arm is not blockedby an obstacle), it is evaluated. In this way, a few hun-dred grasps can be tested in under a minute and the bestgrasps can be presented to the user. We would like to tryto generalize this system so that it could be applied toother hands as well, and we are currently examining avariety of machine learning techniques that would fur-ther optimize the grasps found with the current planner.

AcknowledgmentsWe gratefully acknowledge the support and guidance of Prof.Henrik Christensen at the Royal Institute of Technology.We would also like to thank Prof. Gerd Hirzinger and Dr.Max Fischer from the German Aerospace Center (DLR) forproviding us with models of their robotic hand, Dr. MyronDiftler of NASA’s Johnson Space Center for the Robonauthand model, and Prof. Mavroidis from Rutgers Universityfor his group’s hand model. Finally, we would like to thankProf. Jeffrey Trinkle for his helpful advice regarding graspforce optimization and dynamic simulation. This work wasalso supported in part by an ONR/DARPA MURI award(ONR N00014-95-1-0601) and an NSF ITR award(0312271).

KeywordsGrasping, grasp analysis, simulation, robot hands.

References[1] A. Bicchi, “Hands for dextrous manipulation and robust grasping: A dif-

ficult road towards simplicity,” IEEE Trans. Robot. Automat., vol. 8, no. 5, pp. 560–572, 2000.

[2] T. Lozano-Pérez, J. Jones, E. Mazer, P. O’Donnell, and W. Grimson,“Handey: A robot system that recognizes, plans, and manipulates,” inProc. 1987 IEEE Int. Conf. Robot. Automat., 1987, pp. 843–849.

[3] D. Kragic, A. Miller, and P. Allen, “Real-time tracking meets onlinegrasp planning,” in Proc. 2001 IEEE Int. Conf. Robotics Automation,2001, pp. 2460–2465.

[4] S. Derby, “Simulating motion elements of general-purpose robot arms,”Int. J. Robot. Res., vol. 2, no. 1, pp. 3–12, 1983.

[5] S. Thomopoulos, Y. Papelis, and R. Tam, “IRODESS: Integrated robotdesign and simulation system,” in Proc. IEEE Control Systems Soc. Work-shop Computer-Aided Control Systems Design, 1989, pp. 117–122.

[6] P. Corke, “A robotics toolbox for MATLAB,” IEEE Robot. Automat.Mag., vol. 3, no. 1, pp. 24–32, 1996.

[7] A. Speck and H. Klaeren, “RoboSiM: Java 3D robot visualization,” inIECON ‘99 Proc., 1999, pp. 821–826.

[8] D. Ruspini and O. Khatib, “Collision/contact models for the dynamicsimulation and haptic interaction,” in Proc. 9th Int. Symp. RoboticsResearch ISRR’99, pp. 185–194.

[9] J. Chan and Y. Liu, “Dynamic simulation of multi-fingered robot handsbased on a unified model,” Robot. Autonomous Syst., vol. 32, pp. 185–201, 2000.

[10] J. Butterfass, G. Hirzinger, S. Knoch, and H. Liu, “DLR’s multisensoryarticulated hand, part I: Hard- and software architecture,” in Proc. 1998IEEE Int. Conf. Robotics and Automation, 1998, pp. 2081–2086.

[11] C. Lovchik and M. Diftler, “The Robonaut hand: A dexterous robothand for space,” in Proc. 1999 IEEE Int. Conf. Robotics Automation,1999, pp. 907–912.

[12] K. DeLaurentis, C. Pfeiffer, and C. Mavroidis, “Development of ashape memory alloy actuated hand,” in Proc. 7th Int. Conf. NewActuators, 2000, pp. 281–284.

[13] E. Larsen, S. Gottschalk, M. Lin, and D. Manocha, “Fast proximityqueries with swept sphere volumes,” Dept. of Computer Science,UNC, Chapel Hill, NC, Tech. Rep. TR99-018, 1999.

[14] R. Murray, Z. Li, and S. Sastry, A Mathematical Introduction to RoboticManipulation. Boca Raton, FL: CRC Press, 1994.

[15] C. Ferrari and J. Canny, “Planning optimal grasps,” in Proc. 1992 IEEEInt. Conf. Robotics and Automation, 1992, pp. 2290–2295.

[16] A. Miller and P. Allen, “Examples of 3D grasp quality computations,” inProc. 1999 IEEE Int. Conf. Robotics and Automation, 1999, pp. 1240–1246.

[17] A. Miller and H. Christensen, “Implementation of multi-rigid-bodydynamics within a robotic grasping simulator,” in Proc. 2003 IEEE Int.Conf. Robotics and Automation, 2003, pp. 2262–2268.

[18] Z. Li, P. Hsu, and S. Sastry, “Grasping and coordinated manipulationby a multifingered robot hand,” Int. J. Robot. Res., vol. 8, no. 4, pp. 33–50, 1989.

[19] A. Miller, S. Knoop, P. Allen, and H. Christensen, “Automatic graspplanning using shape primitives,” in Proc. 2003 IEEE Int. Conf. Roboticsand Automation, 2003, pp. 1824–1829.

[20] C.B. Barber, D.B. Dobkin, and H. Huhdanpaa, “The (Q)uickhullalgorithm for convex hulls,” ACM Trans. Mathematical Software, vol. 22,no. 4, pp. 469–483, Dec. 1996.

[21] R. Pelossof, A. Miller, P. Allen, and T. Jerba, “An SVM learningapproach to robotic grasping,” in Proc. IEEE Int. Conf. on Robotics andAutomation, 2004, pp. 3215–3218.

Andrew T. Miller is a research scientist in the ComputerScience Department at Columbia University where he earnedhis Ph.D. in 2001. After graduating, he spent one year work-ing with Henrik Christensen at the Royal Institute of Tech-nology in Stockholm, Sweden. He received his B.A. incomputer science from Hamilton College in 1995. Hisresearch interests include robotic simulation, grasp analysis,computational geometry, and computer vision. He is current-ly working on a collaborative project to develop a biome-chanically realistic model of the human hand.

Peter K. Allen is a professor of computer science at ColumbiaUniversity. His current research interests include 3-D modeling,real-time computer vision, robotic hand-eye coordination, andmodel-based sensor planning. He received the A.B. degree fromBrown University in mathematics-economics, the M.S. degree incomputer science from the University of Oregon, and the Ph.D.in computer science from the University of Pennsylvania.

Address for Correspondence: Andrew T. Miller, Dept. of Com-puter Science, Columbia University, New York, NY 10027-7003 USA. E-mail: [email protected].