Progetto e Sviluppo di un Sistema per il Gioco degli Scacchi TridimensionaliMarco Bresciani
Questa Tesi di Laurea presenta le modalità con cui ho progettato e realizzato un'applicazione dotata di intelligenza artificiale in grado di giocare al gioco degli Scacchi Tridimensionali, gioco noto dai telefilm e film di Star Trek (Cfr. [Star Trek]). Le regole cui ho fatto riferimento sono le Federation Standard Rules 5.0 di A. R. Bartmess (Cfr. [Bartmess, 1977], [Bartmess, 2003]).
Partendo da tali regole, ho codificato la notazione algebrica di scrittura delle mosse con una grammatica Extended Bakus-Naur Form (EBNF) e, successivamente, ho ideato un indice di classificazione (che ho chiamato Elo3D) per dare una valutazione al comportamento dei giocatori durante le partite.
La prima parte sviluppata è un'infrastruttura di rete, basata su Remote Method Invocation (RMI), che trasforma l'impalcatura client-server di questa componente del linguaggio Java in una struttura di comunicazione "quasi" punto-punto. Questa consente il gioco sia in locale sia in remoto, in modo assolutamente trasparente per l'utente, fatta salva la conoscenza dell’eventuale indirizzo di rete remoto.
Per l'impostazione di lavoro che ho scelto, l'applicazione fa uso di dati e formati aperti, con un'alta modularità e consentendo una facile espandibilità delle componenti esistenti. A questo scopo ho infatti sviluppato due linguaggi eXtensible Markup Language (XML) per definire i messaggi che le varie componenti l'applicazione si sarebbero scambiati tra loro e per definire una modalità di memorizzazione dello stato di una partita e i dati di un giocatore.
In quest'applicazione ho messo a disposizione diversi algoritmi di Intelligenza Artificiale (IA), tra i quali (e con i quali) ho eseguito numerose partite e confronti per valutarne le prestazioni. Ho sviluppato un'applicazione in grado di utilizzare anche molteplici insiemi di regole di gioco, facilmente selezionabili dall'utente senza alcuna necessità di configurazione o pre-impostazione.
Cosa sono le self driving cars e la loro tassonomia
Il problema della localizzazione
Modello probablisitico
Filtri di Kalman
Particle filter
Ricerca del percorso
Modello Deep Learning
Conclusioni
Progetto e Sviluppo di un Sistema per il Gioco degli Scacchi TridimensionaliMarco Bresciani
Questa Tesi di Laurea presenta le modalità con cui ho progettato e realizzato un'applicazione dotata di intelligenza artificiale in grado di giocare al gioco degli Scacchi Tridimensionali, gioco noto dai telefilm e film di Star Trek (Cfr. [Star Trek]). Le regole cui ho fatto riferimento sono le Federation Standard Rules 5.0 di A. R. Bartmess (Cfr. [Bartmess, 1977], [Bartmess, 2003]).
Partendo da tali regole, ho codificato la notazione algebrica di scrittura delle mosse con una grammatica Extended Bakus-Naur Form (EBNF) e, successivamente, ho ideato un indice di classificazione (che ho chiamato Elo3D) per dare una valutazione al comportamento dei giocatori durante le partite.
La prima parte sviluppata è un'infrastruttura di rete, basata su Remote Method Invocation (RMI), che trasforma l'impalcatura client-server di questa componente del linguaggio Java in una struttura di comunicazione "quasi" punto-punto. Questa consente il gioco sia in locale sia in remoto, in modo assolutamente trasparente per l'utente, fatta salva la conoscenza dell’eventuale indirizzo di rete remoto.
Per l'impostazione di lavoro che ho scelto, l'applicazione fa uso di dati e formati aperti, con un'alta modularità e consentendo una facile espandibilità delle componenti esistenti. A questo scopo ho infatti sviluppato due linguaggi eXtensible Markup Language (XML) per definire i messaggi che le varie componenti l'applicazione si sarebbero scambiati tra loro e per definire una modalità di memorizzazione dello stato di una partita e i dati di un giocatore.
In quest'applicazione ho messo a disposizione diversi algoritmi di Intelligenza Artificiale (IA), tra i quali (e con i quali) ho eseguito numerose partite e confronti per valutarne le prestazioni. Ho sviluppato un'applicazione in grado di utilizzare anche molteplici insiemi di regole di gioco, facilmente selezionabili dall'utente senza alcuna necessità di configurazione o pre-impostazione.
Cosa sono le self driving cars e la loro tassonomia
Il problema della localizzazione
Modello probablisitico
Filtri di Kalman
Particle filter
Ricerca del percorso
Modello Deep Learning
Conclusioni
Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...Andrea Bidinost
TARGET: Estimate camera pose and trajectory from 3D images acquired by 3D structured light sensor.
Development of new algorithm for egomotion estimation (Frame Based and Color Fusion) and comparison with Iterative Closest Point approaches.
Usage of inverse depth space for 3D data modelization.
Il progetto SINERGIE si propone di sviluppare nuove soluzioni integrate hardware/software per la movimentazione ad elevata dinamica in macchine automatiche. In particolare, il progetto affronta in modo sinergico due aree tematiche principali, con l’obiettivo di migliorare le prestazioni dinamiche e le caratteristiche costruttive delle macchine di domani:
Strumenti SW per la progettazione e il controllo
Dispositivi contactless e wireless per misure, trasmissione segnali ed attuazione
Principali filiere coinvolte: Macchine automatiche, Meccanica, Packaging, ICT
Sito web del progetto: www.sinergieproject.it
Progettazione e sviluppo di un sistema di visione artificiale per il monitora...RiccardoScilla
Documento Tesi
Progettazione e sviluppo di un sistema di visione artificiale per il monitoraggio automatico delle posizioni di uno sciame di robot in uno scenario di laboratorio
Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...Andrea Bidinost
TARGET: Estimate camera pose and trajectory from 3D images acquired by 3D structured light sensor.
Development of new algorithm for egomotion estimation (Frame Based and Color Fusion) and comparison with Iterative Closest Point approaches.
Usage of inverse depth space for 3D data modelization.
Il progetto SINERGIE si propone di sviluppare nuove soluzioni integrate hardware/software per la movimentazione ad elevata dinamica in macchine automatiche. In particolare, il progetto affronta in modo sinergico due aree tematiche principali, con l’obiettivo di migliorare le prestazioni dinamiche e le caratteristiche costruttive delle macchine di domani:
Strumenti SW per la progettazione e il controllo
Dispositivi contactless e wireless per misure, trasmissione segnali ed attuazione
Principali filiere coinvolte: Macchine automatiche, Meccanica, Packaging, ICT
Sito web del progetto: www.sinergieproject.it
Progettazione e sviluppo di un sistema di visione artificiale per il monitora...RiccardoScilla
Documento Tesi
Progettazione e sviluppo di un sistema di visione artificiale per il monitoraggio automatico delle posizioni di uno sciame di robot in uno scenario di laboratorio
Controllo di un braccio robotico mediante i movimenti della mano
Sviluppo di un sistema per la stabilizzazione dinamica di un processo intrinsecamente instabile
1. Sviluppo di un sistema
per la stabilizzazione dinamica
di un processo intrinsecamente
instabile
UNIVERSITÀ DEGLI STUDI DI TRIESTE
Dipartimento di Ingegneria e Architettura
Corso di Studi in Ingegneria dell’Informazione
Laureando:
Loppi Andrea
Relatore:
Prof. Marsi Stefano
Anno Accademico 2017 - 2018
2. Sistemi dinamici
Problematiche:
Gestire le variazioni nel processo di stabilizzazione.
Determinare la posizione dell’oggetto.
Definire la posizione di equilibrio da raggiungere.
Controllo
automatico
Perturbazione del sistema instabilità
Obbiettivo:
Ricerca dell’equilibrio e processo di stabilizzazione
a fronte di perturbazioni esterne.
3. Butterfly Robot
Sistema particolarmente complesso
Funzionamento:
La struttura garantisce il movimento dinamico
di una pallina, la quale segue con un moto
continuo l’andamento delle piastre rimanendo
sempre in equilibrio e a contatto con esse.
4. Obbiettivo
Mantenere in equilibrio la pallina su due piastre di profilo lineare.Primo obbiettivo:
Secondo obbiettivo: Mantenere in equilibrio la pallina su due piastre circolari.
Programma Tracking Color realizzato in MATLAB.
Software in ambiente Arduino per il movimento del sistema.
Algoritmo di stabilizzazione dell’equilibrio realizzato in MATLAB.
Step di sviluppo:
5. Struttura meccanica
Componenti:
Piastre di profilo circolare separate da distanziali.
Asta di metallo per il movimento.
Ingranaggi 1:1 con cinghia di trasmissione.
Motore passo-passo.
Modulo H-Bridge L298N.
Scheda Arduino.
Webcam Built-In Pc.
6. Leggi fisiche
Studio teorico del piano inclinato
𝑚𝑔 sin(𝛽) − 𝐹𝑎𝑡𝑡 = 𝑚𝑎
𝛼 =
𝐹𝑎𝑡𝑡 𝑅
𝐼
𝑎 = 𝛼𝑅
Generalizzazione sul tipo di pallina:
𝐼 = 𝐾𝑚𝑅2
⟹ 𝐾 =
𝐼
𝑚𝑅2
𝑎 = 𝑔 sin 𝛽
1
1 + 𝐾
= 𝑎 = 2𝑔
ℎ
𝑙
1
1 + 𝐾
Accelerazione lineare della pallina lungo il piano:
7. Leggi fisiche
Studio teorico della pallina posta fra due guide
𝑟 = 𝑅2 −
𝑑
2
2
Modificazione del braccio della forza che genera il momento torcente
Conseguenze:
𝑎 = 𝑔 sin 𝛽
1
1 + 𝐾′
= 2𝑔
ℎ
𝑙
1
1 + 𝐾′
𝑲′
𝐫𝐞𝐠𝐨𝐥𝐚𝐛𝐢𝐥𝐞!
𝐾′
è legato alla distanza tra
le piastre
8. Leggi fisiche
Studio teorico del sistema con due piastre
circolari
𝑎 𝑝 = 𝑔 sin 𝛽 − 𝑎
1
1 + 𝐾′
𝑎 𝑝 = 𝑔 sin 𝛽 − 𝑎
1
1 + 𝐾′
+ 𝑎 = 𝑔 sin 𝛽
1
1 + 𝐾′
+ 𝑎
𝐾′
1 + 𝐾′
Modello semplificato:
Moto puramente roto-traslatorio.
Modellizzato come un piano inclinato che scivola al di sotto della pallina.
Osservatore NON inerziale
Osservatore inerziale
9. Tracking Color
Algoritmo realizzato in ambiente MATLAB.
Funzionamento:
Selezione del range RGB da tracciare.
Creazione maschera
Operazioni di filtraggio morfologico.
Calcolo centroide e scrittura coordinate spaziali.
Eseguito separatamente dal programma principale, nel quale
è presente in una sua forma ridotta.
Diminuito il periodo di campionamento.
10. Arduino
Algoritmo a cui è affidato il controllo del motore passo-passo.
Gestione della variazione di velocità delle piastre Accelerazioni
Funzionamento:
Utilizzo della libreria AccelStepper.
Ricezione dati dalla comunicazione seriale con il Pc.
Riconoscimento ed elaborazione della stringa ricevuta: < Velocità >
Aggiornamento della velocità delle piastre.
11. Controllore PID
Regolando in modo adeguato i parametri di guadagno Proporzionale, Integrativo e Derivativo
si è in grado di controllare il movimento della pallina.
Taratura:
Ziegler-Nichols Taratura
euristica
1. 𝐾 𝑃 𝑒 𝑡 proporzionale all’errore.
2. 𝐾𝐼 0
𝑡
𝑒 𝜏 𝑑𝜏 proporzionale all’integrale dell’errore.
3. 𝐾 𝐷
𝑑𝑒(𝑡)
𝑑𝑡
proporzionale alla derivata dell’errore.
L’uscita controllata viene generata in base al contributo di tre termini:
12. Stabilizzazione
Sviluppato in ambiente MATLAB.
Tracking color in versione ridotta, con range RGB inseriti dall’operatore:
Campionamento più fitto
che garantisce un miglior controllo
Funzionamento:
Tracking Color.
PID.
Invio dati ad Arduino.
14. Conclusioni
Il sistema si comporta nel modo previsto, garantendo il
mantenimento dell’equilibrio per un tempo prolungato ed una
buona risposta a fronte di lievi perturbazioni esterne.
Problematiche e miglioramenti:
Vincolato al sistema operativo.
Frame-rate webcam.
Limiti dovuti alla struttura meccanica.
Si può ora proseguire lo studio ponendosi come obbiettivo
la realizzazione del Butterfly Robot