annuncio

Comprimi
Ancora nessun annuncio.

CleanFlight/SpeedyFlight aka Baseflight (Multiwii)

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

  • #61
    Si potrebbe postare anche nella discussione su BLHeli però riguarda anche il funzionamento di clean quindi la posto qui.

    Sto leggendo la discussione su RCgroups sullo oneshot con blheli e mi vengono dei dubbi visto che si tratta di scendere con i looptime anche utilizzando esc che sulla carta vengono dati a 400Hz.

    se ho capito bene, il looptime indica la frequenza con la quale il dato viene "servito" all'esc. quindi
    1500µs gives a refresh rate of 666.66 Hz.
    2000µs gives a refresh rate of 500 Hz.
    2500µs gives a refresh rate of 400 Hz.
    ecc

    ora le domande

    a) la frequenza di acquisizione di un esc dipende dal suo HW o FW?
    b) Cosa fa cleanflight nel tempo che intercorre tra la fine del calcolo e dare il dato all'esc?
    c) Perché oneshot si sincronizza con il looptime?
    d) come mai con oneshot posso scendere con il looptime anche su esc che sono dati al max per 400Hz?
    e) che vuol dire che si consiglia un looptime 1600 (625Hz) perché "well rounded"?

    thanks
    La bibbia dei Bladoni V6, Blade 120SR - Guida Crius Aio Pro V1.3
    ATOM 500 - Blade 400 FBL STRETCHED 6s - 120SR.

    Commenta


    • #62
      Originariamente inviato da bandit Visualizza il messaggio
      Si potrebbe postare anche nella discussione su BLHeli però riguarda anche il funzionamento di clean quindi la posto qui.

      Sto leggendo la discussione su RCgroups sullo oneshot con blheli e mi vengono dei dubbi visto che si tratta di scendere con i looptime anche utilizzando esc che sulla carta vengono dati a 400Hz.

      se ho capito bene, il looptime indica la frequenza con la quale il dato viene "servito" all'esc. quindi
      1500µs gives a refresh rate of 666.66 Hz.
      2000µs gives a refresh rate of 500 Hz.
      2500µs gives a refresh rate of 400 Hz.
      ecc

      ora le domande

      a) la frequenza di acquisizione di un esc dipende dal suo HW o FW?
      b) Cosa fa cleanflight nel tempo che intercorre tra la fine del calcolo e dare il dato all'esc?
      c) Perché oneshot si sincronizza con il looptime?
      d) come mai con oneshot posso scendere con il looptime anche su esc che sono dati al max per 400Hz?
      e) che vuol dire che si consiglia un looptime 1600 (625Hz) perché "well rounded"?

      thanks
      Eheheh Roberto, anche io su OneShot ho diversi dubbi, quello principale è come fa CleanFlight con un looptime ad esempio = 2000 (500Hz) ad aggiornare un ESC che prevede un segnale in input fino a 2 Khz ? (Da logica, non riesce a sfruttare tutte le potenzialità di Oneshot)

      E questo sembra essere in linea con diverse richieste degli utenti sulla discussione su RCgroups! Proprio RS2K, chiede, ma non si può scendere con il looptime? La risposta qui te la do per certa da tutte le esperienze che ho fatto con il mio porting, in effetti lavorando ad esempio con un looptime=500, con la VR μBrain, se si gestiscono tutte le feature, iniziano a verificarsi "spikes" ben più alti di 500, perché tra GPS, sensori vari, o ad esempio scritture su SDCard (BlackBox) iniziano a verificarsi dei ritardi che poi compromettono il ciclo del loop, con effetti indesiderati nei PID e refresh dei motori. (questo si vede subito nel configurator, con i valori ballerini di looptime)

      Riguardo ai tuoi dubbi, io per adesso ho capito questo:

      a) la frequenza di acquisizione di un esc dipende dal suo HW o FW?
      Certo, lo ha segnalato proprio tu, c'è proprio un firmware dedicato per Oneshot, qui non ne so molto, ma sicuramente una modifica è che il segnale classico da 1000 a 2000 μs dei classici ESC viene portato a 125 - 250 μs con Oneshot.

      b) Cosa fa cleanflight nel tempo che intercorre tra la fine del calcolo e dare il dato all'esc?
      Sintetizzando al massimo, nel main loop, vengono gestite tutte le letture dei sensori, rc, gps e altro ed a fine loop, vengno applicati i PID per calolare i valori di uscita sui motori e quindi inviato il dato all'ESC...il giro è sempre questo, ed il tempo per fare questo è il famoso looptime.

      c) Perché oneshot si sincronizza con il looptime?
      Per permettere proprio all'utente di sceglierlo, ed in base alla scelta si hanno effetti sui PID e quindi sul refresh degli ESC/Motori. Insomma si definisce un "clock" di lavoro. In pratica può essere impostato anche uguale a zero, e devi quindi impostare poi i PID di conseguenza. Ecco perché anche i pid_controller 1 e 2, iniziano a piacere di più, perché risentono di meno dal valore del looptime.

      d) come mai con oneshot posso scendere con il looptime anche su esc che sono dati al max per 400Hz?
      Proprio perché il firmware, gestisce il segnale che va da 125 a 250 μs (qui si entra nella logica del PWM). Con i classici ESC ed un segnale massimo di 2000μs, puoi gestire una frequenza di aggiornamento pari a 500Hz, e gli ESC di ultima fattura, infatti sono passati dai 400Hz ai 490Hz...sfruttando al massimo la loro possibilità/limite di refresh.

      e) che vuol dire che si consiglia un looptime 1600 (625Hz) perché "well rounded"?
      Chi lo ha scritto, lo ha valutato sulla sua configurazione, io ad esempio l'ho notato con il BlackBox, la scrittura su SDCard va a compromettere il looptime, senza la scrittura con la VR μBrain riesco a stare "well rounded", quindi con un looptime costante, anche con un valore di 500 = 2Khz tarato proprio per OneShot (devo però ancora provarlo)
      Con la SD Card riesco a stare sui 2000 (proprio in questi giorni mi sto sentendo con il creatore del BlackBox ed è rimasto a bocca aperta quando ha visto il mio log), con il suo sistema (log esterno su seriale) se si va sui 2000 di looptime, consiglia di abbassre il rate di scrittura del log, proprio per evitare questi "spikes" del looptime.


      Insomma questo è quello che ho capito io.....speriamo di non aver detto sciocchezze!
      Ultima modifica di tommyleo; 22 gennaio 15, 13:39.

      Commenta


      • #63
        Tommy, grazie del rispostone !!! sicuramente ti dovrò fare altre domande. Sento proprio che mi mancano le basi.

        intanto una cosa che non ho capito del looptime nel punto b.
        Abbiamo detto che clean fa tutta una serie di conti (sensori, gps, catz e matz ..) ed alla fine del looptime (circa) esce con il dato sull'esc.
        Quindi supponiamo che abbiamo settato 400Hz, lui 400 volte al secondo manda un segnale agli esc.
        Ma immagino che il ciclo con cui fa tutte queste operazioni non sia esattamente quello che si imposta. Voglio dire, la potenza di calcolo della cpu (o come si chiama) magari permette di andare a 2kHz, quindi 5 volte superiore a quello che ho impostato (magari proprio perché non ho altimetro, gps e altri catz e matz). Ora clean dopo che ha fatto "un giro" in 1/2000 di secondo aspetta che scatti il 400esimo di secondo e poi sputa il dato oppure continua a calcolare e poi quando scatta "un interrupt" si ferma e manda il dato ...
        non so se mi sono capito ...
        La bibbia dei Bladoni V6, Blade 120SR - Guida Crius Aio Pro V1.3
        ATOM 500 - Blade 400 FBL STRETCHED 6s - 120SR.

        Commenta


        • #64
          c) Perché oneshot si sincronizza con il looptime?

          Su questa spendo altre parole, anche perché l'avevo letta male.

          Allora partiamo dal fatto, che questa del "looptime" è una caratteristica unica di
          Baseflight, dando all'utente la possibiltà di modificarlo.

          Tutti gli altri firmware sul mercato utilizzano hanno lo stesso concetto o altre tecniche tramite i "samples" che arrivano dai sensori e tarano comunque il software per gestire correttamente tutte le periferiche. In base all'hardware capiscono il loro, mi piace questo termine, "well rounded" e lo impostano fisso, non facendolo modificare all'utente, proprio per evitare effetti non piacevoli.

          Quello della sincronizzazione poi di oneshot con questo ciclo è quindi poi una conseguenza, ma qui poi ho tanti dubbi anche io e non ho gli strumenti elettronici per toglermeli.

          Inoltre altro dubbio è sul valore che viene inviato agli esc, mi pare di aver capito che si manda semper un valore da 1000 a 2000 e poi ci pensa il firmare dell'esc a scalarlo sui 125 / 250 (diviso 8), così in effetti gli ESC rimangono compatibili a tutti i software.

          Commenta


          • #65
            Originariamente inviato da tommyleo Visualizza il messaggio
            Inoltre altro dubbio è sul valore che viene inviato agli esc, mi pare di aver capito che si manda semper un valore da 1000 a 2000 e poi ci pensa il firmare dell'esc a scalarlo sui 125 / 250 (diviso 8), così in effetti gli ESC rimangono compatibili a tutti i software.
            io pensavo l'opposto.
            Se vedi il filmato di Dominic sullo Oneshot, credo che sull'oscilloscopio si veda l'impulso in uscita verso l'esc. Quando attiva oneshot, l'impulso si stringe e si sincronizza con l'uscita del looptime (che invece fluttua un poco). Quindi credo che il fw faccia l'operazione inversa di quella che dici. Legge l'impulso corto e lo moltiplica per 8. Questa mia ipotesi potrebbe essere avvalorata dal fatto che sia in BLHeli sia con i Kiss, quando attivi Oneshot non devi rifare la calibrazione.

            PS in realtà la mia domanda C) è posta male. Perché Oneshot si sincronizza con il looptime mentre il PWM classico no? Forse perché il tempo di lettura del pwm classico è così lungo che in qualche modo si "sfasa" con il looptime? Mentre Oneshot ha l'impulso corto che è parecchio sotto il tempo di refresh?
            Ultima modifica di bandit; 22 gennaio 15, 15:05.
            La bibbia dei Bladoni V6, Blade 120SR - Guida Crius Aio Pro V1.3
            ATOM 500 - Blade 400 FBL STRETCHED 6s - 120SR.

            Commenta


            • #66
              Originariamente inviato da bandit Visualizza il messaggio
              Tommy, grazie del rispostone !!! sicuramente ti dovrò fare altre domande. Sento proprio che mi mancano le basi.

              intanto una cosa che non ho capito del looptime nel punto b.
              Abbiamo detto che clean fa tutta una serie di conti (sensori, gps, catz e matz ..) ed alla fine del looptime (circa) esce con il dato sull'esc.
              Quindi supponiamo che abbiamo settato 400Hz, lui 400 volte al secondo manda un segnale agli esc.
              Ma immagino che il ciclo con cui fa tutte queste operazioni non sia esattamente quello che si imposta. Voglio dire, la potenza di calcolo della cpu (o come si chiama) magari permette di andare a 2kHz, quindi 5 volte superiore a quello che ho impostato (magari proprio perché non ho altimetro, gps e altri catz e matz). Ora clean dopo che ha fatto "un giro" in 1/2000 di secondo aspetta che scatti il 400esimo di secondo e poi sputa il dato oppure continua a calcolare e poi quando scatta "un interrupt" si ferma e manda il dato ...
              non so se mi sono capito ...
              Si ti sei spiegato benissimo, per come è strutturato il codice, non fa nulla, cioè se non ha raggiunto il tempo definito non entra nel ciclo dei "matz" e diciamo "gira" a vuoto. (solo l'input e quindi le letture della ricevente viene gestito in un altro controllo, mi pare di ricordare a 50Hz......quindi in quei giri nulli, potrebbe pescare dalla ricevente)

              Per capire il limite del tuo hardware e feature impostate è semplicissimo, scendi di valore di looptime fino a quando riesce a rimane costante!

              Se inizi a vedere dei valori ballerini es. impostato a 2000, vedi 1800, 1900, 2100, 2200.....vuol dire che l'hardware non riesce a gestire il tutto correttamente.....se vedi 1980, 1990, 2000, 2005, 2010 è tutto ok!

              Commenta


              • #67
                Anche TAULABS sta per rilasciare il supporto all' oneshot

                Per capire meglio come funziona lascio in inglese:

                This adds support for the new OneShot125 servo mode. Normal ESCs use 1000..2000µs @ max. 400Hz for signal transfer. The new Ultra- and KISS-ESC use OneShot125 without a fixed rate. The ESC uses 8MHz instead of 1MHz for pulse width measuring and gets 950 internal steps. The OneShot is coupled with the PID update rate. The benefit is: There is no jitter between servo rate and sensor rate. The update rate can be up to 2kHz in OneShot according to the ESC description. I've tested it up to 3,9kHz without flying.

                Ho premuto invio per sbaglio prima di fare i complimenti a Tommyleo per il lavoro che sta facendo. Presto anche io provero il suo porting su una microvrbrain
                Quadricottero News
                http://www.facebook.com/Quadricottero

                Commenta


                • #68
                  Originariamente inviato da danveal Visualizza il messaggio
                  Anche TAULABS sta per rilasciare il supporto all' oneshot

                  Per capire meglio come funziona lascio in inglese:

                  This adds support for the new OneShot125 servo mode. Normal ESCs use 1000..2000µs @ max. 400Hz for signal transfer. The new Ultra- and KISS-ESC use OneShot125 without a fixed rate. The ESC uses 8MHz instead of 1MHz for pulse width measuring and gets 950 internal steps. The OneShot is coupled with the PID update rate. The benefit is: There is no jitter between servo rate and sensor rate. The update rate can be up to 2kHz in OneShot according to the ESC description. I've tested it up to 3,9kHz without flying.

                  Ho premuto invio per sbaglio prima di fare i complimenti a Tommyleo per il lavoro che sta facendo. Presto anche io provero il suo porting su una microvrbrain
                  Grazie!!!

                  Però la cosa inizia a preoccuparmi, primo perché so delle tue esperienze ben superiori alle mie sullo sviluppo e secondo perché è ancora acerbo, mi sono azzardato solo io a metterlo in volo!!!

                  Avvisami prima di partire con la prova, così in base alla tua configurazione e a quello che vuoi provare, cerco di renderlo più stabile e sicuro possibile.

                  Commenta


                  • #69
                    Originariamente inviato da tommyleo Visualizza il messaggio
                    Grazie!!!

                    Però la cosa inizia a preoccuparmi, primo perché so delle tue esperienze ben superiori alle mie sullo sviluppo e secondo perché è ancora acerbo, mi sono azzardato solo io a metterlo in volo!!!

                    Avvisami prima di partire con la prova, così in base alla tua configurazione e a quello che vuoi provare, cerco di renderlo più stabile e sicuro possibile.
                    Ma che esperienze superiori, scherzi ??? Hai fatto veramente un ottimo lavoro, e credo che Roberto sia molto contento che sulla VrBrain possa girare un codice da vero volo " dinamico" rispetto a quanto riesce a fare APM che ha il punto forte più sul volo assistito.Ti farò sapere, a parte che comunque continuerò a seguire questo thread. E' da quando lo hai aperto che seguo ;-)
                    Quadricottero News
                    http://www.facebook.com/Quadricottero

                    Commenta


                    • #70
                      Buonasera a tutti, mi infiltro .......qualcuno sa dirmi come caricare il firmware di cleanflight nella CC3D senza usare la porta seriale FTDI consigliata da tommyleo?

                      Ma poi .....scusate l'ignoranza, consigliate vivamente il firmware cleanflight invece di quello openpilot?

                      Vedo che molti piloti lo stanno usando, quali sono i benifici?

                      Non parlatemi in arabo che a stento capisco l'italiano.......

                      Grazie.
                      TBS DISCOVERY PRO - QAV180 - QAV-R - NANO QX FPV - ROTORX ATOM

                      Commenta


                      • #71
                        Originariamente inviato da maxdefalco Visualizza il messaggio
                        Buonasera a tutti, mi infiltro .......qualcuno sa dirmi come caricare il firmware di cleanflight nella CC3D senza usare la porta seriale FTDI consigliata da tommyleo?

                        Ma poi .....scusate l'ignoranza, consigliate vivamente il firmware cleanflight invece di quello openpilot?

                        Vedo che molti piloti lo stanno usando, quali sono i benifici?

                        Non parlatemi in arabo che a stento capisco l'italiano.......

                        Grazie.
                        Allora per caricare il firmware, puoi utilizzare tranquillamente la porta USB, e con il metodo che io ho descritto è molto semplice e ti permette di ritornare ad OP tranquillamente.

                        Una volta caricato il firmware la scheda è già funzionante con Cleanflight, però per comunicare tra il configuratore su Chrome e la scheda devi utilizzare una seriale, non puoi farlo con il driver della porta USB perché non c'è ancora il supporto da parte di cleanflight.

                        Quindi per comunicare non ti resta che un adattatore usb/seriale come FTDI o se vuoi potresti utilizzare anche dei radio modem ed alla peggio(come velocità) bluetooth, tutti i tre i metodi si collegano alla main port seriale della CC3D.

                        Per la scelta di cleanflight e openpilot/taulabs, io credo che non ci sia paragone tra i firmware, OP/Taulabs sono di un'altra categoria come codice, però Baseflight/Cleanflight per la sua semplicità di configurazione e comunque per il volato in acro e per essere stato il primo ad implementare oneshot si difende alla grande ed è anche utilizzato da molti utenti di un certo livello nel volato!

                        Commenta


                        • #72
                          Originariamente inviato da danveal Visualizza il messaggio
                          Anche TAULABS sta per rilasciare il supporto all' oneshot

                          Per capire meglio come funziona lascio in inglese:

                          This adds support for the new OneShot125 servo mode. Normal ESCs use 1000..2000µs @ max. 400Hz for signal transfer. The new Ultra- and KISS-ESC use OneShot125 without a fixed rate. The ESC uses 8MHz instead of 1MHz for pulse width measuring and gets 950 internal steps. The OneShot is coupled with the PID update rate. The benefit is: There is no jitter between servo rate and sensor rate. The update rate can be up to 2kHz in OneShot according to the ESC description. I've tested it up to 3,9kHz without flying.

                          Ho premuto invio per sbaglio prima di fare i complimenti a Tommyleo per il lavoro che sta facendo. Presto anche io provero il suo porting su una microvrbrain
                          Ri-quoto, nel mio piccolo, anche io ho portato questa modifica nel codice, 8Mhz per la misura dell'ampiezza dell'impulso per OneShot e questo credo che sia in linea anche con il fatto che così viene tutto scalato in automatico da 1000-2000 a 125-250 (un bel diviso 8). Quello che non mi è chiaro è la frequenza con cui il firmware passa il dato agli ESC....con cleanflight a me sembra ben sotto i 2Khz.

                          Su Taulabs, parlano di questo accoppiamento Oneshot - PID update, però sarebbe da controllare per bene anche la velocità di accoppiamento PID - rc e sensori, tu @danveal hai mai approfondito?

                          Commenta


                          • #73
                            uff però così non vale ... vi capite da soli ... che è sto 8mHz?
                            a me sembra che non venga mandato il solito pwm all'esc.

                            La bibbia dei Bladoni V6, Blade 120SR - Guida Crius Aio Pro V1.3
                            ATOM 500 - Blade 400 FBL STRETCHED 6s - 120SR.

                            Commenta


                            • #74
                              Originariamente inviato da bandit Visualizza il messaggio
                              uff però così non vale ... vi capite da soli ... che è sto 8mHz?
                              a me sembra che non venga mandato il solito pwm all'esc.
                              Quel 8 Mhz è solo una impostazione per il microcontrollore per scalare ed inviare il dato come si aspetta oneshot 125-250!

                              Quel video lo avevo visto anche io....ed è quello che mi ha mandato in confusione, da quello che ho capito io, si parla di sincronizzazione del segnale tra main loop ed esc, e come logica è giusta, cioè inviare il dato fresco all'esc ad ogni inizio del suo ciclo di lavoro (duty cycle) caratteristico del pwm.

                              Però è nel codice che non vedo questa sincronizzazione e con tutti i post in giro su rcgroups dei vari looptime(ottimali) vado ancor più in confusione!

                              Insomma qui l'unica cosa da fare è provare sta bomba di firmware BLHeli-OneShot, ho degli afro 12A da sacrificare alla causa!!!

                              Commenta


                              • #75
                                Originariamente inviato da tommyleo Visualizza il messaggio
                                Ri-quoto, nel mio piccolo, anche io ho portato questa modifica nel codice, 8Mhz per la misura dell'ampiezza dell'impulso per OneShot e questo credo che sia in linea anche con il fatto che così viene tutto scalato in automatico da 1000-2000 a 125-250 (un bel diviso 8). Quello che non mi è chiaro è la frequenza con cui il firmware passa il dato agli ESC....con cleanflight a me sembra ben sotto i 2Khz.

                                Su Taulabs, parlano di questo accoppiamento Oneshot - PID update, però sarebbe da controllare per bene anche la velocità di accoppiamento PID - rc e sensori, tu @danveal hai mai approfondito?
                                Tieni presente che la modalità rate di baseflight è ritenuta talmente valida che è stata implementata come opzione aggiuntiva sulle ultime versioni taulabs, con tanto di convertitore di valore del pid.

                                Per Oneshot dici bene che è importante settare il tutto a seconda della velocità sensori etc. Probabilmente la strada migliore è qualla di far coincidere la frequenza PWM come un multiplo della frequenza di loop ma non ho ancora studiato bene la questione
                                Quadricottero News
                                http://www.facebook.com/Quadricottero

                                Commenta

                                Sto operando...
                                X