Professional Documents
Culture Documents
Kinematic control
Prof. Alessandro De Luca
Robotics 1
the error driving the feedback part of the control law can be
defined either in Cartesian or in joint space
Robotics 1
control action always occurs at the joint level (where actuators drive
the robot), but performance has to be evaluated at the task level
2
Robotics 1
An introductory example
..
1/M
..
x
.
x
Robotics 1
Frequency response
of the closed-loop system
actual
velocity
.
x
u
commanded
reference
velocity
Robotics 1
Time response
= 2 rad/s
= 20 rad/s
Im
d
q
dynamic model
Il
(I
+ Il + md 2 ) q + mg0 d sinq =
g0 = 9.81[m /s2 ]
m = 10 [kg]
d = = 0.2 [m]
2
1
Il = m 2 = 0.1333 [kg m 2 ]
12
Im = 0.5333 [kg m 2 ] (= Il + md 2 )
mg0
M = 1.0667 [kg m ]
Robotics 1
Simulink scheme
real behavior
trajectory generation
(a cubic position profile)
ideal behavior
Robotics 1
Simulink scheme
low-level control =
PI velocity feeedback loop
+ acceleration feedforward
robot
dynamics
actuator
saturation at 100 [Nm]
Robotics 1
Simulation results
in T = 1 s
in T = 0.25 s
bad
tracking of
reference
trajectory
max error
5.5
Robotics 1
position error
max error
0.2
position tracking
very good
tracking of
reference
trajectory
in T = 0.5 s
10
Simulation results
in T = 1 s
in T = 0.5 s
in T = 0.25 s
high-level velocity command
similar to
the profile of
reference
velocity!
Robotics 1
saturation!
similar to reference
acceleration profile!
11
Simulation results
in T = 1 s
in T = 0.5 s
in T = 0.25 s
max error
0.2
max error
5.5
real position errors increase when reducing too much motion time
( too high accelerations)
while ideal position errors
(based only on kinematics)
remain always the same!!
12
.
qd(t)
qd(t)
+
P, PI,
or PID +
digital part
Robotics 1
+
-
Gvel(s)
actuator
robot
(joint i)
.
q
analog part
13
J-1(qd)
qd(0)
.
qd
qd + e
reference generator
(off-line computation of J-1)
e = qd - q
ep = pd - p
K > 0 (often
diagonal)
q(0)
robot
model
not used
for control
f(q)
. .
.
.
.
ep = pd - p = J(qd)qd - J(q)(qd + K(qd - q))
ep J(q)e
feedback from q
.
.
.
.
.
e = qd - q = qd - (qd + K(qd - q)) = - K e
q qd
Robotics 1
+
+
.
q
J(q)
.
p
ei 0 (i=1,,n)
exponentially,
e(0)
.
ep - J(q)K J-1(q) ep
14
.
pd
pd +
reference
generator
ep = pd - p
ep
Kp
+
+
Kp >0 (often
diagonal)
J-1(q)
.
q
q(0)
robot
model
J(q)
.
p
f(q)
feedback from p
.
. .
.
.
-1
ep = pd - p = pd - J(q) J (q) (pd + Kp(pd - p)) = - Kp ep
Robotics 1
or pseudoinverse if m<n
15
Simulation
Robotics 1
robot:
planar 2R
lengths l1=l2=1
16
Simulink blocks
calls to Matlab functions
k(q)=dirkin (user)
J(q)=jac (user)
J-1(q)=inv(jac) (library)
17
Matlab functions
init.m
script
Robotics 1
18
control gains
K = diag{20,20}
(a) without joint velocity command saturation
(b) with saturation ...
vmax,1 = 120/s, vmax,2 = 90/s
Robotics 1
19
initial
transient
phase
(about 0.2 s)
p(0)
pd(0)
20
(cont)
straight line: initial error, no saturation
Robotics 1
. .
control inputs qr1, qr2
21
initial
transient
phase
(about 0.5 s)
p(0)
pd(0)
22
(cont)
straight line: initial error, with saturation
Robotics 1
. .
control inputs qr1, qr2
(saturated at vmax,1, vmax,2)
23
Robotics 1
24
zero tracking
error is kept
at all times
Robotics 1
final configuration
(after two rounds)
coincides with
initial configuration
25
a drift occurs
along the path
due to the
linearization
error along the
path tangent
Robotics 1
final configuration
(after two rounds)
differs from
initial configuration
26
Robotics 1
3D simulation
video
28
29