Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL...

38
Robotica 1 1 Corso di Robotica 1 Architetture di governo Programmazione Prof. Alessandro De Luca

Transcript of Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL...

Page 1: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Robotica 1 1

Corso di Robotica 1

Architetture di governo Programmazione

Prof. Alessandro De Luca

Page 2: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Architettura funzionale di governo

Modello di riferimento

S

S

S

S

M

M

M

M

D

D

D

D

sensori

Mem

oria globale

interfaccia

. . .

. . . .

.

.

attuatori

operatore

elaborazione sensori

modelli conoscenza

politiche decisione

livello compito

livello azioni

livello primitive

livello servo

Robotica 1 2

Page 3: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Modello di riferimento: Moduli Modello di riferimento

S

S

S

S

M

M

M

M

D

D

D

D

sensori

Mem

oria globale

interfaccia

. . .

. . . .

.

.

attuatori

operatore

elaborazione sensori

modelli conoscenza

politiche decisione

livello compito

livello azioni

livello primitive

livello servo

MODULI SENSORIALI acquisizione, elaborazione e integrazione dati sensoriali

Robotica 1 3

Page 4: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Modello di riferimento: Moduli Modello di riferimento

S

S

S

S

M

M

M

M

D

D

D

D

sensori

Mem

oria globale

interfaccia

. . .

. . . .

.

.

attuatori

operatore

elaborazione sensori

modelli conoscenza

politiche decisione

livello compito

livello azioni

livello primitive

livello servo

MODULI MODELLISTICI conoscenze a priori del

sistema robot + ambiente, aggiornate sulla base di

informazioni dai moduli sensoriali

Robotica 1 4

Page 5: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Modello di riferimento: Moduli Modello di riferimento

S

S

S

S

M

M

M

M

D

D

D

D

sensori

Mem

oria globale

interfaccia

. . .

. . . .

.

.

attuatori

operatore

elaborazione sensori

modelli conoscenza

politiche decisione

livello compito

livello azioni

livello primitive

livello servo

MODULI DECISIONALI • decomposizione (nel tempo e nello spazio) dei compiti in azioni di livello più basso •  scelta ed elaborazione di strategie

Robotica 1 5

Page 6: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Modello di riferimento: Moduli Modello di riferimento

S

S

S

S

M

M

M

M

D

D

D

D

sensori

Mem

oria globale

interfaccia

. . .

. . . .

.

.

attuatori

operatore

elaborazione sensori

modelli conoscenza

politiche decisione

livello compito

livello azioni

livello primitive

livello servo

MEMORIA GLOBALE informazioni di interesse per

tutti i livelli (stime aggiornate stato sistema + ambiente)

Robotica 1 6

Page 7: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Modello di riferimento: Moduli Modello di riferimento

S

S

S

S

M

M

M

M

D

D

D

D

sensori

Mem

oria globale

interfaccia

. . .

. . . .

.

.

attuatori

operatore

elaborazione sensori

modelli conoscenza

politiche decisione

livello compito

livello azioni

livello primitive

livello servo

INTERFACCIA OPERATORE consente l’intervento

dell’operatore ad ogni livello della gerarchia funzionale

Robotica 1 7

Page 8: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Modello di riferimento: Livelli

  Livello del compito: obiettivo del compito (specificato da operatore) analizzato e decomposto in azioni (basandosi su modelli di conoscenza di sistema robotico e ambiente)

  Livello delle azioni: comandi simbolici tradotti in sequenze di configurazioni intermedie

  Livello delle primitive: calcolo di traiettorie di riferimento per livello servo, scelta della strategia di controllo

  Livello dei servo: realizzazione algoritmi di controllo, calcolo comandi di attuazione per servomotori

COM

PLESSITA’ INFO

VI

NCO

LI T

EMPO

RAL

I

Robotica 1 8

Page 9: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Un’architettura funzionale per robot industriali

M S

S M

D

D

D

telecamera

forza velocità posizione

comandi attuatori

azioni

primitive

servo

qdes qdes

. qdes

..

algoritmo di controllo

sistemi di riferimento punti percorso modi di interpolazione

richiesta

richiesta

dati

dati stato

stato

Robotica 1 9

Page 10: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Un’architettura funzionale per robot industriali

M S

S M

D

D

D

telecamera

comandi attuatori

azioni

primitive

servo

richiesta

richiesta

dati

dati stato

stato LIVELLO AZIONI • interprete comandi alto livello • decomposizione del compito affidata all’operatore

• mancano moduli sensoriali e modellistici (se non c’è una interazione multi-modale human-robot)

qdes qdes

. qdes

..

sistemi di riferimento punti percorso modi di interpolazione

forza velocità posizione

algoritmo di controllo

Robotica 1 10

Page 11: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Un’architettura funzionale per robot industriali

M S

S M

D

D

D

telecamera

forza vel pos

comandi attuatori

azioni

primitive

servo

algo di controllo

richiesta

richiesta

dati

dati stato

stato

forza qdes qdes

. qdes

..

sistemi di riferimento punti percorso modi di interpolazione

LIVELLO PRIMITIVE • S: (solo per interazione attiva con ambiente)

geometria dell’ambiente, stato interazione • M: cinematica diretta e inversa, modelli dinamici • D: decodifica comandi, generazione percorso, interpolazione

traiettoria, inversione cinematica, analisi stato servo, gestione emergenze

Robotica 1 11

Page 12: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

algoritmo di controllo qdes qdes

. qdes

..

Un’architettura funzionale per robot industriali

M S

S M

D

D

D

telecamera

comandi attuatori

azioni

primitive

servo

Sist. Coord. Punti percorso Modalità interp.

richiesta

richiesta

dati

dati stato

stato

forza velocità posizione

LIVELLO SERVO • S: condizionamento segnali, stato interno manipolatore,

stato interazione con ambiente • M: cinematica diretta, Jacobiano, dinamica inversa • D: decodifica comandi, microinterpolazione, gestione errori,

legge di controllo digitale, interfaccia servo

Robotica 1 12

Page 13: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Interazione tra i moduli

attivazione orizzontale

(sequenziale)

attivazione verticale a richiesta

(subsumption)

plan changes to world

identify object

monitor changes

build map

explore

wander

avoid obstacles

perception

modeling

planning

task execution

motor control

sensors actuators

sensors actuators

Robotica 1 13

Page 14: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Architettura del LAAS

  esempio alternativo del LAAS/CNRS di Toulouse

  livello decisionale   livello di sincronizzazione

della esecuzione   livello funzionale (moduli)   livello con logica di

interfacciamento   livello fisico dei dispositivi

Robotica 1 14

Page 15: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Sviluppo delle architetture - 1

  esemplificato per la navigazione di un robot mobile su ruote

  sistema gerarchico   localizzazione iniziale   pianificazione off-line   controllo del moto on-line   possibilità eventuale di

acquisizione/aggiornamento del modello dell’ambiente (con scala temporale lenta)

Robotica 1 15

Page 16: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Sviluppo delle architetture - 2

  sistema reattivo puro   stima in linea dell’ambiente

locale (incognito)   obiettivo globale di

posizionamento (goal)   reazione locale per avere

“obstacle avoidance” + guida globale verso il goal

Robotica 1 16

Page 17: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Sviluppo delle architetture - 3

  sistema ibrido   SLAM = simultaneous

localization and mapping   navigazione/esplorazione

sul modello corrente   fusione di dati sensoriali   controllo del moto on-line

Robotica 1 17

Page 18: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

“Wheelchair” attuata e sensorizzata

Robotica 1 18

Page 19: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Cella per selezione di rifiuti domestici

versione semi-automatica Fraunhofer IPA, Stoccarda

Robotica 1 19

Page 20: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

d

CCD cameraLaser beam

Reference line

Conveyor belt

X

Y

α h

Modulo sensoriale (nella versione automatica)

operatore +

touch-screen sostituito da

visione a luce strutturata +

sistema di localizzazione neuro-fuzzy

principio di funzionamento del sensore a luce strutturata

lavori della Dr.ssa Raffaella Mattone

Robotica 1 20

Page 21: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Interpretazione dati sensoriali

shadowcone

imperfectreflection

line projectedon a vertical surface

possibili cause di mancanza di informazione su una singola linea

Robotica 1 21

Page 22: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Interpretazione dati sensoriali

line 1

line 2

S 11

S 23S 22

S 12

S 21

S 13

O1object O2object

O3object

integrazione di dati ottenuti ad istanti di campionamento successivi

moto del conveyor

ordine di processamento

Robotica 1 22

Page 23: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Modulo decisionale

struttura del modulo di localizzazione e classificazione degli oggetti

Rule-Level I

Rule-Level II

1h 4h2h 3h ... vector of height samples

a1e1s 1a2e2s 2

list of “segments” in the sampled profile(start point, end point,

average height, ...)

zyx

objects geometric features(center point, average height,...)

Classification results

Robotica 1 23

Page 24: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Modulo modellistico

esempio di modello di oggetti sul nastro trasportatore

Robotica 1 24

Page 25: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Architettura funzionale cella IPA

calcolo h su ogni linea

modello corrente

oggetti su nastro localizzazione classificazione

presenza oggetto al

gripper

M S

S M

D

D

D

telecamera + laser

forza (gripper) velocità posizione

comandi attuatori

azioni

primitive

servo

pdes

richiesta

richiesta

dati

dati stato

stato sistemi di riferimento punti percorso modi di interpolazione

Robotica 1 25

Page 26: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Descrizione con diagrammi di flusso

  posti (p1,…,p4) stati o blocchi funzionali:

attivi se c’è un “token” nel posto (es. p1 e p3)

  transizioni (t1,…,t3) passaggi da uno stato a un

altro attivati da eventi: presenza di tokens sufficienti (almeno uno) in tutti i posti in ingresso a transizione; eventualmente temporizzate (es. t1, t3)

RETI DI PETRI

grafi orientati con due tipi di nodi

p1

p2 p3

t1 (T1)

t2 t3 (T3)

p4

Robotica 1 26

Page 27: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Diagramma di flusso cella IPA

  p1: pick & place   T1: tempo di pick & place   p2: robot ready   p3: nuovo pezzo su conveyor   p4: attesa nuovo pezzo   T3 (variabile aleatoria):

intervallo di tempo tra due pezzi successivi

p1

p2 p3

t1 (T1)

t2 t3 (T3)

p4

marcatura/condizione iniziale: robot pronto, attesa nuovo pezzo

Robotica 1 27

Page 28: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Architettura hardware

BUS

SISTEMA CINEMATICA DINAMICA

SERVO FORZA VISIONE

I/O

MEMORIA ESTERNA

TEACH PENDANT TASTIERA

CAMERA MONITOR sensore forza

trasduttori pos + vel

AMPLI POT

servomotori Robotica 1 28

Page 29: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Architettura hardware cella IPA

BUS

SISTEMA

SERVO FORZA

I/O

MEMORIA ESTERNA

TEACH PENDANT TASTIERA

CAMERA

MONITOR

sensore forza

trasduttori pos + vel

AMPLI POT

servomotori

VISIONE

CINEMATICA robot SCARA

Robotica 1 29

Page 30: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Architettura hardware con visione

Robot CPU Servo

CPU Power amplifiers

 BUS VME

User interface modules

 COMAU – C3G 9000 open

Robot COMAU SMART-3S

Board BIT 3

 BUS AT

Board BIT 3

Control PC

 Control - PC (RTAI-Linux)

Vision PC

MATROX GENESIS

MATROX GENESIS

 Vision - PC

BUS AT

RS232 SONY XC 8500 CE

SONY XC 8500 CE

Board BIT 3

Robot CPU Servo

CPU Power amplifiers

 BUS VME

User interface modules Board

BIT 3

R6AX R7AX

Robotica 1 30

Page 31: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Ambienti di programmazione per robot

  sistema operativo in tempo reale   modellazione del mondo   controllo del moto   lettura dati sensoriali   interattività con sistema fisico   rilevazione errori   ripristino situazioni operative corrette   struttura specifica del linguaggio

ambiente condizionato dal livello dell’architettura funzionale a cui è consentito l’accesso dell’operatore

Robotica 1 31

Page 32: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Programmazione per insegnamento

  linguaggi di “prima generazione”   programmazione ad insegnamento diretto (teaching-by-

showing)   operatore guida robot (manualmente o tramite teach box) lungo

percorso desiderato (off-line!)   posizioni di giunto campionate, interpolate e memorizzate per essere

ripetute in seguito (accesso a livello di primitive)   generazione automatica del codice: non sono richieste capacità

particolari di programmazione

  applicazioni: saldatura a punti, verniciatura, pallettizzazione   esempi di linguaggi: T3 (Milacron), FUNKY (IBM)

Robotica 1 32

Page 33: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Programmazione orientata al robot

  linguaggi di “seconda generazione”: programmazione strutturata con caratteristiche di linguaggio interpretativo (ambiente di programmazione interattivo)

  integrazione di funzioni tipiche di linguaggi ad alto livello (ad es., condizionamento logico e cicli di attesa)   sviluppando linguaggi strutturati ad hoc per robot (più frequente)   sviluppando librerie specifiche per linguaggi standard (auspicabile)

  accesso a livello di azioni   applicazioni complesse dove il robot interagisce con altre

macchine all’interno di una cella di lavoro   Esempi di linguaggi: VAL II (Unimation), AML (IBM), PDL 2

(Comau), KRL (Kuka)

Robotica 1 33

Page 34: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Linguaggio KRL (Kuka)

  set di istruzioni

Robotica 1 34

Page 35: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Linguaggio KRL (Kuka)

  tipiche primitive di moto

moto PTP (point-to-point,

lineare nei giunti)

moto LIN (lineare nel cartesiano)

moto CIRC (circolare nel cartesiano)

moto PTP (lineare negli angoli)

orientamento COST

orientamento organo terminale

Robotica 1 35

Page 36: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Linguaggio KRL (Kuka)

  sistemi di coordinate (frames cartesiani) e jogging dei giunti

Robotica 1 36

Page 37: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Linguaggio KRL (Kuka)

  teach pendant (interfaccia d’utente)

Robotica 1 37

Page 38: Corso di Robotica 1deluca/rob1/06_ComponentiArchGoverno.pdf · Robotica 1 33 . Linguaggio KRL (Kuka) set di istruzioni Robotica 1 34 . Linguaggio KRL (Kuka) tipiche primitive di moto

Programmazione orientata al compito

  linguaggi di “terza generazione” (di ricerca, non ancora disponibili sul mercato)

  simile a object-oriented programming

  compito specificato da istruzioni ad alto livello che realizzano azioni sulle parti presenti nella scena (sistemi esperti, intelligenza artificiale)

  accesso a livello del compito

Robotica 1 38