Sistemi per il Governo dei Robot
Silvia Rossi - Lezione 12
martedì 20 novembre 12
THE REACTIVE PARADIGM
What’s Wrong with This?
martedì 20 novembre 12
After Can Is Dropped?
martedì 20 novembre 12
PARADIGMA REATTIVO
Categories of Coordination
martedì 20 novembre 12
Metodologie a Campi di potenziale
Un altro stile di architettura reattiva è basato sui
campi di potenziale. Le architetture specifiche che usano il tipo a campi di potenziale sono troppo
numerose per essere descritte tutte, per cui ci limiteremo ad una generalizzazione.
Lo stile a campo di potenziale dei behaviour fa uso sempre di vettori per rappresentare i behaviour e
della somma vettoriale per combinare vettori di behaviour diversi per produrre un behaviour
emergente.
Visualizzazione dei campi di potenziale
Il primo dogma di un'architettura a campi potenziale è che l'azione motoria di un behaviour deve essere
rappresentata come un campo di potenziale.
Un campo di potenziale è un array, o campo di vettori.
Un vettore è una struttura matematica che consiste di una ampiezza ed una direzione.
Un vettore V può essere descritto anche come un coppia (m,d), dove m sta per ampiezza e d per
direzione.
Per convenzione l’ampiezza è un numero reale tra 0 e 1, ma in generale può essere qualunque numero reale.
martedì 20 novembre 12
Potential Fields Philosophy
• The motor schema component of a behavior can be expressed with a potential fields methodology
– A potential field can be a “primitive” or constructed from primitives which are summed together
– The output of behaviors are combined using vector summation
• From each behavior, the robot “feels” a vector or force
– Magnitude = force, strength of stimulus, or velocity – Direction
• But we visualize the “force” as a field, where every
point in space represents the vector that it would
feel if it were at that point
Oussama Khatib
Stanford University professor
Potential fields methods for arms
http://www.youtube.com/watch?v=0yD3uBshJB0
43
martedì 20 novembre 12
L'array rappresenta una regione di spazio.
In molte applicazioni robotiche lo spazio è bidimensionale,
rappresentando una prospettiva a volo di uccello del mondo come fosse una mappa.
La mappa può essere divisa in quadrati, creando una griglia (x,y).
Ogni elemento dell'array rappresenta un quadrato dello spazio.
Oggetti percepibili nel mondo esercitano un campo di forza sullo spazio circostante.
Il campo di forza è analogo ad un campo magnetico o gravitazionale.
Il robot può essere pensato come una particella che entra nel campo emesso da un oggetto o da un ambiente. Il vettore rappresenta la
forza, cioè la direzione di rotazione e l’ampiezza o velocità da intraprendere in quella direzione.
I campi di potenziale sono continui e ad ogni punto nello spazio è associato un vettore.
21
Example: Run Away via Repulsion
martedì 20 novembre 12
Se il robot è vicino all'ostacolo, diciamo entro i 5 metri, esso è nel campo di potenziale, allora si
genera una forza che lo spinge ad allontanarsi dall'ostacolo.
Se il robot non è all'interno del raggio dell'ostacolo, esso resta là perché nessuna forza è applicata su lui.
Si noti che il campo rappresenta quello che dovrebbe fare il robot (lo
schema motorio) se il robot percepisse un ostacolo (lo schema percettivo).
Il campo non dà conto di come il robot arriva vicino all'ostacolo; il robot sente la stessa forza sia se si
sta muovendo all'interno del raggio sia se sta fermo
al suo interno.
15
LA FIG. MOSTRA COME UN OSTACOLO PRODUCE UN CAMPO SUL ROBOT E LO FA FUGGIRE.
martedì 20 novembre 12
Un modo di pensare ai campi di potenziale è di
immaginare un campo di forza che agisce sul robot.
Un altro modo è pensare a loro come ad una
superficie di energia potenziale in tre dimensioni (la gravità spesso è rappresentata così) ed il robot
come una palla di marmo. In questo caso, il vettore indica la direzione verso cui il robot rotolerebbe sulla superficie.
Dossi sulla superficie fanno sì che il robot rotoli via o giri intorno (i vettori dovrebbero puntare lontano
dalla "vetta" della collina), e le valli fanno sì che il
robot rotoli verso il basso (vettori che puntano verso
il fondo).
martedì 20 novembre 12
5 Primitive Potential Fields
Parameters
The extent of influence
Radius of lenght
Angle (slice of the pie)
Direction
Tangential: clockwise? counterclockwise? Half of each?
martedì 20 novembre 12
Draw These Now!
Common fields in behaviors
• Uniform
– Move in a particular direction, corridor following
• Repulsion
– Runaway (obstacle avoidance)
• Attraction
– Move to goal
• Perpendicular
– Corridor following
• Tangential
– Move through door, docking (in combination with other fields)
• random
– do you think this is a potential field? what would it look like?
Profili di ampiezze
Si osservi che nelle Fig. c,d,e la lunghezza delle frecce è diversa a seconda della distanza
dall'oggetto.
Il modo in cui l’ampiezza dei vettori cambia nel campo è stata chiamata profilo di ampiezza.
Il termine “profilo di ampiezza” è usato qui perché il termine profilo di velocità è usato dagli ingegneri di controlli automatici per descrivere come i motori di un robot accelerano e rallentano per produrre
un particolare movimento senza dare scosse.
martedì 20 novembre 12
Matematicamente, il campo può essere rappresentato in coordinate polari ed il centro del campo è l'origine (0, 0):
(4.1) Vdirection = -Ф Vmagnitude = c
In questo caso, l’ampiezza è un valore costante c; la
lunghezza delle frecce cioè rimane la stessa. Questo può essere visualizzato con un
plot della ampiezza mostrata
Questo profilo dice che il robot fuggirà (la direzione verso cui correrà è -Ф), sempre alla stessa velocità, non
importa quanto vicino sia all'oggetto, finché è nel raggio dell'ostacolo. Appena il robot esce dal raggio d’azione dell'ostacolo, la velocità cade a 0, fermando il robot.
Il campo è essenzialmente binario: il robot o sta fuggendo a velocita' costante o si ferma.
In pratica c’è qualche problema con l’ampiezza costante.
Si può infatti produrre un moto a scatti lungo il perimetro del raggio d’azione del campo. Questo si nota quando un robot andando in una particolare direzione, incontra un
ostacolo. Fugge, lasciando quasi immediatamente il campo, poi torna indietro di nuovo sul suo percorso originale, incontra il campo di nuovo, e così via.
martedì 20 novembre 12
I profili di ampiezza rendono anche possibile al progettista rappresentare la riflessività
(una risposta che dovrebbe
essere proporzionale alla forza dello stimolo) e creare
risposte interessanti.
Se il robot è lontano
dall'oggetto, esso andrà in giro e si muoverà
rapidamente, quando si dirige verso l’oggetto inizierà a
rallentare per evitare di
colpirlo.
In matematica, questo andamento è detto linear drop off (esaurimento lineare), perché la velocità alla quale l’ampiezza si esaurisce può essere
rappresentata da una linea retta.
La formula di una retta è y = mx + b dove x è la
distanza e y è l’ampiezza. b influenza l'inizio della linea e m è l’inclinazione ( ).
Qualunque valore di m e b è accettabile. Se non è specificato, m = 1 o -1 (una inclinazione di 45° in su o in giù) e b = 0 per le funzioni lineari.
martedì 20 novembre 12
Per catturare il bisogno di una reazione forte e più accentuata si deve usare un altro profilo.
Un tale profilo è una funzione detta a esaurimento
esponenziale in cui
l’esaurimento è proporzionale al quadrato della distanza: per ogni unità di distanza
dall'oggetto la forza sul robot
diminuisce della metà.
La motivazione di usare profili di ampiezza è quella di raffinare il behaviour.
È importante notare che il robot calcola solamente i vettori che agiscono su di lui nella sua posizione corrente. Le figure, invece, espongono il campo intero per tutte le possibili
ubicazioni del robot.
La domanda che sorge è: perché le figure mostrano un campo intero su uno spazio?
Prima di tutto, questo aiuta a visualizzare quello che il robot farà complessivamente, non solo ad un particolare istante di tempo.
Secondo, siccome i campi sono rappresentazioni continue, questa è una semplificazione che conferma se il campo è corretto e rende subito evidente ogni cambio improvviso.
martedì 20 novembre 12
Class Exercise
• Name the field you’d use for
– Moving towards a light – Avoiding obstacles
ATTRACTIVE
REPULSIVE
Campi di potenziale e percezione
Negli esempi precedenti, la forza del campo di potenziale in ogni dato punto era una funzione del profilo di
ampiezza e della distanza relativa tra il robot ed un oggetto.
La forza di un campo di potenziale può però essere una funzione dello stimolo, indipendentemente dalla distanza.
Come esempio il behaviour di cibo per il piccolo di rondine artica dove il behaviour cibo è guidato dallo stimolo "rosso." Questo può essere modellato da un campo attrattivo.
Più grande e rosso è un oggetto nel campo visivo del piccolo, più forte l'attrazione, suggerendo un profilo di ampiezza che usa una funzione esponenziale crescente.
Un altro importante punto che già è stato menzionato è che i campi di potenziale sono ego-centrici perché la
percezione di un robot è ego-centrica.
martedì 20 novembre 12
Programmazione di un singolo campo di potenziale
I campi di potenziale sono facili da programmare, specialmente quando sono ego-centrici rispetto al robot.
La visualizzazione di un intero campo può indurre a pensare che il robot e gli oggetti sono in un sistema di coordinate fisso, assoluto, ma in realtà non lo
sono.
Il robot calcola l'effetto del campo di potenziale, di solito come una linea retta, ad ogni aggiornamento senza memoria di dove era prima o dove il robot si è mosso.
Vediamo alcuni esempi.
Un campo di potenziale primitivo è rappresentato usualmente da una sola funzione.
Il vettore che ha un impatto sul robot è calcolato ad ogni aggiornamento.
Si consideri il caso di un robot con un solo sensore di distanza rivolto in avanti.
Il progettista decide che è adatto un campo repulsivo con una attenuazione lineare.
La formula è:
VDIRECTION = -180°
V
magnitude=
martedì 20 novembre 12
Campo Repulsivo
typedef struct {
double magnitude;
double direction;
} vector;
vector repulsive(double d, double D) {vector outputVector;
if (d <=D) {
outputVector.direction =180; // si gira!
outputVector.magnitude = (D-d)/D;//decadimento lineare
}
else {
outputVector.direction=O.O outputVector.magnitude=O.O }
return outputVector;
}
Runaway
A questo punto, è facile illustrare come un campo di potenziale può essere usato da un behaviour, RUNAWAY, per il robot con un solo sensore.
Il behaviour RUNAWAY userà la funzione
repulsive() come schema motorio, ed una funzione readSonar() come schema percettivo.
L’output del behaviour è un vettore.
RUNAWAY è chiamato dal robot ad ogni ciclo di aggiornamento.
martedì 20 novembre 12
Runaway
VECTOR RUNAWAY() { VECTOR VOUTPUT;
DOUBLE READING;
READING=READSONAR(); // SCHEMA PERCETTIVO
VOUTPUT =REPULSIVE(READING, MAX_DISTANCE);//
// SCHEMA RETURN VOUTPUT; // MOTORIO }
// ****************** MAIN **************
WHILE (ROBOT==ON) { DOUBLE VRUNAWAY;
VRUNAWAY=RUNAWAY(READING); // SCHEMA MOTORIO TURN(VRUNAWAY.DIRECTION);
FORWARD(VRUNAWAY.MAGNITUDE*MAX_VELOCITY);
}
Combinazione di behaviour e Campi
Come affermato precedentemente, il primo attributo di una vera metodologia di campi di potenziale è
che essa richiede che tutti i behaviour siano implementati come campi di potenziale.
Il secondo attributo è che essa combini i behaviour non mediante una sussunzione uno dell’altro, ma mediante una sommatoria di vettori.
Un robot avrà generalmente forze agenti su lui
provenienti da behaviour multipli e concomitanti.
Vogliamo fornire due esempi di come behaviour
multipli sorgono e come sono implementati e sono combinati.
martedì 20 novembre 12
Combining Fields for Emergent Behavior
OBSTACLE OBSTACLE
GOAL
IF ROBOT WERE DROPPED ANYWHERE ON THIS GRID, IT WOULD WANT TO MOVE TO GOAL AND AVOID OBSTACLE:
BEHAVIOR 1: MOVE2GOAL BEHAVIOR 2: RUNAWAY
THE OUTPUT OF EACH INDEPENDENT BEHAVIOR IS A VECTOR,
THE 2 VECTORS IS SUMMED TO PRODUCE EMERGENT BEHAVIOR
25
Combining Fields for Emergent Behavior
OBSTACLE OBSTACLE
GOAL
martedì 20 novembre 12
NOTE: IN THIS EXAMPLE, REPULSIVE FIELD ONLY EXTENDS FOR 2 METERS;
THE ROBOT RUNS AWAY ONLY IF OBSTACLE WITHIN 2 METERS
Fields and Their Combination
26
NOTE: IN THIS EXAMPLE, ROBOT CAN SENSE THE GOAL FROM 10 METERS AWAY
Fields and Their Combination
martedì 20 novembre 12
Fields and Their Combination
27
Path Taken
• If robot started at this location, it would take the following path
• It would only “feel”the vector for the location, then move accordingly, “feel”
the next vector, move, etc.
• Pfield visualization allows us to see the vectors at all points, but robot never computes the “field of vectors” just the local vector
ROBOT ONLY FEELS VECTORS FOR THIS
POINT WHEN IT (IF) REACHES THAT POINT
martedì 20 novembre 12
Discussion
• Could you represent the Arctic Tern feeding behavior with potential fields?
– what happens with multiple red dots?
– can you inhibit with potential fields?
INTRODUCTION TO AI ROBOTICS (MIT
PRESS) CHAPTER 4: THE REACTIVE PARADIGM 29
Example: follow-corridor or follow-sidewalk
PERPENDICULAR UNIFORM
COMBINED
NOTE USE OF
MAGNITUDE PROFILES:
PERPENDICULAR DECREASES
martedì 20 novembre 12
l'impatto della velocità di aggiornamento e i minimi locali.
Si noti che la distanza (lunghezza delle frecce) tra aggiornamenti è diversa. Questo è dovuto ai cambi nella ampiezza del vettore di output che controlla la velocità del robot.
Se il robot ha un vettore più "corto", viaggia più lentamente e, perciò, copre meno distanza nello stesso ammontare di tempo.
Un altro aspetto della frequenza di aggiornamento è che il robot può superare la meta, specialmente se sta usando shaft encoders (la meta è a 10.3
metri da dove il robot è partito).
Qualche volta i progettisti usano campi attrattivi
con una ampiezza che si attenua man mano che il robot si avvicina, facendo rallentare il robot che
così può dire che è giunto alla meta.
(I programmatori mettono di solito una tolleranza sull'ubicazione della meta, per esempio invece di 10.3m la meta è l0.3m±0.5m.)
martedì 20 novembre 12