trajectory planning in cartesian space -...

28
Robotics 1 Trajectory planning in Cartesian space Prof. Alessandro De Luca Robotics 1 1

Upload: nguyenhuong

Post on 30-Jun-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Trajectory planning in Cartesian space - uniroma1.itdeluca/rob1_en/14_TrajectoryPlanningCartesian...Trajectories in Cartesian space ! in general, the trajectory planning methods proposed

Robotics 1

Trajectory planning in Cartesian space

Prof. Alessandro De Luca

Robotics 1 1

Page 2: Trajectory planning in Cartesian space - uniroma1.itdeluca/rob1_en/14_TrajectoryPlanningCartesian...Trajectories in Cartesian space ! in general, the trajectory planning methods proposed

Trajectories in Cartesian space

!  in general, the trajectory planning methods proposed in the joint space can be applied also in the Cartesian space !  consider independently each component of the task vector (i.e., a

position or an angle of a minimal representation of orientation)

!  however, when planning a trajectory for the three orientation angles, the resulting global motion cannot be intuitively visualized in advance

!  if possible, we still prefer to plan Cartesian trajectories separately for position and orientation

!  the number of knots to be interpolated in the Cartesian space is typically low (e.g., 2 knots for a PTP motion, 3 if a “via point” is added) ⇒ use simple interpolating paths, such as straight lines, arc of circles, …

Robotics 1 2

Page 3: Trajectory planning in Cartesian space - uniroma1.itdeluca/rob1_en/14_TrajectoryPlanningCartesian...Trajectories in Cartesian space ! in general, the trajectory planning methods proposed

Planning a linear Cartesian path (position only)

pi

pf

GIVEN pi, pf, vmax, amax

vi, vf (typically = 0)

path parameterization p(s) = pi + s (pf - pi)

s ! [0,1]

L

setting s = "/L, " ! [0,L] is the arc length (gives the current length of the path)

p(s) = s = (pf - pi) s dp

ds

. . . p(s) = s2

d2p

ds2

. . . = (pf - pi) s s

dp

ds

. . +

. .

pf - pi

L " .

= " = pf - pi

L . .

unit vector of directional cosines of the line

pf - pi

!pf - pi! =

L = !pf - pi!

Robotics 1 3

Page 4: Trajectory planning in Cartesian space - uniroma1.itdeluca/rob1_en/14_TrajectoryPlanningCartesian...Trajectories in Cartesian space ! in general, the trajectory planning methods proposed

Timing law with trapezoidal speed - 1

"(t)

"(t)

"(t)

.

. .

Ts T-Ts T

t

t

t

bang- coast- bang amax

vmax vmax

amax Ts =

L amax + vmax2

amaxvmax T =

L

given*: L, vmax, amax find: Ts, T

Vmax (T - Ts) = L = area of the speed profile

a “coast” phase exists iff: L > vmax2/amax

* = other input data combinations are possible (see textbook) Robotics 1 4

Page 5: Trajectory planning in Cartesian space - uniroma1.itdeluca/rob1_en/14_TrajectoryPlanningCartesian...Trajectories in Cartesian space ! in general, the trajectory planning methods proposed

Timing law with trapezoidal speed - 2

"(t)

"(t)

"(t)

.

. .

Ts T-Ts T

t

t

t

amax

vmax

L

amax t2/2

vmax t -

- amax (t-T)2/2 + vmax T - vmax

2

amax

vmax2

2 amax "(t) =

t ! [0,Ts]

t ! [Ts,T-Ts]

t ! [T-Ts,T]

can be used also in the joint space!

Robotics 1 5

Page 6: Trajectory planning in Cartesian space - uniroma1.itdeluca/rob1_en/14_TrajectoryPlanningCartesian...Trajectories in Cartesian space ! in general, the trajectory planning methods proposed

Concatenation of linear paths

A

C

B =“via point”

A’ C’

B - A

!B - A! = KAB

C - B

!C - B! = KBC

unit vectors of direction cosines

given: constant speeds v1 on linear path AB v2 on linear path BC desired transition: with constant acceleration for a time #T

x

z

y

x(t) y(t) z(t)

p(t) = t ! [0, #T] (transition starts at t = 0)

over-fly

note: during over-fly, the path remains always in the plane specified by the two lines intersecting at B (in essence, it is a planar problem)

no need to pass (and stop!) there

Robotics 1 6

Page 7: Trajectory planning in Cartesian space - uniroma1.itdeluca/rob1_en/14_TrajectoryPlanningCartesian...Trajectories in Cartesian space ! in general, the trajectory planning methods proposed

Time profiles on components

t

t

t

t

t

t

x(t) ..

x(t) .

y(t) .

z(t) .

y(t) ..

z(t) ..

v1 KAB,x

v2 KBC,x

v1 KAB,y

v2 KBC,y

v1 KAB,z

v2 KBC,z

#T

#T

Robotics 1 7

Page 8: Trajectory planning in Cartesian space - uniroma1.itdeluca/rob1_en/14_TrajectoryPlanningCartesian...Trajectories in Cartesian space ! in general, the trajectory planning methods proposed

Timing law during transition

A

B

C A’ C’

B - A

!B - A! = KAB

C - B

!C - B! = KBC

unit vectors of direction cosines

x

z

y x(t) y(t) z(t)

p(t) = t ! [0, #T] (transition starts at t = 0)

p(t) = (v2 KBC - v1 KAB)/#T ..

p(t) = v1 KAB + (v2 KBC - v1 KAB) t/#T .

p(t) = A’ + v1 KAB t + (v2 KBC - v1 KAB) t2/(2#T)

$ %

$ % thus, we obtain a

parabolic blending (see textbook

for this same approach in the joint space)

Robotics 1 8

Page 9: Trajectory planning in Cartesian space - uniroma1.itdeluca/rob1_en/14_TrajectoryPlanningCartesian...Trajectories in Cartesian space ! in general, the trajectory planning methods proposed

Solution (various options)

A

B

C A’

C’

B - A’= d1 KAB

C’ - B = d2 KBC

p(t) = A’ + v1 KAB t + (v2 KBC - v1 KAB)t2/(2#T)

d1

d2

#T = 2d1/v1 d2 = d1 v2/v1 by choosing, e.g., d1

(namely A’)

1

- B + A’ + (#T/2) (v1 KAB + v2 KBC) = C’ - B

p(#T) = A’ + (#T/2) (v1 KAB + v2 KBC) = C’

d1 KAB + d2 KBC = (#T/2) (v1 KAB + v2 KBC)

d1 = v1 #T/2 d2 = v2 #T/2

1

Robotics 1 9

Page 10: Trajectory planning in Cartesian space - uniroma1.itdeluca/rob1_en/14_TrajectoryPlanningCartesian...Trajectories in Cartesian space ! in general, the trajectory planning methods proposed

A numerical example !  transition from A=(3,3) to C=(8,9) via B=(1,9), with speed from v1=1 to v2=2 !  exploiting two options for solution (resulting in different paths!)

!  assign transition time: #T=4 (we re-center it here for t ! [-#T/2, #T/2]) !  assign distance from B for departing: d1=3 (assign d2 for landing is handled similarly)

#T=4

A

B C

d1=3

A

B C

A’

Robotics 1 10

Page 11: Trajectory planning in Cartesian space - uniroma1.itdeluca/rob1_en/14_TrajectoryPlanningCartesian...Trajectories in Cartesian space ! in general, the trajectory planning methods proposed

A numerical example (cont’d)

actually, the same vel/acc profiles only with a different time scale!!

first option: #T=4 (resulting in d1=2, d2=4)

second option: d1=3 (resulting in #T=6, d2=6)

Robotics 1 11

Page 12: Trajectory planning in Cartesian space - uniroma1.itdeluca/rob1_en/14_TrajectoryPlanningCartesian...Trajectories in Cartesian space ! in general, the trajectory planning methods proposed

Alternative solution (imposing acceleration)

A

B

C A’

C’ p(t) = 1/#T (v2 KBC - v1 KAB) ..

v1 = v2 = vmax (for simplicity)

!p(t)! = amax

..

#T = (vmax /amax) !KBC - KAB!

= (vmax /amax) & 2 (1 - KBC,xKAB,x - KBC,yKAB,y - KBC,zKAB,z)

then, d1 = d2 = vmax #T/2

Robotics 1 12

Page 13: Trajectory planning in Cartesian space - uniroma1.itdeluca/rob1_en/14_TrajectoryPlanningCartesian...Trajectories in Cartesian space ! in general, the trajectory planning methods proposed

Application example plan a Cartesian trajectory from A to C (rest-to-rest) that avoids the obstacle O, with a ' amax and v ' vmax

on AA’ ( amax on A’B and BC’ ( vmax on C’C ( - amax + over-fly between A” e C”

A

B

C

A” C”

O A’

C’

add a via point B “sufficiently far” from O

Robotics 1 13

Page 14: Trajectory planning in Cartesian space - uniroma1.itdeluca/rob1_en/14_TrajectoryPlanningCartesian...Trajectories in Cartesian space ! in general, the trajectory planning methods proposed

Other Cartesian paths

!  circular path through 3 points in 3D (often built-in feature) !  linear path for the end-effector with constant orientation !  in robots with spherical wrist: planning may be decomposed into a path

for wrist center and one for E-E orientation, with a common timing law !  though more complex in general, it is often convenient to parameterize

the Cartesian geometric path p(s) in terms of its arc length (e.g., with s = R) for circular paths), so that

!  velocity: dp/dt = dp/ds ! ds/dt !  dp/ds = unit vector (!!!=1) tangent to the path: tangent direction t(s) !  ds/dt = absolute value of tangential velocity (= speed)

!  acceleration: d2p/dt2 = d2p/ds2 ! (ds/dt)2 + dp/ds ! d2s/dt2

!  !d2p/ds2! = curvature *(s) (= 1/radius of curvature) !  d2p/ds2!(ds/dt)2 = centripetal acceleration: normal direction n(s) + to the

path, on the osculating plane; binormal direction b(s) = t(s) " n(s) !  d2s/dt2 = scalar value (with any sign) of tangential acceleration

Robotics 1 14

Page 15: Trajectory planning in Cartesian space - uniroma1.itdeluca/rob1_en/14_TrajectoryPlanningCartesian...Trajectories in Cartesian space ! in general, the trajectory planning methods proposed

Definition of Frenet frame !  For a generic (smooth) path p(s) in R3, parameterized by s (not

necessarily its arc length), one can define a reference frame as in figure

s

t(s) n(s)

b(s)

p’ = dp/ds p’’ = d2p/ds2 derivatives w.r.t. the parameter

t(s) = p’(s)/!p’(s)!

n(s) = p’’(s)/!p’’(s)!

b(s) = t(s) " n(s)

unit tangent vector

unit normal vector (∈ osculating plane)

unit binormal vector

!  general expression of path curvature (at a path point p(s))

*(s) = !p’(s) " p’’(s)!/!p’(s)!3

Robotics 1 15

Page 16: Trajectory planning in Cartesian space - uniroma1.itdeluca/rob1_en/14_TrajectoryPlanningCartesian...Trajectories in Cartesian space ! in general, the trajectory planning methods proposed

Optimal trajectories

!  for Cartesian robots (e.g., PPP joints) 1.  the straight line joining two position points in the Cartesian space is one path

that can be executed in minimum time under velocity/acceleration constraints (but other such paths may exist, if (joint) motion can also be not coordinated)

2.  the optimal timing law is of the bang-coast-bang type in acceleration (in this special case, also in terms of actuator torques)

!  for articulated robots (with at least a R joint) !  1. e 2. are no longer true in general in the Cartesian space, but time-optimality

still holds in the joint space when assuming bounds on joint velocity/acceleration !  straight line paths in the joint space do not correspond to straight line paths

in the Cartesian space, and vice-versa !  bounds on joint acceleration are conservative (though kinematically tractable)

w.r.t. actual ones on actuator torques, which involve the robot dynamics !  when changing robot configuration/state, different torque values are needed

to impose the same joint accelerations

Robotics 1 16

Page 17: Trajectory planning in Cartesian space - uniroma1.itdeluca/rob1_en/14_TrajectoryPlanningCartesian...Trajectories in Cartesian space ! in general, the trajectory planning methods proposed

Planning orientation trajectories

!  using minimal representations of orientation (e.g., ZXZ Euler angles ,,),-), we can plan independently a trajectory for each component !  e.g., a linear path in space , ) -, with a cubic timing law

. but poor prediction/understanding of the resulting intermediate orientations

!  alternative method: based on the axis/angle representation !  determine the (neutral) axis r and the angle )AB: R(r,)AB) = RA

T RB (rotation matrix changing the orientation from A to B . inverse axis-angle problem)

!  plan a timing law )(t) for the (scalar) angle ) interpolating 0 with )AB (with possible constraints/boundary conditions on its time derivatives)

!  /t, RAR(r,)(t)) specifies then the actual end-effector orientation at time t

A B xA

yA

zA zB

yB

xB

Robotics 1 17

Page 18: Trajectory planning in Cartesian space - uniroma1.itdeluca/rob1_en/14_TrajectoryPlanningCartesian...Trajectories in Cartesian space ! in general, the trajectory planning methods proposed

A complete position/orientation Cartesian trajectory

Robotics 1 18

"  initial given configuration

"  initial end-effector position

"  initial orientation !

q(0) = 0 " /2 0 0 0 0( )T

!

p(0) = 0.540 0 1.515( )T

!

R(0) =0 0 10 "1 01 0 0

#

$

% %

&

'

( (

x(0)!

y(0)!

"  final end-effector position

"  final orientation

"  the final configuration is NOT specified a priori

!

p(T) = 0 0.540 1.515( )T

!

R(T) =1 0 00 0 10 "1 0

#

$

% %

&

'

( ( y(T)!

z(T)!

linear path for position

axis-angle method for orientation

zw!

yw!

zw!

yw!

Page 19: Trajectory planning in Cartesian space - uniroma1.itdeluca/rob1_en/14_TrajectoryPlanningCartesian...Trajectories in Cartesian space ! in general, the trajectory planning methods proposed

Axis-angle orientation trajectory

Robotics 1 19 !

Rinit

=0 0 10 "1 01 0 0

#

$

% %

&

'

( (

= RinitT

!

Rfinal

=1 0 00 0 10 "1 0

#

$

% %

&

'

( (

!

p(s) = pinit

+ s pfinal

" pinit( )

= 0.540 0 1.515( )T + s "0.540 0.540 0( )T , s # [0, 1]

!

RinitT R

final=0 "1 00 0 "11 0 0

#

$

% %

&

'

( (

= Rot(r, )if)

!

r =13

1"11

#

$

% %

&

'

( ( , )

if=2*3[rad] (=120°)

!

R(s) = RinitRot(r, "(s))

!

"(s) = s"if, s # [0, 1]

coordinated Cartesian motion with bounds on

video

!

vmax

= 0.4 [m/s]a

max= 0.1 [m/s2]

"max

= # /4 [rad/s]˙ "

max= # /8 [rad/s2]

triangular speed profile with minimum time T = 5.52 s! (imposed by the bounds on linear motion) !

˙ s (t)

!

L = pfinal

" pinit

= 0.763 [m]

!

" = r ˙ # $ " = ˙ #

!

˙ " = r ˙ ̇ # $ ˙ " = ˙ ̇ #

!

s = s(t),t " [0, T]

Page 20: Trajectory planning in Cartesian space - uniroma1.itdeluca/rob1_en/14_TrajectoryPlanningCartesian...Trajectories in Cartesian space ! in general, the trajectory planning methods proposed

Axis-angle orientation trajectory

Robotics 1 20

actual joint

motion

z = y = x =

planned motion of Cartesian position

and velocity

"  the robot joint velocity was commanded by inversion of the geometric Jacobian

"  a user program, via KUKA RSI interface at Tc = 12 ms sampling time (one-way communication)

"  robot motion execution is # what was planned, but only thanks to an external kinematic control loop (at task level) 0 1 2 3 4 5 6 7 8

−1

−0.5

0

0.5

1

1.5

2

2.5

time [s]

[rad]

actual joint angles

triangular profile for

linear speed T = 5.52 s!

joint 2

T = 5.52 T = 5.52

T = 5.52

Page 21: Trajectory planning in Cartesian space - uniroma1.itdeluca/rob1_en/14_TrajectoryPlanningCartesian...Trajectories in Cartesian space ! in general, the trajectory planning methods proposed

Comparison of orientation trajectories Euler angles vs. axis-angle method

Robotics 1 21

!

"ZYZ(T) = #$ $ /2 0( )T

"  final end-effector position

"  final orientation

"  final Euler ZYZ angles

!

p(T) = "0.172 0 1.720( )T

!

R(T) =0 0 "10 "1 0"1 0 0

#

$

% %

&

'

( (

!

p(0) = 0.115 0 1.720( )T

!

R(0) =0 0 10 "1 01 0 0

#

$

% %

&

'

( (

"  initial configuration

"  initial end-effector position

"  initial orientation

"  initial Euler ZYZ angles

!

q(0) = 0 " /2 " /2 0 #" /2 0( )T

!

"ZYZ(0) = 0 # /2 #( )T

x(T)!

z(T)!x(0)!

z(0)!

zw!

xw!

p(T)!. p(0)!.

via a linear path (for position)

Page 22: Trajectory planning in Cartesian space - uniroma1.itdeluca/rob1_en/14_TrajectoryPlanningCartesian...Trajectories in Cartesian space ! in general, the trajectory planning methods proposed

Comparison of orientation trajectories Euler angles vs. axis-angle method

Robotics 1 22

using ZYZ Euler angles using axis-angle method

!

Rinit

=0 0 10 "1 01 0 0

#

$

% %

&

'

( (

) *ZYZ , init

=0+ /2+

#

$

% %

&

'

( (

!

Rfinal

=0 0 "10 "1 0"1 0 0

#

$

% %

&

'

( (

) *ZYZ , final

="++ /20

#

$

% %

&

'

( ( zw!

xw!yw!

!

RinitT R

final="1 0 00 1 00 0 "1

#

$

% %

&

'

( (

) r =0"10

#

$

% %

&

'

( ( , * = +

video video

Page 23: Trajectory planning in Cartesian space - uniroma1.itdeluca/rob1_en/14_TrajectoryPlanningCartesian...Trajectories in Cartesian space ! in general, the trajectory planning methods proposed

0 1 2 3 4 5 6 7 8−0.2

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

time [s]

[m]

end−effector position

0 1 2 3 4 5 6 7 8−0.09

−0.08

−0.07

−0.06

−0.05

−0.04

−0.03

−0.02

−0.01

0

time [s]

[m/s

]

end−effector velocity

0 1 2 3 4 5 6 7 8−0.2

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

time [s]

[m]

end−effector position

0 1 2 3 4 5 6 7 8−0.12

−0.1

−0.08

−0.06

−0.04

−0.02

0

time [s]

[m/s

]

end−effector velocity

Robotics 1 23

z = y = x =

planned Cartesian

components of position

and velocity

Comparison of orientation trajectories Euler angles vs. axis-angle method

using ZYZ Euler angles using axis-angle method

T ! 6 s!T ! 7.2 s!

faster motion time with the

axis-angle method (imposed by the previous bounds

on angular motion)

linear motion only along the

x-direction

Page 24: Trajectory planning in Cartesian space - uniroma1.itdeluca/rob1_en/14_TrajectoryPlanningCartesian...Trajectories in Cartesian space ! in general, the trajectory planning methods proposed

Robotics 1 24

0 = 1 = 2 =

orientation in terms of ZYZ

Euler angles

Comparison of orientation trajectories Euler angles vs. axis-angle method

T ! 7.2 s!

using ZYZ Euler angles using axis-angle method

T ! 6 s!0 1 2 3 4 5 6 7 8

−4

−3

−2

−1

0

1

2

3

4

time [s]

[rad]

end−effector orientation with ZYZ Euler angles

0 1 2 3 4 5 6 7 8−4

−3

−2

−1

0

1

2

3

4

time [s]

[rad]

end−effector orientation with ZYZ Euler angles

0 1 2 3 4 5 6 7 8−3

−2.5

−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

time [s]

[rad]

actual joint angles

0 1 2 3 4 5 6 7 8−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

2.5

3

time [s]

[rad]

actual joint angles

actual joint

motion

pre-planned offline

by post- processing

1 = 0 (singularity of the representation)

only three joints move

Page 25: Trajectory planning in Cartesian space - uniroma1.itdeluca/rob1_en/14_TrajectoryPlanningCartesian...Trajectories in Cartesian space ! in general, the trajectory planning methods proposed

Uniform time scaling !  for a given path p(s) (in joint or Cartesian space) and a given timing law

s(3) (3=t/T, T=“motion time”), we need to check if existing bounds vmax on (joint) velocity and/or amax on (joint) acceleration are violated or not !  … unless such constraints have already been taken into account during the

trajectory planning, e.g., by using a bang-coast-bang acceleration timing law

!  velocity scales linearly with motion time !  dp/dt = dp/ds!ds/d3!1/T

!  acceleration scales quadratically with motion time !  d2p/dt2 = (d2p/ds2!(ds/d3)2 + dp/ds!d2s/d32)!1/T2

!  if motion is unfeasible, scale (increase) time T → kT (k>1), based on the “most violated” constraint (max of the ratios |v|/vmax and |a|/amax)

!  if motion is “too slow” w.r.t. the robot capabilities, decrease T (k<1) !  in both cases, after scaling, there will be (at least) one instant of saturation

(for at least one variable) !  no need to re-compute motion profiles from scratch!

Robotics 1 25

Page 26: Trajectory planning in Cartesian space - uniroma1.itdeluca/rob1_en/14_TrajectoryPlanningCartesian...Trajectories in Cartesian space ! in general, the trajectory planning methods proposed

Numerical example - 1

!  2R planar robot with links of unitary length (1 [m]) !  linear Cartesian path p(s) from q0=(110°, 140°) ⇒ p0=f(q0)=(-.684, 0) [m]

to p1=(0.816, 1.4), with rest-to-rest cubic timing law s(t), T=1 [s] !  bounds in joint space: max (absolute) velocity vmax,1= 2, vmax,2= 2.5 [rad/s],

max (absolute) acceleration amax,1= 5, amax,2= 7 [rad/s2]

Robotics 1 26

p0

p1

q0

path length L=2.0518 [m] zero initial and

final speed

T=1

non-zero (symmetric) acceleration

s=s(t)

smax#3 [m/s] .

Page 27: Trajectory planning in Cartesian space - uniroma1.itdeluca/rob1_en/14_TrajectoryPlanningCartesian...Trajectories in Cartesian space ! in general, the trajectory planning methods proposed

Numerical example - 2

!  violation of both joint velocity and acceleration bounds with T=1 [s] !  max relative violation of joint velocities: kvel = 2.898 !  max relative violation of joint accelerations: kacc = 6.2567

!  minimum uniform time scaling of Cartesian trajectory to recover feasibility k = max {1, kvel , $kacc} = 2.898 ⇒ Tscaled = kT = 2.898 > T

Robotics 1 27

= joint 2 = joint 1

kvel

kacc

Page 28: Trajectory planning in Cartesian space - uniroma1.itdeluca/rob1_en/14_TrajectoryPlanningCartesian...Trajectories in Cartesian space ! in general, the trajectory planning methods proposed

Numerical example - 3 !  scaled trajectory with Tscaled = 2.898 [s]

!  speed [acceleration] on path and joint velocities [accelerations] scale linearly [quadratically]

Robotics 1 28 = joint 2 = joint 1

at least 1 instant of saturation!

traced Cartesian path and associated joint paths

remain the same!