Corso di Robotica (finalmente) Obiettivi • Illustrare i concetti fondamentali della robotica • Imparare a costruire e programmare semplici robot • Mettere finalmente in pratica ciò che è stato studiato in questi anni nei corsi di elettronica, informatica e sistemi • Imparare ad utilizzare la documentazione tecnica • Dimostrare che si può costruire un robot senza comprare le enciclopedie a dispense che si vendono in edicola e spendendo molto meno Argomenti teorici N° MODULO 1 Introduzione alla robotica ARGOMENTI Introduzione al corso e alla robotica. Utilizzo dei robot e applicazioni pratiche. Classificazione dei robot. Architettura generale di un robot. Concetti di base di cinematica per la robotica: differenti configurazioni cinematiche (manipolatori, robot mobili). Problemi di controllo. Cenni di teoria del controllo: retroazione. Sensori ed attuatori per la robotica. Sensori di prossimità: sensori a infrarossi e di contatto. Sensori di posizione: potenziometri, encoder, bussole magnetiche, inclinometro, accelerometro. Motori in corrente continua. Servocomandi. Attuatori pneumatici ed idraulici. 2 Hardware 3 Programmazione dei robot Microprocessore e software. Architettura di un robot: unità centrale, interfacce verso i sensori e gli attuatori, interfaccia verso l’operatore. Diagramma di flusso di un software per il controllo di un robot. Istruzioni principali ad alto livello. Cenni di tecniche di visione per la robotica 4 Circuitistica per la robotica. Architettura del microcontrollore Microchip. Circuiti di condizionamento per i sensori. Schemi di pilotaggio per motori DC e servocomandi. Prerequisiti • Conoscere i concetti fondamentali dell'elettronica (in particolare di quella digitale). • Essere molto curiosi: voler cercare di capire come funzionano le cose e avere voglia di “smanettare” • Comprendere l'inglese tecnico, perché quasi tutta la documentazione è scritta in tale lingua I nostri “amici” Walker (esapode) ROVER 4WD CARPET ROVER Cosa altro useremo …. • • • • • • • • • Microcontrollore BasicX BX 24P MD22 Dual 5A H-Bridge Sharp GP2D12 Sensore IRCMPS03 Bussola elettronica per navigazione OOPic-R scheda con microcontrollore Accelerometro 2 Assi 2G uscite analogiche RGB Colour Sensor600037 Mini ATOM Bot Board Batterie NiMh 6.V 5Ah Cosa potrebbero fare? oppure …. Ora possiamo iniziare Cosa è un robot? • Potete non crederci, ma non esiste una definizione univoca di robot. – mechanical device designed to perform the work generally done by a human being – mechanical device that sometimes resembles a human and is capable of performing a variety of often complex human tasks on command or by being programmed in advance. – A machine or device that operates automatically or by remote control. – A person who works mechanically without original thought, especially one who responds automatically to the commands of others. L'unica "vera" definizione "Non so dire cosa sia un robot, ma certamente so dire quando ne vedo uno” Joseph F. Engelberger, President, Unimation Inc. Materiale didattico • Manuali • Data sheet Piccola raccomandazione prima di cominciare • In laboratorio prima di fare qualunque cosa pensate sempre prima a quello che state facendo! Introduzione e terminologia • Le due problematiche principali che si affrontano nello studio della robotica riguardano la manipolazione e la mobilità. – La prima consiste nell’analisi di quei robot o di quelle parti di robot capaci di manipolare oggetti attraverso l’ausilio di specifiche parti meccaniche (bracci o sistemi analoghi); – la seconda, invece, riguarda la possibilità di spostarsi in uno spazio più o meno noto. Sottosistemi dei robot Sottosistema Sottosistema MECCANICA PROCESSO (Braccio, mano, ruote) (Compito, ambiente) Sottosistema Sottosistema ELETTRICO SENSORI (Motori, alimentatori) (Interni. esterni) Sottosistema CONTROLLO (Trasformazioni, loop di controllo) OPERATORE Sottosistema PIANIFICAZIONE (Cammino, prese, traiettoria) Sottosistemi • Sottosistema meccanica Comprende la meccanica del robot cioè la struttura fisica su cui sono posti gli altri sottosistemi. • Sottosistema elettrico Comprende tutti gli azionamenti necessari a fornire capacità di movimento alla struttura meccanica. Comprende inoltre i collegamenti per fornire comandi ed energia a tali azionamenti. Fanno quindi parte del sottosistema elettrico: motori, alimentatori, cavi elettrici ecc.(talvolta è presente un sottosistema pneumatico che viene comandato dal sottosistema elettrico). • Sottosistema controllo Provvede alla trasformazione degli input (ad esempio il passaggio da riferimenti assoluti a relativi ecc.) ed al controllo (eventualmente in anello chiuso) dei sottosistemi elettrico e meccanica (il controllo interagisce con il sottosistema sensori per permettere il controllo in anello chiuso). Sottosistemi • Sottosistema processo (compito o ambiente) Non è propriamente una parte del robot ma è la parte di ambiente esterno che interagisce direttamente con il robot. • Sottosistema sensori – Sensori Interni monitorizzano situazioni interne al robot stesso (ad esempio le posizioni relative degli organi meccanici). Sono quindi usati per valutare l’operato degli attuatori. Fanno parte di questa categoria gli encoder montati nei giunti e altri sensori per valutare lo stato del robot. – Sensori Esterni monitorizzano situazioni esterne al robot stesso (ad esempio la presenza di oggetti nello spazio di lavoro). Sono quindi usati per controllare l’interazione del robot con il mondo esterno. Questa categoria comprende la maggior parte dei sensori usati sui robot (sensori di pressione, forza, telemetri, telecamere ecc.). • Sottosistema pianificazione Questo è il sottosistema più ad alto livello; provvede alla pianificazione delle azioni del robot (cammini. traiettorie, prese ecc.).(tipicamente questo sottosistema contiene anche l’interfaccia utente. In un ambiente statico (strutturato) il sottosistema di pianificazione può essere ridotto ad un più semplice sottosistema di programmazione). Il microprocessore BX-24 Microprocessore BX-24 BX-24 Hardware – Il sistema BX-24 è composto da un fast core processor (BasicX) con una memoria ROM che contiene il sistema operativo, 400 bytes di memoria RAM, un certo numero di dispositivi I/O come timers, UARTs, ADCs, pins, SPI peripheral bus, ecc. Il BX-24 utilizza un processore Atmel AT90S8535 come core processor. 1 Microprocessore BX-24 BasicX processor: Il processore BasicX è il cuore del sistema BX-24. È un dispositivo a 44 pin che legge ed esegue il programma memorizzato in una EEPROM esterna da 32 KB. Il BX-24 ha 16 general purpose linee I/O (TTL & CMOS compatibile). Stati (digitali) delle linee I/O: output high, output low, tristate (hi-Z), input con pullup 2 Microprocessore BX-24 BasicX processor: 8 delle 16 linee possono essere utilizzate in modalità da ingressi analogici. analog to digital converters (ADCs) a10-bit 5 Risoluzion e 10 4.88mV 2 3 Microprocessore BX-24 SPI EEPROM: è una memoria EEPROM a 32 Kbyte che contiene il programma che il processore deve eseguire. Questa memoria (AT25656) può memorizzare circa 8000 linee di codice BasicX. 4 Microprocessore BX-24 Serial port: permette la connessione seriale con modem o PC ad una velocità massima di 460.8 kbaud. La porta seriale utilizza 3 linee -- RxData -- TxData -- DTR (utilizzato solo per il downloading del programma) 5 Microprocessore BX-24 Voltage regulator: Il BX-24 è equipaggiato con un regolatore di tensione a 5V. La tensione di alimentazione può variare da 5.7 V a 15 V. Il regolatore fornisce sul pin 21 la tensione regolata a 5V consentendo un’assorbimento massimo di 100 mA (circa 25mA per il BX-24 e i rimanenti 75mA per l’esterno). 6 Microprocessore BX-24 Memory map Type Location Start address End address size RAM inside 207 607 401 bytes ROM inside 32 511 480 bytes EEPROM outside 0 32767 32768 bytes 7 Microprocessore BX-24 Time and date registers: Il BX-24 ha un calendario (clock real-time) la cui frequenza di aggiornamento è pari a 512 Hz. Ad ogni ciclo di clock viene incrementato un registro (RTCTick) a 32 bit che si azzera ogni 24 ore. La data è memorizzata in un registro (RTCDay) a 16 bit inizializzato al giorno 0 in corrispondenza del 1 gennaio 1999. Il suo incremento avviene in corrispondenza di ogni azzeramento del Registro RTCTick. 8 Microprocessore BX-24 Pin numbering 9 10 Pin definition Mini ABB Atom Bot Board