Notes_05_02
1 of 9
Two-Dimensional Experimental Kinematics
Digitize locations of landmarks ri on body i for points k=1 to n at given time t
Pk
All points must be attached to body i
Use landmark weighting factor f Pk 1 if point k is available at time t. Use f Pk 0 if point k
not available at given time t.
Pk
Determine ri
r
ri Pk riPk
Pk
i
at given time t.
Mean values
ri mean
ri mean
ri mean
rimean
r
mean
i
n
n
n
Pk
f Pk ri / f Pk
k 1
k 1
n
n
Pk
f Pk ri / f Pk
k 1
k 1
n
n
Pk
f Pk ri / f Pk
k 1
k 1
n
n
Pk
f Pk ri / f Pk
k 1
k 1
n
n
Pk
f Pk ri / f Pk
k 1
k 1
S f Pk ri ri
k 1
r
mean T
Pk
Pk
i
ri
mean
Velocity
n
Pk
i f Pk ri
k 1
R r
T
Pk
i
ri
mean
/ S
for
0 1
1 0
R
~ i i R
Point ICR is the instantaneous center of rotation for body i with respect to the ground. Note that
the ICR is not attached to the body. Point P on the body coincident with ICR has zero velocity.
ri P ~ i ri P rICR
for any point P attached to body i
~ 1 r mean
rICR ri mean
i
i
for
ri P _ at _ ICR
0
Notes_05_02
2 of 9
Acceleration
n
i f Pk ri Pk
k 1
R r
i 2
~
~
~
i i i
i
~
i
i R
T
Pk
i
ri
mean
/ S
i
2
i
Point IAP is the instantaneous acceleration pole for body i. Note that the IAP is not attached to
the body. Point P on the body coincident with IAP has zero acceleration.
ri P ri P rIAP
for any point P attached to body i
rIAP ri mean 1ri mean
ri P _ at _ IAP 0
for
OLD
Jerk
n
i i 3 f Pk riPk
k 1
R r
~
i
i R
T
Pk
i
ri
mean
/ S
~ i 3 ~ i ~ i ~ i ~ i ~ i 3i 3i
i i
3
i
i
i
3i
Point IJP is the instantaneous jerk pole for the body. Note that the IJP is not attached to the
body. Point P on the body coincident with IJP has zero jerk.
riP ri P rIJP
for any point P attached to the body
rIJP ri mean 1rimean
riP _ at _ IJP 0
for
Snap
R r
Pk
n
i 6i 2
i f Pk ri
k 1
~ R
i
i
T
Pk
i
ri
mean
/ S
~i 6~ i ~ i ~ i 4~ i ~ i 3~ i ~ i ~ i ~ i ~ i ~ i
4i
i 3
i 2 i 4
i i 2
i
2
i
i
i
i 3
i 2 i 4
4i
Notes_05_02
3 of 9
Point ISP is the instantaneous snap pole for the body. Note that the ISP is not attached to the
body. Point P on the body coincident with ISP has zero snap.
r r r
P
P
i
ISP
for any point P attached to the body
i
rISP ri mean 1 ri
mean
r
P _ at _ ISP
for
i
0
Centrode
Location of the ICR measured relative to ground changes as body i moves and sweeps a locus
called the fixed centrode for body i. The time derivative of the locus describes how the ICR
moves. Tracking the location of the ICR relative to a coordinate frame fixed to body i provides a
locus called the moving centrode. Motion of body i may be characterized as pure rolling of the
moving centrode on the fixed centrode because body i instantaneously has zero velocity at each
location of the ICR.
rICR ~ ri mean ri mean / i 2
The second time derivative of the location of the ICR also changes as body i moves. First and
second time derivatives of position along a locus may be combined to determine curvature of
the fixed centrode. If body i is part of a mechanism with mobility of one, curvature of the
centrode at each location will be invariant to speed of the mechanism.
rICR
0
2
2
i
i i
ICR
ICR r
R r
T
ICR
i 2
i 2 mean i 3
i
ri
i
0
2i
/ r
r
ICR T
ICR
i mean 0
2i
r 2
3 i
i
i
2
i mean
ri
0
3/ 2
Relative velocity
For planar motion, the relative angular velocity of body j with respect to body i is the difference
between the two angular velocities. The relative instantaneous center of rotation (RICR) for
body j about body i describes a unique point that has zero relative velocity between the two
bodies. Note that location of the RICR is measured with respect to the ground.
j _ wrt _ i j i
r
j _ wrt _ i
ICR
~ r ICR
~ r ICR /
j
j
i
i
j _ wrt _ i
/ i 3
Notes_05_02
4 of 9
Rigid Body
Determine the velocity of point C on rigid body link 3. The rigid body and the velocity vectors
are drawn to scale. Link 3 is NOT pinned to the ground. Show your work.
C
Xc = 27 mm
Yc = 121 mm
VB = 5.7 cm/sec
20º
B
XB = 90 mm
YB = 80 mm
3
XA = 43 mm
YA = 56 mm
A
25º
VA = 9.2 cm/sec
r3
B
53.56 mmps
19.50 mmps
r3
B _ wrt _ A
normr3
r3
A
r3 r3
B
B _ wrt _ A
A
V3B_wrt_A
83.38 mmps
38.88 mmps
3
29.82 mmps
65.55 mmps 117.1
58.38 mmps
3 AB
AB 52.77 mm
B
A
3 1.242 rad / sec CCW
C
r3 C _ wrt _ A
16 mm
65 mm
r3 C r3 A r3 C _ wrt _ A
r3 C _ wrt _ A
3 R r3
C _ wrt _ A
80.73 mmps
19.87 mmps
2.65 mmps
58.81 mmps 87.4
58.75 mmps
V3C_wrt_A
3
A
Notes_05_02
5 of 9
Rigid Body
Determine the velocity of point C on rigid body link 3. The rigid body and the velocity vectors
are drawn to scale. Link 3 is NOT pinned to the ground. Show your work.
C
Xc = 27 mm
Yc = 121 mm
VB3 = 5.7 cm/sec
20º
B
XB = 90 mm
YB = 80 mm
3
XA = 43 mm
YA = 56 mm
A
25º
VA3 = 9.2 cm/sec
point A = P1
fP1 = 1
r3 P1
43 mm
56 mm
point B = P2
fP2 = 1
r3 P 2
90 mm
80 mm
r3 P1
83.38 mmps
from above
38.88 mmps
r3 P 2
53.56 mmps
19.50 mmps
use lm2kin2d per attached code
3 = +1.2422 rad/sec
r3 C
27 mm
121 mm
rICR
0
3
r3 C
74.3006
mm
123.1197
3
2.6332 mmps
r3 C rICR
58.82 mmps 87.43
0
58.7571 mmps
Notes_05_02
% rbk.m - rigid body kinematics
% HJSIII, 14.01.13
clear
% constants
Rmat = [ 0 -1 ; 1
% inputs
f
= [
1
1
0 ];
];
r
= [ 43
56
90 ;
80 ];
rd
= [ 83.38
-38.88
53.56 ;
19.5 ];
rdd
= zeros(2,2);
rddd = zeros(2,2);
% call function
[ w, rICR, wd, rIAP, wdd, rIJP, rdICR, kappa ] = lm2kin2d( f, r, rd, rdd, rddd );
w
rICR
% find velocity of C
r3C = [ 27 121 ]';
r3Cd = w * Rmat * ( r3C - rICR )
% bottom of rbk
6 of 9
Notes_05_02
% t_lm2kin2d.m - test 2D kinematics from landmark motion
% HJSIII, 14.01.13
clear
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% example inputs - web cutter four bar
% Haug page 197 - not ME 581 web cutter
%
B3
C3
f =
[
1
1
];
r =
[
3.7588
1.3681
3.9407 ;
29.3675 ];
rd =
[
-5.4874
15.0764
22.5296 ;
14.8943 ];
rdd =
[
-60.4716
-22.0098
-42.8075 ;
-50.1604 ];
rddd = [
88.2815 -673.2083 ;
-242.5514 -291.1768 ];
% expected outputs
w_test =
-1.0006;
rICR_test = [ 18.8257 ;
6.8520 ];
wd_test =
rIAP_test =
-0.6374;
[ -49.1784 ; 13.0846 ];
wdd_test =
rIJP_test =
[
26.1823;
12.8647 ;
3.9747 ];
rdICR_test = [ -37.0807 ; 72.0169 ];
kappa_test =
-0.0151 ;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% test function
[ w, rICR, wd, rIAP, wdd, rIJP, rdICR, kappa ] = lm2kin2d( f, r, rd, rdd, rddd );
w
rICR
wd
rIAP
wdd
rIJP
rdICR
kappa
% bottom of t_lm2kin2d
7 of 9
Notes_05_02
function [ w, rICR, wd, rIAP, wdd, rIJP, rdICR, kappa ] = lm2kin2d( f, r, rd, rdd, rddd )
% 2D instantaneous kinematics of a rigid body from landmark motion
% HJSIII, 14.01.13
%
% USAGE
% function [ w, rICR, wd, rIAP, wdd, rIJP, rdICR, kappa ] = lm2kin2d( f, r, rd, rdd, rddd )
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
INPUTS
f
r
rd
rdd rddd -
1xn
2xn
2xn
2xn
2xn
OUTPUTS
rICR w
rIAP wd
rIJP wdd
rdICR kappa -
vector
matrix
matrix
matrix
matrix
of
of
of
of
of
weights - f(j)=1 means data valid, f(j)=0 means data not available
x,y landmark location
x,y landmark velocity
x,y landmark acceleration
x,y landmark jerk
2x1 location of instantaneous center of rotation
angular velocity
2x1 location of instantaneous acceleration pole
angular acceleration
2x1 location of instantaneous jerk pole
angular jerk
2x1 time derivative of location of instantaneous center
curvature of centrode
% constants
Rmat = [ 0 -1 ; 1
0 ];
% mean values
[ nr, n ] = size( r );
fmat = diag( f );
sf = sum( f' );
rm
= sum( fmat*r' )'
rdm
= sum( fmat*rd' )'
rddm = sum( fmat*rdd' )'
rdddm = sum( fmat*rddd' )'
/sf;
/sf;
/sf;
/sf;
% centered location
rc = r - rm*ones(1,n);
S = trace( rc * fmat * rc' );
% velocity
vmat = rd * fmat * rc';
w = ( vmat(2,1) - vmat(1,2) ) /S;
wsk = w * Rmat;
rICR = rm - inv(wsk) * rdm;
% acceleration
amat = rdd * fmat * rc';
wd = ( amat(2,1) - amat(1,2) ) /S;
wdsk = wd * Rmat;
beta = wdsk + wsk*wsk;
rIAP = rm - inv(beta) * rddm;
% jerk
jmat = rddd
wdd = w*w*w
wddsk = wdd
eta = wddsk
rIJP = rm -
* fmat * rc';
+ ( jmat(2,1) - jmat(1,2) ) /S;
* Rmat;
+ 3*wsk*wdsk + wsk*wsk*wsk;
inv(eta) * rdddm;
% snap
%rddddm = sum( fmat*rdddd' )' /sf;
%smat = rdddd * fmat * rc';
%wddd = 6*w*w*wd + ( smat(2,1) - smat(1,2) ) /S;
%wdddsk = wddd * Rmat;
%sigma = wdddsk + 6*wsk*wsk*wdsk + 4*wsk*wddsk + 3*wdsk*wdsk + wsk*wsk*wsk*wsk;
%rISP = rm - inv(sigma) * rddddm;
% centrode
rdICR = ( wsk*rddm - beta*rdm ) /w/w;
nrdICR = norm( rdICR );
sk1 = [ 0
(w*wdd-2*wd*wd) ; -(w*wdd-2*wd*wd)
0 ];
8 of 9
Notes_05_02
sk2 = [ w*w*w 2*w*wd ; -2*w*wd w*w*w ];
sk3 = [ 0 -w*w ; w*w 0 ];
rddICR = ( sk1*rdm + sk2*rddm + sk3*rdddm ) /w/w/w;
kappa = ( rdICR(1)*rddICR(2) - rdICR(2)*rddICR(1) ) /nrdICR/nrdICR/nrdICR;
% bottom of lm2kin2d
9 of 9