Struttura del corso
Settimana 01
Giorno 01
Introduzione
- Che cosa rende un robot intelligente?
Robot Fisici vs Virtuali
- Robot Intelligenti, Macchine Intelligenti, Macchine Consapevoli e Automazione Processuale Robotica (RPA), ecc.
Il Ruolo dell'Intelligenza Artificiale (IA) nella Robotica
- Oltre "se-allora-altrimenti" e la macchina di apprendimento
- Gli algoritmi alla base dell'IA
- Apprendimento automatico, visione artificiale, elaborazione del linguaggio naturale (NLP), ecc.
- Robotica cognitiva
Giorno 02
Il Ruolo dei Big Data nella Robotica
- Prendere decisioni basate sui dati e sugli schemi
Cloud Computing e Robotica
- Collegare la robotica con l'IT
- Costruire robot più funzionali che accedono a maggiori informazioni e collaborano
Studio di Caso: Robot Industriali
- Robot Meccanici
- Baxter
- Robot nelle Instalazioni Nucleari
- Rilevamento e protezione contro la radiazione
- Robot nei Reattori Nucleari
- Rilevamento e protezione contro la radiazione
Giorno 03
Componenti Hardware di un Robot
- Motori, sensori, microcontrollori, telecamere, ecc.
Elementi Comuni dei Robot
- Visione artificiale, riconoscimento vocale, sintesi vocale, sensoristica a distanza, sensazione di pressione, ecc.
Giorno 04
Frameworks per lo Sviluppo Robotico
- Framework open source e commerciali
- Sistema Operativo del Robot (ROS)
- Architettura: workspace, topics, messaggi, servizi, nodi, actionlibs, strumenti, ecc.
Lingue per la Programmazione dei Robot
- C++ per il controllo di livello basso
- Python per l'orchestrazione
- Programmazione ROS nodi in Python e C++
- Altre lingue
Giorno 05
Strumenti per la Simulazione di un Robot Fisico
- Software di simulazione e visualizzazione 3D open source e commerciali
Strumenti per il Progettazione delle Caratteristiche Fisiche del Robot
- Software CAD open source e commerciali
Studio di Caso: Robot Meccanici
- Robot nel settore delle tecnologie nucleari
- Robot nei sistemi ambientali
Settimana 02
Giorno 06
Corso Accelerato di Python
- Installazione e configurazione del software
- Pacchetti utili ed utility
- Lavorare con le strutture dati, operatori, cicli, condizionali, funzioni, metodi di Python, ecc.
- Scrivere un programma di esempio
- Progetto di squadra
Giorno 07
Preparazione per lo Sviluppo Robotico
- Impostazione dell'ambiente di sviluppo (ad esempio, Arduino IDE)
- Esplorazione della sintassi del linguaggio Arduino (C/C++)
- Codifica, compilazione e caricamento sul microcontrollore
- Assemblaggio dei componenti hardware di un robot Arduino
Giorno 08
Lavoro con i Componenti Arduino
- Sensori analogici
- Sensori digitali
Lavoro con i Moduli di Comunicazione Arduino
- Moduli Bluetooth
- Moduli Wi-Fi
- Moduli RFID
- I2C e SPI
- Internet mobile
Giorno 09
Costruzione di un Robot
- Pianificare le caratteristiche e le funzionalità del robot
- Implementazione del movimento del robot
Progetto di squadra
- Discussione e rassegna
Giorno 10
Controllo del Robot
- Implementazione del controller
- Connessione al robot (con cavo e senza fili)
Progetto di squadra
- Discussione e rassegna
Settimana 03
Giorno 11
Programmazione del Robot
- Simulazione di un robot con Gazebo / ROS
- Comprendere il nodo ROS
- Programmazione di un nodo in Python e C++
- Messaggi e topic in ROS
- Paradigma di pubblicazione/abbonamento
Progetto di squadra
- Bump & Go con un robot reale
- Discussione e rassegna
Giorno 12
Programmazione del Robot (continuato...)
- Frame in ROS e cambiamenti di riferimento
- Elaborazione delle informazioni in 2D dalle telecamere con OpenCV
- Elaborazione delle informazioni da un laser
Progetto di squadra
- Tracciamento sicuro degli oggetti per colore
- Discussione e rassegna
Giorno 13
Test del Robot
- Strumenti per testare il codice
- Testing unitario
- Creazione di un insieme di test
- Automatizzazione dei test
- Soluzione dei problemi
Progetto di squadra
- Tracciamento sicuro degli oggetti per colore
- Discussione e rassegna
Giorno 14
Programmazione del Robot (continuato...)
- Servizi in ROS
- Elaborazione delle informazioni 3D dai sensori RGB-D con PCL
- Mappe e navigazione con ROS
Giorno 15
Programmazione del Robot (continuato...)
- Completamento delle attività con ActionLib
Progetto di squadra
- Ricerca degli oggetti nell'ambiente
Settimana 04
Giorno 16
Programmazione del Robot (continuato...)
- Completamento delle attività con ActionLib
Giorno 17
Programmazione del Robot (continuato...)
- Riconoscimento vocale e generazione vocale
- Soluzione dei problemi
Progetto di squadra
- Controllo di un robot usando la voce
Giorno 18
Programmazione del Robot (continuato...)
- Controllo delle braccia robotiche con MoveIt!
- Controllo della testa robotica per la visione attiva
- Soluzione dei problemi
Progetto di squadra
- Ricerca e raccolta degli oggetti
Giorno 19
Deployment del Robot
- Deployment del robot nel mondo fisico
- Monitoraggio e manutenzione dei robot sul campo
- Utilizzo di un'app mobile per controllare un robot
Sicurezza del Robot
- Prevenire manipolazioni non autorizzate
- Prevenire hacker da visualizzare e rubare dati sensibili
Giorno 20
Analisi dei Dati
- Raccolta e organizzazione dei dati generati dal robot
- Interpretazione dei dati tramite strumenti di visualizzazione e processi
Costruire un Robot Collaborativamente
- Costruzione di un robot nel cloud
- Costruzione di un'app mobile per interagire con il proprio robot
- Partecipazione alla comunità della robotica
Prospettive Future per i Robot nel Campo Scienza e Energia
Riassunto e Conclusione
Requisiti
- Esperienza di programmazione in C o C++
- Esperienza di programmazione in Python (utile ma non necessaria; può essere insegnata come parte del corso)
- Esperienza con la riga di comando Linux
Destinatari
- Sviluppatori
- Ingegneri
- Scienziati
- Tecnici
- Capire i concetti chiave usati nelle tecnologie robotiche.
- Comprendere e gestire l'interazione tra software e hardware in un sistema robotico.
- Comprendere ed implementare i componenti software che sottostanno alla robotica.
- Costruire e operare un robot meccanico simulato che possa vedere, rilevare, elaborare, navigare e interagire con gli esseri umani attraverso la voce.
- Capire gli elementi necessari dell'intelligenza artificiale (apprendimento automatico, deep learning, ecc.) applicabili alla costruzione di un robot intelligente.
- Implementare filtri (Kalman e Particle) per consentire al robot di individuare oggetti in movimento nel suo ambiente.
- Implementare algoritmi di ricerca e pianificazione del moto.
- Implementare controlli PID per regolare il movimento del robot all'interno dell'ambiente.
- Implementare algoritmi SLAM per consentire al robot di mappare un ambiente sconosciuto.
- Testare e risolvere problemi su un robot in scenari realistici.
- Lectura interattive e discussioni.
- Molte esercitazioni e pratica.
- Implementazione pratica in un ambiente di laboratorio live.
- I kit hardware saranno confermati dall'insegnante prima del corso. I kit conterranno più o meno i seguenti componenti:
- Board Arduino
- Controller motore
- Sensore di distanza
- Modulo Bluetooth slave
- Tavolo prototipo e cavi
- Cavo USB
- Kit veicolo
- I partecipanti dovranno fornire loro stessi l'hardware.
- Per personalizzare qualunque parte di questo corso (linguaggio di programmazione, modello robot, microcontrollore, ecc.) si prega di contattarci per organizzare.
- Capire i concetti chiave usati nelle tecnologie robotiche.
- Comprendere e gestire l'interazione tra software e hardware in un sistema robotico.
- Comprendere ed implementare i componenti software che sottostanno alla robotica.
- Costruire e operare un robot meccanico simulato che possa vedere, rilevare, elaborare, navigare e interagire con gli esseri umani attraverso la voce.
- Capire gli elementi necessari dell'intelligenza artificiale (apprendimento automatico, deep learning, ecc.) applicabili alla costruzione di un robot intelligente.
- Implementare filtri (Kalman e Particle) per consentire al robot di individuare oggetti in movimento nel suo ambiente.
- Implementare algoritmi di ricerca e pianificazione del moto.
- Implementare controlli PID per regolare il movimento del robot all'interno dell'ambiente.
- Implementare algoritmi SLAM per consentire al robot di mappare un ambiente sconosciuto.
- Testare e risolvere problemi su un robot in scenari realistici.
- Cosa rende un Robot intelligente?
- Robot Fisici vs Virtuali
- Robot intelligenti, macchine intelligenti, macchine coscienti e Robotic Process Automation (RPA), ecc.
- Oltre "if-then-else" e le machine learning
- Gli algoritmi dietro l'IA
- Apprendimento automatico, visione artificiale, elaborazione del linguaggio naturale (NLP), ecc.
- Robotica cognitiva
- Prendere decisioni basate sui dati e sulle pattern
- Collegare robotica con IT
- Sviluppare robot più funzionali che accedono a più informazioni e collaborano
- Robot Meccanici
- Baxter
- Robot nelle Installazioni Nucleari
- Rilevazione e protezione dalla radiazione
- Robot nei Reactori Nucleari
- Rilevazione e protezione dalla radiazione
- Motore, sensori, microcontroller, telecamere, ecc.
- Visione meccanica, riconoscimento vocale, sintesi vocale, rilevamento di vicinanza, sensazione di pressione, ecc.
- Framework open source e commerciali
- Robot Operating System (ROS)
- Architettura: workspace, topics, messages, services, nodes, actionlibs, tools, ecc.
- Robot Operating System (ROS)
- Lingue per la Programmazione di un Robot
- C++ per il controllo a livello basso
- Python per l'orchestrazione
- Programmazione ROS nodes in Python e C ++
- Altre lingue
- Software open source e commerciali di simulazione e visualizzazione in 3D
- Software CAD open source e commerciali
- Robot nel campo della tecnologia nucleare
- Robot nei sistemi ambientali
- Installazione e configurazione del software
- Pacchetti utili ed utility
- Lavorare con strutture dati di Python, operatori, loop, condizionali, funzioni, metodi, ecc.
- Ridurre un programma di esempio
- Progetto di squadra
- Impostare l'ambiente di sviluppo (es. Arduino IDE)
- Esporere la sintassi della lingua Arduino (C/C++)
- Codifica, compilazione e caricamento sul microcontroller
- Assemblaggio dei componenti hardware del robot Arduino
- Sensori analogici
- Sensori digitali
- Moduli Bluetooth
- Moduli Wi-Fi
- Moduli RFID
- I2C e SPI
- Internet mobile
- Pianificare le funzionalità e le caratteristiche del robot
- Implementare il movimento del robot
- Discussione ed esame
- Implementazione del controller
- Collegamento al robot (con e senza filo)
- Discussione ed esame
- Simulare un robot con Gazebo / ROS
- Capire i nodi di ROS
- Programmare un nodo in Python e C ++
- Messaggi e topic in ROS
- Paradigma di pubblicazione/abbonamento
- Bump & Go con robot reale
- Discussione ed esame
- Frame in ROS e cambi di riferimento
- Elaborazione delle informazioni 2D delle telecamere con OpenCV
- Elaborazione dell'informazione del laser
- Rilevamento sicuro degli oggetti per colore
- Discussione ed esame
- Strumenti per testare il codice
- Testing unitario
- Crea un suite di test
- Automatizzazione dei test
- Risolvere problemi
- Rilevamento sicuro degli oggetti per colore
- Discussione ed esame
- Servizi in ROS
- Elaborazione delle informazioni 3D dei sensori RGB-D con PCL
- Mappa e navigazione con ROS
- Esecuzione di attività con ActionLib
- Ricerca di oggetti nell'ambiente
- Esecuzione di attività con ActionLib
- Riconoscimento e generazione vocale
- Risolvere problemi
- Controllo del robot usando la voce
- Controllo degli articolati con MoveIt!
- Controllo del collo meccanico per visione attiva
- Risolvere problemi
- Ricerca e raccolta di oggetti
- Distribuire il robot nel mondo fisico
- Monitoraggio e manutenzione dei robot sul campo
- Uso di un'app mobile per controllare un robot
- Predisporre contro manipolazioni non autorizzate
- Bloccare gli hacker che cercano di accedere e rubare dati sensibili
- Raccolta ed organizzazione dei dati generati dal robot
- Interpretazione dei dati attraverso strumenti e processi di visualizzazione
- Costruzione di un robot in cloud
- Sviluppo di un'app mobile per interagire con il proprio robot
- Partecipare alla comunità della robotica
Recensioni (1)
I feel I get the core skills I need to understand how the ROS fits together, and how to structure projects in it.