-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: ENCODER_RESOLUTION

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    25.12.2007
    Beiträge
    16

    ENCODER_RESOLUTION

    Anzeige

    Also ich habe mal getestet, ob mein Robby auch 1 Meter fähr wenn er 1 Meter fahren soll. Habe mir ein kleines Programm geschrieben um es zu testen:
    Code:
    #include "RP6RobotBaseLib.h"
    
    int main(void)
    {
    	initRobotBase();
    	powerON();
    	move (160, FWD, 4000, true);	
    	return 0;
    }
    Am Ende ist er blos 95 cm gefahren. Nun habe ich in die Anleitung geschaut und unter Anhang unter B das Kalibrieren des Encoder gefunden. Nun habe ich auch ausgerechnet was man brauch bei mir ca. 0.227. Jetzt wollte ich die RP6Config.h editieren die gibts aber leidern net unter RP6Lib\RP6base stattesen unter RP6Lib\RP6common. OK, ist ja blos ein kleiner fehler.
    Nun habe ich sie geöffnet und da kann man bei 4 Zeilen hintereinander einen Wert für ENCODER_RESOLUTION angeben. Ich habe einfach den genommen wo keine "\\" davor waren. Nun habe ich mein Programm neu kompeliert und neu hochgeladen und trotzdem fährt er kein Stück anders immer noch den selben Wert.
    Kann mit jemand helfen?
    stratege993

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    25.12.2007
    Beiträge
    16
    Jetzt habe ich mal alle 4 Werte auf 0.5 gesätzt und trotzdem keine auswirkung. Was mach ich falsch?
    Stratege993

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791
    ... nach jeder Änderung der RP6Config.h nicht vergessen, das Testprog neu zu kompilieren!

    Gruß Dirk

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    29.07.2007
    Beiträge
    386
    ........ nach jeder Änderung der RP6Config.h nicht vergessen, das Testprog neu zu kompilieren!......

    der witz ist gut.

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791
    der witz ist gut.
    Naja, das war hier schon Ernst.

    Manchmal hat da auch ein "Make clean" Wunder bewirkt.

    Gruß Dirk

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    32
    Beiträge
    1.514
    Hallo Stratege993,

    bei "move (160, FWD, 4000, true);" bewegt sich der RP6 4000 Encoderschritte vorwärts.
    Die Umrechnung über die ENCODER_RESOLUTION
    Werte in der Datei RP6config.h läuft dann aber über ein zusätzliches Makro.
    Damit sich etwas ändert, musst Du den Aufruf oben so machen:

    move (160, FWD, DIST_MM(1000), true);

    So werden die 1000mm in Encoder Zählschritte umgerechnet. Du kannst auch den von Dir berechneten Wert direkt verwenden - also z.B. anstelle der 4000 halt 4100 oder so versuchen.

    Die Makros sind ja zwei Zeilen tiefer in derselben Datei definiert:
    Code:
    #define DIST_MM(__DST__) (uint16_t)(__DST__/ENCODER_RESOLUTION)
    #define DIST_CM(__DST__) (uint16_t)(__DST__/(ENCODER_RESOLUTION/10))
    #define DIST_M(__DST__) (uint16_t)(__DST__/(ENCODER_RESOLUTION/1000))
    DIST_MM steht für Distanz in MilliMetern, DIST_CM für Zentimeter und DIST_M für Meter.


    Die Zeilen die mit "//" anfangen sind natürlich auskommentiert, werden vom Compiler also nicht beachtet. Sind nur Beispielwerte.
    (lieber mal den C Crashkurs ansehen)

    MfG,
    SlyD

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    25.12.2007
    Beiträge
    16
    Hier die einzelnen Antworten:

    Dirk: Also das mit dem neu Kompilieren habe ich immer bedacht.

    SlyD: Das man nicht die Zählstücke sondern die Strecke angeben muss, habe ich leider nicht bedacht, ich dachte der Roboter rechnet mit der Strecke und nicht mit den Zählstrecken (war natürlich ein Falschdenken).

    SlyD: Das dies bloß Kommentare sind, war mir klar, aber etwas verwirrend waren sie, weil sie vor und nach der Eingabezeile standen. Wusste leider noch nicht das auch diese Config-datei in C geschrieben ist.

    Mfg,
    Stratege993

    P.s.: Jetzt fährt er endlicht die richtige Strecke.

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791
    Leute,

    weil wir gerade beim Kalibrieren sind:

    Welche Funktion hat eigentlich der ROTATION_FACTOR, den man ja auch in RP6Config.h anpassen kann?

    Bei meinen Tests ändert sich wenig, wenn ich da zwischen 620 und 750 probiere.
    Oder ist das zu wenig?

    Gruß Dirk

  9. #9
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.12.2007
    Ort
    Berlin
    Alter
    33
    Beiträge
    211
    @alle komisch finde ich, das ich bei der vorwärts/rückwärts - Fahrt mit speed 100 keine probleme habe ... aber ab 160 verzieht der RP6 dann die Spur, undzwar ordentlich... einfach alles nochmal nachkalibrieren oder was ist zu tun?
    manchmal , wenn das eine getriebe plözlich schneller beschleunigt, ev wegen hindernis, schreit es recht laut, so als ob die Zahnräder zu sehr vibrieren hat da jemand eine idee wie ich das weg bekomme?

    danke"

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    04.01.2008
    Ort
    Neuhofen/Ybbs
    Alter
    24
    Beiträge
    45
    Hi! mein encoder funkt auch nicht !
    Jezda wollte ich den selftest machen und der geht nich wenn ich ihn drauflade und dan start drücke leuchtet nur das led ( SL6 und SL5 ) am anfang habe ich gedacht das der akku zu schwach ist aber ich habe ihn aufgeladen und der hat jezda 8.34 Volt und trozdem macht er immer noch das selbe wie voher angeschrieben!
    Was soll ich machen ? früher hat der selftest ja immer funktioniert!

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •