IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Robotica mobile e dintornipanoramica sulle tecnologie hardware e software per il supporto
alla robotica mobile
Raffaele Grandi
em@il :[email protected]
www .lar .deis.unibo.it/people/rgrandi
D.E.I. - Universita di Bologna
19 Aprile 2013
Raffaele Grandi Robotica mobile e dintorni 1 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Outline
1 Introduzione
2 Applicazioni varie
3 Lego Mindstorm NXT
4 ROS: an open-source Robot Operating System
Raffaele Grandi Robotica mobile e dintorni 2 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Approccio interdisciplinare
Occuparsi di robotica significa lavorare in un campo fortementeinterdisciplinare
La parte della robotica che studiamo e quella prettamente legata asquadre di robot mobili.
La parola squadra suggerisce un approccio collaborativo tra i robot
Lo studio e legato fondamentalmente ad algoritmi di controllodistribuito derivanti dalla teoria dei grafi
Spesso sono integrati con algoritmi di altra natura :
reti neurali, algoritmi di ottimizzazione, algoritmi euristici ealgoritmi esplorativi appartenenti anche al campodell’intelligenza artificiale
Raffaele Grandi Robotica mobile e dintorni 3 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Strumenti di lavoro
Gli strumenti che vengono utilizzati non sono solamente quelliteorici presentati ma anche quelli applicativi
La necessita di interagire con l’ambiente circostante spinge lostudioso di robotica a interfacciarsi con dispositivi diacquisizione dati e di rappresentazione ambientale
Si studiano gli algoritmi fondamentalmente in due modi
attraverso la simulazioneattraverso la realizzazione di un supporto fisico : un robot ouna sua parte
Raffaele Grandi Robotica mobile e dintorni 4 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Simulazione
La simulazione egeneralmente un passoobbligato nell’affrontare un“problema robotico”
Principalmente sono tre tipidi software che utilizziamoper la simulazione robotica
M.U.S.E. -Matlab/SimulinkJ.U.S.E. - JavaUnibot SimulationEnvironmentBlender/Morse
sim MUSE
Raffaele Grandi Robotica mobile e dintorni 5 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Realizzazione pratica
Il passaggio dalla teoria alla pratica e spesso abbastanzaarduo.
Quasi sempre cio che viene simulato deve essere modificatonel momento in cui si scende in campo
L’interazione tra l’ambiente circostante e l’algoritmo dipendeda fattori fisici di tipo
meccanico, elettrico, elettronico, termico, luminoso ...
In ogni caso e necessario sempre fare i conti con l’entita che
elabora le informazioni : il robot
Raffaele Grandi Robotica mobile e dintorni 6 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Realizzazione pratica
Per interagire con i robot e necessario avere nozioni dicinque cose fondamentali :
microprocessoriattuatorisensorisistemi di comunicazionesistemi di gestione dell’informazione
Le seguenti applicazioni mettono in evidenza questanecessita
Raffaele Grandi Robotica mobile e dintorni 7 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Unibot
Unibot e un progetto interno per lacostruzione di una flotta di robot mobili aruote differenziali di dimensione contenute (8× 8 × 8 cm)
La struttura e composta da tre livelli sialogici che fisici che comunicano tra loroattraverso un bus verticale
livello sensori : include la schedasensori dotata di PIC16F877A a 20Mhze 8 sensori infrarossilivello di controllo : include la scheda dicontrollo dotata sempre di PIC16F877Ae modulo bluetooth per lacomunicazionelivello motori : include i motori e lascheda di potenza
test unibot
Raffaele Grandi Robotica mobile e dintorni 8 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Unibot-Arduino
Sviluppata una versione di Unibot che utilizzacome scheda di controllo la piu economica eversatile Arduino
una scheda Arduino consiste di unmicrocontrollore RISC a 8-bit AVR 16Mhz prodotto dalla Atmel, conl’aggiunta di componenticomplementari che ne facilitinol’incorporazione in altri circuiti.Le schede Arduino ufficiali hanno usatochip della serie megaAVR
ATmega8, ATmega168,ATmega328, e ATmega1280
Arduino verra integrato con una
Beagleboard-xMA-Unibot Test
Raffaele Grandi Robotica mobile e dintorni 9 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Beagleboard-xM
La BeagleBoard e un SBC a basso costo e bassiconsumi
Puo offrire connettivita e prestazioni simili ad unportatile
Basata su un processore ARM Cortex da 1 Ghz e512 Mb Ram
Elevate performance audio-video garantite da unDSP a 430 Mhz e da un acceleratore grafico2D/3D da 10 milioni di pol/sec
Numerosi connettori di espansione
Il progetto e completamente open: possibilita di
installare Linux Ubuntu di default
Raffaele Grandi Robotica mobile e dintorni 10 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Roomba
Modificando il famoso robot per pulire ipavimenti, Roomba, si e riusciti a creareuna buona piattaforma di robotica mobile
La scheda di controllo sostitutiva e unaGumstix dotata di
scheda di espansione wireless
sistema operativo Linux
roomba and kinect
Raffaele Grandi Robotica mobile e dintorni 11 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
U.A.V.
All’interno del progetto europeoAIRobots sviluppato dall’Universitadi Bologna in collaborazione conl’Universita di Napoli e altreuniversita europee, sono statiprogettati 2 U.A.V (Unmanned AirVeicle) a ventola intubata
Il primo e dotato di una Gumstix
Il secondo utilizza una schedaArduino Mega2560
UAV test
Raffaele Grandi Robotica mobile e dintorni 12 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Lego Mindstorm NXT
In alcune delle nostre attivita di laboratorioutilizziamo Lego Mindstorm NXT in quantotendono a celare l’interazione con la partefisica del robot
Dotato di motori e di sensori ha la necessitadi avere un core potente e versatile all’internodel mattoncino programmabile
Mattoncino programmabile NXT e unmicrocontrollore avanzato
contiene un processore a 32 bit AtmelAT91SAM7S256 a 48 MHz (ARM7), con 256k flashe 64k RAMun coprocessore 8 bit Atmel ATmega48 a 8 MHz(RISC a 8 bit), con 4k flash e 512 byte RAMuno schermo LCD con una risoluzione di 60x100pixel
una porta USB 2.0 e connettivita Bluetooth
Raffaele Grandi Robotica mobile e dintorni 13 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
Overview
1 Introduzione
1 storia2 elementi del kit base3 motori e sensori
2 Microcontrollore
3 Studio del modello e utlizzo pratico
1 Esempi
4 Programmazione
1 Linguaggi grafici2 Java - Lejos - Eclipse
Raffaele Grandi Robotica mobile e dintorni 14 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
Storia
Lego Mindstorm e una linea di pro-
dotti della LEGO nata nel 1998 e
orientata alla progettazione e model-
lazione di sistemi elettromeccanici e
robotici. Nel 2006 la LEGO immet-
te sul mercato la nuova generazione
di Lego Mindstorm (LMS) denomi-
nata NXT con maggiore capacita e
versatilita.
Figura: Kit base LMS-NXT
Raffaele Grandi Robotica mobile e dintorni 15 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
Elementi
Lego Mindstorm combina principalmente 3 tipi di elementi:
1 Lego Technic : pensati per la costruzione di strutture meccanichepiu o meno complesse, comprensive di leve, catene ed ingranaggi.
2 Mattoncini programmabili (la novita geniale della LEGO) :mattoni integrabili fisicamente con i lego Technic “classici” chehanno pero all’interno un microcontrollore programmabile, unoscherno LCD e delle prese sui lati dove collegare motori e sensoriappositamente studiati.
3 Motori e sensori : dispositivi integrabili con i mattoncini Technic ecollegabili al brick di controllo, che implementano determinatecapacita.
Raffaele Grandi Robotica mobile e dintorni 16 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
Motori e Sensori
Motori con controllo divelocita e di posizioneintegrato
Sensori di luce, sensori
audio, ad ultrasuoni per il
controllo della posizione,
infrarossi, tattili, di colore,
giroscopici...
Figura: NXT con sensori e motori
Raffaele Grandi Robotica mobile e dintorni 17 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
Kit Lego Mindstorm NXT
619 pezzi LEGO Technic
3 servomotori
molto piu grandi dei precedenti
2 sensori tattili
Sensore di colore
Sensore audio
Sensore di prossimita a ultrasuoni
Mattoncino programmabile NXT
Figura: Esempio costruttivo
Raffaele Grandi Robotica mobile e dintorni 18 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
Mattoncino di controllo NXT
Mattoncino programmabile NXT
contiene un processore a 32 bit AtmelAT91SAM7S256 a 48 MHz (ARM7), con256k flash e 64k RAMun coprocessore 8 bit Atmel ATmega48 a 8MHz (RISC a 8 bit), con 4k flash e 512 byteRAMuno schermo LCD con una risoluzione di60x100 pixel
una porta USB 2.0 e connettivita Bluetooth
Raffaele Grandi Robotica mobile e dintorni 19 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
Modellizzazione
Praticamente tutti i tipi di
sistemi integrati
elettromeccanici esistenti
nella vita reale (come gli
elevatori o i robots
industriali) possono essere
modellati con Lego
Mindstorms.
Figura: Braccio robotico
Raffaele Grandi Robotica mobile e dintorni 20 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
Comportamento
Avere a disposizione questo tipo di dispositivi ci permette dicostruire robots che interagiscono con l’ambiente circostante eche eseguono dei task operativi in base a cio che apprendonodurante il loro funzionamento, secondo le procedure sviluppateall’interno del programma.
Possono essere simulati comportamenti complessi tramiteapposito software
Raffaele Grandi Robotica mobile e dintorni 21 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
Esempi costruttivi 1/4
Cassaforte: uno degliesempi piu classici diautoma a stati finiti (ASF)
Figura: Schema di un ASF
Figura: Cassaforte a combinazione RCX
Raffaele Grandi Robotica mobile e dintorni 22 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
Esempi costruttivi 2/4
Robot di tipo differente cheimpiegano gli algoritmi piudiversi
Figura: Robot ritrattista Figura: Rubik cube solver
Raffaele Grandi Robotica mobile e dintorni 23 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
Esempi costruttivi 3/4
Robot che ci riguardano piuda vicino per le aree dirobotica mobile e controllo
Figura: Controllo di un pendolo
inverso in movimento (tipo Segway)Figura: Line follower
Raffaele Grandi Robotica mobile e dintorni 24 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
Esempi costruttivi 4/4
Oppure:
algoritmi di collaborazionedistribuitasistemi multi-agentealgoritmi di apprendimentoalgoritmi di intelligenza artificiale...
Raffaele Grandi Robotica mobile e dintorni 25 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
Metodi di programmazione
La programmazione dei LEGO e possibile utilizzando duemetodologie:
1 Programmazione grafica
2 Programmazione strutturata via codice
Raffaele Grandi Robotica mobile e dintorni 26 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
Linguaggi grafici
Forniti di default dalla Lego:
RCX Code: incluso nella versione commerciale del kit RCX e in venditanei negozi di giocattoli;ROBOLAB: basato su LabVIEW e sviluppato dalla Tufts UniversityNXT-G: derivato da RoboLab e fornito in dotazione nella scatola NXT
Figura: Screenshot di NXT-G
Raffaele Grandi Robotica mobile e dintorni 27 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
Programmazione strutturata
Avviene tramite software di terze parti consentendo maggiore:
flessibilita
riusabilita
espandibilita
espressivita
velocita di esecuzione
integrazione con applicazioni e sistemi esistenti
Raffaele Grandi Robotica mobile e dintorni 28 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
Software in uso
Linguaggi di programmazione alternativi utilizzati:
QuiteCC and C++ sotto sistema operativo BrickOS (precedentementeLegOS)Visual BasicPythonJava sotto sistema operativo LeJOS (o TinyVM)
Ognuno di questi linguaggi permette l’interfacciamento con ilmicrocontrollore, previa modifica del firmware
La modifica tramite LeJOS avviene attraverso un appositoprogramma incluso nel pacchetto del nuovo firmware
Raffaele Grandi Robotica mobile e dintorni 29 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
LeJOSLa scelta
LeJOS e un firmware sostitutivo per il mattone Lego MindstormsNXT.
Include una Java Virtual Machine, che permette di programmare irobot LMS mediante l’utilizzo del linguaggio di programmazioneJava.
Vaste librerie di codice che supportano varie funzioni di alto livelloquali navigazione e automatismo basato algoritmi comportamentali
Al momento risulta la struttura piu completa per la programmazionedei Lego MS
OpenSource: http://lejos.sourceforge.net/
Raffaele Grandi Robotica mobile e dintorni 30 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
Cosa offre LeJOS NXJ
1 Object oriented language (Java)
2 Preemptive threads (cambio di contesto forzato)
3 Arrays, including multi-dimensional
4 Recursion
5 Synchronization
6 Exceptions
7 Java types including float, long, and String
8 Most of the java.lang, java.util and java.io classes
9 A well-documented Robotics API
Raffaele Grandi Robotica mobile e dintorni 31 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
Integrated Development EnvironmentIDE: Ambienti integrati per lo sviluppo del software
NetBeans
ambiente di sviluppo multi-linguaggio scritto interamente in Java (Swing)nato nel giugno 2000.scelto dalla Sun Microsystems come IDE ufficialeplug-in oriented
Eclipse
ambiente di sviluppo multi-linguaggio scritto in Java (SWT)progetto opensource sviluppato da una vasta comunita sotto la tuteladella Eclipse Foundationplug-in oriented
Noi utilizzeremo Eclipse ma e possibile utilizzare anche NetBeans,entrambi gli ambienti sono dotati del plug-in specifico per LeJOS
inoltre e possibile lavorare tramite linea di comando
Raffaele Grandi Robotica mobile e dintorni 32 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
EclipseRisorse per la programmazione
Eclipse e un ambiente di sviluppomultipiattaforma
(Linux - Windows e Mac)
Lo si scarica gratuitamente dawww.eclipse.org/downloads
La versione a cui siamo interessati eEclipse Classic
viene cosı installato tutto l’ambiente disviluppo
per chi avesse Ubuntu e disponibile
anche nel repository ufficiale Figura: Eclipse Downloads site
Raffaele Grandi Robotica mobile e dintorni 33 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
EclipseL’ambiente di lavoro
Una volta installato Eclipse e ca-ricato, l’interfaccia appare comenella figura a fianco:
Area di lavoro
Gerarchia dello spazio dilavoro contenente ipackages e le classi
Console di output
Menu per la gestione delle
opzioni
Figura: Eclipse Interface
Raffaele Grandi Robotica mobile e dintorni 34 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
Integrazione Java - LeJOSAPI LeJOS
Le API di LeJOS sono state prodotte attraverso la compilazioneautomatica utilizzando il tool javadoc e si possono trovare
all’indirizzohttp://lejos.sourceforge.net/nxt/nxj/api/index.html
help di Eclipse dopo aver installato il plug-in relativo
Raffaele Grandi Robotica mobile e dintorni 35 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
Integrazione Java - LeJOSAPI LeJOS - blocchi concettuali
Osservando le API ci si accorge che i packages si dividono a grandi lineein 3 macro blocchi concettuali:
1 Packages mutuati direttamente dal linguaggio JAVA (java.* -javax.*)
2 Packages che riguardano la gestione delle piattaforma NXT-RCX(lejos.*)
3 Packages di supporto specifici per la robotica (lejos.robotics.*)
Raffaele Grandi Robotica mobile e dintorni 36 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
Integrazione Java - LeJOSAPI LeJOS - il linguaggio
Packages mutuati direttamente dal linguaggio JAVA (java.* -javax.*)
1 relative al core del linguaggio (java.lang - java.io - java.util -java.net)
2 relative alla grafica (java.awt - java.awt.geom)3 relative alla comunicazione bluetooth (javax.bluetooth -
javax.microedition)
Raffaele Grandi Robotica mobile e dintorni 37 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
Integrazione Java - LeJOSAPI LeJOS - la piattaforma
Packages che riguardano la gestione delle piattaforma NXT-RCX(lejos.*)
1 relative alla gestione dei motori, sensori, batteria ... (lejos.nxt)2 relative alla gestione delle comunicazioni (lejos.nxt.comm -
lejos.nxt.remote)
Raffaele Grandi Robotica mobile e dintorni 38 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
Integrazione Java - LeJOSAPI LeJOS - la robotica
Packages di supporto specifici per la robotica (lejos.robotics.*)
1 supporto alla navigazione (lejos.robotics.navigation)2 supporto alla localizzione (lejos.robotics.localization)3 supporto alla “Subsumption Architecture” per la gestione dei
Behaviour (lejos.robotics.subsumption)
Raffaele Grandi Robotica mobile e dintorni 39 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
Behaviour based roboticscenni
In LeJOS esiste una tipologia di programmazione basata sui comportamentiche utilizza la Subsumption Architecture (SA)
SA e una architettura logica fortemente legata alla gestione deicomportamenti nell’ambito della robotica “autonoma”. Il termine e statointrodotto da Rodney Brooks (professore di robotica al MIT) e colleghinel 1986
Il concetto di sussunzione e usato nella rappresentazione dellaconoscenza, per indicare una classificazione gerarchizzante, ricondurreun concetto nell’ambito di uno piu ampio che lo comprende.
Raffaele Grandi Robotica mobile e dintorni 40 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
Subsumption Architecture (SA)
SA viene quindi vista come una via per decomporre lastruttura di un comportamento complesso in unasottostruttura di comportamenti piu semplici correlati traloro che possono essere modellati in base ad idee generalizzate.
Ad ogni comportamento “semplice” viene associato un livellodi astrazione
Ogni livello ha un obiettivo ben preciso che l’agente deveportare a termine
Raffaele Grandi Robotica mobile e dintorni 41 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
Subsumption ArchitectureStruttura
Architettura con struttura bottom-up
sono gli eventi che si verificano agli strati inferioridell’architettura che offrono la possibilita a quelli superiori diessere attivati e portati a terminegli strati decisionali piu bassi sono quelli che hanno contattocon la struttura “fisica” del robot
ci si interfaccia con le API di controllo: l’attuatore visto comeuna risorsa softwaremaggiore reattivita: i task inferiori prendono decisioni dirette
Raffaele Grandi Robotica mobile e dintorni 42 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
Comportamento
Ogni comportamento viene visto come entita dotata di 3 caratteristichefunzionali:
1 condizione di attivazione2 attivita da svolgere in fase attiva3 attivita da svolgere in caso di soppressione
Si utilizza un arbitro (o supervisore) che identifica la condizione di attivazionedel comportamento ed esegue la relativa azione, compresa l’eventualesoppressione se altre condizioni si verificano con una priorita di esecuzionemaggiore
in LeJOS l’arbitro e un thread che utilizza un array di comportamenti inordine di priorita crescente con la posizione nell’array
Raffaele Grandi Robotica mobile e dintorni 43 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
Vantaggi, Svantaggi e Soluzioni
Vantaggi:
maggiore modularitaogni livello lavora direttamente sulle risorse del proprio ambienteogni livello percepisce direttamente il proprio obiettivo
Svantaggi:
incapacita di avere piu livelli contemporanei dato che gli inneschi di unopossono interferire con quelli di un altrodifficolta di selezione dell’azione da eseguire in sistemi altamente distribuitiattraverso la sola capacita di inibizione/soppressione di un comportamento
Soluzioni:
eventuale programmazione mista ad esempio behaviour-planning per laselezione di comportamenti concorrenti
Raffaele Grandi Robotica mobile e dintorni 44 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
Programmazionebehaviours - schema
Figura: Schema BumperCar
Raffaele Grandi Robotica mobile e dintorni 45 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
Fase di upload sul LEGOCompilazione ed esecuzione
1 Una volta creato il proprio programma in Java-LeJOS sul propriocomputer e necessario inviarlo al microcontrollore NXT
2 Le fasi successive (che avvengono automaticamente) sono lacompilazione e la creazione di un file ottimizzato ad-hoc per la JVMresidente sul microcontrollore
1 nxjc: compila il programma originando un file .class2 nxj: crea un file .nxj ed esegue l’upload sul microcontrollore
3 L’interfacciamento con il microcontrollore puo essere effettuato siavia bluetooth che via USB
Raffaele Grandi Robotica mobile e dintorni 46 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
Disaccoppiamento
I programmi che possono essere sviluppati in modo da lavorarein locale sul robot sono programmi complessi ma comunquesempre limitati dalle capacita di calcolo e di memoria dellapiattaforma
LeJOS permette la ricezione via bluetooth di dati utilizzandotecnologia ereditata dai cellulari (javaME) e quindi permettedi sviluppare programmi che guidano il robot da remoto.
In questo modo possono essere sviluppati programmiparticolarmente complessi disaccoppiando la parte “pensante”da quella “esecutiva”. La prima viene seguita sul PC mentre laseconda sul robot.
Raffaele Grandi Robotica mobile e dintorni 47 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
Obiettivi dell’attivita
1 Scopo: interagire con la piattaforma Lego MS-NXT in modoche si possa approfondire l’interazione hardware - software
2 Esercitazioni: assegnamento di task operativi che necessitanosia della costruzione di un robot adeguato alla risoluzione deltask sia della sua programmazione
3 Lavoro di gruppo con eventuale suddivisione delle attivita dianalisi del problema proposto e realizzazione della soluzione
4 Eventuale utilizzo della piattafirma per il test e lo sviluppo dialgoritmi piu complessi...
esercitazioni lego
Raffaele Grandi Robotica mobile e dintorni 48 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Linguaggi graficiLinguaggi strutturati alternativiIntegrazione Java e LeJOS
Controllo “moderno”
Toilet flusher:
uno dei piu classici esempi di
controllo automatico,
modernamente implementato
tramite l’utilizzo di Lego MS
NXT
Figura: Toilet flusher control
Raffaele Grandi Robotica mobile e dintorni 49 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Infrastrutture di controllo
Generalmente quando ci si occupa di progetti complessi si tende asviluppare delle infrastrutture di controllo software ad-hoc che assistauno o piu robot durante lo svolgimento delle attivita. Un esempio puoessere il framework di supporto per l’arena degli unibot
Raffaele Grandi Robotica mobile e dintorni 50 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Infrastrutture di controlloUnibot Tracking System
Raffaele Grandi Robotica mobile e dintorni 51 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Infrastrutture di controlloROS
Negli ultimi anni dall’esigenza di un framework comune,versatile e facilmente utilizzabile e implementabile su le piudiverse architetture hardware e nato ROS : Robot OperatingSystem
ROS e un framework software nato all’interno di una start-upamericana la “Willow Garage” affiliata allo Stanford ArtificialIntelligence Laboratory
Raffaele Grandi Robotica mobile e dintorni 52 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
ROS
ROS e un meta-sistema operativo che cercadi svincolare il programmatore di “risorserobotiche” dall’ hardware fisico mettendo adisposizione dati e servizi
si comporta come un middleware
L’astrazione avviene incapsulando all’internodi opportuni wrapper software i driver dicontrollo della risorsa stessa
In questo modo la risosrsa incapsulatadiventa un nodo di comunicazione/attuazionebidirezionale a disposizione del sistema
Il sistema e gestito da un “core” software e
implementa il pattern architetturale
Publish–Subscribe
Raffaele Grandi Robotica mobile e dintorni 53 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
ROS
Ogni nodo sottoscrive e/o pubblica qualche genere di informazione.
Il “core” e la struttura preposta a gestire l’interscambio dei messaggi all’internodel sistema
Vantaggi
Disaccoppiamento tra chi invia e chi riceve: i nodi ignorano la strutturadel sistemaFault-tolerance : se qualche parte si disattiva il sistema continua afunzionareForte scalabilita del sistemaPossibilita di utilizzare strutture multi-core per progetti di grandidimensioni
Svantaggi
Disaccoppiamento : chi spedisce non ha nessuna certezza che l’ascoltatoresia attivoTempistica incerta nell’interscambio dei messaggi. Risulta difficile gestireapplicazioni real-time
Raffaele Grandi Robotica mobile e dintorni 54 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
ROSROS graph example
Raffaele Grandi Robotica mobile e dintorni 55 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
ROS : applicazioni
ROS e utilizzato in una molteplice varieta di applicazionirobotiche:
Robotica mobile
Mani robotiche
Gripper sottomarini
Visual Servoing and Visual Tracking
UAV (Unmanned Aerial Vehicle)
SLAM (Simultaneous Localization and Mapping)
LegoNXT
...Ros 3 years
Raffaele Grandi Robotica mobile e dintorni 56 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Algoritmi?
Ogni singolo robot si basa sulla sinergia di sistemi eterogenei eche forniscono un supporto piu o meno articolato a softwareintelligenti e autonomi che in qualche modo raccolgono edelaborano informazioni ambientali.
Gli algoritmi che controllano uno o piu robot possonoprovenire da tantissimi campi diversi appartenenti all’area deicontrolli, dell’intelligenza artificiale classica o di quellabio-inspirata
In ogni caso si tratta di campi molto vasti che necessitanoprofondi studi per essere compresi e portati avanti... ma nonsolo
Raffaele Grandi Robotica mobile e dintorni 57 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
Immaginazione
“Imagination is more important than knowledge.For knowledge is limited to all we now knowand understand, while imagination embraces theentire world, and all there ever will be to knowand understand.” (Albert Einstein)
Raffaele Grandi Robotica mobile e dintorni 58 / 59
IntroduzioneApplicazioni varie
Lego Mindstorm NXTInfrastrutture software
Algoritmi e Immaginazione
End
Domande?
Raffaele Grandi Robotica mobile e dintorni 59 / 59