August 29, 2013

Regolatore cartesiano

Per la regolazione di configurazione è stato preferito questo tipo di regolatore ai controllori tempo-varianti o discontinui nello stato, che danno risultati nettamente superiori, in quanto, in questo caso, i risultati ottenuti sono sufficienti per la utilizzazione prevista.

Per realizzare un controllore a retroazione in grado di condurre il robot in una posizione assegnata, è necessario pianificare una traiettoria che tenda asintoticamente a raggiungerla.

La individuazione di un controllore universale in grado di stabilizzare traiettorie arbitrarie, persistenti o meno, è resa difficile dai vincoli anolonomi presenti sul robot. Si è pensato quindi di utilizzare un regolatore cartesiano che porti l’uniciclo in una posizione cartesiana assegnata, ma con orientamento non specificato. [Bibliografia in fondo alla pagina]

La legge di controllo di tale regolatore è:
v\left(t\right) = k_1\cdot \left( e_x\left(t\right) \cdot\cos\theta\left(t\right) + e_y\left(t\right) \cdot \sin\theta\left(t\right) \right)\omega\left(t\right) = k_2 \cdot \left( atan2 \left( e_x\left(t\right),e_y\left(t\right)\right)-\theta\left(t\right) \right)
con guadagni del regolatore k_1 > 0 e k_2 > 0, indicando con e_x\left(t\right) = x_f - x\left(t\right) ed e_y\left(t\right) = y_f - y\left(t\right) gli errori sull’asse x ed y del robot, è facile dare una interpretazione geometrica ai due comandi generati dalla legge di controllo.

Con riferimento alla figura successiva è facile dare una interpretazione geometrica a due comandi: la velocità lineare v viene scelta come proiezione del vettore di errore cartesiano \mathbf{e}_p sull’asse sagittale dell’uniciclo, mentre la velocità angolare è proporzionale alla differenza tra l’orientamento dell’uniciclo e l’orientamento dell’errore \mathbf{e}_p (errore di puntamento).

Cartesian regulator

Cartesian regulator

La scelta di tale controllore permette una semplice movimentazione sul piano del robot, senza tener quindi conto dell’errore di orientamento fissato. Il suo utilizzo è particolarmente utile per poter far navigare il robot in ambienti sconosciuti, in quanto la regolazione dell’orientamento non è necessaria.

La convergenza di questo regolatore è assicurata data la presenza di una candidata di Lyapunov

V = \frac{1}{2}\left(e_x^2+e_y^2\right)

che è solo semi-definita positiva nell’origine poiché si annulla in tutte le configurazioni in cui l’errore di posizione e_x = e_y = 0, indipendentemente dal valore dell’orientamento. Utilizzando le equazioni dell’uniciclo e gli ingressi di controllo del regolatore cartesiano esposte precedentemente si trova

\dot{V} = -k_1\left(x\cdot\cos\theta+y\cdot\sin\theta\right)^2

Che è semi-definita negativa nell’origine. Ciò implica che la candidata V, che è limitata inferiormente, tende a un valore limite, e che l’errore di posizione \mathbf{e}_p è limitato in norma. E’ facile verificare che \ddot{V} è limitata e quindi \dot{V} è uniforme continua. Per il lemma di Barbalat, si ha allora che \dot{V} tende a zero. Si ha quindi

\lim_{t \, to \, \infty} \left(x\cdot\cos\theta+y\cdot\sin\theta\right) = 0

e cioè che la proiezione del vettore cartesiano \mathbf{e}_p sull’asse sagittale dell’uniciclo tende asintoticamente ad annullarsi. Questo non può avvenire in un punto diverso da x_f e y_f, poiché la velocità angolare tenderebbe a ruotare l’uniciclo per riallinearlo con \mathbf{e}_p. Si può dunque concludere che l’errore cartesiano tende a zero per qualunque configurazione iniziale.

Il regolatore implementato tiene conto dell’errore di misura dell’odometria e delle velocità ottenibili dal sistema di controllo di basso livello. E’ stato fissato un intervallo di campionamento più basso rispetto ai regolatori PID del motore, pari a f_c = 100Hz.

Simulazioni

Per illustrare le caratteristiche del regolatore è stato implementata la legge di controllo su Simulink®, vengono presentati i risultati questo regolatore per quanto riguarda le manovre di parcheggio effettuate in retroazione.

Le simulazioni sono state effettuate sulla configurazione ad uniciclo in quanto, per pilotare la piattaforma si sarebbero ottenuti i medesimi risultati generando gli opportuni ingressi di controllo esposti nella pagina sulla cinematica.

Simulation regulator

Simulation regulator

Nella figura precedente viene riportato lo schema a blocchi del sistema di controllo del robot. I blocchi colorati di rosso stanno a figurare tutti quegli elementi di controllo che operano alla frequenza di f_c, mentre i blocchi in nero sono il modello matematico dell’uniciclo che sono stati simulati con un intervallo di campionamento dettato dalla “ode45”.

Il sistema è costituito dalla “Cartesian control” composta dalla leggi di controllo esposte ad inizio pagina, subito dopo le velocità generate sono vincolate dalla “Constrains control” che utilizza le formulazioni trattate nella pagina relativa ai vincoli di controllo, infine le velocità sono inviate al modello cinematico dell’uniciclo non prima di essere passate nuovamente per una saturazione.

Viene quindi impostato il sistema ponendo il robot nella configurazione iniziale data da q_0 =\begin{bmatrix}x&y&\theta\end{bmatrix}^T =\begin{bmatrix}0&0&\frac{\pi}{2}\end{bmatrix}^T ed impostata la configurazione d’arrivo a x_f = 2 e y_f = 2. Si sono impostati i guadagni del regolatore cartesiano con k_1 = 1 e k_2 = 3. Vengono fissati i vincoli di saturazione massima e minima dell’uniciclo con v_{max} = 0.5 \frac{m}{s} e \omega_{max} = 1.7 \frac{rad}{s}.

I risultati dell’applicazione di questo regolatore si possono osservare nella figura precedente, dove l’uniciclo raggiunge le coordinate desiderate (in figura (b)) e gli errori convergono a zero in tempo finito come visibile in figura (d), mentre l’angolo \theta converge ad un valore non nullo. É interessante notare come anche se le velocità richieste dal regolatore siano più grandi rispetto a quelle effettivamente erogabili dall’uniciclo, ma con l’opportuna modifica dei comandi di controllo riescono comunque a far convergere a zero l’errore di posizione del robot (in figura (a)).

Bibliografia

L. . V. L. . O. G. Siciliano, B. & Sciavicco, Robotics, Modelling, Planning and Control. Milano: Springer, 2009.

Copyright © 2013. All Rights Reserved.

Leave a Reply