Softimax
Home Softimax
 Trovare un percorso su una piantina
Creazione della piantina
Check-point candidati
Aggiunta degli archi
Percorso + aree di lavoro

Il progetto è stato ideato per risolvere un problema molto comune nel campo della robotica: tracciare un percorso minimo fra due punti all'interno di una mappa. In particolare è stato affrontato il problema di posizionare il minor numero di punti intermedi (check-point), sufficiente per permettere ad un robot di raggiungere un determinato goal, cercando di rimanere il più possibile lontano dalle pareti e dagli spigoli.

Il robot potrebbe trovare degli ostacoli temporanei lungo il suo cammino (ad es. passaggio di persone) e una delle possibili alternative è quella di variare leggermente il percorso per aggirare l'ostacolo.
Il problema che nasce da questa libertà è che se il robot si allontana troppo dalla linea retta e finisce dietro ad uno spigolo che gli oscura la posizione del successivo check-point, potrebbe non essere in grado di ritrovare il percorso originale.
Negli algoritmi si sfrutta quindi il concetto di "area di lavoro": il robot non è obbligato a muoversi sulla linea retta che unisce due check-point, ma può muoversi in un'area più ampia (definita matematicamente) che ovviamente non deve contenere spigoli vivi.

Il programma (sviluppato in C++) carica un file che specifica come costruire la piantina e le posizioni iniziali/finali del percorso da cercare.
Sfruttando i concetti di Voronoi e alcuni accorgimenti si riesce a costruire una mappa intermedia, costituita da tutti i possibili punti di passaggio (check point candidati), che si trovano solitamente nella parte centrale dell'area disponibile.

A questo punto si crea un grafo con l'insieme degli archi che unisce tutti i check-point, avendo l'accortezza di scartare gli archi inutili (gli archi che collegano due punti ai lati opposti di un muro o i percorsi la cui area di lavoro include degli spigoli).

Risulta facile a questo punto applicare un qualsiasi algoritmo di routing per trovare il percorso minimo. Nel caso specifico è stato scelto l'ottimo algoritmo di Dijsktra, che come risultato fornisce tutti i punti intermedi per compiere il percorso voluto. Variando il peso di ciascun arco è possibile scegliere se trovare il percorso minimo (peso proporzionale alla lunghezza dell'arco) o se ottenere il minor numero di check-point (peso uguale per tutti gli archi).

Collegamenti:
  Sezione download

In progress
Studio Pasqulini Salsa
(30%) Sito Internet
Fabio Riccardi
(50%) Sito Internet
Battute di caccia
(90%) Sito Internet
Faita Liguria
(50%) Nuovo sito web
Casm.it
(90%) Nuovo sito web

Hotel Cinque Terre
Hotel Liguria
Valid CSS!