30.06.2013 Views

Esplorazione MultiRobot.pdf - Automatica

Esplorazione MultiRobot.pdf - Automatica

Esplorazione MultiRobot.pdf - Automatica

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Modello cinematico dell’uniciclo<br />

I robot e-Puck utilizzati per le prove in laboratorio<br />

hanno una struttura meccanica molto semplice,<br />

modellizzabile direttamente come un uniciclo. La posizione<br />

di un uniciclo su un piano è univocamente<br />

determinata dalle coordinate:<br />

⎡<br />

q = ⎣ x<br />

⎤<br />

y ⎦<br />

θ<br />

Figura 11: Schema della struttura di un unicilo.<br />

Lo stato di un uniciclo è descritto dalle equazioni:<br />

˙x = v cos(θ)<br />

˙y = v sin(θ)<br />

˙θ = ω<br />

dove v è la velocità lineare e ω la velocità angolare.<br />

Il vincolo anolonomo imposto dalle ruote può essere<br />

espresso dall’equazione:<br />

˙x sin(θ) − ˙y cos(θ) = 0<br />

che espressa in forma matriciale diventa:<br />

<br />

sin(θ) − cos(θ)<br />

⎡<br />

<br />

˙x<br />

0 ⎣ ˙y<br />

˙θ<br />

⎤<br />

⎦ = 0<br />

Per controllare un uniciclo esistono svariate tipologie<br />

di controllo e la letteratura a riguardo è ampia.<br />

Si è utilizzato per questo progetto il controllo con<br />

linearizzazione dinamica 9 , già utilizzato con buoni<br />

9 Dynamic Feedback Linearization, DFL<br />

15<br />

risultati per i robot e-puck e la strumentazione del<br />

laboratorio.<br />

Per il controllo é conveniente introdurre uno stato<br />

aggiuntivo ξ = v e si ottiene:<br />

⎧<br />

⎨<br />

⎩<br />

˙ξ = u1 cos θ + u2 sin θ<br />

v = ξ<br />

(u2 cos θ−u1 sin θ)<br />

ω = ξ<br />

(1)<br />

dove u1 = ¨x e u2 = ¨y sono posti come ingressi. Considerando<br />

l’errore di inseguimento di traiettoria così<br />

definito:<br />

e(t) =<br />

ex(t)<br />

ey(t)<br />

<br />

=<br />

x(t) − xr(t)<br />

y(t) − yr(t)<br />

<br />

(2)<br />

è possibile stabilizzare il sistema mediante un PD così<br />

costruito:<br />

<br />

u1 = ¨xr + Kp1(xr − x) + Kd1( xr ˙ − ˙x)<br />

(3)<br />

u2 = ¨yr + Kp2(yr − y) + Kd1( yr ˙ − ˙y)<br />

con Kp, Kd > 0.<br />

Come spiegato in [?] quello considerato è un controllo<br />

che permette l’inseguimento di una traiettoria<br />

con buone prestazioni, a patto di avere a disposizione<br />

una misura precisa della posizione e dell’angolo θ.<br />

Il controllo così implementato ha una singolarità<br />

quando si tenta di far muovere il robot nella direzione<br />

del vincolo anolonomo, ovvero quando il riferimento<br />

è lungo la retta passante per gli assi delle ruote.<br />

Le equazione porterebbero in tal caso ad una velocità<br />

angolare infinita. Per evitare quest’evenienza si<br />

è impostato un limite inferiore alla velocità ξ sotto<br />

al quale non viene calcolata la velocità angolare. Il<br />

robot in questa evenienza non si muoverà (ξ 0 e<br />

ω = 0 perchè imposto).<br />

Nel tipo di esplorazione a celle considerato in<br />

questo progetto una svolta di 90 ◦ è un evento molto<br />

frequente. Tuttavia, a causa del rumore di misura,<br />

un riferimento esattamente a 90 ◦ rispetto alla direzione<br />

precedente di marcia in pratica non si verifica<br />

mai. Con un tempo di campionamento adeguato<br />

i robot sono in grado di girarsi in maniera soddisfacente,<br />

come si può vedere dai dati sperimentali di<br />

figura 12. Per maggior chiarezza della figura sono<br />

plottati soltanto gli istanti di campionamento pari.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!