CleanFlight Ervaringen

Discussie in 'Multicopters electronica' gestart door BorisB, 9 dec 2014.

  1. iVolo

    iVolo

    Lid geworden:
    25 jul 2011
    Berichten:
    832
    Locatie:
    Brecht - België
    Ik heb de small_angle even op 0 gezet, kon wel nog armen maar het probleem blijft hetzelfde. Ik ga nu even de P waarden van beide copters vergelijken. Wel gek, wat komt die small_angle nu eigenlijk doen bij de updateMagHold? En van waar komt die waarde 70, wat is daarvan de bedoeling. Het lijkt me een soort filter om kleine correcties niet uit te voeren maar daarvoor dient toch de YAW_Deadband?
     
    Laatst bewerkt: 16 jun 2015
  2. iVolo

    iVolo

    Lid geworden:
    25 jul 2011
    Berichten:
    832
    Locatie:
    Brecht - België
    Dit is de code in Harakiri. Buiten wat aanpassingen voor gebruik met GPS en het gebruik van de wrap_180 functie ipv de twee if statements zie ik niet zo direct een wezenlijk verschil. Maar ik ben dan ook geen kenner van dit taaltje! :-(

    #ifdef MAG
    if (sensors(SENSOR_MAG))
    {
    float magP;
    if (abs(rcCommand[YAW]) < 70 && f.MAG_MODE)
    {
    if (DoingGPS()) magP = (float)cfg.gps_yaw; // Do slower mag P in gps mode
    else magP = (float)cfg.P8[PIDMAG];
    if (f.SMALL_ANGLES_25) rcCommand[YAW] -= wrap_180(heading - magHold) * magP / 30;// 18 deg
    }
    else magHold = heading;
    }
    #endif
     
  3. BorisB

    BorisB Forum veteraan

    Lid geworden:
    16 mei 2012
    Berichten:
    8.188
    Locatie:
    Brabant
    Waar heb je dat gevonden?

    Dit is wat ik in harakiri zie namelijk, wat eigenlijk hetzelfde is

    https://github.com/Crashpilot1000/SummerGames2.5/blob/master/src/mw.c#L1226-L1239
     
  4. BorisB

    BorisB Forum veteraan

    Lid geworden:
    16 mei 2012
    Berichten:
    8.188
    Locatie:
    Brabant
    Ik heb een vermoeden dat dit de bug is:
    dif *= -masterConfig.yaw_control_direction;

    yaw_control_direction draait polariteit om en daar is aan gesleuteld. Misschien men vergeten om hier aan te passen
     
  5. iVolo

    iVolo

    Lid geworden:
    25 jul 2011
    Berichten:
    832
    Locatie:
    Brecht - België
    Wel ja, in Harakiri SG 2.5, op dezelfde plaats als jij dus. Die werkt wel juist, in CF niet. Enkel gemerkt dat ik in de HK SG 2.5 wel Yaw Deadband heb opstaan, zelfs op 15.
     
  6. iVolo

    iVolo

    Lid geworden:
    25 jul 2011
    Berichten:
    832
    Locatie:
    Brecht - België
    Die YAW_direction bestond nog niet in SG 2.5, dat zou dus wel eens kunnen. Let wel dat mijn CF versie nog een oudere is, de 1.7.2.
     
  7. BorisB

    BorisB Forum veteraan

    Lid geworden:
    16 mei 2012
    Berichten:
    8.188
    Locatie:
    Brabant
    Probeer eens de laatste versie cleanflight :D. Er is veel gesleuteld met yaw
     
  8. iVolo

    iVolo

    Lid geworden:
    25 jul 2011
    Berichten:
    832
    Locatie:
    Brecht - België
    Ja, zal die stap maar zetten. Kom er straks op terug.
     
  9. m00st

    m00st

    Lid geworden:
    1 sep 2013
    Berichten:
    1.142
    Locatie:
    regio Den Haag
    Side note: op beide van mijn werkende Naze32s moest ik na upgrade van cf1.8 naar 1.9 de yaw_direction op 1 zetten ondanks dat ik configuratie gecopy/paste had in cli. Stond in beide gevallen op 0 na de upgrade. Was ff zoeken/google-en de eerste keer
     
  10. FedorCommander

    FedorCommander

    Lid geworden:
    30 okt 2014
    Berichten:
    305
    Locatie:
    Den Haag
    Strange. yaw_direction not really new parameter. I am loosing sometimes flight mode values, when copy pasting whole config...

    TIP: Use git for version control of the configuration!!! Helps a LOT to know whats going on :)
     
  11. FedorCommander

    FedorCommander

    Lid geworden:
    30 okt 2014
    Berichten:
    305
    Locatie:
    Den Haag
    Probably just sharing values.. When attitude angle of the copter greater then small_angle, MAG heading hold doesn't work.
     
  12. iVolo

    iVolo

    Lid geworden:
    25 jul 2011
    Berichten:
    832
    Locatie:
    Brecht - België
    Met 1.9.0 zelfde resultaat. Het komt er dus op neer dat je geen kleine correcties kan uitvoeren op YAW als het compass op staat, zodra je de stick los laat herstelt hij zich naar de vorige richting. Eens je voorbij een bepaald punt komt springt hij plots naar die nieuwe richting en blijft dan ook in die richting staan. Je merkt het veel sneller als de YAW rate hoog staat, bij mij op 0.4.

    Geen problemen gehad met de config van YAW_direction, maar ik stel alles terug manueel zonder backup of CLI dump.
     
  13. iVolo

    iVolo

    Lid geworden:
    25 jul 2011
    Berichten:
    832
    Locatie:
    Brecht - België
    When MAG_P = 0 it behaves normaly, but of course the compass is of no use then.
     
  14. FedorCommander

    FedorCommander

    Lid geworden:
    30 okt 2014
    Berichten:
    305
    Locatie:
    Den Haag
    Well.. Its as coded, Corrections within -70..+70 will give you JUMP back because:

    Code:
    if (ABS(rcCommand[YAW]) < 70 && FLIGHT_MODE(MAG_MODE)) {
      // Calculate difference between hold position AND CURRENT POSITION (heading)
            int16_t dif = heading - magHold;
    // Keep value within -180...+180
            if (dif <= -180)  dif += 360;
            if (dif >= +180)   dif -= 360;
    // Check where we need to turn, if yaw reversed, do opposite turn
            dif *= -masterConfig.yaw_control_direction;
    
    // If attitude less then 25 degree - do small correction... MAG_P used as multiplier.
            if (STATE(SMALL_ANGLE))   rcCommand[YAW] -= dif * currentProfile->pidProfile.P8[PIDMAG] / 30;    // 18 deg
    
    // But magHold will NOT be update at this point!!!!.
    
        } else
    // If yaw command > 70 - do normal yaw and update magHold!!!!!
            magHold = heading;
    }
    
    So it WILL return you to the magHold heading if you do small corrections... If you do BIG correction, it will remember NEW magHold... I think it works just fine.

    I think you better put MAG_HOLD on a switch and get on with it.
     
    Laatst bewerkt: 16 jun 2015
  15. BorisB

    BorisB Forum veteraan

    Lid geworden:
    16 mei 2012
    Berichten:
    8.188
    Locatie:
    Brabant
  16. FedorCommander

    FedorCommander

    Lid geworden:
    30 okt 2014
    Berichten:
    305
    Locatie:
    Den Haag
    70 should go to config... :) Still i think it meant to be used ON THE SWITCH but not constantly.
     
  17. BorisB

    BorisB Forum veteraan

    Lid geworden:
    16 mei 2012
    Berichten:
    8.188
    Locatie:
    Brabant
    I never flew those modes and have no idea what should be desired purpose, but it kind of sounds logical :D
    70 does sound like much to me
     
  18. iVolo

    iVolo

    Lid geworden:
    25 jul 2011
    Berichten:
    832
    Locatie:
    Brecht - België
  19. BorisB

    BorisB Forum veteraan

    Lid geworden:
    16 mei 2012
    Berichten:
    8.188
    Locatie:
    Brabant
    Hydras fault :).
    He bymped the eeprom version again in the current master
     
  20. FedorCommander

    FedorCommander

    Lid geworden:
    30 okt 2014
    Berichten:
    305
    Locatie:
    Den Haag
    I dont bother anymore. All configs are in git ;) copy paste is a good habbit.
     

Deel Deze Pagina