SlideShare a Scribd company logo
1 of 9
Helmet & robotic arm
Progetto per il modulo di Sistemi Real Time
Docente: Prof. G. C. Buttazzo
Corso di Sistemi Operativi, Programmazione Concorrente e Distribuita
Corso di Laurea Magistrale in Ingegneria Informatica
Università di Pisa
Francesco Corucci, Alessandro Biondi
a.a 2010-11
1
Indice generale
1Introduzione........................................................................................................................................3
2Hardware utilizzato............................................................................................................................3
3Acquisizione dei dati dal casco..........................................................................................................4
4Elettronica di interfaccia alla FLEX...................................................................................................5
5Controllo del braccio..........................................................................................................................6
5.1Controllo a cinematica inversa...................................................................................................8
6Software..............................................................................................................................................8
7Allegati...............................................................................................................................................9
2
1 Introduzione
Scopo del progetto è realizzare un sistema di puntamento basato su un casco giroscopico ed un
braccio robotico a sei gradi di libertà. La posizione della testa viene acquisita mediante il casco, e la
posizione del braccio è comandata di conseguenza, in modo che quest'ultimo segua le rotazioni del
casco sull'asse verticale e orizzontale.
2 Hardware utilizzato
L'hardware principale utilizzato consiste in:
– Evidence FLEX Demo Board
– casco giroscopico Union Reality UR-F98
– braccio robotico a sei gradi di libertà
3
Figura 1: Parte del setup
3 Acquisizione dei dati dal casco
PIN UTILIZZATI DAL CASCO
1 +5V
3 X-axis
4 GROUND
6 Y-axis
Non utilizzati ai fini del progetto
2 Joystick back button
13 Joystick slider
Tabella 1: Pinout della Game Port e del casco giroscopico
Come da standard game port, le uscite vanno acquisite come segnali analogici (tensione massima
+5V). In particolare, sui piedini X-axis e Y-axis viene offerta una resistenza variabile (max 100KΩ):
è dunque necessario utilizzare tale resistenza in un partitore di tensione, in modo da ricavare una
tensione analogica da poter acquisire con un ADC.
4
Figura 2: Il casco giroscopico
4 Elettronica di interfaccia alla FLEX
Gli ADC della FLEX prendono in ingresso tensioni tra 0 e 3.3V: è dunque necessario adattare le
tensioni in uscita dal casco (0-5V) per evitare la saturazione dell'ADC. Per riportare le tensioni in
uscita dal casco nel range di acquisizione dell'ADC, è stato necessario realizzare un semplice
partitore di tensione; tuttavia, per problemi di impedenza in ingresso all'ADC, è stato necessario
introdurre un buffer (inseguitore di tensione). In questo modo l'ADC vede (teoricamente) una
resistenza in ingresso infinita.
Questo circuito di interfaccia è stato replicato sulle uscite della game port etichettate col nome di
X-axis e Y-axis: l'uscita è stata mandata agli ADC della FLEX, sui piedini AN19 e AN21 (pin 9 e 20
di CON8).
5
Figura 3: Schematizzazione
dell'interfaccia game port
Figura 4: Elettronica di interfaccia
verso l'ADC
5 Controllo del braccio
Il braccio robotico utilizzato dispone di sei gradi di libertà, come illustrato nella figura seguente.
La spalla, molto sollecitata in alcune posizioni particolarmente sbilanciate, dispone di due motori
gemelli da pilotare con un solo segnale.
Ai fini del progetto, sono stati utilizzati soltanto i giunti relativi a base, spalla, gomito e polso.
I giunti sono attuati mediante servomotori da controllare in PWM. I servomotori integrano:
– motore
– riduttore
– elettronica di controllo
6
Figura 6: Servomotore
Il segnale PWM è tradotto dall'elettronica di controllo dei servomotori in un angolo. I motori del
braccio non sono tarati tutti allo stesso modo, e possono fare escursioni diverse a seconda dei
vincoli costruttivi del braccio stesso: è stato pertanto necessario effettuare una calibrazione ad hoc
per ogni motore, i cui risultati sono riassunti nella tabella sottostante.
GIUNTO
BOUND SUPERIORE BOUND INFERIORE
duty cycle (μs) angolo (deg) duty cycle (μs) angolo (deg)
Base 2500 90 700 -90
Spalla 600 90 2400 -90
Gomito 5200 180 1800 0
Polso 1400 90 4800 -90
Tabella 2: Corrispondenze tra angoli e duty cycle PWM per i giunti utilizzati
Per fornire la corrente necessaria ai servomotori è stato utilizzato un alimentatore esterno dedicato
(12V stabilizzato): è stato inoltre realizzato un circuito basato su regolatori di tensione a 5V per
fornire le linee di potenza ai servomotori.
Come si vede in figura, sono stati utilizzati tre regolatori 7805, distribuendo tra di essi
l'assorbimento di corrente dei vari giunti.
7
Figura 7: Circuito di potenza
5.1 Controllo a cinematica inversa
Il controllo del braccio sfrutta la cinematica inversa. I dati di ingresso al controllo consistono nella
posizione finale della pinza (inclinazione rispetto al piano, e posizione della punta nello spazio xyz),
quelli di output sono gli angoli a cui portare i vari giunti per ottenere la posizione voluta. Tale
controllo fa sì che tutti i giunti contribuiscano sinergicamente allo spostamento del braccio durante
il tracciamento del casco.
6 Software
Il software di controllo eseguito sulla FLEX è costituito da un unico task periodico (TaskPWM), che
ogni 20 ms (cioè con frequenza pari a 50Hz) esegue le seguenti operazioni:
Per acquisire i segnali analogici provenienti dal casco abbiamo utilizzato due ADC della FLEX. Per
quanto riguarda il controllo, le normali uscite PWM (OC3 ed OC8) non erano sufficienti per
8
Figura 8: Circuito di potenza
Figura 9: Flow chart del
task di controllo
Lettura posizione casco
Calcolo della
cinematica inversa
Comando PWM dei
servomotori
controllare i quattro servomotori del braccio: di conseguenza abbiamo dovuto sfruttare due uscite di
tipo PWMout (utilizzando solo le uscite dirette della coppia), normalmente impiegate per il
controllo di motori a ponte-H.
7 Allegati
Di seguito una breve descrizione dei files sorgenti allegati alla relazione.
– cinematica.h, cinematica.c: funzioni per il calcolo della cinematica del braccio;
– dc_motor.h: strato di libreria che consente di sfruttare i piedini PWMout;
– code.c: file principale del progetto: operazioni di inizializzazione e definizione del task di
controllo.
9

More Related Content

Similar to Teleoperating a robotic arm through a gyroscopic helmet

Costruzione di un pendolo inverso e implementazione del sistema di controllo
Costruzione di un pendolo inverso e implementazione del sistema di controlloCostruzione di un pendolo inverso e implementazione del sistema di controllo
Costruzione di un pendolo inverso e implementazione del sistema di controlloIgor Valic
 
IrrigaPIC Centralina per irrigazione 8 zone per valvole 24v ac
IrrigaPIC Centralina per irrigazione 8 zone per valvole 24v acIrrigaPIC Centralina per irrigazione 8 zone per valvole 24v ac
IrrigaPIC Centralina per irrigazione 8 zone per valvole 24v acDavide Mercanti
 
Yielding Robot and Rigid Environment - Contact Force Control (IT)
Yielding Robot and Rigid Environment - Contact Force Control (IT)Yielding Robot and Rigid Environment - Contact Force Control (IT)
Yielding Robot and Rigid Environment - Contact Force Control (IT)EnricoMarinelli3
 
Product catalogs 03: electronic instrumentation - weight indicators & weight ...
Product catalogs 03: electronic instrumentation - weight indicators & weight ...Product catalogs 03: electronic instrumentation - weight indicators & weight ...
Product catalogs 03: electronic instrumentation - weight indicators & weight ...LAUMAS
 
2000 fm pb_easyscan_emission_maps_sim_vs_measure (1)
2000 fm pb_easyscan_emission_maps_sim_vs_measure (1)2000 fm pb_easyscan_emission_maps_sim_vs_measure (1)
2000 fm pb_easyscan_emission_maps_sim_vs_measure (1)Piero Belforte
 
Sviluppo del sistema di controllo dell'assetto di un quadricottero con proces...
Sviluppo del sistema di controllo dell'assetto di un quadricottero con proces...Sviluppo del sistema di controllo dell'assetto di un quadricottero con proces...
Sviluppo del sistema di controllo dell'assetto di un quadricottero con proces...Andrea Gulberti
 
Progettazione di un convertitore analogico digitale in architettura multistadio
Progettazione di un convertitore analogico digitale in architettura multistadioProgettazione di un convertitore analogico digitale in architettura multistadio
Progettazione di un convertitore analogico digitale in architettura multistadioNelson Firmani
 
Assoautomazione guida encoder
Assoautomazione guida encoderAssoautomazione guida encoder
Assoautomazione guida encoderLika Electronic
 
Caratterizzazione di sensori di immagineCMOS
Caratterizzazione di sensori di immagineCMOSCaratterizzazione di sensori di immagineCMOS
Caratterizzazione di sensori di immagineCMOSErlis Hasa
 
Progetto ldc
Progetto ldcProgetto ldc
Progetto ldcaaa bbbb
 
Motorola solutions ap6532 installation guide italian (part no. 72 e-149368-...
Motorola solutions ap6532 installation guide   italian (part no. 72 e-149368-...Motorola solutions ap6532 installation guide   italian (part no. 72 e-149368-...
Motorola solutions ap6532 installation guide italian (part no. 72 e-149368-...Advantec Distribution
 
Sviluppo del sistema di controllo dell'assetto di un quadricottero con proces...
Sviluppo del sistema di controllo dell'assetto di un quadricottero con proces...Sviluppo del sistema di controllo dell'assetto di un quadricottero con proces...
Sviluppo del sistema di controllo dell'assetto di un quadricottero con proces...Andrea Gulberti
 
Presentazione
PresentazionePresentazione
Presentazionecesario
 
ATIPICO POTENTE TASCABILE INDUSTRIAL PLC
ATIPICO POTENTE TASCABILE INDUSTRIAL PLCATIPICO POTENTE TASCABILE INDUSTRIAL PLC
ATIPICO POTENTE TASCABILE INDUSTRIAL PLCRémi GUILBERT
 

Similar to Teleoperating a robotic arm through a gyroscopic helmet (20)

2013_10_Felici.PDF
2013_10_Felici.PDF2013_10_Felici.PDF
2013_10_Felici.PDF
 
2013_10_Felici.PDF
2013_10_Felici.PDF2013_10_Felici.PDF
2013_10_Felici.PDF
 
Costruzione di un pendolo inverso e implementazione del sistema di controllo
Costruzione di un pendolo inverso e implementazione del sistema di controlloCostruzione di un pendolo inverso e implementazione del sistema di controllo
Costruzione di un pendolo inverso e implementazione del sistema di controllo
 
IrrigaPIC Centralina per irrigazione 8 zone per valvole 24v ac
IrrigaPIC Centralina per irrigazione 8 zone per valvole 24v acIrrigaPIC Centralina per irrigazione 8 zone per valvole 24v ac
IrrigaPIC Centralina per irrigazione 8 zone per valvole 24v ac
 
Yielding Robot and Rigid Environment - Contact Force Control (IT)
Yielding Robot and Rigid Environment - Contact Force Control (IT)Yielding Robot and Rigid Environment - Contact Force Control (IT)
Yielding Robot and Rigid Environment - Contact Force Control (IT)
 
Product catalogs 03: electronic instrumentation - weight indicators & weight ...
Product catalogs 03: electronic instrumentation - weight indicators & weight ...Product catalogs 03: electronic instrumentation - weight indicators & weight ...
Product catalogs 03: electronic instrumentation - weight indicators & weight ...
 
Presentazione Braccio Robotizzato
Presentazione Braccio RobotizzatoPresentazione Braccio Robotizzato
Presentazione Braccio Robotizzato
 
2000 fm pb_easyscan_emission_maps_sim_vs_measure (1)
2000 fm pb_easyscan_emission_maps_sim_vs_measure (1)2000 fm pb_easyscan_emission_maps_sim_vs_measure (1)
2000 fm pb_easyscan_emission_maps_sim_vs_measure (1)
 
Tesi
TesiTesi
Tesi
 
Sviluppo del sistema di controllo dell'assetto di un quadricottero con proces...
Sviluppo del sistema di controllo dell'assetto di un quadricottero con proces...Sviluppo del sistema di controllo dell'assetto di un quadricottero con proces...
Sviluppo del sistema di controllo dell'assetto di un quadricottero con proces...
 
Progettazione di un convertitore analogico digitale in architettura multistadio
Progettazione di un convertitore analogico digitale in architettura multistadioProgettazione di un convertitore analogico digitale in architettura multistadio
Progettazione di un convertitore analogico digitale in architettura multistadio
 
2080-um002_-it-e.pdf
2080-um002_-it-e.pdf2080-um002_-it-e.pdf
2080-um002_-it-e.pdf
 
OPDE Drives
OPDE DrivesOPDE Drives
OPDE Drives
 
Assoautomazione guida encoder
Assoautomazione guida encoderAssoautomazione guida encoder
Assoautomazione guida encoder
 
Caratterizzazione di sensori di immagineCMOS
Caratterizzazione di sensori di immagineCMOSCaratterizzazione di sensori di immagineCMOS
Caratterizzazione di sensori di immagineCMOS
 
Progetto ldc
Progetto ldcProgetto ldc
Progetto ldc
 
Motorola solutions ap6532 installation guide italian (part no. 72 e-149368-...
Motorola solutions ap6532 installation guide   italian (part no. 72 e-149368-...Motorola solutions ap6532 installation guide   italian (part no. 72 e-149368-...
Motorola solutions ap6532 installation guide italian (part no. 72 e-149368-...
 
Sviluppo del sistema di controllo dell'assetto di un quadricottero con proces...
Sviluppo del sistema di controllo dell'assetto di un quadricottero con proces...Sviluppo del sistema di controllo dell'assetto di un quadricottero con proces...
Sviluppo del sistema di controllo dell'assetto di un quadricottero con proces...
 
Presentazione
PresentazionePresentazione
Presentazione
 
ATIPICO POTENTE TASCABILE INDUSTRIAL PLC
ATIPICO POTENTE TASCABILE INDUSTRIAL PLCATIPICO POTENTE TASCABILE INDUSTRIAL PLC
ATIPICO POTENTE TASCABILE INDUSTRIAL PLC
 

More from Francesco Corucci

Real-time PID control of an inverted pendulum
Real-time PID control of an inverted pendulumReal-time PID control of an inverted pendulum
Real-time PID control of an inverted pendulumFrancesco Corucci
 
Social Network Analysis Project
Social Network Analysis ProjectSocial Network Analysis Project
Social Network Analysis ProjectFrancesco Corucci
 
A wearable MIDI interface using a wireless sensor network
A wearable MIDI interface using a wireless sensor networkA wearable MIDI interface using a wireless sensor network
A wearable MIDI interface using a wireless sensor networkFrancesco Corucci
 
Implementation of a lane-tracking system for autonomous driving using Kalman ...
Implementation of a lane-tracking system for autonomous driving using Kalman ...Implementation of a lane-tracking system for autonomous driving using Kalman ...
Implementation of a lane-tracking system for autonomous driving using Kalman ...Francesco Corucci
 
An overview on Quantum Key Distribution
An overview on Quantum Key DistributionAn overview on Quantum Key Distribution
An overview on Quantum Key DistributionFrancesco Corucci
 
P-Systems for approximating NP-Complete optimization problems
P-Systems for approximating NP-Complete optimization problemsP-Systems for approximating NP-Complete optimization problems
P-Systems for approximating NP-Complete optimization problemsFrancesco Corucci
 

More from Francesco Corucci (6)

Real-time PID control of an inverted pendulum
Real-time PID control of an inverted pendulumReal-time PID control of an inverted pendulum
Real-time PID control of an inverted pendulum
 
Social Network Analysis Project
Social Network Analysis ProjectSocial Network Analysis Project
Social Network Analysis Project
 
A wearable MIDI interface using a wireless sensor network
A wearable MIDI interface using a wireless sensor networkA wearable MIDI interface using a wireless sensor network
A wearable MIDI interface using a wireless sensor network
 
Implementation of a lane-tracking system for autonomous driving using Kalman ...
Implementation of a lane-tracking system for autonomous driving using Kalman ...Implementation of a lane-tracking system for autonomous driving using Kalman ...
Implementation of a lane-tracking system for autonomous driving using Kalman ...
 
An overview on Quantum Key Distribution
An overview on Quantum Key DistributionAn overview on Quantum Key Distribution
An overview on Quantum Key Distribution
 
P-Systems for approximating NP-Complete optimization problems
P-Systems for approximating NP-Complete optimization problemsP-Systems for approximating NP-Complete optimization problems
P-Systems for approximating NP-Complete optimization problems
 

Teleoperating a robotic arm through a gyroscopic helmet

  • 1. Helmet & robotic arm Progetto per il modulo di Sistemi Real Time Docente: Prof. G. C. Buttazzo Corso di Sistemi Operativi, Programmazione Concorrente e Distribuita Corso di Laurea Magistrale in Ingegneria Informatica Università di Pisa Francesco Corucci, Alessandro Biondi a.a 2010-11 1
  • 2. Indice generale 1Introduzione........................................................................................................................................3 2Hardware utilizzato............................................................................................................................3 3Acquisizione dei dati dal casco..........................................................................................................4 4Elettronica di interfaccia alla FLEX...................................................................................................5 5Controllo del braccio..........................................................................................................................6 5.1Controllo a cinematica inversa...................................................................................................8 6Software..............................................................................................................................................8 7Allegati...............................................................................................................................................9 2
  • 3. 1 Introduzione Scopo del progetto è realizzare un sistema di puntamento basato su un casco giroscopico ed un braccio robotico a sei gradi di libertà. La posizione della testa viene acquisita mediante il casco, e la posizione del braccio è comandata di conseguenza, in modo che quest'ultimo segua le rotazioni del casco sull'asse verticale e orizzontale. 2 Hardware utilizzato L'hardware principale utilizzato consiste in: – Evidence FLEX Demo Board – casco giroscopico Union Reality UR-F98 – braccio robotico a sei gradi di libertà 3 Figura 1: Parte del setup
  • 4. 3 Acquisizione dei dati dal casco PIN UTILIZZATI DAL CASCO 1 +5V 3 X-axis 4 GROUND 6 Y-axis Non utilizzati ai fini del progetto 2 Joystick back button 13 Joystick slider Tabella 1: Pinout della Game Port e del casco giroscopico Come da standard game port, le uscite vanno acquisite come segnali analogici (tensione massima +5V). In particolare, sui piedini X-axis e Y-axis viene offerta una resistenza variabile (max 100KΩ): è dunque necessario utilizzare tale resistenza in un partitore di tensione, in modo da ricavare una tensione analogica da poter acquisire con un ADC. 4 Figura 2: Il casco giroscopico
  • 5. 4 Elettronica di interfaccia alla FLEX Gli ADC della FLEX prendono in ingresso tensioni tra 0 e 3.3V: è dunque necessario adattare le tensioni in uscita dal casco (0-5V) per evitare la saturazione dell'ADC. Per riportare le tensioni in uscita dal casco nel range di acquisizione dell'ADC, è stato necessario realizzare un semplice partitore di tensione; tuttavia, per problemi di impedenza in ingresso all'ADC, è stato necessario introdurre un buffer (inseguitore di tensione). In questo modo l'ADC vede (teoricamente) una resistenza in ingresso infinita. Questo circuito di interfaccia è stato replicato sulle uscite della game port etichettate col nome di X-axis e Y-axis: l'uscita è stata mandata agli ADC della FLEX, sui piedini AN19 e AN21 (pin 9 e 20 di CON8). 5 Figura 3: Schematizzazione dell'interfaccia game port Figura 4: Elettronica di interfaccia verso l'ADC
  • 6. 5 Controllo del braccio Il braccio robotico utilizzato dispone di sei gradi di libertà, come illustrato nella figura seguente. La spalla, molto sollecitata in alcune posizioni particolarmente sbilanciate, dispone di due motori gemelli da pilotare con un solo segnale. Ai fini del progetto, sono stati utilizzati soltanto i giunti relativi a base, spalla, gomito e polso. I giunti sono attuati mediante servomotori da controllare in PWM. I servomotori integrano: – motore – riduttore – elettronica di controllo 6 Figura 6: Servomotore
  • 7. Il segnale PWM è tradotto dall'elettronica di controllo dei servomotori in un angolo. I motori del braccio non sono tarati tutti allo stesso modo, e possono fare escursioni diverse a seconda dei vincoli costruttivi del braccio stesso: è stato pertanto necessario effettuare una calibrazione ad hoc per ogni motore, i cui risultati sono riassunti nella tabella sottostante. GIUNTO BOUND SUPERIORE BOUND INFERIORE duty cycle (μs) angolo (deg) duty cycle (μs) angolo (deg) Base 2500 90 700 -90 Spalla 600 90 2400 -90 Gomito 5200 180 1800 0 Polso 1400 90 4800 -90 Tabella 2: Corrispondenze tra angoli e duty cycle PWM per i giunti utilizzati Per fornire la corrente necessaria ai servomotori è stato utilizzato un alimentatore esterno dedicato (12V stabilizzato): è stato inoltre realizzato un circuito basato su regolatori di tensione a 5V per fornire le linee di potenza ai servomotori. Come si vede in figura, sono stati utilizzati tre regolatori 7805, distribuendo tra di essi l'assorbimento di corrente dei vari giunti. 7 Figura 7: Circuito di potenza
  • 8. 5.1 Controllo a cinematica inversa Il controllo del braccio sfrutta la cinematica inversa. I dati di ingresso al controllo consistono nella posizione finale della pinza (inclinazione rispetto al piano, e posizione della punta nello spazio xyz), quelli di output sono gli angoli a cui portare i vari giunti per ottenere la posizione voluta. Tale controllo fa sì che tutti i giunti contribuiscano sinergicamente allo spostamento del braccio durante il tracciamento del casco. 6 Software Il software di controllo eseguito sulla FLEX è costituito da un unico task periodico (TaskPWM), che ogni 20 ms (cioè con frequenza pari a 50Hz) esegue le seguenti operazioni: Per acquisire i segnali analogici provenienti dal casco abbiamo utilizzato due ADC della FLEX. Per quanto riguarda il controllo, le normali uscite PWM (OC3 ed OC8) non erano sufficienti per 8 Figura 8: Circuito di potenza Figura 9: Flow chart del task di controllo Lettura posizione casco Calcolo della cinematica inversa Comando PWM dei servomotori
  • 9. controllare i quattro servomotori del braccio: di conseguenza abbiamo dovuto sfruttare due uscite di tipo PWMout (utilizzando solo le uscite dirette della coppia), normalmente impiegate per il controllo di motori a ponte-H. 7 Allegati Di seguito una breve descrizione dei files sorgenti allegati alla relazione. – cinematica.h, cinematica.c: funzioni per il calcolo della cinematica del braccio; – dc_motor.h: strato di libreria che consente di sfruttare i piedini PWMout; – code.c: file principale del progetto: operazioni di inizializzazione e definizione del task di controllo. 9