Kinematics & Grasping · Kinematics & Grasping Goal : understand ideal robot mechanisms Robot...

31
Kinematics & Grasping Goal : understand ideal robot mechanisms Robot positions and shapes as a function of control parameters – kinematics Need to know: Representing mechanism geometry Standard configurations Degrees of freedom Grippers and graspability conditions

Transcript of Kinematics & Grasping · Kinematics & Grasping Goal : understand ideal robot mechanisms Robot...

  • Kinematics & GraspingGoal : understand ideal robot mechanisms

    Robot positions and shapes as a function of control parameters – kinematics

    Need to know:• Representing mechanism geometry• Standard configurations• Degrees of freedom• Grippers and graspability conditions

  • 3D Coordinate Systems

    Left handed (Right handed reverses +Z direction)

  • Vectors & Points in 3DVectors & Points in 3D

    ( )′=⎥⎥⎥

    ⎢⎢⎢

    ⎡= cba

    cba

    p ,,rPoint Vector ( )′=⎥⎥⎥

    ⎢⎢⎢

    ⎡= zyx

    z

    y

    x

    vvvvvv

    v ,,r

  • Local Reference Frames

    • Local (translated) coordinates • Global (untranslated) coordinates

    ( )fed ,,( cebda +++ ,,

    can be can be expressedexpressed asaspr

    Local could also have further subLocal could also have further sub--local frameslocal frames

    )f

  • TranslationsprMove to Move to q

    r

    ⎥⎥⎥

    ⎢⎢⎢

    ⎡+=

    cba

    pq rr

  • RotationsRotate about Z axisRotate about Z axis

    A lot of conventionsA lot of conventionsHere: positive is antiHere: positive is anti--clockwise when looking along +Zclockwise when looking along +Z•• in local (rotated) coordinates is (in local (rotated) coordinates is (a,b,ca,b,c)’)’•• in global (in global (unrotatedunrotated) coordinates is ) coordinates is

    (a (a coscos( )( )--b sin( ), a sin( )+b b sin( ), a sin( )+b coscos( ),c)’( ),c)’θθθθ

    θpr

    pr

  • Rotation Matrix Representation I( ) ( )′×+××−×⎯→⎯′= cbabacbap ),cos()sin(),sin()cos(,, θθθθr

    ⎥⎥⎥

    ⎢⎢⎢

    ⎥⎥⎥

    ⎢⎢⎢

    ⎡ −=

    cba

    pR zzzz

    zz

    1000)cos()sin(0)sin()cos(

    )( θθθθ

    θ r

    Much more compact and clearerMuch more compact and clearer

  • Rotation Matrix Representation II

    ⎥⎥⎥

    ⎢⎢⎢

    ⎡−=

    )cos()sin(0)sin()cos(0

    001)(

    xx

    xxxxRθθθθθ

    ⎥⎥⎥

    ⎢⎢⎢

    −=

    )cos(0)sin(010

    )sin(0)cos()(

    yy

    yy

    yyRθθ

    θθθ

  • Other Rotation Representations

    All equivalent but different parameters:All equivalent but different parameters:•• Yaw, pitch, rollYaw, pitch, roll•• Azimuth, elevation, twistAzimuth, elevation, twist•• Axis + angleAxis + angle•• Slant, tilt, twistSlant, tilt, twist•• QuaternionQuaternion

  • Full Rotation Specification• Need 3 angles for arbitrary 3D rotation• Lock & key example• Rotation angles :

    • Warning: rotation order by convention butmust be used consistently:

    ),,( γβα

    pRRRpR xyzrr )()()(),,( αβγγβα =

    )()()()()()( λβααβγ zyxxyz RRRRRR ≠

  • Full Transformation SpecificationEach connection has a new local coordinate systemEach connection has a new local coordinate system

    Need to specify 6 degrees of freedomNeed to specify 6 degrees of freedom3 rotation + 3 translation3 rotation + 3 translation

    ),(),,,,,( tTttttransform zyxzyxrr

    θθθθ =

  • Kinematic Chainspr is at:is at:

    In CIn C22::

    In CIn C11::

    In CIn C00::

    ⎟⎟⎠

    ⎞⎜⎜⎝

    ⎛0

    2d

    ⎟⎟⎠

    ⎞⎜⎜⎝

    ⎛+⎟⎟⎠

    ⎞⎜⎜⎝

    ⎛00

    )( 122dd

    R θ

    ⎟⎟⎠

    ⎞⎜⎜⎝

    ⎛+⎟⎟

    ⎞⎜⎜⎝

    ⎛+⎟⎟⎠

    ⎞⎜⎜⎝

    ⎛0

    ]00

    )()[( 01221ddd

    RR θθ

  • Homogeneous Coordinates I

    ⎥⎦

    ⎤⎢⎣

    ⎡=

    10)( 11

    1 r

    rrtRH θ

    Messy when more than 2 links, as in robotMessy when more than 2 links, as in robotSo: pack rotation and translation into So: pack rotation and translation into

    Homogeneous coordinate matrixHomogeneous coordinate matrix

    Extend points with a 1 from 3-vector to 4-vectorExtend vectors with a 0 from 3-vector to 4-vectorPack rotation and translation into 4x4 matrix:rotation and translation into 4x4 matrix:

    3 rotation parameters:3 rotation parameters:3 translation parameters: 3 translation parameters:

    1θr

    1tr

  • Homogeneous coordinates II

    ⎥⎦

    ⎤⎢⎣

    ⎡=

    1* pp

    rr

    In CIn C22::

    In CIn C11::

    In CIn C00::

    Longer chains for robot arms (e.g. 6 links):

    *pr

    *2 pHr

    *21 pHHr

    Longer chains for robot arms (e.g. 6 links):

    *654321 pHHHHHHr

  • Adding Joints

    )0,0,,0,0,0( λtransform

    Prismatic joint:Prismatic joint:sliding structuressliding structuresparameterize one translation direction per jointparameterize one translation direction per jointE.g.: E.g.:

    slides in the X directionslides in the X direction

    Revolute joint:Revolute joint:rotatesrotatesparameterize one rotation angle per jointparameterize one rotation angle per joint

  • Degrees of Freedom•• Controllable Controllable DoFDoF: number of joints: number of joints•• Effective Effective DoFDoF: number of : number of DoFDoF you can get after multipleyou can get after multiple

    motionsmotions

    car has 2 controllable (move, turn) but can adjust XYcar has 2 controllable (move, turn) but can adjust XYposition and orientation so 3 effective position and orientation so 3 effective DoFDoF

    •• Task Task DoFDoF: configurations in space dimensionality:: configurations in space dimensionality:2D : 3 (2D : 3 (x,y,anglex,y,angle))3D : 6 (x,y,z,3 angles)3D : 6 (x,y,z,3 angles)

  • Forward and Inverse Kinematics

    Forward:Forward:Given joint angles, find gripper positionGiven joint angles, find gripper positionEasy for sequential joints in robot arm: just multiplyEasy for sequential joints in robot arm: just multiplymatricesmatrices

    Inverse:Inverse:Given desired gripper position, find joint anglesGiven desired gripper position, find joint anglesHard for sequential joints Hard for sequential joints –– geometric reasoninggeometric reasoning

  • Configuration Space I

    Alternative representation to scene coordinatesAlternative representation to scene coordinates

    Number of joints=JNumber of joints=JJJ--dimensional spacedimensional space

    Binary encoding: 0:invalid pose, 1: free spaceBinary encoding: 0:invalid pose, 1: free spaceReal encoding: “distance” from goal configurationReal encoding: “distance” from goal configuration

    Point in C.S = configuration in real spacePoint in C.S = configuration in real spaceCurve in C.S. = motion path in real spaceCurve in C.S. = motion path in real space

  • Configuration Space II

  • Sequential & Parallel Mechanisms

    Simplified into 2DSimplified into 2D

    Serial manipulator Parallel manipulatorSerial manipulator Parallel manipulatorvary: vary: vary: vary: 321 ,, ddd321 ,, θθθ

  • Computing Positions & Parameters

    Serial ParallelForward(param->position)

    Easy (just multiply matrices)

    Hard (messy robot specific geometry)

    Inverse(position->param)

    Hard (messy robot specific geometry)

    Easy (just read off lengths fromgripper position)

  • SPECIFYING ROBOT POSITIONS

    1.1. Actuator levelActuator level: specify voltages that generate: specify voltages that generaterequired joint angles.required joint angles.

    2. 2. Joint levelJoint level: specify joint angles and let system: specify joint angles and let systemcalculate voltages.calculate voltages.

    3. 3. EffectorEffector levellevel: specify tool position and let: specify tool position and letsystem compute joint angles.system compute joint angles.

    4. 4. Task levelTask level: specify the required task and let the: specify the required task and let thesystem compute the sequence of tool positionssystem compute the sequence of tool positions

    Most robot programming is at level Most robot programming is at level 2 or 32 or 3..

  • Grippers and Grasping•• Gripper: special tool for general part manipulationGripper: special tool for general part manipulation•• Fingers/gripper: 2, 3, 5Fingers/gripper: 2, 3, 5•• Joints/finger: 1, 2, 3Joints/finger: 1, 2, 3

    Your hand: 5 fingers * 3 Your hand: 5 fingers * 3 DoFDoF + wrist position (6) = 21 + wrist position (6) = 21 DoFDoF. Whew!. Whew!

  • Barret Hand

    2 parallel fingers (spread uniformly)2 parallel fingers (spread uniformly)1 opposable finger1 opposable fingerDoFDoF: 4 fingers (2 finger joints bend uniformly) : 4 fingers (2 finger joints bend uniformly)

  • Barret Hand

  • Finger Contact GeometryCoefficient of friction at fingertip: Coefficient of friction at fingertip: Surface normal: direction perpendicular to surface:Surface normal: direction perpendicular to surface:Friction cone: angles within about surface noFriction cone: angles within about surface normalrmalForce direction: direction finger pushedForce direction: direction finger pushedNoNo--slip condition: slip condition:

    [ ]1,0∈µ

    )(cos 1 µα −=nr

    fr

    µ≥nf ror

  • Force ClosureNeed balanced forces or else object twistsNeed balanced forces or else object twists

    2 fingers 2 fingers –– forces oppose:forces oppose:3 fingers 3 fingers –– forces meet at point:forces meet at point:

    Force closure: point where forces meet lies withinForce closure: point where forces meet lies within3 friction cones otherwise object slips3 friction cones otherwise object slips

    0321 =++ fffrrr

    021 =+ ffrr

  • Other Grasping Criteria

    Some heuristics for a good grasp:Some heuristics for a good grasp:•• Contact points form Contact points form nearly equilateralnearly equilateral triangletriangle•• Contact points make a big triangleContact points make a big triangle•• Force focus point near centreForce focus point near centre--ofof--mass mass

  • Grasp Algorithm

    1.1. Isolate boundaryIsolate boundary2.2. Locate large enough smooth graspable sectionsLocate large enough smooth graspable sections3.3. Compute surface Compute surface normalsnormals4.4. Pick triples of grasp pointsPick triples of grasp points5.5. Evaluate for closure & select by heuristicsEvaluate for closure & select by heuristics6.6. Evaluate for Evaluate for reachabilityreachability and collisionsand collisions7.7. Compute force directions and amountCompute force directions and amount8.8. Plan approach and finger closing strategyPlan approach and finger closing strategy9.9. Contact surface & apply grasping forceContact surface & apply grasping force10.10. Lift (& hope) Lift (& hope)

  • Kinematics Summary

    1.1. Need vector & matrix form for robot geometryNeed vector & matrix form for robot geometry2.2. Geometry of joints & joint parametersGeometry of joints & joint parameters3.3. Forward & inverse kinematicsForward & inverse kinematics4.4. Degrees of freedomDegrees of freedom5.5. Grippers & grasping conditionsGrippers & grasping conditions

    Kinematics & Grasping3D Coordinate SystemsVectors & Points in 3DLocal Reference FramesTranslationsOther Rotation RepresentationsFull Rotation SpecificationFull Transformation SpecificationKinematic ChainsHomogeneous Coordinates IHomogeneous coordinates IIAdding JointsForward and Inverse KinematicsConfiguration Space IConfiguration Space IIComputing Positions & ParametersSPECIFYING ROBOT POSITIONSGrippers and GraspingBarret HandBarret HandFinger Contact GeometryForce ClosureOther Grasping CriteriaGrasp AlgorithmKinematics Summary