annuncio

Comprimi
Ancora nessun annuncio.

MultiWii Quad! Alternativa ad Aeroquad/Baronpilot con sensori wii

Comprimi
X
  • Filtro
  • Ora
  • Visualizza
Elimina tutto
nuovi messaggi

  • #16
    pensavo si riferisse al filtro seguente. Quindi è solo un modo per rendere più facilmente elaborabile il dato?

    Commenta


    • #17
      Originariamente inviato da albo86 Visualizza il messaggio
      è da un po'di settimane che seguivo il francese.. nel farttempo ho iniziato a costruirne 2, uno con la kk euno con il mini arduino.. devo dire che in fatti di costi, il francese batte di gran lunga il KK..

      cmq aspetto ancora che mi arrivi aualche componente per finire entrambi i progetti e poi vi saprò dire anke io le mie impressioni..

      Cmq, non sono sicuro al 100%, ma mi sembra che nel video, il francese usasse oltre all WMP anche il NK (Nunchuk).. da quel che ho capito però la sua versione 1.0 del codice sorgente non prevede l'uso del NK, sembra che abbia avuto una serie di problemi.. in effetti il video l'ha girato il 28 maggio, mentre la versione 1.0 del codice sorgente è datata settembre 2010
      alcune correzioni se no qui non si capisce più nulla...

      1- il video (postato da me) è del 10 settembre
      2- usa gli accelerometri del nunchuk (=modalità stabile)
      3- vola con la penultima versione, l'ultima è dell'11/9
      4- l'accelerometro a tre assi del nunchuk è opzionale. Il Wii Motion Plus (WMP per gli amici, la scheda con i tre giroscopi insomma) è invece necessaria per il controllo

      @ciskje: Per le riceventi... dipende. Quale banda usi? In 35Mhz mi trovo molto bene con le r16scan. Ma io ho una MX16 per cui sono come il gorgonzola per i maccheroni....
      Unica pecca.... il filo davvero lungo dell'antenna! Un altro punto a vantaggio dei 2.4Ghz.

      ciao!
      Senza entusiasmo non si è mai compiuto niente di grande. R.W. Emerson

      Commenta


      • #18
        Originariamente inviato da elettro Visualizza il messaggio
        data l'occhiata... nell'acro mode usa questo filtro:
        codice:
        for (axis = 0; axis < 3; axis++)
              gyroADCp[axis] =  gyroADC[axis];
            delayMicroseconds(650); //empirical
            updateIMU();
            for (axis = 0; axis < 3; axis++) {
              gyroADCinter[axis] =  (gyroADC[axis]+gyroADCp[axis])/8; // /4 /2
              // empirical, we take a weighted value of the current and the previous values
              gyroData[axis] = (gyroADCinter[axis]*2+gyroADCprevious[axis])/3;
              gyroADCprevious[axis] = gyroADCinter[axis];
            }
        allora vorrei capirlo bene. Legge X, Y, Z.
        Poi aspetta la seconda lettura, (delay e update IMU).
        poi fa un'altra lettura e dice inter[] = (datoLettura1 + datoLettura2)/8;(perchè 8? è un valore che dipende dal sensore o è un valore empirico? si direbbe empirico!)
        a questo punto fà un ulteriore filtro(se quello precedente è un filtro), tra il valore letto in questo modo precedentemente e quello attuale, dando il doppio del peso al valore attuale ( media pesata, ci avevo già pensato ma su più valori, con pesi che decrescono più aumenta l'anzianità del dato, così anche da non avere una lettura ogni due dati ma ogni singolo input )

        aiutatemi a capire se la prima operazione è un filtro o un modo per normalizzare i valori (chessò magari i valori del WMP/8 sono in radianti), altrimenti quella divisione a tutti gli effetti non serve a una bega (tanto è lo stesso denominatore applicato ogni 2 letture)
        Il problema di tutte queste medie e' che rallentano tutto il controllo, nel senso che in assenza di perturbazioni va da dio, ma quando iniziano ad esserci influenze esterne come un colpo di vento fara' piu' fatica a recuperare, perche' lento.
        Tanto per rendere l'idea nel tempo che lui mette di delay ( 650 microsecondi ) l'armquad ha gia letto i gyro, letto l'accelerometro (se e' attivo), calcolato l'assetto e inviato i relativi dati ai motori per correggerlo, insomma un ciclo di loop completo...
        Quadricottero News
        http://www.facebook.com/Quadricottero

        Commenta


        • #19
          sisi, questo lo sapevo, ma infatti la media la faccio su 20 valori che comunque mantiene una risposta veloce ma linearizza molti l'uscita dei giroscopi ( i miei sono alquanto pessimi )
          per il delay sono della tua stessa idea, da quanto ho capito però quei 650 microsecondi (occhio a non confonderli con milli) sono necessari o all'I2C o al sensore per aggiornare il suo valore. bho io col mio analogico ogni lettura, per quanto veloce sia, è una storia a sè

          Commenta


          • #20
            Originariamente inviato da elettro Visualizza il messaggio
            sisi, questo lo sapevo, ma infatti la media la faccio su 20 valori che comunque mantiene una risposta veloce ma linearizza molti l'uscita dei giroscopi ( i miei sono alquanto pessimi )
            per il delay sono della tua stessa idea, da quanto ho capito però quei 650 microsecondi (occhio a non confonderli con milli) sono necessari o all'I2C o al sensore per aggiornare il suo valore. bho io col mio analogico ogni lettura, per quanto veloce sia, è una storia a sè
            Rischiamo di andare OT vabbe saremo perdonati
            Lui fa il delay perche' probabilmente ha visto che con la sua configurazione se legge piu veloce inizia ad avere letture falsate
            Nei miei primi esperimenti quando usavo i murata che usi tu semplicemente li leggevo 1 volta al ciclo, al massimo media di 3 letture, fine.
            Perche funzionava? Perche essendo il ciclo di 100 (cento ) MICROsecondi la sequenza di cicli era gia una sorta di filtro antialiasing.
            Certo se leggi 1 volta ogni millisecondo hai bisogno di medie e filtri perche il rumore si fa piu sentire.
            Volava ? Si in modo molto simile a questo. YouTube - ArmQuad con 5 Gyroscopi
            Ora uso alcuni filtri di tipo FIR mantenendo cmq. il ciclo entro 500-600 MICROsecondi.


            Codice di allora ? MU sta per murata
            All'accensione 1000 letture per la calibrazione dopodiche una volta fatta la calibrazione i gyro durante il volo venivano letti con media a 2 e fusione con lettura dei gyro del wimotionplus letti in analogico, ho evitato l' i2c volevo la massima velocita' possibile.
            Ma anche solo con i murata volava allo stesso modo.

            codice:
            Sub Gyro ' ------ G Y R O ----
            	dim x as integer
            	if calibrazioneGyro = 0 then   ' procedi alla CALIBRAZIONE
            	wait(1000)                     ' attesa di 1 secondi per consentire la stabilizzazione del quad dopo l'accensione
            		for x = 1 to 1000              ' 1000 letture
            		OffsetAvDiGy = ad(0)    'ad0 wii ad5 murata
            		OffsetDeSiGy = ad(1)    'ad1 wii ad3 murata
            		OffsetAvDiGyMu = ad(5)    'Gyro Murata
            		OffsetDeSiGyMu = ad(3)    'Gyro Murata
            		OffsetYawGy = ad(2)
            		sommaAvDi = OffsetAvDiGy + sommaAvDi
            		sommaDesi = OffsetDeSiGy + sommaDeSi
            		sommaYawGy = OffsetYawGy + sommaYawGy
            		sommaAvDiMu = OffsetAvDiGyMu + sommaAvDiMu
            		sommaDesiMu = OffsetDeSiGyMu + sommaDeSiMu
            		wait(1)                    ' Attendi 1ms per il tempo di conversione AD
            		next x
            	OffsetAvDiGy = (sommaAvDi / 1000) / scalaturaGy
            	OffsetDeSiGy = (sommaDeSi / 1000) / scalaturaGy
            	OffsetYawGy = (sommaYawGy / 1000) / scalaturaGy
            	OffsetAvDiGyMu = (sommaAvDiMu / 1000) / scalaturaGy
            	OffsetDeSiGyMu = (sommaDeSiMu / 1000) / scalaturaGy
            	calibrazioneGyro = 1           ' Gyro Calibrati
            	end if
            	
            ' FINE CALIBRAZIONE
            
            ' LETTURA gyro durante il volo
            AvDiGyro = ad(0)
            AvDiGyro = (AvDiGyro + AvDiGyroOld) / 2
            AvDiGyroMu = ad(5)
            AvDiGiroMu = ( AvDiGyroMU + AvDiGyroMuOld )  / 2
            DeSiGyro = ad(1)
            DesiGyro = (DeSiGyro + DeSiGyroOld) / 2
            DeSiGyroMu = ad(3)
            DeSiGYroMu = ( DeSiGyroMU + DeSiGyroMuOld )  / 2
            YawGyro = ad(2)
            YawGyro = ( YawGyro + YawGyroOld ) / 2
            	
            		
            	'Scalatura + fusione dei gyro
            AvDiGyro =  AvDiGyro / scalaturaGy               ' 65472 a 3.3 volt	
            AvDiGyro = (AvDiGyro - OffsetAvDiGy )         
            AvDiGyroMu =  AvDiGyroMu / scalaturaGy              	
            AvDiGyroMu = (AvDiGyroMu - OffsetAvDiGyMu )
            AvDiGyro = (AvDiGyroMu + AvDiGyro ) / 2
            DeSiGyro = DeSiGyro / scalaturaGy
            DeSiGyro = (DeSiGyro - OffSetDeSiGy )         
            DeSiGyroMu = DeSiGyroMu / scalaturaGy
            DeSiGyroMu = (DeSiGyroMu - OffSetDeSiGyMu )
            DeSiGyro = (DeSiGyro + DeSiGyroMu ) / 2
            YAWGyro = YAWGyro / scalaturaGy
            YAWGyro = (YAWgyro - OffsetYawGy )            
            
            AvDiGyroOld = AvDiGyro
            AvDiGyroMuOld = AvDiGyroMu
            DeSiGyroOld = DeSiGyro
            DeSiGyroOldMu = DeSiGyroMu
            YawGyroOld = YawGyro
            
            end sub
            Quadricottero News
            http://www.facebook.com/Quadricottero

            Commenta


            • #21
              Per ritornare un po' in topic, non posso che confermare la bonà del codice Multiwii.
              Ieri sera ho fatto un minimo di pid tuning e il mezzo è ancora migliorato, riducendo le ampie e lente oscillazioni che mi affliggono nella transizione da un volato veloce all'hovering.
              In "Acro" sono riuscito ad alzare il proporzionale fino ad avere PID: 8 0.030 -20 con pochissime oscillazioni anche nelle discese veloci con i motori al minimo.

              Ho tirato delle virate allo stallo e dei bei loop in velocità (con un rispettabile tempo di rovescio) come non ho mai visto fare a mezzi del genere.

              E in più ho risolto completamente gli svarioni e i piantamenti casuali del wmp + nk che mi dava il codice aeroquad. (La routine di controllo e reinizializzazione funziona per bene!) Ho anche recuperato un cut-off dei regolatori a fine batteria, che mi sarebbe certamente costato un buco per terra con altri codici.

              Oggi mi metto a sistemare lo "stable"
              Provatelo e mi direte se non è molto meglio di Aeroquad.
              Ultima modifica di jhoexp; 15 settembre 10, 11:25.
              Johnny
              (GTE - Torino)
              Out of sight, NOT out of mind.

              Commenta


              • #22
                Originariamente inviato da jhoexp Visualizza il messaggio
                Per ritornare un po' in topic, non posso che confermare la bonà del codice Multiwii.
                Ieri sera ho fatto un minimo di pid tuning e il mezzo è ancora migliorato, riducendo le ampie e lente oscillazioni che mi affliggono nella transizione da un volato veloce all'hovering.
                In "Acro" sono riuscito ad alzare il proporzionale fino ad avere PID: 8 0.030 -20 con pochissime oscillazioni anche nelle discese veloci con i motori al minimo.

                Ho tirato delle virate allo stallo e dei bei loop in velocità (con un rispettabile tempo di rovescio) come non ho mai visto fare a mezzi del genere.

                E in più ho risolto completamente gli svarioni e i piantamenti casuali del wmp + nk che mi dava il codice aeroquad. (La routine di controllo e reinizializzazione funziona per bene!) Ho anche recuperato un cut-off dei regolatori a fine batteria, che mi sarebbe certamente costato un buco per terra con altri codici.

                Oggi mi metto a sistemare lo "stable"
                Provatelo e mi direte se non è molto meglio di Aeroquad.
                Vogliamo i videoo!!!!
                Vogliamo i videooooo!!!!
                Vogliamo i videoooooooo!!!!



                Non per altro, è che non ci sono abbastanza video del MultiWii per invogliare a percorrere questa strada.
                Stasera dovrei finire il mio....

                Ciao!
                Senza entusiasmo non si è mai compiuto niente di grande. R.W. Emerson

                Commenta


                • #23
                  Originariamente inviato da ddrake Visualizza il messaggio
                  Vogliamo i videoo!!!!
                  Vogliamo i videooooo!!!!
                  Vogliamo i videoooooooo!!!!
                  Hai assolutamente ragione, purtroppo sono sempre da solo al campo perchè arrivo tardi. Comunque domani vado presto e in compagnia, quindi farò fare un bel po' di scatti e video al quadricottero!

                  Vedrai che hai preso la strada giusta. Dei 3 codici provati sulla mia piattaforma il MultiWii si è rivelato sicuramente il migliore!
                  Johnny
                  (GTE - Torino)
                  Out of sight, NOT out of mind.

                  Commenta


                  • #24
                    scusate la domanda un po'banale.. tenete conto che purtroppo di programmazione non ci capisco un H..

                    questa parte del codice:

                    // alias for RC
                    #define ROLL 0
                    #define PITCH 1
                    #define YAW 2
                    #define THROTTLE 3
                    #define AUX1 4

                    fa intendere che fa usare 5 canali?
                    La probabilità che qualcosa accada è inversamente proporzionale alla sua desiderabilità.

                    Commenta


                    • #25
                      Originariamente inviato da albo86 Visualizza il messaggio
                      scusate la domanda un po'banale.. tenete conto che purtroppo di programmazione non ci capisco un H..

                      questa parte del codice:

                      // alias for RC
                      #define ROLL 0
                      #define PITCH 1
                      #define YAW 2
                      #define THROTTLE 3
                      #define AUX1 4

                      fa intendere che fa usare 5 canali?
                      Sì, certo: i 3 assi + motori + il solito canale ausiliario per lo swith del modo stable/acro.
                      Dov'è il problema?
                      Johnny
                      (GTE - Torino)
                      Out of sight, NOT out of mind.

                      Commenta


                      • #26
                        no. nessuna.. è che volevo fare una cosa sul 5° canale..
                        ma ionvece di usare uno swich manuale sulla trasmittente, non si può dire all'ATmega di mantenere l'assetto di vuolo fisso se non gli vengono impartiti altri comandi manuali? cioè in poche parole che tenga lo stable mode in automatico?
                        La probabilità che qualcosa accada è inversamente proporzionale alla sua desiderabilità.

                        Commenta


                        • #27
                          aspetta un attimo.. lo stable mode serve per fargli fare dei movimenti più soft rispetto all'acro giusto?
                          La probabilità che qualcosa accada è inversamente proporzionale alla sua desiderabilità.

                          Commenta


                          • #28
                            Originariamente inviato da albo86 Visualizza il messaggio
                            aspetta un attimo.. lo stable mode serve per fargli fare dei movimenti più soft rispetto all'acro giusto?
                            Lo stable mode serve a tornare in volo livellato se molli i comandi.
                            E' comunque una funziona da settare per bene prima di poterla usare con disinvoltura.
                            E' sempre consigliato avere la possibilità di fare lo switch in volo tra le due modalità, quindi avere un canale aggiuntivo.
                            Johnny
                            (GTE - Torino)
                            Out of sight, NOT out of mind.

                            Commenta


                            • #29
                              Originariamente inviato da albo86 Visualizza il messaggio
                              no. nessuna.. è che volevo fare una cosa sul 5° canale..
                              ma ionvece di usare uno swich manuale sulla trasmittente, non si può dire all'ATmega di mantenere l'assetto di vuolo fisso se non gli vengono impartiti altri comandi manuali? cioè in poche parole che tenga lo stable mode in automatico?
                              Originariamente inviato da jhoexp Visualizza il messaggio
                              Lo stable mode serve a tornare in volo livellato se molli i comandi.
                              E' comunque una funziona da settare per bene prima di poterla usare con disinvoltura.
                              E' sempre consigliato avere la possibilità di fare lo switch in volo tra le due modalità, quindi avere un canale aggiuntivo.
                              Per la verità una volta che il software sarà perfezionato lo switch da una modalità all'altra lo dovrebbe fare in automatico. Come MK e gli altri.
                              Per ora funziona in manuale....

                              E per le riprese da solo... capcam!
                              Action CamRig [ACR10] - $59.95 : CamRig, The Store
                              (da farsi rigorosamente in casa, il link è solo per idea....)

                              ciao!
                              Senza entusiasmo non si è mai compiuto niente di grande. R.W. Emerson

                              Commenta


                              • #30
                                Originariamente inviato da ddrake Visualizza il messaggio
                                E per le riprese da solo... capcam!
                                Action CamRig [ACR10] - $59.95 : CamRig, The Store
                                (da farsi rigorosamente in casa, il link è solo per idea....)

                                ciao!
                                Mi rifiuto nella maniera più assoluta , piuttosto compro osd, gps e ground station per l'antenna tracking e lo uso per pilotare il supporto della camera
                                Johnny
                                (GTE - Torino)
                                Out of sight, NOT out of mind.

                                Commenta

                                Sto operando...
                                X