TESI DISPONIBILI PRESSO L.I.R.A.
(Laboratory on Intelligent Robotics and Automation)
SUPERVISORE DELLE TESI:
Dott. Ing Marcello Bonfè
e-mail: [email protected],
Tel: +39 0532 974839
SEZIONE A: Sistemi Embedded per Robotica e Controllo
A.1)
Sviluppo firmware per scheda di controllo motori DC del robot mobile SABOT. Il
robot in oggetto, la cui meccanica ed elettronica è stata progettata interamente presso
il L.I.R.A., è una piattaforma mobile differential-drive, dotata cioè di due ruote attuate in
modo indipendente da motori DC, che permettono di modulare velocità lineare e di
sterzata del robot. La scheda di controllo motori, denominata SACT, è dotata di un
Digital Signal Controller (DSC) di produzione Microchip (famiglia dsPIC30F/33F) ed il
suo firmware esegue controlli di corrente, velocità e posizione dei due motori, calcola la
stima odometrica della postura del robot tramite encoder incrementali ed interagisce
con un sistema master (es. un PC) tramite protocollo specifico (definito SACT
Protocol).
Punti da sviluppare:
Calibrazione automatica della stima odometrica (es. tramite algoritmo
UMBmark), implementazione di algoritmi di stima differenti da quello attuale e
confronto sperimentale.
Implementazione in aritmetica intera o fixed-point di un algoritmo di stima della
postura con fusione tra encoder e accelerometri/giroscopi (Filtro di Kalman) e
verifiche sperimentali
Implementazione del SACT Protocol, attualmente basato su comunicazione RS232, su bus di comunicazione più evoluti, quali CAN o ZigBee (rete wireless a
basso consumo).
Migrazione dell’attuale firmware su architettura hardware differente (es. ARM
Cortex-M3) e/o ridefinizione delle funzionalità di controllo come task di un
sistema operativo per sistemi embedded (es. FreeRTOS o Erika).
-
STRUMENTI HARDWARE: robot mobile SABOT, scheda di controllo SACT oppure
FEduino (sistema modulare ispirato da Arduino, ma con processore dsPIC,
interamente sviluppata presso L.I.R.A.), sensori e attuatori in dotazione presso
L.I.R.A.
-
STRUMENTI SOFTWARE: Ambiente di sviluppo Microchip MPLAB IDE +
compilatore per linguaggio C Microchip MPLAB per dsPIC/PIC24
-
RIFERIMENTI:
http://sact-unife.googlecode.com (il firmware attuale, vedi il Wiki)
http://www.microchip.com/en_us/family/16bit/ (info sui dsPIC)
http://www.arduino.cc (ispirazione per la FEduino del L.I.R.A.)
http://www.guiott.com/Rino/index.html (robot simile a SABOT, v. info su UMBmark)
-
IMPEGNO NECESSARIO: MINORE-MEDIO (per sviluppare uno dei primi due punti
proposti) o MAGGIORE (per sviluppare uno degli ultimi due punti oppure entrambi i
primi due)
A.2)
Sviluppo firmware per scheda di controllo motori DC del robot manipolatore
parallelo RAWBOT. Il robot in oggetto, la cui meccanica ed elettronica è stata
progettata interamente presso il L.I.R.A., è un manipolatore parallelo con struttura
cinematica di tipo Delta, avente tre gradi di libertà traslazionali nello spazio cartesiano
(X-Y-Z). La scheda di controllo motori, basata sulla FEduino citata in precedenza, è
dotata di dsPIC33F ed il suo firmware esegue controlli di corrente e posizione di tre
motori, calcola le equazioni cinematiche dirette (dagli angoli motore a X-Y-Z) e inverse
(da X-Y-Z desiderate agli angoli motore) ed interagisce con un sistema master (es. un
PC) tramite una variante del protocollo definito SACT Protocol, citato in precedenza
per il SABOT.
Punti da sviluppare:
Modifica degli algoritmi di generazione delle traiettorie del robot e del controllo
motori, al fine di migliorare la fluidità del movimento.
Implementazione in aritmetica intera o fixed-point degli algoritmi cinematici
(attualmente sviluppati con numeri in virgola mobile, floating-point) e verifiche
sperimentali.
Sviluppo di algoritmi per la compensazione degli attriti nei riduttori meccanici dei
motori, al fine di migliorare le possibilità di moto retrogrado (o backdrivability),
caratteristica essenziale per poter comandare il robot tramite teleoperazione
(vedi proposta di tesi B.2).
-
STRUMENTI HARDWARE: robot manipolatore RAWBOT, scheda di controllo
basata su FEduino (sistema modulare ispirato da Arduino, ma con processore
dsPIC, interamente sviluppata presso L.I.R.A.), sensori e attuatori in dotazione
presso L.I.R.A.
-
STRUMENTI SOFTWARE: Ambiente di sviluppo Microchip MPLAB IDE +
compilatore per linguaggio C Microchip MPLAB per dsPIC/PIC24
-
RIFERIMENTI:
http://www.parallemic.org/Reviews/Review002.html (info su Delta robot)
http://sensi.org/~svo/dbot/ (cinematica e simulazioni del Delta robot)
http://www.microchip.com/en_us/family/16bit/ (info sui dsPIC)
http://www.arduino.cc (ispirazione per la FEduino del L.I.R.A.)
-
IMPEGNO NECESSARIO: MINORE-MEDIO (per sviluppare uno dei primi due punti
proposti) o MAGGIORE (per sviluppare l’ultimo punto oppure entrambi i primi due)
A.3)
Sviluppo meccanico e firmware di controllo per il self-balancing robot BABOT. Il
robot in oggetto, del quale è stato allestito un primo prototipo con meccanica ed
elettronica progettata interamente presso il L.I.R.A., è un robot mobile con due ruote
attuate, le quali sono l’unico punto di contatto del robot con il terreno. Il robot deve
quindi essere in grado di rimanere in equilibrio autonomamente, da cui il termine selfbalancing, tramite il movimento delle ruote stesse ed una stima dell’angolo di
inclinazione tramite sensori opportuni (es. accelerometri/giroscopi). La capacità di autobilanciamento di tale tipologia di robot è particolarmente sensibile alla qualità della
costruzione meccanica.
Punti da sviluppare:
Modifica della struttura meccanica del primo prototipo di BABOT e adattamento
degli algoritmi di stima dell’orientamento (tramite Filtro di Kalman) e controllo del
bilanciamento.
Implementazione di un protocollo di comunicazione per l’interazione tra più unità
di BABOT (controllo di formazione) o tra BABOT e un sistema master (es. un
PC) su rete wireless a basso consumo ZigBee.
-
STRUMENTI HARDWARE: scheda di controllo basata su FEduino (sistema
modulare ispirato da Arduino, ma con processore dsPIC, interamente sviluppata
presso L.I.R.A.), meccanica, sensori e attuatori in dotazione presso L.I.R.A.
-
STRUMENTI SOFTWARE: Ambiente di sviluppo Microchip MPLAB IDE +
compilatore per linguaggio C Microchip MPLAB per dsPIC/PIC24
-
RIFERIMENTI:
http://letsmakerobots.com/node/1505 (un Self-Balancing Robot)
http://www.geology.smu.edu/~dpa-www/robo/nbot/ (altro S.-B. Robot)
http://www.wa4dsy.net/robot/balancing-robot/analog-balancing-bot
http://www.microchip.com/en_us/family/16bit/ (info sui dsPIC)
http://www.arduino.cc (ispirazione per la FEduino del L.I.R.A.)
-
IMPEGNO NECESSARIO: MINORE-MEDIO (per sviluppare uno dei
due punti
proposti) o MAGGIORE (per sviluppare entrambi i punti)
A.4)
Sperimentazione di algoritmi di controllo sensorless per motori elettrici (brushless a
magneti permanenti). Il controllo della coppia nei motori elettrici brushless richiede la
commutazione delle tensioni applicate alle fasi elettriche in modo sincrono con la
posizione dell’albero rotante, in quanto su quest’ultimo sono alloggiati magneti
permanenti il cui flusso è appunto allineato in base alla posizione del rotore. In molte
applicazioni a basso costo, è tuttavia possibile stimare in modo indiretto la posizione
del rotore, tramite algoritmi opportuni (es. Filtri di Kalman, Osservatori Sliding Mode), e
risparmiare così l’installazione di costosi e delicati sensori di posizione (es. encoder
incrementali). I maggiori fornitori (es. Microchip e Texas Instruments) di microcontrollori
e Digital Signal Processor (DSP) per controllo motori propongono molte note
applicative e firmware dimostrativi per l’implementazione del controllo sensorless, i
quali sono però molto sensibili alla taratura e richiedono una estesa verifica
sperimentale.
Punti da sviluppare:
Allestimento e verifica sperimentale di un sistema di controllo sensorless per
motori brushless, partendo da esempi di riferimento ed estendendoli in base alle
possibili esigenze di laboratorio.
-
STRUMENTI HARDWARE: Scheda di prototipazione Microchip PICDEM MCLV,
Scheda di prototipazione Texas Instruments Piccolo Motor Control Developers Kit,
motori in dotazione presso L.I.R.A.
-
STRUMENTI SOFTWARE: Ambiente di sviluppo Microchip MPLAB IDE +
compilatore per linguaggio C Microchip MPLAB per dsPIC/PIC24, oppure Texas
Instruments Code Composer Studio.
-
RIFERIMENTI:
http://www.microchip.com (cercare AN1078 e AN1299)
http://www.ti.com/lit/wp/sprt528/sprt528.pdf
-
IMPEGNO NECESSARIO: MEDIO-MAGGIORE
A.5)
Allestimento di un banco sperimentale e didattico per applicazioni
meccatroniche. Le esigenze didattiche in alcuni corsi di Ingegneria Informatica e
dell’Automazione, oltre che le esigenze di sperimentazione del laboratorio L.I.R.A.,
richiedono l’uso di sistemi meccatronici, cioè costituiti da una parte elettromeccanica
(es. un motore elettrico con un carico meccanico), una scheda elettronica di controllo e
un sistema software di acquisizione dati e monitoraggio. Un esempio di tale sistema
meccatronico potrebbe essere costituito dai kit sperimentali QNET di Quanser e dagli
Strumenti Virtuali ELVIS di National Instruments.
Punti da sviluppare:
Replica di un kit sperimentale (es. controllo motore DC) analogo ad una delle
proposte di Quanser, sfruttando gli Strumenti Virtuali National Instruments
ELVIS, a disposizione presso il Laboratorio di Elettronica della Facoltà di
Ingegneria, e schede di prototipazione economiche Microchip Microstick per
dsPIC33F/PIC24.
-
STRUMENTI HARDWARE: Scheda Microchip Microstick, Strumenti Virtual National
Instruments Elvis, motori elettrici in dotazione presso L.I.R.A.
-
STRUMENTI SOFTWARE: Ambiente di sviluppo Microchip MPLAB IDE +
compilatore per linguaggio C Microchip MPLAB per dsPIC/PIC24, National
Instruments LabView.
-
RIFERIMENTI:
www.microchip.com/microstick
www.quanser.com/qnet (esempi di kit sperimentali da replicare)
http://www.ni.com/nielvis/ (il sistema National Instruments ELVIS)
-
IMPEGNO NECESSARIO: MINORE-MEDIO (per sviluppo solo della parte
Microchip Microstick), MAGGIORE (includendo ANCHE sviluppo in ambiente
LabView)
SEZIONE B: Strumenti Software Open-Source per Robotica e Controllo
B.1)
Sviluppo di applicazioni software basate su Orocos/ROS per navigazione e
controllo del robot mobile SABOT. Gli strumenti software open-source Orocos e ROS
mettono a disposizione librerie e strumenti di compilazione ed organizzazione dei
codici sorgenti, per sviluppare applicazioni distribuite (preferibilmente su sistemi
operativi
Linux)
orientate
alla
robotica
(pianificazione
del
moto,
controllo,
visualizzazione 3D, simulazione). Il robot mobile SABOT citato in precedenza (vedi
proposta di tesi A.1) è dotato, oltre che della scheda di controllo motori SACT, di un PC
di bordo con il quale sono state sviluppate alcune applicazioni Orocos/ROS
sperimentali , utilizzando ad esempio il comando via Nintendo Wii Remote (WiiMote) e
il sensore Microsoft Kinect per Xbox (per il riconoscimento ostacoli).
Punti da sviluppare:
Sviluppare e testare algoritmi per la pianificazione di percorsi del robot mobile,
basati su mappe degli ambienti già note a priori. Tali algoritmi devono essere
implementati come moduli "plugin" da integrare nel "navigation” stack di ROS
(http://www.ros.org/wiki/navigation). In questo contesto l’esempio di riferimento è
il pacchetto “move_base” (http://www.ros.org/wiki/move_base).
Miglioramento
dell’implementazione
Orocos/ROS
del
protocollo
di
comunicazione (detto SACT Protocol) con la scheda di controllo motori del
SABOT,
in
modo
da
rendere
tale
implementazione
maggiormente
standardizzata ed adattabile a differenti applicazioni (es. robot manipolatore
RAWBOT, robot self-balancing BABOT, ecc.)
Sviluppare una interfaccia grafica (Graphical User Interface, GUI) per la
supervisione e la gestione di parametri, specifica per il robot SABOT, sfruttando
le
funzionalità
di
base
del
pacchetto
“dynamic_reconfigure”
di
ROS
(http://www.ros.org/wiki/dynamic_reconfigure) e/o, per lo sviluppo di funzionalità
più sofisticate, utilizzando le librerie QT di Nokia (http://qt.nokia.com/products/)
Sviluppo di algoritmi per la localizzazione del robot e per la mappatura
dell’ambiente, utilizzando sensori di visione e/o più sofisticati (piattaforme
inerziali, Microsoft Kinect, scanner Laser, ecc).
Installazione degli strumenti di base di Orocos e ROS e cross-compilazione
delle applicazioni sviluppate per il SABOT con schede di prototipazione con
microprocessore ARM-Cortex (tipicamente usato negli smartphone di ultima
generazione), quali ad esempio la BeagleBoard (www.beagleboard.org) o la
CraneBoard (www.craneboard.org) .
-
STRUMENTI HARDWARE: il robot mobile SABOT, un qualunque PC oppure
schede BeagleBoard e CraneBoard in dotazione presso L.I.R.A.
-
STRUMENTI
SOFTWARE:
Linux
(preferibilmente
distribuzione
Ubuntu)
e
compilatore C/C++ GCC (per applicazioni PC), Angstrom Linux e ambiente di
cross-compilazione OpenEmbedded (per BeagleBoard/CraneBoard)
-
RIFERIMENTI:
www.orocos.org
www.ros.org (Getting Started
Get an Overview / Tutorials, Install)
e i link già segnalati
-
IMPEGNO NECESSARIO: MEDIO (per i primi due punti proposti) MEDIOMAGGIORE (per ciascuno degli altri punti)
B.2)
Sviluppo di applicazioni software basate su Orocos/ROS per teleoperazione del
robot manipolatore parallelo RAWBOT. Anche per il robot di tipo Delta citato in
precedenza (vedi proposta di tesi A.2) è possibile utilizzare gli strumenti software opensource Orocos e ROS. In particolare, una applicazione per la quale tali librerie e
strumenti per lo sviluppo di applicazioni distribuite sono di grande utilità è la
teleoperazione bilaterale, cioè il controllo del robot in oggetto da parte di un utente
umano utilizzando un manipolatore simile (tipicamente più piccolo) come master di
movimento. Nella teleoperazione bilaterale, inoltre, il master deve trasmettere
all’umano una riflessione di forza proporzionale alla forza applicata dal robot
teleoperato (detto slave) nel proprio ambiente operativo.
Punti da sviluppare:
Sviluppare e testare algoritmi di controllo e riflessione di forza per la
teleoperazione bilaterale, utlizzando il robot RAWBOT come slave ed il joystick
3D Novint Falcon.
Miglioramento
dell’implementazione
Orocos/ROS
del
protocollo
di
comunicazione (detto SACT Protocol) con la scheda di controllo motori del
RAWBOT,
in
modo
da
rendere
tale
implementazione
maggiormente
standardizzata ed adattabile a differenti applicazioni (es. robot manipolatore
SABOT, robot self-balancing BABOT, ecc.)
Sviluppare una interfaccia grafica (Graphical User Interface, GUI) per la
visualizzazione 3D del RAWBOT, utilizzando strumenti software opportuni (es.
ROS
Rviz
(http://www.ros.org/wiki/rviz)
oppure
Processing
(http://processing.org/)
Sviluppo di algoritmi per la calibrazione cinematica del RAWBOT (definizione
precisa dei parametri geometrici della struttura meccanica per massimizzarne
l’accuratezza di posizionamento), utilizzando strumenti di tracking 3D basati su
telecamere o laser scanner (esempio: http://reactivision.sourceforge.net/)
-
STRUMENTI HARDWARE: il robot mobile RAWBOT, un qualunque PC.
-
STRUMENTI
SOFTWARE:
Linux
(preferibilmente
distribuzione
Ubuntu)
e
compilatore C/C++ GCC (per applicazioni PC),
-
RIFERIMENTI:
www.orocos.org
www.ros.org (Getting Started
Get an Overview / Tutorials, Install)
e i link già segnalati
-
IMPEGNO NECESSARIO: MEDIO (per ciascuno dei punti proposti), MAGGIORE
(per lo sviluppo di due a scelta tra i punti proposti)
SEZIONE C: Strumenti Software per l’Automazione Industriale
C.1)
Sviluppo di interfaccia operatore su pannello touch-screen industriale per il
comando di un banco PLC / Motion Control. Presso il laboratorio L.I.R.A. è installato
un banco completo di PLC Rockwell Automation CompactLogix, azionamenti e motori
brushless Rockwell Automation Kinetix 2000, pannello touch-screen Rockwell
Automation PanelView (con sistema operativo Windows CE). Tale banco replica una
architettura di controllo molto diffusa nel settore dell’Automazione Industriale. In
particolare, le problematiche di visualizzazione coerente sul pannello operatore dello
stato dei motori e della configurazione dei loro movimenti sono di fondamentale
importanza.
Punti da sviluppare:
Sviluppare un programma PLC per l’esecuzione di movimenti dei motori con
differenti traiettorie ed una interfaccia per il pannello operatore in grado di
comandare al PLC l’esecuzione dei movimenti stessi e la visualizzazione delle
traiettorie.
-
STRUMENTI HARDWARE: PLC CompactLogix, azionamenti Kinetix 2000,
pannello operatore touch-screen PanelView (tutti prodotti Rockwell Automation) .
-
STRUMENTI SOFTWARE: Rockwell Automation RSLogix5000 (programmazione
PLC) e Rockwell Automation FactoryTalk View Studio (programmazione pannello)
-
RIFERIMENTI:
http://ab.rockwellautomation.com/
-
IMPEGNO NECESSARIO: MEDIO o MAGGIORE (a seconda del livello di
funzionalità grafiche implementate)
C.2)
Sviluppo di un software la generazione automatica di codice PLC a partire da
progetti grafici in linguaggio UML. La traduzione automatica di schemi grafici UML in
codice eseguibile è una prassi comune tra gli sviluppatori con linguaggi di alto livello e
ad oggetti come C++ o Java. Sebbene il linguaggio UML sia potenzialmente idoneo
anche al progetto di software per PLC, non esiste ad oggi uno strumento automatico in
grado di tradurre diagrammi UML in codice per PLC..
Punti da sviluppare:
Sviluppare (preferibilmente in linguaggio Java) un programma in grado di
estrarre le informazioni da un disegno UML, creato con uno degli strumenti
specifici più diffusi (es. Eclipse Papyrus, MagicDraw, VisualParadigm, ArgoUML,
ecc.), o da una relativa esportazione dati in formato XML (es. XMI, definito dalla
organizzazione
OMG
www.omg.org,
http://www.w3.org/TR/scxml/)
oppure
il
formato
SCXML,
e trasformare queste informazioni in un
programma per PLC (es. linguaggi Step7 per PLC Siemens, linguaggi
RSLogix5000 per PLC Rockwell) avente funzionalità equivalenti, con particolare
riferimento alla logica degli UML State Diagram.
-
STRUMENTI HARDWARE: un qualunque PC, eventuali prove sperimentali del
codice generato con PLC CompactLogix (Rockwell Automation) o PLC S7-300
(Siemens), in dotazione presso il laboratorio L.I.R.A.
-
STRUMENTI
SOFTWARE:
Linguaggio
Java
oppure
programmazione PLC
-
RIFERIMENTI:
http://www.cragsystems.co.uk/uml_tutorial/
http://www.ibm.com/developerworks/xml/library/x-wxxm23/
http://www.ibm.com/developerworks/xml/library/x-wxxm24/
Visual
C#,
basi
di
http://www.ibm.com/developerworks/xml/library/x-wxxm25/
http://www.imamu.edu.sa/DContent/IT_Topics/Usability%20and%20benefits%20of
%20UML%20for%20plant.pdf
-
IMPEGNO NECESSARIO: MAGGIORE
SEZIONE D: Applicazioni interdisciplinari
D.1)
Sviluppo di un sistema hardware e software per l’emulazione di ecografie (in
collaborazione con il Dipartimento di Scienze Chirurgiche, Anestesiologiche e
Radiologiche dell’Università di Ferrara). Le esigenze didattiche nelle facoltà di
Medicina richiedono di addestrare i medici ad eseguire ecografie. Per effettuare queste
ultime, potrebbe essere più pratico non utilizzare veri pazienti, ma piuttosto strumenti
software in grado di visualizzare immagini ecografiche acquisite in precedenza (es.
prelevate da database clinici) presentandole come se venissero rilevate in tempo reale.
In aggiunta al software di visualizzazione citato, un emulatore di ecografo completo
richiede anche la realizzazione di una sonda ecografica virtuale, in grado di
determinare in base alla propria postura (posizione / orientamento) nello spazio
cartesiano quali immagini ecografiche simulate debbano essere mostrate ed in che
modo (es. effettuando una opportuna elaborazione o adattamento).
Punti da sviluppare:
Sviluppare un sistema di tracking 3D a basso costo per una sonda ecografica
virtuale, utilizzando ad esempio una coppia di Nintendo Wii Remote (si veda
http://www.mtbs3d.com/phpBB/viewtopic.php?f=6&t=4251)
oppure
software
open-source (es. : http://reactivision.sourceforge.net/) e comuni videocamere.
-
STRUMENTI
HARDWARE:
Nintendo
Wii
Remote
(WiiMote)
e/o
webcam/videocamere.
-
STRUMENTI SOFTWARE: Linguaggio Visual C#, librerie per l’acquisizione dati dal
WiiMote (http://wiimotelib.codeplex.com/),
-
RIFERIMENTI:
http://www.medsim.com/ (esempio di emulatore ecografico commerciale, alto costo)
http://www.schallware.de/ (altro esempio commerciale)
-
IMPEGNO NECESSARIO: MEDIO o MAGGIORE (a seconda del livello di
funzionalità implementate)
Scarica

TESI DISPONIBILI PRESSO LIRA