• Non ci sono risultati.

Sistemi per il Governo dei Robot

N/A
N/A
Protected

Academic year: 2021

Condividi "Sistemi per il Governo dei Robot"

Copied!
46
0
0

Testo completo

(1)

Sistemi per il Governo dei Robot

Silvia Rossi - Lezione 12

martedì 20 novembre 12

(2)

THE REACTIVE PARADIGM

(3)

What’s Wrong with This?

martedì 20 novembre 12

(4)

After Can Is Dropped?

(5)

martedì 20 novembre 12

(6)

PARADIGMA REATTIVO

(7)

Categories of Coordination

martedì 20 novembre 12

(8)

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.

(9)

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

(10)

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

(11)

Oussama Khatib

Stanford University professor

Potential fields methods for arms

http://www.youtube.com/watch?v=0yD3uBshJB0

43

martedì 20 novembre 12

(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.

(13)

21

Example: Run Away via Repulsion

martedì 20 novembre 12

(14)

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)

15

LA FIG. MOSTRA COME UN OSTACOLO PRODUCE UN CAMPO SUL ROBOT E LO FA FUGGIRE.

martedì 20 novembre 12

(16)

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).

(17)

martedì 20 novembre 12

(18)

5 Primitive Potential Fields

(19)

Parameters

The extent of influence

Radius of lenght

Angle (slice of the pie)

Direction

Tangential: clockwise? counterclockwise? Half of each?

martedì 20 novembre 12

(20)

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?

(21)

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

(22)

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

(23)

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

(24)

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.

(25)

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

(26)

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à.

(27)

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

(28)

Class Exercise

• Name the field you’d use for

– Moving towards a light – Avoiding obstacles

ATTRACTIVE

REPULSIVE

(29)

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

(30)

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.

(31)

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

(32)

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;

}

(33)

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

(34)

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);

}

(35)

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

(36)

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

(37)

25

Combining Fields for Emergent Behavior

OBSTACLE OBSTACLE

GOAL

martedì 20 novembre 12

(38)

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

(39)

26

NOTE: IN THIS EXAMPLE, ROBOT CAN SENSE THE GOAL FROM 10 METERS AWAY

Fields and Their Combination

martedì 20 novembre 12

(40)

Fields and Their Combination

(41)

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

(42)

Discussion

• Could you represent the Arctic Tern feeding behavior with potential fields?

what happens with multiple red dots?

can you inhibit with potential fields?

(43)

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

(44)

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.

(45)

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

(46)

Un terzo problema è che i campi possono anche dare somma 0.

Se si disegni una linea tra la Meta e l'Ostacolo.

Lungo questa linea dietro all’ostacolo, i vettori

hanno solamente una testa (direzione della freccia) e nessun corpo (lunghezza della freccia).

Questo vuole dire che l’ampiezza è 0 e che il robot se raggiunge quel posto, si fermerà e non si

muoverà più.

Questo stato è chiamato un problema di minimo

locale, perché il campo di potenziale ha un minimo,

o un avvallamento che intrappola il robot.

Riferimenti

Documenti correlati

Lo schema percettivo doveva usare la linea bianca per calcolare la differenza fra dove era il centroide della linea bianca e dove il robot avrebbe dovuto essere, mentre gli

Gli automi a stati finiti sono uno strumento utile per scrivere un programma di controllo coordinato di un behavior astratto e. quindi diventano un buon strumento di programmazione

• Define each of the following terms in one or two sentences: proprioception, exteroception, exproprioception,proximity sensor, logical sensor, false positive, false negative,

La rappresentazione del mondo viene modificata ogni volta che il robot percepisce l’ambiente e il piano delle azioni viene stabilito sulla base di tale rappresentazione..

una conoscenza a priori del mondo quando è disponibile e stabile può essere usata per configurare o riconfigurare i behavior efficientemente modelli del mondo acquisiti

• P,S-A, deliberation uses global world models, reactive uses behavior-specific or

– Coverage (ex. Spread out to cover as much as possible) – Convergence (ex. Robots meet from different start positions) – Movement-to (ex. Doesn’t require agents to know about

Nelle architetture di controllo reattive l’esecuzione di un compito è suddivisa tra moduli ognuno dei quali ha assegnata una specifica competenza e attua un determinato