Multiwii Mag

Discussie in 'Multicopters' gestart door GravityResearch, 11 nov 2013.

  1. GravityResearch

    GravityResearch

    Lid geworden:
    6 jan 2009
    Berichten:
    76
    In de categorie vragen die ik niet op de multiwii-forums durf te stellen:

    Ik gebruik sinds kort een magnetometer (MAG) op mijn Nanowii-Quad, hoewel het resultaat tot nog toe niet heel schokkend is, lijkt het wel wat te doen voor Yaw in de wind.
    Ben de PID nog langzaam aan het opvoeren, lijkt al wel beter te worden.

    Wat ik me af vroeg; waarom gebruiken 'we' de andere assen van de MAG eigenlijk niet in MultiWii ?
    En zou ik dat zelf kunnen toevoegen ?

    In multiwii.ino zie ik het volgende staan:

    Code:
    #if MAG
        if (abs(rcCommand[YAW]) <70 && f.MAG_MODE) {
          int16_t dif = heading - magHold;
          if (dif <= - 180) dif += 360;
          if (dif >= + 180) dif -= 360;
          if ( f.SMALL_ANGLES_25 ){
          rcCommand[YAW] -= dif*conf.P8[PIDMAG]>>5;
          }
    
    Hier wordt in de laatste regel de YAW aangepast.
    Alleen de rotatie dus.
    Aan de data in MultiWiiConf te zien werkt mijn kompas echter in 3 dimensies.
    Kan ik niet ook voor ROLL en PITCH zoiets doen ?
    Zodat je iets krijgt als:

    Code:
    #if MAG
        if (abs(rcCommand[YAW]) <70 && f.MAG_MODE) {
          int16_t dif = heading - magHold;
          if (dif <= - 180) dif += 360;
          if (dif >= + 180) dif -= 360;
          if ( f.SMALL_ANGLES_25 ){
            rcCommand[YAW] -= dif*conf.P8[PIDMAG]>>5;
            rcCommand[ROLL] -= dif*conf.P8[PIDMAG]>>?;
            rcCommand[PITCH] -= dif*conf.P8[PIDMAG]>>?;
          }
     
  2. Roeland54

    Roeland54

    Lid geworden:
    6 dec 2011
    Berichten:
    108
    Locatie:
    Brugge
    Ik vraag mij af wat dit als voordeel moet opleveren?

    Om horizontaal te blijven heb je toch de stable functie...
     
  3. GravityResearch

    GravityResearch

    Lid geworden:
    6 jan 2009
    Berichten:
    76
    Misschien is het mijn brakke afstelling maar, mijn stable is (in de wind) niet echt om over naar huis te schrijven.
    Mijn quad is te klein om een GPS aan te hangen, bovendien heb ik te weinig geheugen (NanoWii).

    Ik dacht/had gehoopt een soort drift-compensatie er uit te halen.
    Maar misschien is het allemaal niet zo'n goed idee, ik heb de code 'eromheen' geprobeerd uit te pluizen maar het voert allemaal misschien wel een beetje ver...

    Iemand die uit kan leggen wat dit precies doet:
    Code:
    conf.P8[PIDMAG]>>5
    En dan met name '>>5' is dat een soort bit-shift ofzo ?
    ze doen hier het differentiaal * de PID voor MAG, maar dan ?
     

Deel Deze Pagina