Modifiche recenti - Cerca:

Categorie

Pagine utente

Winzipedia

Uso dell'wiki

modifica il menu

01-1L1-RobotMobili

Lezione 1: i robot mobili (L1.1)

Autore: Francesco Gianni

Sommario
I robot mobili possono essere di molte tipologie, vedremo come si classificano, le loro peculiarità e le funzionalità che devono avere a prescindere dal modello.

Funzionalità di un robot mobile

Tutti i robot mobili devono avere alcune funzionalità, vediamo un rapido elenco che approfondiremo in seguito:

  • Localizzazione: dove sono?
  • Navigazione: come mi muovo evitando gli ostacoli?
  • Pianificazione: quale strada seguo?
  • Esplorazione: come rappresento l'ambiente circostante?
  • Coordinamento: come mi comporto o come interagisco con altri robot o operatori?

Localizzazione

Il robot deve sapere sempre dove si trova, in quanto deve essere in grado di raggiungere una nuova destinazione, deve poter riconoscere l'ambiente circostante e, sulla base dei suoi dati sensoriali, deve poter ricostruire una rappresentazione dell'ambiente in cui si muove. Purtroppo è molto difficile tenere traccia della posizione del robot mentre si muove, ci sono imprecisioni dovute agli attuatori, ai sensori e altre dovute alla natura stessa dell'ambiente, che può causare uno spostamento non desiderato del robot (es. buccia di banana). Il robot può contare su informazioni che ricava dall'ambiente, ad esempio può riconoscere oggetti di cui conosce la posizione nell'ambiente, oppure l'ambiente può essere strutturato in modo da offrire servizi per la localizzazione assoluta (es. GPS, telecamere che riprendono la scena).

Navigazione

L'ambiente in cui si muove il robot può essere statico o dinamico ad esempio se sono presenti altri oggetti in movimento, l'ambiente può essere strutturato o non strutturato se è possibile o meno fare delle ipotesi sulla sua struttura (es. muri lineari). L'ambiente può essere parzialmente osservabile da parte del robot, infatti alcune sue caratteristiche potrebbero sfuggire al robot (es. buchi nel pavimento). Il robot ha un modello dell'ambiente che può essere una mappa su cui è riportata la posizione di tutti gli ostacoli e nella quale il robot è in grado di collocarsi. Il modello dell'ambiente però potrebbe essere anche l'ambiente stesso, il robot usa i propri sensori per individuare gli ostacoli ed evitarli.

Pianificazione

Con pianificazione si intende la capacità del robot di trovare la strada verso una destinazione, seguendo un tragitto che può essere il più breve, il più veloce o il più preciso. La pianificazione del percorso si basa sulla conoscenza dell'ambiente in forma di mappa, che può essere di tipo geometrica, di occupazione, topologica o ibrida, ma indipendentemente dal tipo il robot deve saper distinguere tra spazi liberi e occupati. La pianificazione del percorso deve tenere conto della forma del robot e dei suoi gradi di libertà, le varie forme che può avere un robot saranno analizzate in seguito.

Esplorazione

Il robot può usare i propri sensori sonar, laser o telecamere, per crearsi un modello dell'ambiente. Deve essere in grado di stimare la qualità delle informazioni che ha riguardo all'ambiente, sulla base dell'incertezza della propria posizione, dei dati sensoriali e delle approssimazioni del modello. Il robot esplora l'ambiente con lo scopo di completare la sua descrizione e arricchire il modello che si è fatto di esso, in questo modo è in grado anche di minimizzare i tempi di successive esplorazioni.

Coordinamento

Con grado di autonomia di un robot si intende la capacità di compiere compiti più o meno complessi senza l'intervento di un operatore, come ad esempio raggiungere una posizione specifica, trovare e spostare un oggetto, inseguire un oggetto in movimento e coordinarsi, effettuare una scelta tra oggetti. Per riuscire ad essere autonomo il robot deve saper coordinare internamente le proprie risorse, quali sensori, attuatori, mappe e la comunicazione con altri robot o operatori.

Cinematica dei robot mobili

Tipi di ruote

La meccanica basilare dei robot impone alcune convenzioni:

  • il robot è costituito da meccanismi rigidi
  • ogni ruota continene al massimo un link di sterzo
  • tutti gli assi di sterzo sono perpendicolari al suolo
  • non c'è scivolamento nella direzione ortogonale al rotolamento
  • non c'è traslazione fra la ruota e il suolo (rotolamento puro)

Le ruote orientabili, ovvero quelle ruote che sono libere di cambiare direzione (es. ruote dietro del carrello della spesa), possono essere centrate, quando l'asse di rotazione passa per il centro della ruota, oppure eccentriche quando l'asse non passa per il centro della ruota. Una ruota può anche essere "composta" è il caso delle ruote omnidirezionali, sul cui battistrada sono presenti dei rulli che permettono alla ruota di superare piccoli ostacoli e anche di rotolare in direzione ortogonale al piano della ruota.

Gradi di mobilità e sterzabilità

Per definire i gradi di mobilità di un robot è necessario calcolare il CIR (Centro di Istantanea Rotazione), questo punto si trova all'intersezione degli assi ortogonali al piano di ogni singola ruota e passanti per il suo centro. Un robot è in grado di muoversi per puro rotolamente solo se possiede almeno un CIR. Se il CIR è unico il robot ha un solo grado di mobilità, se il CIR può essere un qualsiasi punto su una retta allora il robot ha due gradi di mobilità, mentre se il CIR può essere un qualsiasi punto del piano, a seconda dell'orientamento delle ruote, allora si dice che il robot ha tre gradi di mobilità. Geometricamente il CIR può essere visto come il centro della circonferenza alla quale appartiene l'arco che il robot percorre. I gradi di sterzabilità sono dati dal numero di ruote indipendenti centrate sterzabili, due o più ruote sterzabili dipendenti sono riconducibili, per questo calcolo, ad una singola ruota sterzabile indipendente.

Tipi di robot e classificazione

Differential drive

Ha due ruote motorizzate in asse tra di loro, non orientabili ne sterzabili, più una terza ruota passiva libera di ruotare che ha il solo scopo di mantenere il robot in equilibrio. Variando la velocità delle due ruote il robot ruota intorno ad un CIR che si trova sull'asse delle ruote stesse. Di seguito vediamo come è possibile calcolare le velocità lineari delle singole ruote:

mentre la velocità lineare e angolare dell'intero robot può essere calcolata come:

dove L è la distanza tra le due ruote, il raggio di rotazione R si calcola come:

Dati quattro istanti di tempo t0 ... t3, tali per cui dall'istante t0 all'istante t1 il robot accellera, dall'istante t1 a t2 il robot mantiene la sua velocità e dall'istante t2 all'istante t3 frena, possiamo calcolare la lunghezza D dell'arco percorso con la seguente formula:

da questa possiamo calcolare anche l'angolo corrispondente al raggio D:

Vediamo ora alcune formule di cinematica diretta che ci permettono di calcolare le coordinate del robot al tempo t, nel caso la sua velocità sia costante:

Possiamo anche riscrivere le equazioni in funzione delle distanze percorse dalle due ruote nell'intervallo di tempo che va da k-1 a k:

il raggio di curvatura possiamo riscriverlo come:

la posizione assoluta è individuabile dalle tre equazioni:

Per quanto riguarda la cinematica inversa solitamente le equazioni sono difficilmente invertibili, anche nel caso particolare di velocità costanti si ha indeterminazione sulla posizione angolare. Un metodo euristico che si potrebbe utilizzare per raggiungere la posizione X Y con un orientamento specifico è il seguente:

  • il robot ruota sul posto in modo da orientarsi nella direzione del target;
  • avanza in modo rettilineo fino a raggiungere il target;
  • quindi ruota sul posto fino a raggiungere l'orientamento voluto.

Tricycle drive

Il tricycle drive è un robot composto da una ruota anteriore sterzabile e due ruote posteriori, i parametri caratteristici che useremo per identificarne la posizione e l'orientamento nello spazio sono i seguenti:

Le equazioni che ci permettono di calcolare la posizione del robot al tempo k+1 risultano:

Con T indichiamo l'intervallo di tempo k ... k+1, il prodotto v * T è sostituibile con l'incremento lineare della ruota nell'intervallo di tempo k ... k+1, essendo dimensionalmente il prodotto di una velocità per un tempo. Con L indichiamo la distanza tra l'asse posteriore e la ruota anteriore.

Ackerman steering

Questa soluzione è usata su veicoli di grosse dimensioni, come le comuni autovetture, le due ruote anteriori ruotano su bracci separati e quindi con angolature differenti, in modo da individuare un CIR unico che si trova sulla retta passante per l'asse posteriore delle ruote. Per calcolare l'angolo di sterzo delle singole ruote, dato un CIR intorno al quale vogliamo ruotare, possiamo ricondurci al caso del tricycle drive: dato il CIR abbiamo la distanza L tra il CIR stesso e il punto mediano dell'assale posteriore del robot, data l la distanza tra la ruota anteriore e l'assale posteriore e THETA l'angolo di sterzo abbiamo:

le relazioni che legano questo angolo all'angolo di sterzo delle due ruote dello sterzo di Ackerman sono le seguenti:

Synchro drive

Questo robot è dotato di 3 o 4 ruote che sterzano in modo congiunto e si muovono nella stessa direzione con la stessa velocità. Utilizza 2 motori, uno per sterzare le ruote e uno per farle rotolare. Dal momento che le ruote sono sempre parallele tra di loro il robot ruota intorno al suo centro, il CIR è sempre all'infinito. Le equazioni del moto sono le seguenti:

Omnidirectional drive

Questo robot è composto da 3 ruote omnidirezionali orientate a 120° l'una con l'altra, la velocita' tangenziale delle singole ruote si ricava da:

dove R è la distanza della singola ruota dal centro del robot, Vx e Vy sono le velocità assolute del robot rispetto agli assi X e Y e OMEGAp è la rotazione angolare del robot. Il vantaggio principale di questo tipo di robot è la velocità nel cambio di direzione.

Cingolato

Questo tipo di robot ha bisogno di uno slittamento dei cingoli per poter ruotare, il CIR può essere in un punto qualsiasi all'interno dell'impronta a terra del cingolo. Solitamente viene usato per la movimentazione su terrene accidentati.

Modifica - Versioni - Stampa - Modifiche recenti - Cerca
Ultima modifica il 02/03/2012 ore 00:06 CET