Corso di Robotica 2 - uniroma1.it

26
Robotica 2 A.A. 2008-2009 A. De Luca Corso di Robotica 2 Prof. Alessandro De Luca Controllo ibrido di forza/velocità

Transcript of Corso di Robotica 2 - uniroma1.it

Page 1: Corso di Robotica 2 - uniroma1.it

Robotica 2 A.A. 2008-2009 A. De Luca

Corso di Robotica 2

Prof. Alessandro De Luca

Controllo ibrido di forza/velocità

Page 2: Corso di Robotica 2 - uniroma1.it

Robotica 2 A.A. 2008-2009 A. De Luca 2

Vincoli naturali e artificiali il contatto fra robot e ambiente (rigido e privo di attrito = puramente

geometrico) vincola in modo “naturale” il moto dell’E-E

in condizioni ideali (robot e ambiente perfettamente rigidi, assenza diattrito), nello spazio del compito (task space) si possono individuare dueset di direzioni generalizzate selezionate in modo che

è possibile il moto dell’E-E nel primo set di k direzioni(lungo cui l’ambiente non può opporre alcuna reazione)

esistono reazioni vincolari nel secondo set di 6-k direzioni(lungo cui l’ambiente impedisce il moto dell’E-E)

queste direzioni sono “ortogonali” tra loro (in realtà complementari, ossiacomplessivamente coprono tutto lo spazio cartesiano) e definiscono unopportuno task frame SRt (tipicamente associato poi all’E-E del robot)

per compiti di interazione generali, posizione e orientamento del taskframe dipendono dal tempo

le specifiche di esecuzione del compito impongono poi vincoli “artificiali” intermini di valori desiderati (e imposti dal controllo) per le velocità, nelle kdirezioni ammissibili di moto, e per le forze di contatto, nelle 6-k direzioniammissibili di forza

vincoli “naturali”su forza e moto

imposti dal compito

Page 3: Corso di Robotica 2 - uniroma1.it

Robotica 2 A.A. 2008-2009 A. De Luca 3

Task frame e vincoli - esempio 1

compito: far slittare il cubo lungo il binario

x

y

z

SRt vincoli naturali (geometrici) vy = vz = 0 ωx = ωz = 0 Fx = My = 0

v = velocità lineareω = velocità angolareF = forzaM = momento

vincoli artificiali(imposti dal controllore) Fy = Fy,des = 0 Mx = Mx,des = 0, Mz = Mz,des = 0 Fz = Fz,des

ωy = ωy,des = 0 vx = vx,des

6-k=4

k=2

6-k=4

k=2

Page 4: Corso di Robotica 2 - uniroma1.it

Robotica 2 A.A. 2008-2009 A. De Luca 4

Selezione delle direzioni - esempio 1

x

y

z

SRt

!

v

"

#

$ %

&

' ( =

1 0

0 0

0 0

0 0

0 1

0 0

#

$

% % % % % % %

&

'

( ( ( ( ( ( (

)vx

"y

#

$ %

&

' ( = T )

vx

"y

#

$ %

&

' (

!

F

M

"

# $

%

& ' =

0 0 0 0

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 0

0 0 0 1

"

#

$ $ $ $ $ $ $

%

&

' ' ' ' ' ' '

(

Fy

Fz

Mx

Mz

"

#

$ $ $ $

%

&

' ' ' '

= Y (

Fy

Fz

Mx

Mz

"

#

$ $ $ $

%

&

' ' ' '

TT⋅Y = 0

qui, costanti

reazioni vincolari nonpossono compiere lavoro

Page 5: Corso di Robotica 2 - uniroma1.it

Robotica 2 A.A. 2008-2009 A. De Luca 5

Task frame e vincoli - esempio 2

compito: girare la manovella (manicotto folle)

x

y

z SRt(α)

αx0

y0

z0 SR0

vincoli naturali vx = vz = 0 ωx = ωy = 0 Fy = Mz = 0

vincoli artificiali Fx = Fx,des = 0, Fz = Fz,des = 0 Mx = Mx,des = 0, My = My,des = 0 vy = vy,des

ωz = ωz,des = 0

S0 St(α)Rz(α)

Page 6: Corso di Robotica 2 - uniroma1.it

Robotica 2 A.A. 2008-2009 A. De Luca 6

Selezione delle direzioni - esempio 2

!

0v0"

#

$ %

&

' ( =

R T()) 0

0 R T())

#

$ %

&

' (

0 0

1 0

0 0

0 0

0 0

0 1

#

$

% % % % % % %

&

'

( ( ( ( ( ( (

*vy

"z

#

$ %

&

' ( = T()) *

vy

"z

#

$ %

&

' (

!

0F0M

"

# $

%

& ' =

R T(() 0

0 R T(()

"

# $

%

& '

1 0 0 0

0 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

0 0 0 0

"

#

$ $ $ $ $ $ $

%

&

' ' ' ' ' ' '

)

Fx

Fz

Mx

My

"

#

$ $ $ $

%

&

' ' ' '

= Y(() )

Fx

Fz

Mx

My

"

#

$ $ $ $

%

&

' ' ' '

TT(α)⋅Y(α) = 0

x

y

z SRt(α)

αx0

y0

z0 SR0

Page 7: Corso di Robotica 2 - uniroma1.it

Robotica 2 A.A. 2008-2009 A. De Luca 7

Task frame e vincoli - esempio 3

compito: avvitare una vite in un foro filettato

vincoli naturali (parziali…) vx = vy = 0 ωx = ωy = 0

vincoli artificiali (abbondanti…)

Fx = Fx,des = 0, Fy = Fy,des = 0

Mx = Mx,des = 0, My = My,des = 0

vz = vz,des , ωz = ωz,des = (2π/p)⋅vz,des

Fz = Fz,des , Mz = Mz,des (Fz,des )

la vite si muove sia lungo che intorno l’asse z, ma non in modo indipendente! (1 dof)

analogamente, Fz ed Mz non possono essere indipendenti

le direzioni di forza sono ortogonali a quelle di moto!

x

y

zSRt

p = passo della vite

Page 8: Corso di Robotica 2 - uniroma1.it

Robotica 2 A.A. 2008-2009 A. De Luca 8

Selezione delle direzioni - esempio 3

x

y

zSRt

p

!

v

"

#

$ %

&

' ( = 0 0 1 0 0 2)

p( )T

* vz = T * vz

Y: tale che TT⋅Y = 0

le colonne di T ed Y non coincidono necessariamente

con direzioni cartesiane (colonne della matrice identità) ➮ direzioni generalizzate

k=1

6-k=5

!

FM

"

# $

%

& ' =

1 0 0 0 00 1 0 0 00 0 0 0 ( 2)

p

0 0 1 0 00 0 0 1 00 0 0 0 1

"

#

$ $ $ $ $ $

%

&

' ' ' ' ' '

*

Fx

Fy

Mx

My

Mz

"

#

$ $ $ $ $ $

%

&

' ' ' ' ' '

= Y *

Fx

Fy

Mx

My

Mz

"

#

$ $ $ $ $ $

%

&

' ' ' ' ' '

!

Fz = "2#

pMz

Page 9: Corso di Robotica 2 - uniroma1.it

Robotica 2 A.A. 2008-2009 A. De Luca 9

Terne di interesse - esempio 4

terna SRt di task, per la definizione indipendente delle specifiche ibride(qui: tvx,des [k=1] e tFy,des [M-k=1]) e il calcolo degli errori per il controllo

terna SRe del sensore (qui = SR2) dove si misura la forza eF = (eFx,eFy) terna SR0 di base nella quale è espressa la velocità dell’organo terminale

(qui, 0v = (0vx,0vy) di O2), ottenuta dal calcolo dello Jacobiano e dallevelocità di giunto

moto planare di un robot 2R in contatto con superficie (M=2)

yt xt

xe

ye

x0

y0

servirà poi esprimere (ruotare) tutte le grandezzenella stessa terna di riferimento: quella di task!

superficieambientale

Page 10: Corso di Robotica 2 - uniroma1.it

Robotica 2 A.A. 2008-2009 A. De Luca 10

Formalismo per il controllo ibrido

!

v

"

#

$ %

&

' ( = T(s) ) ˙ s

parametrizzail moto libero dell’E-E

!

F

M

"

# $

%

& ' = Y(s) ( )

parametrizzale forze di contatto

descrizionedel contatto

robot-ambiente:definisce il

“task frame”

TT(s)⋅Y(s) = 0

le direzioni generalizzate del task frame dipendono

in generale da s (dalla posa dell’E-E

rispetto all’ambiente)

le forze di contatto non compiono lavoro sugli spostamenti dell’E-E

!

B(q)˙ ̇ q + S(q, ˙ q )˙ q + g(q) = u + JT(q)

F

M

"

# $

%

& '

dinamicarobot

!

v

"

#

$ %

&

' ( = J(q)˙ q

+

cinematicarobot

!

s" IRk

!

" # IRM$k

nei primi tre esempi precedenti e in generale M=6

Page 11: Corso di Robotica 2 - uniroma1.it

Robotica 2 A.A. 2008-2009 A. De Luca 11

Controllo ibrido di forza/velocità

obiettivo del controllo: imporre andamenti desiderati aiparametri di moto s e a quelli di forza λ

s(t) → sd(t), λ(t) → λd(t)

legge di controllo progettata in due passi1. disaccoppiamento e linearizzazione via feedback nel task frame

2. sintesi (lineare) di as e aλ per imporre la dinamica desiderata aglierrori es = sd − s, ed eλ = λd − λ

assunzioni: N = M (= 6, di solito), J(q) non singolare (+ TT⋅Y = 0)

!

˙ ̇ s

"

#

$ % &

' ( =

as

a"

#

$ %

&

' (

modello ad anello chiuso

Page 12: Corso di Robotica 2 - uniroma1.it

Robotica 2 A.A. 2008-2009 A. De Luca 12

Feedback linearizzazione nel task space

!

J(q) " ˙ q = T(s) " ˙ s

!

B(q)˙ ̇ q + S(q, ˙ q )˙ q + g(q) = u + JT(q)

F

M

"

# $

%

& ' = u + JT

(q)Y(s) ( )

!

J " ˙ ̇ q + ˙ J " ˙ q = T " ˙ ̇ s + ˙ T " ˙ s

!

˙ ̇ q = J"1 T # ˙ ̇ s + ˙ T # ˙ s " ˙ J # ˙ q ( )

!

B(q)J"1(q)T(s) "JT

(q)Y(s)( )˙ ̇ s

#

$

% & '

( ) + B(q)J"1

(q) ˙ T (s)˙ s " ˙ J (q)˙ q ( ) + S(q, ˙ q )˙ q + g(q) = u

!

u = BJ"1T "JTY( )as

a#

$

% &

'

( ) + BJ"1 ˙ T ̇ s " ˙ J ̇ q ( ) + S * ˙ q + g

!

˙ ̇ s

"

#

$ % &

' ( =

as

a"

#

$ %

&

' (

controllodisaccoppiantee linearizzante

matrice N x N non singolaresotto le ipotesi

fattek

M − k

s ha “grado relativo” 2

λ ha “grado relativo” 0

Page 13: Corso di Robotica 2 - uniroma1.it

Robotica 2 A.A. 2008-2009 A. De Luca 13

Stabilizzazione con as e aλ

!

as

= ˙ ̇ s d

+ KD

˙ s d" ˙ s ( ) + K

Ps

d" s( )

!

a" = "d

+ KI

"d# "( )d$%

!

˙ ̇ e s

+ KD

˙ e s

+ KPe

s= 0

!

es

= sd" s# 0

!

˙ " # + KI"# = 0

!

"# = #d$ #( )d%& ' 0

servono “misure” di s, s e λ!.

al solito, sufficienti tecniche di controllo lineare (sui singoli canali ingresso-uscita scalari)

!

a" = "d

N.B. qui basterebbema non avremmo un “errore”di forza (scarsa robustezza)

Page 14: Corso di Robotica 2 - uniroma1.it

Robotica 2 A.A. 2008-2009 A. De Luca 14

Filtraggio misure di posizione e forzas, s ricavate dalle misure di q e q, uguagliando le descrizioni di posa e velocità dell’E-E dal “punto di vista del robot” (cinematica diretta e differenziale) e dal “punto di vista dell’ambiente” (funzioni di s)

. .

s = αx0

y0

z0

r

L

!

0r =0f(q) =

Lcos s

Lsin s

0

"

#

$ $ $

%

&

' ' '

!

s = ATAN2 0fy (q),0 fx (q)( )

!

J(q) " ˙ q = T(s) " ˙ s

!

˙ s = T#(s)J(q) " ˙ q

esempio

λ ricavato dalle misure delle forze/momenti all’end-effector

!

F

M

"

# $

%

& ' = Y(s) ( )

!

" = Y#(s)

F

M

#

$ %

&

' (

pseudoinverse dimatrici “strette”a rango pieno, ad es. (TTT)-1TT

(o anche pesate)

Page 15: Corso di Robotica 2 - uniroma1.it

Robotica 2 A.A. 2008-2009 A. De Luca 15

Schema a blocchi complessivo

ufeedbacklinearizzazionenel task space

robotin contattoambiente

q

!

˙ q

!

F

M

"

# $

%

& '

filtraggiomisure

as

!

KI

s

KPs

KD

!

˙ s

λ

!

˙ ̇ s d

+ KD

˙ s d

+ KPs

d

λd

+

+

_

_

k anelli di moto

M-k anelli di forza

!

q, ˙ q

!

s, ˙ s

+

_+

+

casi limite k=M (moto nello spazio libero): nessun controllo di forza, solo di motok=0 (E-E del robot “bloccato”): nessun controllo di moto, solo di forza

Page 16: Corso di Robotica 2 - uniroma1.it

Robotica 2 A.A. 2008-2009 A. De Luca 16

Fonti di incongruenze fra misure

1. presenza di attrito al contatto c’è una componente di forza nelle direzioni “libere” di velocità che

si oppone al moto (se attrito di Coulomb, dipendente anche dallaforza normale applicata…)

2. cedevolezza nella struttura robotica e/o al contatto ci può essere uno spostamento nelle direzioni “vincolate” dalla

reazione ambientale

N.B. se però la geometria dell’ambiente è nota con precisione, gli erroricausati da 1. e 2. sulle “misure” di s e λ sono filtratiautomaticamente dalla pseudo-inversione di T ed Y

3. incertezze sulla geometria dell’ambiente nel contatto(da stimare real-time con sensori esterni: visione, ma anche forza!)

Page 17: Corso di Robotica 2 - uniroma1.it

Robotica 2 A.A. 2008-2009 A. De Luca 17

Fn

!

Ft = µ "Fn = tg# "Fn

F

Identificazione di un profilo incognito

1. normale = direzione della forza misurata... ma la presenza di attrito provoca una

rotazione della forza rispetto alla normaleeffettiva di un angolo γ (incognito)

2. tangente = direzione della velocità misurata... ma l’elasticità nella struttura robotica e/o al

contatto possono indurre una componente divelocità lungo la normale

3. metodo misto (fusione sensoriale) con RLSa. tangente identificata in modo ricorsivo da

misure di posizioneb. angolo di attrito identificato in modo ricorsivo

dalla tangente trovata in a. e dalle misure diforza

si può identificare un profilo incognito della superficie di contatto, a partire dalle misure di velocità e forza?

vn

vvt

il robot è mantenuto in moto

di contatto “in qualche modo”…

Page 18: Corso di Robotica 2 - uniroma1.it

Robotica 2 A.A. 2008-2009 A. De Luca 18

Identificazione e controllo ibridoeffettuati in modo simultaneo

robot MIMO-CRF (DIS, Laboratorio di Robotica, 1992)

Page 19: Corso di Robotica 2 - uniroma1.it

Robotica 2 A.A. 2008-2009 A. De Luca 19

Tangente stimata da misure di posizione(superficie circolare percorsa a velocità costante)

tempo [intervalli di campionamento]

[gra

di]

Page 20: Corso di Robotica 2 - uniroma1.it

Robotica 2 A.A. 2008-2009 A. De Luca 20

Tangente stimata da misure di forza(stessa superficie circolare percorsa a velocità costante)

tempo [intervalli di campionamento]

[gra

di]

Page 21: Corso di Robotica 2 - uniroma1.it

Robotica 2 A.A. 2008-2009 A. De Luca 21

Differenza fra le tangenti stimate

tempo [intervalli di campionamento]

[gra

di]

differenzedell’ordinedei 7-8°...ma qual è

quella “giusta”?… meglio una

fusionesensoriale!!

Page 22: Corso di Robotica 2 - uniroma1.it

Robotica 2 A.A. 2008-2009 A. De Luca 22

Profilo superficie riconosciuta

[m]

[m]

…era la“pizza” diun film(raggio

= 17 cm)

identificazione con metodo RLS (Recursive Least Squares), fondendo sia misure di forza che di velocità

Page 23: Corso di Robotica 2 - uniroma1.it

Robotica 2 A.A. 2008-2009 A. De Luca 23

Forza normale

tempo [intervalli di campionamento]

[N]

regolata a 20 Ndurante il moto

i picchicorrispondonoa scanalature

sulla superficie

Page 24: Corso di Robotica 2 - uniroma1.it

Robotica 2 A.A. 2008-2009 A. De Luca 24

Sbavatura robotizzata di parabrezza

parabrezza con spigoli vivi etolleranze dimensionali dovute allalavorazione e all’eccesso dimateriale collante (PVB) tra strativetrosi del parabrezza

il robot segue il percorsoprefissato, nonostante gli errorisulla forma nominale, grazie allacedevolezza passiva nella testa disbavatura

la forza di contatto fra lama evetro può essere controllata, inmodo indipendente dal moto,grazie a un cilindro pneumaticonella testa di sbavatura

due lame per tagliare il PVB cella di carico per misurare la forza applicata sistema di controllo

la testa di sbavatura è dotata di

Page 25: Corso di Robotica 2 - uniroma1.it

Robotica 2 A.A. 2008-2009 A. De Luca 25

Modello testa di sbavatura

fisico

matematico

per l’analisi della stabilità (con luogo delle radici) del controllo di forza in una singoladirezione in presenza di masse/elasticità multiple come in questo caso,

vedi Eppinger & Seering, IEEE CSM, 1987 (materiale didattico)

Page 26: Corso di Robotica 2 - uniroma1.it

Robotica 2 A.A. 2008-2009 A. De Luca 26

Video di ricapitolazione

robot COMAU c/o Università di Napoli

compliance control(controllo attivo di cedevolezza

senza sensore di forza)

impedance control(controllo di impedenza)

force control(controllo di forza comeanello esterno ad un

controllore di posizione)

hybrid force/position control(controllo ibrido)