-
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