-
        

Ergebnis 1 bis 10 von 10

Thema: myasuro

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    16.12.2009
    Beiträge
    71

    myasuro

    Anzeige

    OK, ich hab endlich geschafft die neue Lib zu installieren. Jetzt möchte ich natürlich auch myasuro benutzen. Wie binde ich den ein, und wie ändere ich die werte damit sie auch verarbeitet werden??
    Gruß Frank

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    16.12.2009
    Beiträge
    71
    Das mit dem einbinden hat auch schon geklappt. Jedenfalls ändert der Asuro sein Verhalten wenn ich in myasuro die werte ändere. Aber nicht so wie es soll. Wie setzen sich folgende Werte zusammen:
    Code:
    * Werte für 12 Segmente Encoder */
    /*! Faktor zur Berechnung von Ticks um aus den in mm angegebenen Parameter
        umzurechnen.\n
        Der Originalwert ist \b 19363L und ist von der Anzahl der schwarz/weiss
        Teilstuecke auf den Odometriescheiben abhaengig.\n
        Der Originalwert wurde durch stochri ermittelt.
    */
    #define MY_GO_ENC_COUNT_VALUE  19363L   /*!< GO Funktion, Divisor fuer Entfernung   */
    /*! Faktor zur Berechnung von Ticks um aus den in Grad angegebenen Parameter
        umzurechnen.\n
        Der Originalwert ist \b 177L und ist von der Anzahl der schwarz/weiss
        Teilstuecke auf den Odometriescheiben abhaengig.\n
        Der Originalwert wurde durch stochri ermittelt.
    */
    #define MY_TURN_ENC_COUNT_VALUE  177L   /*!< Turn Funktion, Mutiplikator fuer Winkel */
    ?
    Ich hab die encoderscheiben ja auf dem Motoritzel montiert, und daher eine Übersetzungsstufe mehr.
    Gruß Frank

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Erst mal grundsätzlich. Bei jeder Änderung der myasuro.h muß immer auch die AsuroLib neu übersetzt werden, bevor man sein Programm ebenfalls neu übersetzt.

    Die Werte für deinen speziellen Fall müssten grob genommen folgende sein: MY_GO_ENC_COUNT_VALUE muss durch 5 geteilt werden und
    MY_TURN_ENC_COUNT_VALUE mal 5 genommen werden.

    Allerdings solltest du zuerst feststellen (d.h. messen), ob du überhaupt ein brauchbares Signal von den Encodern bekommst.

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    16.12.2009
    Beiträge
    71
    Hi Danke erstmal für die schnelle Antwort.
    Brauchbare Signale kommen-denke das sie brauchbar sind- denn ich kann die Funktionen mit den Encoderscheiben ja benutzen, blos die Werte stimmen halt nicht.
    Mit dem übersetzen verstehe ich so, das bei jeder Änderung in "myasuro"ein "make-lib-bat" durchzuführen ist, und danach erst neue Programme schreiben.
    Gruß Frank
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken dscn1230.jpg  

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Ja, so ist es. Make-lib.bat aufrufen, danach dein eigenes Programm übersetzen,. Auf dem Foto sehe ich, dass du die 8er Scheiben verwendest. Dafür stimmen die o.g. Werte leider nicht (die stimmen nur für die 12er Scheiben).
    Für MY_GO_ENC_COUNT_VALUE müßte der Wert um die 29750 liegen (/5 für deine Applikation).
    Formel: Radumfang / (Ticks pro Rad Umdrehung) * 10000
    Der MY_TURN_ENC_COUNT_VALUE Wert müsste so um 111 (*5 für deine Applikation) liegen.
    Formel: (Ticks pro Rad Umdrehung) / 360° * 1000

    Radumfang ist ca. 119 mm,
    Ticks pro Radumdrehung ist 60 (12er Scheibe) bzw. 40 (für 8er Scheibe). Das gilt für das mittlere Zahnrad als Encoderrad.
    Getriebeuntersetzung ist 25 (50/10 = 5 je Zahnrad)

    Ich hoffe ich habe mich jetzt nicht allzu sehr verechnet. Bitte nachprüfen!

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    16.12.2009
    Beiträge
    71
    Hi, m.a.r.v.i.n.
    Fast geklappt mit den Einstellungen. Die Entfernung haut hin.
    Ich hab aber nen Radumfang(38,5mmxpi) von 121 mm also 121/200x10000=6050.hab ich eingetragen und er fährt die gewünschte Strecke.
    Winkel habe ich 555 eingetragen, aber bei 90Grad macht er denke mal 100 Grad.
    Muß ich probieren, oder kann man woanders noch korrigieren??
    Gruß und vielen Dank
    Frank

  7. #7
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Was mir noch einfällt ist, dass der Default Wert für MY_TURN_ENC_COUNT_VALUE 177 beträgt, und nicht 167 wie nach obiger Formel. Wie der Wert zustandekommt, ist mir ein Rätsel. Vielleicht liegt es ja daran.

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.167
    Zitat Zitat von m.a.r.v.i.n
    ...
    Für MY_GO_ENC_COUNT_VALUE müßte der Wert um die 29750 liegen (/5 für deine Applikation).
    Formel: Radumfang / (Ticks pro Rad Umdrehung) * 10000
    Ok, nun macht meinen wert mir auch sinn. Es ist also die strecke im milimetern gleich an 10.000 ticks forwärts oder ruckwärts gefahren. Das zu messen braucht man ein wirklich grossen zimmer. 20 meter mess gerät (bis auf millimeter) habe ich auch nicht.

    Der MY_TURN_ENC_COUNT_VALUE Wert müsste so um 111 (*5 für deine Applikation) liegen.
    Formel: (Ticks pro Rad Umdrehung) / 360° * 1000
    Das ist etwas unklarrer. Ich mache daraus 'milli-ticks pro grad rad-umdrehung'. Wieviel grad dein asuro dadurch um seiner achse dreht ist aber abhängich von den Rad-basis (die abstand zwisschen den beiden rad-grund kontakt flachen). Und auch den radumfang oder durchmesser.

  9. #9
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Hallo Valen,

    vielen Dank für deine Antwort, jetzt wird mir auch klar wo mein Denkfehler liegt. Stimmt natürlich, für die Drehung muß auch der Achsabstand berücksichtigt werden und nicht nur der Radumfang. Die Formel (Ticks pro Rad Umdrehung) / 360° * 1000 ist einfach falsch.

    Der verwendeten Faktoren von 10000 bzw. 1000 ist nur eine Hilfskrücke um ohne Kommazahlen auszukommen und Floating Point Berechnungen zu vermeiden.

  10. #10
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.167
    Der verwendeten Faktoren von 10000 bzw. 1000 ist nur eine Hilfskrücke um ohne Kommazahlen auszukommen und Floating Point Berechnungen zu vermeiden.
    Ja, das habe ich schon geähnt. Bei meiner Asuro ist die abstand zwischen den rädern auch ungefehr 100mm. Vielleicht sitzt das irgendwie in das 1000 zahl mit einer weitere faktor. Ik habe mich auch noch nicht wirklich mit diesen Go(Turn) funktionen bekummert.

Berechtigungen

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