annuncio

Comprimi
Ancora nessun annuncio.

MultiWii Quad! Alternativa ad Aeroquad/Baronpilot con sensori wii

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

  • Originariamente inviato da arnaldo Visualizza il messaggio
    parecchio.....
    Se mantenendo il quad in piano il 5883 da angoli corretti (verifica con una bussola tradizionale ) la calibrazione dovrebbe essere a posto, almeno per i due assi principali, a questo punto devi verificare con alexinparis se effettivamente viene fatta la tilt compensation (ho rivisto il SW e la funzione è abbastanza criptica mi sembra che ci sia qualcosa ma non riesco a capire se effetivamente c'è tutto quel che serve). Purtroppo non ti posso aiutare sul SW in quanto sto ancora utilizzando la mia vecchia Sure a due assi che tutto sommato non va poi così tanto male. Ho visto qualche giorno fa sul tread che hai aperto tu su RC Group che stanno avendo difficoltà con la 5883 al momento non sono aggiornato...

    Commenta


    • codice:
      // Rotate Estimated vector(s), ROLL
        deltaGyroAngle  = gyroADC[ROLL] * deltaTime;
        EstG.V.Z =  scos(deltaGyroAngle) * EstG.V.Z - ssin(deltaGyroAngle) * EstG.V.X;
        EstG.V.X =  ssin(deltaGyroAngle) * EstG.V.Z + scos(deltaGyroAngle) * EstG.V.X;
        #if defined(MAG)
          EstM.V.Z =  scos(deltaGyroAngle) * EstM.V.Z - ssin(deltaGyroAngle) * EstM.V.X;
          EstM.V.X =  ssin(deltaGyroAngle) * EstM.V.Z + scos(deltaGyroAngle) * EstM.V.X;
        #endif 
        // Rotate Estimated vector(s), PITCH
        deltaGyroAngle  = gyroADC[PITCH] * deltaTime;
        EstG.V.Y =  scos(deltaGyroAngle) * EstG.V.Y + ssin(deltaGyroAngle) * EstG.V.Z;
        EstG.V.Z = -ssin(deltaGyroAngle) * EstG.V.Y + scos(deltaGyroAngle) * EstG.V.Z;
        #if defined(MAG)
          EstM.V.Y =  scos(deltaGyroAngle) * EstM.V.Y + ssin(deltaGyroAngle) * EstM.V.Z;
          EstM.V.Z = -ssin(deltaGyroAngle) * EstM.V.Y + scos(deltaGyroAngle) * EstM.V.Z;
        #endif 
        // Rotate Estimated vector(s), YAW
        deltaGyroAngle  = gyroADC[YAW] * deltaTime;
        EstG.V.X =  scos(deltaGyroAngle) * EstG.V.X - ssin(deltaGyroAngle) * EstG.V.Y;
        EstG.V.Y =  ssin(deltaGyroAngle) * EstG.V.X + scos(deltaGyroAngle) * EstG.V.Y;
        #if defined(MAG)
          EstM.V.X =  scos(deltaGyroAngle) * EstM.V.X - ssin(deltaGyroAngle) * EstM.V.Y;
          EstM.V.Y =  ssin(deltaGyroAngle) * EstM.V.X + scos(deltaGyroAngle) * EstM.V.Y;
        #endif 
        // Apply complimentary filter (Gyro drift correction)
        // If accel magnitude >1.4G or <0.6G => we neutralize the effect of accelerometers in the angle estimation.
        // To do that, we just skip filter, as EstV already rotated by Gyro
        if (!((36 > AccMag) or (AccMag > 196))) {
          for (axis = 0; axis < 3; axis++)
            EstG.A[axis] = (EstG.A[axis] * GYR_CMPF_FACTOR + ACC_VALUE) * INV_GYR_CMPF_FACTOR;
        }
        // Attitude of the estimated vector  
        angle[ROLL]  =  _atan2(EstG.V.X, EstG.V.Z);
        angle[PITCH] =  _atan2(EstG.V.Y, EstG.V.Z);
        GEstG = EstG;
        #if defined(MAG)
          // Apply complimentary filter (Gyro drift correction)
          for (axis = 0; axis < 3; axis++)
            EstM.A[axis] = (EstM.A[axis] * GYR_CMPFM_FACTOR + MAG_VALUE) * INV_GYR_CMPFM_FACTOR;
          // Attitude of the cross product vector GxM
          heading = _atan2(EstG.V.Z * EstM.V.X - EstG.V.X * EstM.V.Z, EstG.V.Y * EstM.V.Z - EstG.V.Z * EstM.V.Y) / 10;
        #endif 
      }
      E' in IMU.pde .. finalmente i file .. eureka ;)
      Questo e' il codice di compensazione .... ;)
      Uguale a quello di Arducopter di 6 mesi fa' .. ;)

      L'unica cosa da verificare e' il posizionamento dei sensori ... in base all'accelerometro e al magnetometro usato la posizione deve essere allineata ... io di solito per trovare la taratura corretta , mi metto con quad a nord e poi sposto il magnetometro finche' non mi legge correttametne il nord ... alla fine provo a ruotare di 90 gradi il quad facendo le prove di rotazione su roll e pitch .. alla fine quando trovo la corrispondenza giusta ho solo 2-3 gradi con inclinazioni anche oltre i 60 gradi.
      Saluti
      Roberto
      Redfox74
      Virtual Robotix ( Arducopter DEVTEAM )
      http://www.virtualrobotix.com
      Canale di supporto FB
      https://www.facebook.com/groups/1606596929592397/

      Commenta


      • sinceramente il baro sempra funzionare abbastanza bene ora...con la mod di Patrik riesco a stare entro 50cm e direi che e molto buono...ora ha preparato una nuova versione per la dev e dice che andrà meglio....la proverò domani e vi sapro dire...
        il magneto funziona benissimo sul piano...qiuindi quando sono in hovering direi che va molto bene...ma quando vado sull asse pitch o roll la coda inizia a scompensarsi di brutto....ancora cmq devo provarla in vola con la DEV.

        per il resto sono molto felice della IMU ALLINONE devo dire che l itg e il bma180 sono nettamente migliori dei sensori wii.... o meglio questa è la prima impressione che mi hanno dato in questi giorni!


        cmq...riguardando la gui...pitch in avanti di circa 60gradi spostamento della bussola anche di 90, pitch indietro anche di 90 bussola immobile...roll invece in entrambi i sensi la bussola è un casino!
        Ultima modifica di arnaldo; 05 maggio 11, 00:18.
        FpvProjekt channels:
        http://www.youtube.com/user/Arnald26
        http://www.vimeo.com/album/72997

        Commenta


        • Ciao Roberto, ti prego di non fare polemica gratuitamente, non mi sembra sia il caso, le tue opinioni sono più o meno condivisibili ma molti altri utenti la pensano diversamente.
          Che il codice sia caotico e incomprensibile è abbastanza discutibile e comunque potrebbe essere detto benissimo di molti altri progetti che sebbene ordinati per certi aspetti sono estremamente frammentati e pasticciati sotto altri.
          Non è separando qualche funzione in sketch diversi che magicamente tutto funziona meglio.

          Fare confronti tra tante piattaforme non è facile e bisogna avere molta esperienza su frangenti anche molto distanti tra loro, per esprimere giudizi davvero imparziali.

          Quindi forse è meglio limitarsi ai dettagli tecnici e ad approfondire le differenze di implementazione e magari arricchire questo o quel progetto con le implementazioni migliori, senza troppo scagliarsi per partito preso contro una o l'altra piattaforma...
          Johnny
          (GTE - Torino)
          Out of sight, NOT out of mind.

          Commenta


          • Originariamente inviato da redfox74 Visualizza il messaggio
            Bah ,
            scusa ma a cosa ti riferisci .. a me risulta .. invece tutto un'altro scenario .. AQ 2.x e' un firmware che a livello di qualita' e' avanti anni luce sia rispetto a MultiWii che a Arducopter NON ha di certo bisogno di MultiWii per evolvere anche perche' mi sembra abbastanza la situazione contraria , il codice di MW e' talmente caotico che non si capisce ormai piu' nulla , e anche alex se n'e' accorto tanto che nell'ultima revisione ha iniziato a riorganizzare il codice in file .. cosa non fatta fino alla versione 1.7.
            Uno dei piu' grandi limiti della multiwii e' sicuramente l'accanirsi nell'usare il bus i2c per leggere i sensori ... a breve implodera' come e' gia' accaduto a noi sul progetto arducopter che infatti per i sensori usiamo ormai la SPI e non piu' l'i2c .
            Che i quad basati su arducopter cadono come mosche non mi risulta , poi dipende se chi ci mette le mani non sa' come muoversi un progetto complesso non puo' essere preso alla leggera ;)
            Evvai un po' di polemica ;)
            Non è per polemica, sono su AQ con grande soddisfazione, ma sto osservando cose strane,
            A fronte di una bellissima architettura (è per questo che l'ho scelto ormai un anno fa) le funzionalità sono spesso approssimative, alcuni esempi, Il modo stabile (ora attitude mode )dopo qualche minuto di volo va in palla, la vantata compatibilità con sensori multipli si è fermata già nell'integrazione di Wii che nessuono riesce a far funzionare su AQ2.4, è stata presentata con enfasi la imu ARG e MARG fermorestando che la MARG non gestisce alcora la Bussola !!??, per il GPS mi risulta che l'unico AQ volante con GPS è il mio che usa una AQ2.01 molto custom (c'è un esperimento di adamson che però è incoerente con parte degli sviluppi attuali ... ne potrei dire tante ma la cosa più significativa che vedo è che molti utenti AQ si stanno spostando su MWii e che è praticamente impossibile vedere un volo veramente stabile e manovrato fatto da un AQ (forse perchè mancano i piloti !!??).
            Su un tema che sono sicuro ti sta a cuore il main loop è stato limitato a 100 Hz già su Arduino che di per se potrebbe andare al triplo .... e questa secondo te sarebbe una soluzione di avanguardia ... per me si tratta di un' eccellente architettura ad oggeti (grande Mikro) con mediocri funzionalità ... al contrario Mwii Vola bene è relativamente facile da mettere a punto e gode di sviluppi HW e SW della più svariata specie e questo è oltremodo divertente ....

            P.S. per pulizia la piattaforma che mi piace di più è il Baronpilot del buon Ciskye

            ciao

            Commenta


            • Originariamente inviato da arnaldo Visualizza il messaggio
              cmq...riguardando la gui...pitch in avanti di circa 60gradi spostamento della bussola anche di 90, pitch indietro anche di 90 bussola immobile...roll invece in entrambi i sensi la bussola è un casino!
              Sei sicuro di avere sistemato correttamente l'orientamento del magnetometro nel codice?
              Johnny
              (GTE - Torino)
              Out of sight, NOT out of mind.

              Commenta


              • codice:
                void AP_Compass_HMC5843::calculate(float roll, float pitch)
                {
                  float headX;
                  float headY;
                  float cos_roll;
                  float sin_roll;
                  float cos_pitch;
                  float sin_pitch;
                  Vector3f rotmagVec;
                  
                  cos_roll = cos(roll);  // Optimizacion, se puede sacar esto de la matriz DCM?
                  sin_roll = sin(roll);
                  cos_pitch = cos(pitch);
                  sin_pitch = sin(pitch);
                  
                  // rotate the magnetometer values depending upon orientation
                  if( orientation == 0 )
                      rotmagVec = Vector3f(mag_x+offset[0],mag_y+offset[1],mag_z+offset[2]);  
                  else
                      rotmagVec = orientation_matrix*Vector3f(mag_x+offset[0],mag_y+offset[1],mag_z+offset[2]); 
                  
                  // Tilt compensated magnetic field X component:
                  headX = rotmagVec.x*cos_pitch+rotmagVec.y*sin_roll*sin_pitch+rotmagVec.z*cos_roll*sin_pitch;
                  // Tilt compensated magnetic field Y component:
                  headY = rotmagVec.y*cos_roll-rotmagVec.z*sin_roll;
                  // magnetic heading
                  heading = atan2(-headY,headX);
                  
                  // Declination correction (if supplied)
                  if( declination != 0.0 ) 
                  {
                      heading = heading + declination;
                      if (heading > M_PI)    // Angle normalization (-180 deg, 180 deg)
                          heading -= (2.0 * M_PI);
                      else if (heading < -M_PI)
                          heading += (2.0 * M_PI);
                  }
                        
                  // Optimization for external DCM use. Calculate normalized components
                  heading_x = cos(heading);
                  heading_y = sin(heading);
                }
                Questo e' il codice per la compensazione , che funziona bene , uno dei termini non ancora considerato da Alex e' la declinazione magnetica , che va aggiunta in base alla posizinoe sul globo , senza quel parametro apposto la gps hold fa' fatica a funzionare bene ... per gli esperti di navigazione marina , la prua magnetica e' diversa dalla prua vera , la prua vera e' quella del gps , quella magnetica e' data dalla bussola , per avere la prua vera dalla prua magnetica bisogna aggiungere la declinazione.
                Redfox74
                Virtual Robotix ( Arducopter DEVTEAM )
                http://www.virtualrobotix.com
                Canale di supporto FB
                https://www.facebook.com/groups/1606596929592397/

                Commenta


                • Originariamente inviato da jhoexp Visualizza il messaggio
                  Sei sicuro di avere sistemato correttamente l'orientamento del magnetometro nel codice?
                  emmm no....ho visto che si possono cambiare dei segni sui singoli assi...però non ho fatto granchè di prove...anche perchè non riesco a trovarne una logica dei comportamenti...
                  pero ripeto...in hovering corregge bene!
                  FpvProjekt channels:
                  http://www.youtube.com/user/Arnald26
                  http://www.vimeo.com/album/72997

                  Commenta


                  • Originariamente inviato da ziojos Visualizza il messaggio
                    ne potrei dire tante ma la cosa più significativa che vedo è che molti utenti AQ si stanno spostando su MWii e che è praticamente impossibile vedere un volo veramente stabile e manovrato fatto da un AQ (forse perchè mancano i piloti !!??).
                    Ovviamente non posso che quotare il tuo pensiero, d'altronde basta leggere il primo post di questo thread per vedere che era anche il mio, diversi mesi fa....

                    Io comunque ne ho fatti diversi di voli con aq con le vecchie release, ma spesso si inchiodava o non sentiva il comando, il pid era ostico e per volare decentemente erano necessari molte ore di tuning, alla fine l'ho schiantato un sacco di volte senza grandi soddisfazioni. Poi a settembre ho aperto questo thread....
                    Con la 2.4 ho volato solo la settimana scorsa per qualche minuto, ma il mese prima con la precedente release e tutti i sensori "ufficiali" (che assurdità la sua enorme shield!! ) ho comunque avuto problemi, a partire dal configuratore che con la dcm ha comportamenti ancora un po' strani e non molto coerenti.
                    Certo è ben strutturato, ma per ora non posso che capire chi migra verso multiwii...d'altronde io ho fatto lo stesso.
                    Johnny
                    (GTE - Torino)
                    Out of sight, NOT out of mind.

                    Commenta


                    • Originariamente inviato da ziojos Visualizza il messaggio
                      Non è per polemica, sono su AQ con grande soddisfazione, ma sto osservando cose strane,
                      A fronte di una bellissima architettura (è per questo che l'ho scelto ormai un anno fa) le funzionalità sono spesso approssimative, alcuni esempi, Il modo stabile (ora attitude mode )dopo qualche minuto di volo va in palla, la vantata compatibilità con sensori multipli si è fermata già nell'integrazione di Wii che nessuono riesce a far funzionare su AQ2.4, è stata presentata con enfasi la imu ARG e MARG fermorestando che la MARG non gestisce alcora la Bussola !!??, per il GPS mi risulta che l'unico AQ volante con GPS è il mio che usa una AQ2.01 molto custom (c'è un esperimento di adamson che però è incoerente con parte degli sviluppi attuali ... ne potrei dire tante ma la cosa più significativa che vedo è che molti utenti AQ si stanno spostando su MWii e che è praticamente impossibile vedere un volo veramente stabile e manovrato fatto da un AQ (forse perchè mancano i piloti !!??).
                      Su un tema che sono sicuro ti sta a cuore il main loop è stato limitato a 100 Hz già su Arduino che di per se potrebbe andare al triplo .... e questa secondo te sarebbe una soluzione di avanguardia ... per me si tratta di un' eccellente architettura ad oggeti (grande Mikro) con mediocri funzionalità ... al contrario Mwii Vola bene è relativamente facile da mettere a punto e gode di sviluppi HW e SW della più svariata specie e questo è oltremodo divertente ....

                      P.S. per pulizia la piattaforma che mi piace di più è il Baronpilot del buon Ciskye

                      ciao
                      Ma figurati , io sono sempre molto costruttivo , ma ogni tanto mi scaldo , ma poi torno razionale ;)
                      Anche il mio primo amore e' stato aeroquad dopo mikrokopter questo due / tre anni fa' .. poi assieme a Mirko che stimo molto , Jani e Jose abbiamo fondato Arducopter , e abbiamo iniziato a lavore assieme al progetto .. dopo un annetto e' nata la prima versione stabile di Arducopter , che grazie a Jose Julio ha guadagnato la stabilita' invidiabile che AQ ancora non ha oppure ha usando lo stesso codice che avevamo sviluppato assieme su Arducopter , ora Io ho lasciato lo sviluppo di Arducopter 8 bit per dedicarmi a tempo pieno su Arm , il mio loop time e' a 800 hz .. ma sono limitato dai limiti che sto' rimuovendo su i2c .. sto' provando ad andare a 1 khz .. l'ultimo dei miei problemi e' il volo stabile .. su acm che e' un evoluzione di arducopter merge tra arducopter e ardupilot abbiamo anche la navigazione waypoint e la return to home .. quindi se vuoi studiare qualcosa di decisamente avanzato guarda arducoptermega che e' ancora in fase dev e non e' stato ancora rilasciato per gli user , ma lo trovi in repo.
                      Aeroquad purtroppo piu' che un bel software volabile e' un ottimo banco di test per effettuare sperimentazioni sulle varie funzionalita' piu' che essere un prodotto orientato a piattaforme RTF
                      Un saluto
                      Roberto
                      Redfox74
                      Virtual Robotix ( Arducopter DEVTEAM )
                      http://www.virtualrobotix.com
                      Canale di supporto FB
                      https://www.facebook.com/groups/1606596929592397/

                      Commenta


                      • Ciao Jhoexp ,
                        in realta' sai che non c'e' l'ho con multiwii .. anzi apprezzo il lavoro fatto da Alex in primis , pero' dire che che MW ha ispirato AQ e Arducopter , mi sembra alquanto fuori luogo ...
                        Comunque ci mancherebbe sono contento che anche su questa piattaforma si stia iniziano a provare qualcosa di nuovo e sicuramente innovativo come il barometro , il magnetometro e penso a questo punto anche il gps .. quasi ci siamo dai ;)
                        Per quanto riguarda l'architettura e l'uso del bus i2c continuo ad essere molto scettico .. e se si vuole evitare che realmente i nostri quaddini incomincino a cadere come mosche aumentando il numero di sensori che condividano lo stesso bus , converra' correre ai ripari velocemente ;) L'unica speranza e' quella che esca il prima possibile MPU 6000 con bus spi cosi' si potra' anche senza aggiungere sensori analogici o ad converter come sulla oilpan sfruttare un altro bus e dividere il carico di lavoro.
                        Un saluto
                        Roberto
                        Redfox74
                        Virtual Robotix ( Arducopter DEVTEAM )
                        http://www.virtualrobotix.com
                        Canale di supporto FB
                        https://www.facebook.com/groups/1606596929592397/

                        Commenta


                        • Originariamente inviato da redfox74 Visualizza il messaggio
                          Ciao Jhoexp ,
                          in realta' sai che non c'e' l'ho con multiwii .. anzi apprezzo il lavoro fatto da Alex in primis , pero' dire che che MW ha ispirato AQ e Arducopter , mi sembra alquanto fuori luogo ...
                          Roberto
                          La realtà è che molti MWii entusiast stanno sviluppando funzionalità innovative che man mano si diffondono nel WEB ..... poi tutti sappiamo che il mitico PID AQ nasce da quello di una macchinetta per il caffè

                          Per quanto riguarda l'HW ovviamente apprezzo moltissimo il tuo lavoro ma sono altresì sicuro che il buon Arduino ha ancora tanto da dare .... e che non sia assolutamente utilizzato al suo limite

                          Commenta


                          • Originariamente inviato da ziojos Visualizza il messaggio
                            La realtà è che molti MWii entusiast stanno sviluppando funzionalità innovative che man mano si diffondono nel WEB ..... poi tutti sappiamo che il mitico PID AQ nasce da quello di una macchinetta per il caffè

                            Per quanto riguarda l'HW ovviamente apprezzo moltissimo il tuo lavoro ma sono altresì sicuro che il buo Arduino ha ancora tanto da dare .... e che non sia assolutamente utilizzato al suo limite
                            Chiamiamo le cose con i nomi giusti ... quello che si usa su MultiWii non e' arduino che non e' nient'altro che un wrapper c++ attorno ai micro avr ... uno dei punti di forza di multiwii e' sicuramente il buon alex visto che e' un manico su quei micretti ha lavorato a basso livello riscrivendo il piu' delle volte delle lib perche quelle originali messe a disposizione da arduino si imballavano .. mutliwii non usa wire , fortunatamente ;)
                            Quindi grande Alex .. grazie per il tuo lavoro ... per quanto riguarda avr 328 vs Arm Cortex A3 . E' come paragonare una panda con una bella bmw di fascia alta potente e affidabile ... anche la panda ha le sue ottime qualita' .. ci mancherebbe ma la cosa assurda e' che costano uguali .. se tu confronti il prezzo del mio micro e quello di un avr mega , costa di piu' l'avr mega .. allora perche' insistere portandosi dietro tutti i limiti del vecchio micro ? Io penso di avere spinto al massimo con MP8 basata su avr 644P quella fascia di micro , ma ho chiuso li il progetto non tanto per problemi di performances , ma per i limiti sui bus e sulla memoria flash e ram , l'ultima versione di acm occupa 150 kbyte .. e non gira piu' nemmeno sul mega con le ultime funzioni per la gestione della posizioni con la telecamerina da montare sotto il micro .. con arm abbiamo 512 kbyte ... ;)
                            Notte e grazie della chiacchierata alla prossima .
                            Redfox74
                            Virtual Robotix ( Arducopter DEVTEAM )
                            http://www.virtualrobotix.com
                            Canale di supporto FB
                            https://www.facebook.com/groups/1606596929592397/

                            Commenta


                            • Francamente red non ti capisco, perchè intervieni in questo ambito (MW) quando è palese che non la digerisci?

                              P.s. "ma la cosa assurda e' che costano uguali", un arduino nano costa 15-17 euro, quando costa la tua scheda?
                              Informatico Professionista, Amante dei 4x4 e delle auto ibride, costruttore di quadricotteri.

                              Commenta


                              • Originariamente inviato da redfox74 Visualizza il messaggio
                                ci mancherebbe ma la cosa assurda e' che costano uguali .. se tu confronti il prezzo del mio micro e quello di un avr mega , costa di piu' l'avr mega .. allora perche' insistere portandosi dietro tutti i limiti del vecchio micro ?
                                Uno dei motivi principali è perchè il progetto al quale stai lavorando è molto interessante, ma io personalmente ho provato più di qualche volta a vedere cosa serve per iniziare a lavorarci, ma non ci ho capito nulla............troppo tecnico per i comuni mortali.
                                Non so se ultimamente hai/avete cambiato qualcosa in questo senso, ma la mia idea è che se non riesco a capire nemmeno che componenti mi servono, figuriamoci dopo quando sarà ora di collegarli e metterli in funzione
                                Prendila come una critica costruttiva, il tuo progetto mi interessa, ma devi fare in modo che sia più comprensibile anche da chi non è Ingegnere
                                SDModel -> Eliche controrotanti, motori, ESC, frame.....
                                MultiWii Italia

                                Commenta

                                Sto operando...
                                X