![Page 1: Robot Kinematics - Department of Computer Sciencesleonard/cs436/robot_kinematics.pdf · Forward Kinematics Guidelines for assigning frames to robot links: There are several conventions](https://reader031.vdocuments.net/reader031/viewer/2022021510/5b1461377f8b9a347c8cd93a/html5/thumbnails/1.jpg)
Robot Kinematics
![Page 2: Robot Kinematics - Department of Computer Sciencesleonard/cs436/robot_kinematics.pdf · Forward Kinematics Guidelines for assigning frames to robot links: There are several conventions](https://reader031.vdocuments.net/reader031/viewer/2022021510/5b1461377f8b9a347c8cd93a/html5/thumbnails/2.jpg)
Robot Manipulators ● A robot manipulator is typically
moved through its joints
● Revolute: rotate about an axis
● Prismatic: translate along an axis
SCARA 6 axes robot arm
![Page 3: Robot Kinematics - Department of Computer Sciencesleonard/cs436/robot_kinematics.pdf · Forward Kinematics Guidelines for assigning frames to robot links: There are several conventions](https://reader031.vdocuments.net/reader031/viewer/2022021510/5b1461377f8b9a347c8cd93a/html5/thumbnails/3.jpg)
Kinematics
Cartesian Space Tool Frame (T)
Base Frame (B)
[ BRT, BtT ]
BRT :Orientation of T wrt B BtT : Position of T wrt B
Joint Space
Joint 1 = q1
Joint 2 = q2
... Joint N = qN
FORWARD KINEMATICS
INVERSE KINEMATICS
[BRT, BtT] = f(q)
q = f -1( [BRT, BtT] )
Rigid body motion Transformation between
coordinate frames
Linear algebra
![Page 4: Robot Kinematics - Department of Computer Sciencesleonard/cs436/robot_kinematics.pdf · Forward Kinematics Guidelines for assigning frames to robot links: There are several conventions](https://reader031.vdocuments.net/reader031/viewer/2022021510/5b1461377f8b9a347c8cd93a/html5/thumbnails/4.jpg)
Transformation Within Joint Space
● Joint spaces are typically
defined in Rn
Thus for a vector
we can use additions
subtractions
qA
qC
qB
![Page 5: Robot Kinematics - Department of Computer Sciencesleonard/cs436/robot_kinematics.pdf · Forward Kinematics Guidelines for assigning frames to robot links: There are several conventions](https://reader031.vdocuments.net/reader031/viewer/2022021510/5b1461377f8b9a347c8cd93a/html5/thumbnails/5.jpg)
Kinematics
Joint Space
Joint 1 = q1
Joint 2 = q2
... Joint N = qN
FORWARD KINEMATICS
INVERSE KINEMATICS
[BRT, BtT] = f(q)
q = f -1( [BRT, BtT] )
Rigid body motion Transformation between
coordinate frames
Linear algebra
Cartesian Space Tool Frame (T)
Base Frame (B)
[ BRT, BtT ]
BRT :Orientation of T wrt B BtT : Position of T wrt B
![Page 6: Robot Kinematics - Department of Computer Sciencesleonard/cs436/robot_kinematics.pdf · Forward Kinematics Guidelines for assigning frames to robot links: There are several conventions](https://reader031.vdocuments.net/reader031/viewer/2022021510/5b1461377f8b9a347c8cd93a/html5/thumbnails/6.jpg)
Cartesian Transformation
Position and Orientation
● Combine position and orientation:
● Special Euclidean Group: SE(3)
Ap = ARB Bp + AtB
Ap = AEB
Bp
p
Homogeneous representation
![Page 7: Robot Kinematics - Department of Computer Sciencesleonard/cs436/robot_kinematics.pdf · Forward Kinematics Guidelines for assigning frames to robot links: There are several conventions](https://reader031.vdocuments.net/reader031/viewer/2022021510/5b1461377f8b9a347c8cd93a/html5/thumbnails/7.jpg)
●3D Rotations
● LOTS of different ways of representing them:
● Quaternion, Euler angles, axis/angle, Rodrigues
● ONE concept
A 3x3 rotation matrix that Ap = ARB
Bp
Where (ARBT)
ARB = ARB (ARB
T) = I
● Elementary rotations
Rotation about x Rotation about y Rotation about z
R = RxRyRz RzRyRx
cossin0
sincos0
001
)(xR
cos0sin
010
sin0cos
)(yR
100
0cossin
0sincos
)(
zR
![Page 8: Robot Kinematics - Department of Computer Sciencesleonard/cs436/robot_kinematics.pdf · Forward Kinematics Guidelines for assigning frames to robot links: There are several conventions](https://reader031.vdocuments.net/reader031/viewer/2022021510/5b1461377f8b9a347c8cd93a/html5/thumbnails/8.jpg)
Cartesian Transformation
Kinematic Chain
Cp
Ap = AEB BEC Cp Ap = AEC Cp
BEC
AEB
![Page 9: Robot Kinematics - Department of Computer Sciencesleonard/cs436/robot_kinematics.pdf · Forward Kinematics Guidelines for assigning frames to robot links: There are several conventions](https://reader031.vdocuments.net/reader031/viewer/2022021510/5b1461377f8b9a347c8cd93a/html5/thumbnails/9.jpg)
Kinematics
Cartesian Space Tool Frame (T)
Base Frame (B)
[ BRT, BtT ]
BRT :Orientation of T wrt B BtT : Position of T wrt B
Joint Space
Joint 1 = q1
Joint 2 = q2
... Joint N = qN
FORWARD KINEMATICS
INVERSE KINEMATICS
[BRT, BtT] = f(q)
q = f -1( [BRT, BtT] )
Rigid body motion Transformation between
coordinate frames
Linear algebra
![Page 10: Robot Kinematics - Department of Computer Sciencesleonard/cs436/robot_kinematics.pdf · Forward Kinematics Guidelines for assigning frames to robot links: There are several conventions](https://reader031.vdocuments.net/reader031/viewer/2022021510/5b1461377f8b9a347c8cd93a/html5/thumbnails/10.jpg)
![Page 11: Robot Kinematics - Department of Computer Sciencesleonard/cs436/robot_kinematics.pdf · Forward Kinematics Guidelines for assigning frames to robot links: There are several conventions](https://reader031.vdocuments.net/reader031/viewer/2022021510/5b1461377f8b9a347c8cd93a/html5/thumbnails/11.jpg)
Forward Kinematics
Guidelines for assigning frames to robot links:
● There are several conventions
● Denavit Hartenberg (DH), modified DH, Hayati, etc.
● These are conventions (habits), not laws!
1) Choose the base and tool coordinate frame
● Make your life easy!
2) Start from the base and move towards the tool
● Make your life easy!
● In general each link has a coordinate frame.
3) Align each coordinate frame with a joint actuator
● Conventionally it’s the “Z” axis but this is not necessary and any axis can be use to represent the motion of a joint Barrett WAM
![Page 12: Robot Kinematics - Department of Computer Sciencesleonard/cs436/robot_kinematics.pdf · Forward Kinematics Guidelines for assigning frames to robot links: There are several conventions](https://reader031.vdocuments.net/reader031/viewer/2022021510/5b1461377f8b9a347c8cd93a/html5/thumbnails/12.jpg)
Forward Kinematics 3D
p
x
y
z
q1
y
x
z
AtB
q2
y
z
x
BtC
q1
Forward Kinematics
![Page 13: Robot Kinematics - Department of Computer Sciencesleonard/cs436/robot_kinematics.pdf · Forward Kinematics Guidelines for assigning frames to robot links: There are several conventions](https://reader031.vdocuments.net/reader031/viewer/2022021510/5b1461377f8b9a347c8cd93a/html5/thumbnails/13.jpg)
Kinematics
Cartesian Space Tool Frame (T)
Base Frame (B)
[ BRT, BtT ]
BRT :Orientation of T wrt B BtT : Position of T wrt B
Joint Space
Joint 1 = q1
Joint 2 = q2
... Joint N = qN
FORWARD KINEMATICS
INVERSE KINEMATICS
[BRT, BtT] = f(q)
q = f -1( [BRT, BtT] )
Rigid body motion Transformation between
coordinate frames
Linear algebra
![Page 14: Robot Kinematics - Department of Computer Sciencesleonard/cs436/robot_kinematics.pdf · Forward Kinematics Guidelines for assigning frames to robot links: There are several conventions](https://reader031.vdocuments.net/reader031/viewer/2022021510/5b1461377f8b9a347c8cd93a/html5/thumbnails/14.jpg)
Inverse Kinematics 2D
x
y
y x
q t Given ARB and AtB find q
q only appears in ARB so solving R for q is pretty easy. With several joints, the inverse kinematics gets very messy.
![Page 15: Robot Kinematics - Department of Computer Sciencesleonard/cs436/robot_kinematics.pdf · Forward Kinematics Guidelines for assigning frames to robot links: There are several conventions](https://reader031.vdocuments.net/reader031/viewer/2022021510/5b1461377f8b9a347c8cd93a/html5/thumbnails/15.jpg)
Inverse Kinematics 3D
x
y
z
q1
y
x
z
AtB
q2
y
z
x
BtC
q1
Likewise, in 3D we want to solve for the position and orientation of the last coordinate frame: Find q1 and q2 such that
Solving the inverse kinematics gets messy fast! A) For a robot with several joints, a symbolic
solution can be difficult to get B) A numerical solution (Newton’s method) is
more generic Note that the inverse kinematics is NOT
AEC-1 = CEA
![Page 16: Robot Kinematics - Department of Computer Sciencesleonard/cs436/robot_kinematics.pdf · Forward Kinematics Guidelines for assigning frames to robot links: There are several conventions](https://reader031.vdocuments.net/reader031/viewer/2022021510/5b1461377f8b9a347c8cd93a/html5/thumbnails/16.jpg)
Kinematics
Joint Space
Joint 1 = q̇1
Joint 2 = q̇2
... Joint N = q̇N
JACOBIAN
INVERSE JACOBIAN
[ v, w ]T = J(q) q ̇
q ̇= J-1(q) [ v, w ]T
Rigid body motion Transformation between
coordinate frames
Linear algebra
Cartesian Space Tool Frame (T)
Base Frame (B)
[ BvT, BwT ]
BvT :linear vel. of T wrt B
BwT : angular vel. of T wrt B
![Page 17: Robot Kinematics - Department of Computer Sciencesleonard/cs436/robot_kinematics.pdf · Forward Kinematics Guidelines for assigning frames to robot links: There are several conventions](https://reader031.vdocuments.net/reader031/viewer/2022021510/5b1461377f8b9a347c8cd93a/html5/thumbnails/17.jpg)
Rigid Body Transformation Relates two coordinate frames
Rigid Body Velocity Relate a 3D velocity in one coordinate frame to an equivalent velocity in another coordinate frame
![Page 18: Robot Kinematics - Department of Computer Sciencesleonard/cs436/robot_kinematics.pdf · Forward Kinematics Guidelines for assigning frames to robot links: There are several conventions](https://reader031.vdocuments.net/reader031/viewer/2022021510/5b1461377f8b9a347c8cd93a/html5/thumbnails/18.jpg)
Rotational Velocity
We note that a rotation relates the coordinates
of 3D points with
Deriving on both sides with respect to time we get
ptRtp B
B
AA )()(
pRdt
tpdtv B
B
AA
pA
)()(
pRRRtv B
B
A
B
A
B
A
pA )()( 1
pRRtv A
A
B
B
A
pA )()(
![Page 19: Robot Kinematics - Department of Computer Sciencesleonard/cs436/robot_kinematics.pdf · Forward Kinematics Guidelines for assigning frames to robot links: There are several conventions](https://reader031.vdocuments.net/reader031/viewer/2022021510/5b1461377f8b9a347c8cd93a/html5/thumbnails/19.jpg)
Rotational Velocity
1
b
A
B
A RR
0
0
0
ˆ
xy
xz
yz
aa
aa
aa
ais skew symmetric
And the instantaneous spatial angular velocity is defined by Where AwB = [ wx wy wz ]
T form a vector that represents the angular velocity of a body.
1
0
0
0
:ˆ
B
A
B
A
xy
xz
yz
B
A RR
![Page 20: Robot Kinematics - Department of Computer Sciencesleonard/cs436/robot_kinematics.pdf · Forward Kinematics Guidelines for assigning frames to robot links: There are several conventions](https://reader031.vdocuments.net/reader031/viewer/2022021510/5b1461377f8b9a347c8cd93a/html5/thumbnails/20.jpg)
Spatial Velocity
10
)()()(
ttRtE B
A
B
A
B
A t
001000
1 B
A
B
AT
B
A
B
AT
B
A
B
A
B
AT
B
AT
B
A
B
A
B
A
B
A
B
A RRRRRRREE
tttt
The “s”patial velocity is defined by 1ˆ B
A
B
As
B
A EEV
Where the linear velocity is defined by
B
A
B
AT
B
A
B
As
B
A RRv tt
T
B
A
B
As
B
A RR̂
And the angular velocity is define as before by
Velocity of a rigid body as seen from another frame (here called the “spatial” frame)
![Page 21: Robot Kinematics - Department of Computer Sciencesleonard/cs436/robot_kinematics.pdf · Forward Kinematics Guidelines for assigning frames to robot links: There are several conventions](https://reader031.vdocuments.net/reader031/viewer/2022021510/5b1461377f8b9a347c8cd93a/html5/thumbnails/21.jpg)
Body Velocity
10
)()()(
ttRtE B
A
B
A
B
A t
00ˆ 1 B
AT
B
A
B
AT
B
A
B
A
B
Ab
B
A RRREEV
t
The “b”ody velocity is defined by
B
A
B
Ab
B
A EEV 1ˆ
Where the linear velocity is defined by
B
AT
B
Ab
B
A Rv t
B
AT
B
Ab
B
A RR ̂
And the angular velocity is define as before by
Velocity of a rigid body with respect to its own frame
![Page 22: Robot Kinematics - Department of Computer Sciencesleonard/cs436/robot_kinematics.pdf · Forward Kinematics Guidelines for assigning frames to robot links: There are several conventions](https://reader031.vdocuments.net/reader031/viewer/2022021510/5b1461377f8b9a347c8cd93a/html5/thumbnails/22.jpg)
Transform Body Velocity to Spatial
Velocity
b
B
A
b
B
A
B
A
B
A
B
A
B
A
s
B
A
s
B
A v
R
RRv
0
t̂
“b”ody
“s”patial
If you are given a “body velocity”: 1) Rotate the tool about a given axis (in the tool frame) 2) Drive the tool along a given axis (in the tool frame) Then you can compute the equivalent velocity in the “spatial” frame according to
![Page 23: Robot Kinematics - Department of Computer Sciencesleonard/cs436/robot_kinematics.pdf · Forward Kinematics Guidelines for assigning frames to robot links: There are several conventions](https://reader031.vdocuments.net/reader031/viewer/2022021510/5b1461377f8b9a347c8cd93a/html5/thumbnails/23.jpg)
Rigid body motion Transformation between
coordinate frames
Linear algebra
Kinematics
JACOBIAN
INVERSE JACOBIAN
[ v, w ]T = J(q) q ̇
q ̇= J-1(q) [ v, w ]T
Cartesian Space Velocity
[ v, w ]
v: linear velocity w: angular velocity
Joint Space Velocity
Joint 1 = q̇1
Joint 2 = q̇2
... Joint N = q̇N
![Page 24: Robot Kinematics - Department of Computer Sciencesleonard/cs436/robot_kinematics.pdf · Forward Kinematics Guidelines for assigning frames to robot links: There are several conventions](https://reader031.vdocuments.net/reader031/viewer/2022021510/5b1461377f8b9a347c8cd93a/html5/thumbnails/24.jpg)
Manipulator Jacobian
Spatial velocity of the “T”ool in the “B”ase frame is We change the time varying trajectory to be a time varying joint trajectory
Applying the chain rule
Derivative of the forward kinematics wrt qi
Inverse of the forward kinematics
)()(ˆ 1 tEtEV T
B
T
Bs
T
B
))(())((ˆ 1 tEtEV T
B
T
Bs
T
Bqq
))((ˆ
1
tEqV B
TN
i
iq
Es
T
B
i
TB
q
i
N
i
B
T
q
Es
T
B qtEVi
TB
1
))((ˆ q
![Page 25: Robot Kinematics - Department of Computer Sciencesleonard/cs436/robot_kinematics.pdf · Forward Kinematics Guidelines for assigning frames to robot links: There are several conventions](https://reader031.vdocuments.net/reader031/viewer/2022021510/5b1461377f8b9a347c8cd93a/html5/thumbnails/25.jpg)
Manipulator Jacobian
Lets rewrite the previous result as
Where J(q) is a 6xN matrix called the manipulator Jacobian that relates joint velocities to Cartesian velocities. Note that the Jacobian depends on q and, therefore, is configuration dependant.
qq )(Jv
s
T
B
s
T
B
![Page 26: Robot Kinematics - Department of Computer Sciencesleonard/cs436/robot_kinematics.pdf · Forward Kinematics Guidelines for assigning frames to robot links: There are several conventions](https://reader031.vdocuments.net/reader031/viewer/2022021510/5b1461377f8b9a347c8cd93a/html5/thumbnails/26.jpg)
Manipulator Jacobian
● Each column of J(q) is given by the linear and
angular velocities elements (vx, vy, vz, wx, wy,
wz) found in each
● Thus, given the following “extraction” operator
J has the following structure
B
T
i
T
B
Eq
E
vv
00
ˆ
B
T
N
T
B
B
TT
B
Eq
EE
q
EJ
1
)(q
![Page 27: Robot Kinematics - Department of Computer Sciencesleonard/cs436/robot_kinematics.pdf · Forward Kinematics Guidelines for assigning frames to robot links: There are several conventions](https://reader031.vdocuments.net/reader031/viewer/2022021510/5b1461377f8b9a347c8cd93a/html5/thumbnails/27.jpg)
Rigid body motion Transformation between
coordinate frames
Linear algebra
Kinematics
JACOBIAN
INVERSE JACOBIAN
[ v, w ]T = J(q) q ̇
q ̇= J-1(q) [ v, w ]T
Cartesian Space Tool Frame (T)
Base Frame (B)
[ BvT, BwT ]
BvT :linear vel. of T wrt B
BwT : angular vel. of T wrt B
Joint Space
Joint 1 = q̇1
Joint 2 = q̇2
... Joint N = q̇N
![Page 28: Robot Kinematics - Department of Computer Sciencesleonard/cs436/robot_kinematics.pdf · Forward Kinematics Guidelines for assigning frames to robot links: There are several conventions](https://reader031.vdocuments.net/reader031/viewer/2022021510/5b1461377f8b9a347c8cd93a/html5/thumbnails/28.jpg)
Manipulator Jacobian
We just derived that given a vector of joint velocities, the velocity of the tool as seen in the base of the robot is given by
If, instead we want to tool to move with a velocity expressed in the base frame, the corresponding joint velocities can be computed by Inverting a matrix is much easier than computing the inverse kinematics!
![Page 29: Robot Kinematics - Department of Computer Sciencesleonard/cs436/robot_kinematics.pdf · Forward Kinematics Guidelines for assigning frames to robot links: There are several conventions](https://reader031.vdocuments.net/reader031/viewer/2022021510/5b1461377f8b9a347c8cd93a/html5/thumbnails/29.jpg)
Manipulator Jacobian
What if the Jacobian has no inverse? A) No solution: The velocity is impossible B) Infinity of solutions: Some joints can be moved without affecting the velocity (i.e. when two axes are colinnear)
v
A)
The robot cannot move in this direction when the robot is in this configuration. Hence J(q) is singular.
In this configuration, q1 and q3 can counter rotate. Hence J(q) is singular.
B)
q1 q2
q3
q1̇ = -q3̇