Pianificazione Traiettoria per Robot Mobile

From RobotGarage
Jump to: navigation, search
Questo documento contiene materiale proveniente da fonti esterne:
1 [ Documento Originale - Autore: Cristian Secchi -  Sito Riferimento ]


Contents

Definizione

Pianificazione: Trovare una traiettoria ammissibile q(t) per t in [ti,tf] che porti il robot da una
configurazione iniziale q(ti)=qi a una configurazione finale q(tf)=qf in assenza di ostacoli.


Pianificazione Traiettoria  Una traiettoria può essere decomposta in un cammino q(s) e una legge oraria s=s(t) .

Legge oraria: come vado dal punto di distanza zero dall’inizio della curva al punto di distanza L dall’inizio della curva.

Cammino: Qual è la configurazione corrispondente al parametro s nella curva?


Separazione spazio temporale della traiettoria: Formula Pianificazione Traiettoria

Affinché la traiettoria sia ammissibile per un WMR, essa deve soddisfare i vincoli anolonomi del robot per cui: Formula Pianificazione Traiettoria Ammissibile

Un cammino ammissibile sarà dato da q'= G(q)ũ

Il cammino geometrico si trova determinando gli ingressi geometrici ũ .

Una volta trovato il cammino geometrico ammissibile, occorrerà scegliere una legge oraria s(t), ovvero la velocità a cui il cammino è percorso, per determinare completamente la traiettoria.


Una volta trovato l’ingresso geometrico ũ e determinata la legge oraria
s(t), qual è l’ingresso cinematico da applicare al robot per farlo muovere
lungo la traiettoria desiderata?

Formula Pianificazione Traiettoria (2) Formula Pianificazione Traiettoria (2)


Esempio - Uniciclo

Per un uniciclo i vincoli anolonomi implicano la seguente condizione di ammissibilità per il cammino geometrico.

Formula Pianificazione Traiettoria: Esempio

La condizione esprime il fatto che la velocità cartesiana deve essere orientata lungo la direzione del moto. I cammini ammissibili per l’uniciclo sono dati da:

Formula Pianificazione Traiettoria: Cammini Ammissibili

Una volta determinati gli ingressi geometrici, gli ingressi cinematici sono dati da:

Formula Pianificazione Traiettoria: Ingressi Cinematici

Pianificazione tramite differential flatness

Definizione

Un sistema dinamico non lineare
Formula Pianificazione Traiettoria Differential Flatness
possiede la proprietà di differential flatness (o piattezza differenziale) se
esiste un insieme di variabili misurabili y, dette uscite flat ( o piatte), tali
che lo stato x e l’ingresso u possono essere espressi algebricamente in
funzione di y e di un certo numero delle sue derivate

Formula Pianificazione Traiettoria Differential Flatness (2)

Una volta determinata una traiettoria y nel tempo, risultano determinate anche la traiettoria dello stato x e dell’ingresso u.


Per l’uniciclo e il biciclo le coordinate cartesiane x e y sono uscite flat

Formula Pianificazione Traiettoria Esempio (1) Formula Pianificazione Traiettoria Differential Flatness (3)

L’orientamento dipende dalla derivata prima delle uscite flat

Le due scelte possibili per θ dipendono dal fatto che lo stesso cammino può essere percorso a marcia avanti (k=0) o a marcia indietro (k=π).

Se l’orientamento iniziale del robot è assegnato, solo una di queste scelte è corretta.

Formula Pianificazione Traiettoria: Differential Flatness (1) Formula Pianificazione Traiettoria: Differential Flatness (2)


Se un robot mobile ammette uscite piatte y, queste possono essere utilizzate per risolvere i problemi di pianificazione.

Infatti, è possibile usare un qualsiasi schema di interpolazione per pianificare il cammino di tali uscite in modo da soddisfare le condizioni al contorno.

L’evoluzione delle altre variabili associate e gli ingressi cinematici si potranno calcolare algebricamente a partire da y(s).

Il cammino nello spazio delle configurazioni generato in tal modo soddisferà automaticamente i vincoli anolonomi del robot.



Pianificazione dell’Uniciclo

Si consideri il problema di pianificare un cammino per l’uniciclo che porti il robot da una configurazione iniziale qi=(xi,yi,θi) a una configurazione finale qf=(xf,yf,θf).

Suppongo di parametrizzare la curva con un parametro s=[0,1].


x e y sono uscite flat! Pianifico la traiettoria sulle uscite flat!


Una possibile pianificazione su x e y si può ottenere tramite un polinomio cubico:

formula pianificazione differential flatness


formula pianificazione differential flatness Le condizioni al contorno su x e y sono soddisfatte


Occorre che siano soddisfatte le condizioni al contorno anche sull’orientamento che è legato a x’ e y’. Devono allora essere soddisfatte le seguenti condizioni:

formula pianificazione differential flatness

ki e kf sono parametri liberi (non nulli) ma dello stesso segno. Rappresentano le velocità geometriche all’istante iniziale e a quello finale e influenzano il tipo di cammino che si ottiene.


Le condizioni al contorno su θ consentono di determinare i parametri αx, αy, βx e βy Per esempio, se ki=kf=k si ottiene:

formula pianificazione differential flatness


Una volta trovata la traiettoria nello spazio delle configurazioni, quali sono gli ingressi geometrici e gli ingressi cinematici corrispondenti?

Dal modello cinematico del robot si ottengono:

formula pianificazione differential flatness il segno della velocità lineare dipende dal senso di marcia

Algoritmo

Require: qi=(xi,yi,θi), qf=(xf,yf,θf)

1. Pianificare il cammino sulle uscita flat (x,y)

formula pianificazione uniciclo


2. Imporre le condizioni al contorno per determinare i coefficienti

formula pianificazione uniciclo


3. Determinare gli ingressi geometric 

formula pianificazione uniciclo


4. Determinare la legge oraria e gli ingressi da applicare al robot

formula pianificazione uniciclo


Parcheggio parallelo

qi = [0 10 0];   qf = [0 0 0]


      k=10                                    k=100

diagramma pianificazione coordinate flatness  diagramma pianificazione coordinate flatnessqi = [10 7 -pi/3];   qf = [0 0 0]


  k=10                              k=50                              k=100

 diagramma pianificazione flatness  diagramma pianificazione flatness  diagramma pianificazione flatness



Controllo del moto

Data una traiettoria o una configurazione desiderata, costruire una legge di controllo che porti il robot a seguire la traiettoria o nella configurazione desiderata


Regolazione di configurazione: Il robot deve raggiungere una configurazione desiderata qd=(xd, yd, θd)T
a partire da una configurazione iniziale q0=(x0, y0, θ0)T

E’ il problema più difficile 
Inseguimento di traiettoria: Il robot deve riprodurre asintoticamente una traiettoria cartesiana
desiderata (x (t) y (t)) a partire da   xd(t),yd(una configurazione iniziale q0=(x0, y0, θ0)T che può 
essere o meno agganciata alla traiettoria

Problema più semplice e di maggior interesse pratico 

Inseguimento di traiettorie – I-O SFL

I-O SFL: Input-Output state feedback linearization

Modello:  formula i-o sfl Modello


Movimento istantaneo proibito: i-o sfl  Movimento istantaneo proibito


Il sistema deve fermarsi e ruotare.

Non è possibile percorrere una traiettoria discontinua a velocità costante

schema i-o sfl


Prendendo il centro asse (x,y) come uscita da controllare abbiamo dei vincoli nella mobilità del robot.


Si definisce come uscita da controllare un punto fuori dall’asse delle ruote di coordinate:

formula i-o sfl b ≠ 0


i-o sfl


Il punto (xB,yB) non ha più vincoli cinematici e può muoversi, istantaneamente, anche lateralmente rispetto alla direzione di moto

Posso definire due ingressi cinematici che determinano la velocità lungo l’asse x e lungo l’asse y del punto B


formula i-o sfl
 formula i-o sfl

Una volta trovati vdx e vdy, si trovano gli ingressi cinematici da dare in ingresso all’uniciclo per ottenere il movimento desiderato del punto B tramite:

formula i-o sfl
 i-o sfl


IO-SFL per l’Uniciclo - Algoritmo

Require: q_des(t)=(x_des(t),y_des(t),θ_des(t))

1. scegliere il punto fuori dall’asse (X_B,Y_B)=(x+bcosθ,y+bsinθ) definendo b
2. while True
3. Determinare Vdx(t)e Vdy(t) tramite:
formula i-o sfl
4. Determinare v(t) e ω(t) tramite:
formula i-o sfl
5. Applicare gli ingressi
6. end while
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox