Pages: [1]   Go Down
Author Topic: Primi test - UAV gioblu.com  (Read 3004 times)
0 Members and 1 Guest are viewing this topic.
Milan
Offline Offline
Edison Member
*
Karma: 2
Posts: 1128
gioblu.com
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti ragazzi. Ieri ho effettuato i primi test dell'aereo RC che utilizzero' per creare un UAV che sappia atterrare da solo sull'erba (senza carrelli, quindi spanciare). Vorrei iniziare con un semplice ultrasonico orientato verso il suolo, arduino e una IMU 5dof di sparkfun.

Il test è stato effettuato con una telecamera onboard perchè il principale utilizzo sarà lanciarlo da casa mia e farlo atterrare nel giardino di un amico a + o - 10km di distanza, usando solo il gps, la imu 5 dof e un ultrasonico smiley-wink

Qui il video smiley-razz:
http://www.gioblu.com/community/forum/topic?id=201&p=2614#p2614
Logged

Community robotica / programmazione Arduino
www.gioblu.com

Naples (IT)
Offline Offline
God Member
*****
Karma: 6
Posts: 714
Andrea E.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Prevedo PARECCHI avvistamenti di ufo nella tua zona..... 10km! Ma non sono troppi?!
Logged

Arduino, MODs e DIY: blackstufflabs.com

Milan
Offline Offline
Edison Member
*
Karma: 2
Posts: 1128
gioblu.com
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

hahaha potrebbe essere!!
L'aereo ha una velocità di crociera 50km/h, dovrebbero essere 12 minuti di volo. La batteria dovrebbe durare 20 minuti.
Logged

Community robotica / programmazione Arduino
www.gioblu.com

Naples (IT)
Offline Offline
God Member
*****
Karma: 6
Posts: 714
Andrea E.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Fallo partire di notte, mettici qualche led ad altissima luminosità lampeggiante e un buzzer che emette qualche rumore strano.... ahahhaha

Scherzi a parte, quanto peserebbe il tutto?
Logged

Arduino, MODs e DIY: blackstufflabs.com

Riva del Garda, TN / Forlì
Offline Offline
Edison Member
*
Karma: 8
Posts: 2246
Il piu' modesto al mondo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ti conviene easyglidet, più che altro con l'elettronica che ci monti a bordo hai contato che l'autonomia diminuisce?  smiley-grin

comunque prima inizia a fare un sistema stabilizzato che raggiunga in volo da un punto a ad uno b che possa essere ripreso in caos di guasto dal radiocomando (e già qui è difficile).
poi fai un sistema che riesca ad atterrare in uno spazio limitato e conta che anche il GPS ha una precisione di circa 20 metri, a seconda di quale prendi e quanti satelliti riesce ad agganciare, prima fai delle prove e guarda le coordinate di quanto sballano, perchè il giardino del tuo amico è grande 30x50 metri?  smiley-grin (30 sulla larghezza, 20 metri più margine e 5 perchè 20 metri ma ci metterà una 15ina di metri ad atterrare se tutto va bene).

il progetto fidati che è molto complesso ma buona fortuna se serve una mano chiedi  smiley-wink

comunque l'easystar ha 20 minuti di autonomia ma non con motore sempre a palla e implementare qualcosa che riesca a monitorare anche quello la vedo dura..
Logged

Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

Milan
Offline Offline
Edison Member
*
Karma: 2
Posts: 1128
gioblu.com
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Sono d'accordo. Per fortuna l'amico ha un giardino dove si riescirebbe ad atterrare con un ultraleggero quindi la precisione del GPS puo' anche essere minore di una sfera di 20m, e non sarebbe troppo problematico.
Per autonomia, sono d'accordo che vanno rifatti tutti i calcoli.

Parto dalla stabilizzazione di base, cioè stabilizzare parallele al terreno le ali e correggere eventuali errori.
Pensavo di partire da questo codice:
http://www.gioblu.com/tutorials/programmazione/98-filtro-di-kalman-con-arduino
usando una IMU 5 dof di sparkfun a cui va aggiunto il controllo del terzo asse dell'accelerometro per capire se stiamo salendo o scendendo. Poi va aggiunta la lettura del GPS da 2kHZ che mi sono procurato, che se non sbaglio funziona o in seriale o in binario. Per ultrasonico dite che è un problema che l'aereo si muova a 25 30km/h in atterraggio??
Visto che il sensore usa il suono (che è veloce ma non una scheggia) non è che a 30km/h con sensore perfettamente perpendicolare avrei una lettura di qualità peggiore che da fermo (ho paura che l'aereo superi l'ultrasuono emesso smiley-razz e che quindi il ricevitore non possa percepirlo correttamente)?
« Last Edit: January 28, 2011, 09:44:56 am by gbm » Logged

Community robotica / programmazione Arduino
www.gioblu.com

cuneo
Offline Offline
God Member
*****
Karma: 3
Posts: 785
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

gps da 2000hz?? e la seriale a cosa va a 1000 mila? con lo standard nmea?
Logged

Milan
Offline Offline
Edison Member
*
Karma: 2
Posts: 1128
gioblu.com
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Una k di troppo scusate. Il gps aggiorna la sua posizione 2 volte al secondo. smiley-razz
Logged

Community robotica / programmazione Arduino
www.gioblu.com

0
Online Online
Shannon Member
****
Karma: 131
Posts: 10468
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

per l'algoritmo di stabilità con una 6dof puoi usare questo algoritmo: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1295218329, l'importante è che l'input dai giroscopi dia in radianti al secondo.
L'algoritmo lo puoi testare al pc con il programmino java postato quì: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1295219565 , arduino deve stampare via serial i quattro valori di quaternione e poi andare a capo, java li legge e li rappresenta a schermo.

Noterai che lo YAW accumula errore: il problema lo puoi parzialmente risolvere con il GPS, semplicemente guardando in che direzione stai andando e estrapolando il tuo angolo YAW (in realtà può essere erroneo nel caso hai un vento frontale a 100km/h, perchè il GPS ti da lo spostamento rispetto alla terra, mentre a te serve lo spostamento rispetto all'aria...) oppure usando il classico magnetometro 3 assi(quindi 9DOF)

Anche io sono interessato a un autopilota del genere, ma ho deciso di partire prima dai multicotteri che hanno il vantaggio della partenza in verticale(a mio avviso il decollo/atterraggio è solo questione di qualche sensore in più) e algoritmi più complessi di stabilità (che invece sono la vera "anima" dell'autopilota)

qualche consiglio: non usare l'accelerometro per conoscere l'altezza, o almeno non fidarti, perchè in quel caso la lettura è relativa e effettui un'integrazione dei valori, che quindi comporta un'errore che si accumula (lo stesso problema dello YAW), mentre hai il GPS che ti da una lettura assoluta, e anche se canna di 20m non è un problema, tanto se ti avvicini troppo al suolo se ne accorge l'ultrasonico :-)

tieni aggiornato questa discussione che sono felice di aiutarti!

ps. nell'aria la velocità del suono è di 1.193,4 km/h... certo che perdi di precisione, a seconda di come sistemi il sensore (inclinato o dritto ecc..) leggerai dei valori più o meno piccoli in base alla velocità.. ma credo che se anche fosse una variazione notabile, con un paio di test trovi la proporzione che in base alla velocità e al valore letto ti restituisce la vera altitudine.
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Riva del Garda, TN / Forlì
Offline Offline
Edison Member
*
Karma: 8
Posts: 2246
Il piu' modesto al mondo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

l'erba mi pare rifletta bene la luce, perchè non usare un laser?

insomma è vero che il suono fa i 300m/s e forse dici ho uno sfalsamento di 3ms ma allora con il laser questo sfalsamento si ridurrebbe a 0,0000001s (ad occhio  smiley-wink )
Logged

Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

Milan
Offline Offline
Edison Member
*
Karma: 2
Posts: 1128
gioblu.com
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie Lesto delle res!!!
Io per rappresentare graficamente i dati dalla imu uso una cosa simile a questo programmino che ho scritto:
http://www.gioblu.com/tutorials/sensori/179-app-in-processing-sperimentazione-sensore-led-ir

io vorrei utilizzare per regolare il beccheggio unicamente altitudine GPS e un asse dell'accelerometro.

Quindi il mio algoritmo è composto da:
Una parte che analizza un giroscopio, e due assi dell'accelerometro (di cui viene fatto l'arco tangente), il tutto filtrato con Kalman. Con i dati ottenuti viene utilizzato il PID per pilotare gli alettoni e regolare il rollio. Fondamentalmente deriva dal codice di Nicola Lugato per il suo robot self-balancing, leggermente rivisto:
http://www.gioblu.com/tutorials/programmazione/98-filtro-di-kalman-con-arduino
Poi c'è una seconda parte (che sto ancora progettando) che analizza il dato altitudine dal GPS e lo integra all'accelerazione del terzo asse dell'accelerometro per pilotare il servo che muove il timone di profondità e che regola di conseguenza il beccheggio.

Per ridurre la problematica dello stallo dell'ala in virata (che nell'easystar è frequente) sto pensando di utilizzare un semplice tail lock gyro da elicottero, per pilotare direttamente il timone di coda e imporre all'aero il volo coordinato correggendo l'imbardata.

Se il codice ci sta, vorrei usare un Arduino MINI 168.

Credo che per mantenere il volo rettilineo possa anche funzionare, non so come possa reagire il sistema a virate a piu di 30° di inclinazione.
« Last Edit: January 28, 2011, 10:08:40 pm by gbm » Logged

Community robotica / programmazione Arduino
www.gioblu.com

Deep south of Italy
Offline Offline
Faraday Member
**
Karma: 8
Posts: 2955
The quieter you become, the more you can hear
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao gbm
io ver visualizzare più grafici contemporanemente da arduino con il mio accelerometro (mma7260) uso un terminale chiamato Realterm
http://realterm.sourceforge.net/index.html#downloads_Download
ed un software chiamato kst
http://kst-plot.kde.org/
provali , se ti serve aiuto nella configurazione basta chiedere  smiley-wink
oppure
« Last Edit: January 29, 2011, 05:09:32 am by brainbooster » Logged

Riva del Garda, TN / Forlì
Offline Offline
Edison Member
*
Karma: 8
Posts: 2246
Il piu' modesto al mondo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

uhm.. con l'easystar non bisognerebbe superare i 15° (parlo da modellista proprietario di un easyglider  smiley )
comunque sto pensando che prima ti conviene anche trovare uno sketch che ti conti i punti: la traiettoria è un insieme di punti, questo lo devi calcolare e dare ad arduino il comando di raggiungere il punto prossimo.
poi io farei una cosa del genere: (schema del programma)

lancio contro vento (questo lo fai tu smiley-wink ) -> l'aereo raggiunge i (mettiamo) 35 metri d'altezza -> calcola la rotta GPS -> inizia la navigazione con una virata non superiore ai 13° -> arriva in linea retta fino al punto previsto per la discesa (in base all'angolo dell'atterragio) -> (qui puoi implementare un sistema che faccia atterrare l'aereo controvento, atterrare con un ES col vento in coda è difficile) -> rileva l'altezza tramite il GPS e scende con un'inclinazione non superiore ai 20-25° (nell'aeronautica figurarsi che l'ILS è configurato a 7° come standard  smiley-razz ) -> l'accellerometro controlla che l'aereo non si muova a causa del vento (raffiche di traverso) e in caso corregge con timone e alettoni per bilanciare il rollio generato -> continua a scendere finche non si rileva un'altezza di 10cm da terra, quindi si stacca motore alza il muso dell'aereo fino a 3-4° massimo..

questa sarebbe una procedura completa, infatti il decollo va fatto controvento e la traiettoria bisogna studiarla nel fatto che l'aereo non può virare in mezzo alle case, quindi necessita di arrivare almeno a 35 metri d'altezza per virare. l'altezza la calcoli così: all'accensione del modello si accende l'arduino che sal'va l'altezza a terra del gps, quindi alle letture sottrai quel valore a avrai l'altezza relativa  smiley-wink puoi anche usare un sensore barometrico..
Logged

Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

Global Moderator
Milano, Italy
Offline Offline
Edison Member
*****
Karma: 19
Posts: 1175
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Da profano: a che altezza comincia a prepararsi per l'atterraggio?
Logged

F

Riva del Garda, TN / Forlì
Offline Offline
Edison Member
*
Karma: 8
Posts: 2246
Il piu' modesto al mondo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

bisognerebbe fare un calcolo trigonometrico su un triangolo:
ti prendi magari i 35metri coma altezza, un angolo e con un calcolo goniometrico arrivi a stimare anche la distanza in linea d'aria dal punto  smiley-wink

hai il coseno dell'angolo (-75°) = 35 metri
in trigonometria non sono molto bravo ma il calcolo dovrebbe essere facile  smiley-wink
Logged

Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

Pages: [1]   Go Up
Jump to: