• Non ci sono risultati.

Il nodo del controllore riceve la traiettoria dal pianicatore e si adopera anché il robot raggiunga i vari nodi al tempo stabilito. In particolare, denita l la distanza tra la posizione attuale e il prossimo nodo sulla traiettoria (next target), e sia ∆ = τnext− τnow, si impone una velocità

vx,d= Kp,1

l

∆ (10)

che sarà valida quando l'agente sta procedendo dritto (g. 22).

Figura 22: Velocità robot

Quando l'agente si trova in prossimità del next target inizia la curva per permettergli di allinearsi alla nuova direzione di moto che lo porterà verso il nuovo next target. La velocità lineare sarà pari ad una media tra quella attuale e quella che dovrebbe avere nel successivo arco (tale velocità è evidenziata in rosso in gura).

vx,c=

v(x,d)1+ v(x,d)2

2 (11)

Durante la curva ci sarà anche una velocità angolare che permetta l'allineamento, sia θe= θ2− θ1,

allora:

ωz= −Kp,2sin θe (12)

Il controllore ha anche il compito di aggiornare i nodi di posizione ogni volta che avviene il passaggio da un arco al successivo e di inviare tale informazione al pianicatore.

6 Simulazioni

Allo scopo di analizzare le prestazioni di robot gestiti in maniera distribuita tramite l'algoritmo MrFert sono stati pensati 4 diversi scenari:

• Incrocio • Rotonda

• Scenario generale: magazzino • Treno

L'incrocio e la rotonda possono essere visti come due scenari agli antipodi e si possono ipotizzare quindi risultati molto dierenti, in maniera simile a quanto avviene realmente nelle strade. Lo scenario generale invece cerca di unire incroci e rotonda e ricreare un ambiente simile a quello di lavoro. Inne si osserva la dierenza che avviene in presenza di treno e senza.

L'analisi delle performance si concentrerà su il tempo necessario al robot per raggiungere il suo obiettivo e lo confronterà con il tempo ideale che impiegherebbe se non ci fossero altri agenti sulla mappa. Si osserverà anche la presenza o meno di intervalli di tempo in cui l'agente è fermo. Per come è stato realizzato l'algoritmo è facile notare che gli unici momenti un cui il robot è eettivamente fermo, cioè quando v = 0, sono sul nodo di partenza prima che si avvii la pianicazione e sul nodo di arrivo quando ha terminato il suo moto. Allora il robot si denisce fermo se sta procedendo molto lentamente rispetto alla sua velocità massima (v < 10% di vM ax). Un'altra grandezza di interesse

sarà la velocità media che l'agente manterrà durante il suo percorso. È opportuno evidenziare che dove non precisato le velocità sono sempre espresse in m/s.

Il numero degli agenti presenti sulla mappa varia da 1 no ad un massimo di 8, in questo modo è possibile vedere anche le dierenze dovute alle priorità dei robot riscontrate nelle varie simulazioni. Dove risultava signicativo fare un numero elevato si simulazioni queste sono state fatte andando a modicare in modo random le condizioni iniziali (nodo di partenza e nodo di arrivo).

6.1 Incrocio

In questo scenario tutti gli agenti si trovano su una circonferenza e devono passare per il centro per raggiungere ognuno il proprio obiettivo (situato sempre sulla circonferenza). Come si può vedere anche in g. 23 i punti di partenza e di arrivo sono ben distinti, in blu sono evidenziati i nodi di start e in rosso i nodi di goal. È opportuno inoltre specicare che oltre ai nodi posti sulla circonferenza e a quello centrale sono presenti anche dei nodi intermedi (non ragurati) lungo i vari raggi.

Figura 23: Mappa

Innanzitutto si è considerato l'agente r8, cioè quello con priorità più bassa, che deve realizzare

sempre lo stesso percorso ma con un numero di robot presenti sulla mappa via via maggiore (si passa dalla condizione in cui r8 è l'unico agente a quella in cui ci sono anche altri 7 agenti con priorità

maggiore: r1...r7).

La velocità massima imposta per ogni agente è sempre vmax= 0.4 m/s.

In g. 24 si può osservare un tipico andamento delle velocità lineari e angolari per r8 in presenza

di un altro robot. Osservando la velocità lineare si vede come sia presente un calo iniziale dovuto proprio alla presenza di un altro agente a priorità maggiore. La velocità angolare evidenzia il tipo di traiettoria seguita dal robot, questo avanza in linea retta lungo il raggio della circonferenza no ad arrivare al centro per poi modicare la sua orientazione per raggiungere il suo obiettivo.

(a) (b)

I risultati seguenti sono la media di 8 congurazioni iniziali dierenti per ogni robot (start e goal); per ogni congurazione si è aumentato il numero di robot come precedentemente descritto. Si può osservare l'incremento del tempo di percorrenza per r8in g. 25. Si passa da un tempo ideale

di 41.1404 s no a raggiungere i 126.1926 s quando l'agente è costretto a dare la precedenza a tutti gli altri 7 agenti. Si può vedere che l'incremento temporale è consistente (206%).

Figura 25: Tabella dei tempi di percorrenza

Figura 26: Rappresentazione graca dei tempi di percorrenza

In g. 26 di può osservare come l'aumento temporale sembra avere un andamento lineare. Per quanto riguarda la velocità media dell'agente in g. 27 si vede come nel caso ideale v = 0.38 m/s sia abbastanza vicina a quella massima (che ricordiamo è pari a 0.4 m/s). Si può vedere (g. 29) che la diminuzione inizialmente è lineare per poi diventare più dolce, questo è spiegabile col fatto che una volta che l'agente ha passato il nodo centrale (e ha quindi dato precedenza agli altri robot) può procedere a velocità sostenuta.

Si osserva anche che, quando l'agente deve dare precedenza a 4 o più robot, ha dei periodi in cui la sua velocità può essere equiparata a quasi fermo.

Per mostrare più in dettaglio la dierenza dell'andamento della velocità e del tempo di percor- renza nei due casi estremi (1 agente e 8 agenti), si può osservare la g. 30, questa evidenzia bene quanto detto in precedenza. Si osserva infatti la netta dierenza temporale necessaria a raggiungere

Figura 27: Tabella della velocità media

Figura 28: Tabella tempo fermo

il nodo nale e come, nel caso di 8 agenti, ci sia eettivamente un buon intervallo di tempo in cui r8

può considerarsi fermo. Nella parte nale si vede come la velocità tenda ad aumentare, ciò è dovuto ad una traiettoria nale libera e priva di precedenza da dare.

Inne in g. 31 sono riportati i risultati di tutti gli agenti. Come era prevedibile si osservano delle similitudini con i valori riportati precedentemente infatti analizzare ad esempio r8 in presenza di

Figura 29: Rappresentazione graca delle velocità medie

(a)

(b)

Documenti correlati