- 12V Akku mit 280 Ah bauen         
Seite 14 von 15 ErsteErste ... 412131415 LetzteLetzte
Ergebnis 131 bis 140 von 144

Thema: Asuro: Linienfolger mit PD-Regler

  1. #131
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Anzeige

    Powerstation Test
    Moin moin allerseits,

    Toplles aber für mich ein etwas schwieriges Thema welches aber bald
    auf mich zukommt. Ich habe den Thread sowie das RN Wiki über
    Regelstrecken gelesen, habe aber doch ein paar grundlegende Fragen.

    Habe ich es richtig verstanden das ich die Sprungantwort möglichst
    mit betriebsbereitem Bot ermitteln sollte damit halt die Verlußte und
    die Massenträgheit gleich mit berücksichtigt werden?

    Bei mir geht es weniger um Linienfolgen als um einen guten Gleichlauf
    der Räder. Ich habe am Kollecktor der Scheibenwischermotoren kleine
    Magnete befestigt welche mittels Hallsensor abgetastet werden und komme
    bei vollast auf etwa 160 Hz. Diese Frequenzen möchte ich vergleichen
    und die Differenz als Stellgröße verwenden.

    Gleichzeitug/zusätzlich als Speedmeter und die Impulse selber als
    Wegstreckenzähler....Für Kurvenfahrten stelle ich mir vor den einen
    oder anderen oder Beide Motoren "gefälschte" Daten vorzulügen.

    Haltet Ihr das vom Prinzip her (so) für durchfürbar?

    Grüße Richard

  2. #132
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.693
    Zitat Zitat von Richard
    ... Sprungantwort möglichst mit betriebsbereitem Bot ermitteln ...?
    Wieso möglichst. Nur - würde ich sagen. Man lässt ja die Motoren nicht alleine durch die Welt fahren.

    Zitat Zitat von Richard
    ... Bei mir geht es ... um einen guten Gleichlauf der Räder ...
    Gleichlauf heisst doch: genaues Einhalten der Vorgaben. Damit ist es egal, welchen Zweck Du erreichen willst. Ich habe die Sprungantwort gemessen und daraus die Regelstrecke parameterisiert und rechne aus Zeitgründen alles integer. Läuft sehr schön (klar, eigene Erfolge sind IMMER gut)!

    Zitat Zitat von Richard
    ... Für Kurvenfahrten stelle ich mir vor den einen oder anderen oder Beide Motoren "gefälschte" Daten vorzulügen ...
    Ich gebe einfach die Daten vor, die ich haben will. Keine Ahnung was das mit dem "lügen" soll.
    Ciao sagt der JoeamBerg

  3. #133
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Zitat Zitat von oberallgeier
    Zitat Zitat von Richard
    ... Für Kurvenfahrten stelle ich mir vor den einen oder anderen oder Beide Motoren "gefälschte" Daten vorzulügen ...
    Ich gebe einfach die Daten vor, die ich haben will. Keine Ahnung was das mit dem "lügen" soll.
    Moin moin Oberallgeier.

    Mit "lügen" meinte ich die tatsächlichen IST Werte verändern,je nach
    Bedarf etwas hinzuaddieren oder Abziehen um den Kurs zu beeinflussen,
    ohne dabei die eigentliche Regelfunktion zu verlieren. Aber das kann jetzt
    auch ein Denkfehler von mir sein, der soll Wert MUß ja nicht 0 sein wie
    beim Linienfolgen.

    Gruß Richard

  4. #134
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    29.05.2005
    Beiträge
    1.018
    Hallo Richard,

    erst einmal schöne Weihnachten. Natürlich für alle Leser.

    Ich bin auch fürs Lügen.
    Sinn macht das Ganze ja auf alle Fälle dann, wenn eine Kurve z.B. so gefahren werden soll, so das ein Rad die doppelte Strecke gegenüber dem anderen fahren soll. Klar, dass ich dann bei den Tiks lüge und dem Regler etwas vom Pferd erzähle.
    Der hier von waste entwickelte PID läßt sich auch für solche Dinge hervoragend nutzen und in einen Kurven-Regler (eine Gerade ist nur ein Sonderfall einer Kurve) umbauen.
    Ist bei mir schon 'etwas' länger im Betrieb.

    Hier mal meine vom Baron erzählte Lügengeschichte mitten im waste-Code:
    Code:
       case PID_ODOMETRIE:
          if (links == 0 || rechts == 0)
             use_regler = FALSE;
          else
          {
             absLinks  = abs (links);
             absRechts = abs (rechts);
             /* Odometrie-Zaehler so justieren, dass fuer eine Kurvenfahrt
                die Tic-Anzahl auf beiden Seiten identisch aussehen.
                Die Seite auf der weniger Tic's zu fahren sind wird auf die
                hoehere Anzahl 'hochgerechnet'.
             */
             if (absLinks < absRechts)
             {
                faktor = (float)absRechts / (float)absLinks;
                LWert = sens.rad_tik [LINKS] * faktor;
                RWert = sens.rad_tik [RECHTS];
             }
             else
             {
                faktor = (float)absLinks / (float)absRechts;
                LWert = sens.rad_tik [LINKS];
                RWert = sens.rad_tik [RECHTS] * faktor;
             }
             kp = g_kp;
             ki = g_ki;
             kd = g_kd;
          }
          break;
    Der Regler nutzt dann die beiden Variablen LWert und RWert um 'seiner' Meinung nach geradeaus zu fahren. In sens.rad_tik [..] stehen bei mir die gemessenen Tiks. Und dann wird gelogen auf float komm raus.

    @oberallgeier
    Lügen kann in der heutigen Zeit einfach hilfreich sein um die Kurve zu kratzen . Außer man fährt AC-Schnitzer getunetes. Da wird natürlich rechtwinklig abgebogen . (Schau bitte nicht auf die Uhrzeit. Ist Urlaub.)


    Gruß und guten Rutsch ins Neue Jahr an alle.
    Sternthaler
    Lieber Asuro programieren als arbeiten gehen.

  5. #135
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.693
    Halleluja,

    ich verstehe die Sache mit dem "Lügen" trotzdem nicht. Nicht (nur) weil Weihnachten ist. Mein Regler für den Antrieb bei meinem Dottie sind ja zwei Regler, für jeden Motor, also für jedes Rad, ein eigener.

    Die Funktionstüchtigkeit bzw. Adaptionsfähigkeit dieser Regler ist damit nachgewiesen, dass ich den identischen Algorithmus mit gleichen Parameterwerten habe für jeden einzelnen der zwei Antriebe, wobei die Antriebe deutlich unterschiedliche Zeitkonstanten (im Target gemessen) haben: 8 ms und 12 ms. Diese Unterschiede werden vom Algorithmus selbst sehr gut ausgeglichen - schaut euch die Dottie-Videos an: mein R2D03 läuft bei Geradeausfahrt auf 1 m mit weniger als +/- 1 mm Abweichung. Die Encoderauflösung ist etwa 1 Tic pro 0,1 mm Radumfang.

    Mit den Hilfen aus dem RN habe ich meinen Regler aufgebaut. Meinen erprobten und aktuellen Code für den Motor 12 (1 und 2 sind zwei der vier Ausgänge am L293D) habe ich mit einigen meiner Überlegungen hier vorgestellt. UND wenn mein Dottie nun eine Kurve fahren soll, dann werden die Vorgaben entsprechend bereitgestellt - lügen ist das ja nun nicht. Da ich in der Regelroutine nur integer rechne (Zeitgründe - sie läuft ja im Interrupt), könnte es Sinn machen, den offset für das "schnellere" Rad beim Kurvenfahren erst floatingpoint zu berechnen und nach dieser Sollwertberechnung für das kurvenäussere Rad den "frac"-Anteil (also den Nachkommaanteil) für die nächste Berechnung zu konservieren. Dieser Überhang wird der nächsten Berechnung zugeschlagen, damit nicht durch Rundungsvorgänge die gewünschte Kurvenform leidet. Dieses Vorgehen steht noch auf meiner Vorhabenliste, über Auswirkung/Erfolg kann ich daher nicht berichten.

    Lange Rede kurzer Sinn: lügt nicht. Ehrlich währt am längsten - und fährt am präzisesten *ggggggg*. Lügen langt aber sicher um die Kurve zu kratzen *gggggg*. Aber wer macht sowas schon.

    @Sternthaler: der AC-Schnitzer muss leider ohne Regler auskommen - differentiallose Starrachse - und ich habe KEINEN Platz für nen Encoder. Aber das Teil wird ja auf AL (..AbstandsLimit..) geregelt, auch wenns nur ne sehr einfache Regelung ist ... warts mal ab, die Erlkönigphase ist eigentlich vorbei, ich muss aber noch eine saubere Kalibriermöglichkeit vor Fahrtantritt programmieren. Und . . . mein PC steht eigentlich in der Ecke - hier spricht nur der Not(fall)book.

    Frohe Weihnachten
    Ciao sagt der JoeamBerg

  6. #136
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    13.07.2004
    Ort
    bei Stuttgart
    Alter
    42
    Beiträge
    760
    hi,
    der asuro und der dottiregler unterscheiden sich ja schon.
    man hat ja bei beiden eigentlich ein mimo system. bei dotti wird das mit 2 siso-regler geregelt, und beim asuro mit einem siso-regler. wenn ich das jetzt richtig erkannt habe.
    bei dotti wird ür jdes rad eine solldrehzahl vorgegeben, die dann durch jeweils einen regler eingestellt wird.
    beim asuro wird die drehzahl differenz ausgewertet und damit die motoren geregelt. mit dem vorlügen würde ich sagen ist gemeint, dass die tics verfälscht werde, sprich anzahl links *1,5, bedeutet, dass das rechte rad 2/3 längeren weg fährt wie das linke. ich persönlich halte aber diese variante nicht für so sinnvoll. dann liber den sollwert von der drehzahldifferenz ändern, also anstatt 0, irgendeinen anderen wert nehmen, dann kann auch weiterhin mit integers gerechnet werden.
    so, ich hoff, verstanden zu haben, was die leute gmeinet haben, und ic hab net totalen schwachsinn verzapft.
    noh weiterhin schöne feiertgae.
    mfg jeffrey

  7. #137
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.693
    Zitat Zitat von jeffrey
    ... asuro und der dottiregler unterscheiden sich ...
    So sehe ich das ja auch. Und deswegen und trotz meinem Erfolg bei meinem Miniprojekt - das ja auf wastes phantastischem Wicki-Artikel beruht - trau ich mich nicht an die Regelung des asuro heran. Annahme: wenn es besser ginge, hätte waste oder Sternthaler oder irgend ein anderer Guru das schon längst erledigt. Aber ich vermute, dass es beim asuro noch Möglichkeiten gibt. (.... die dann vielleicht DOCH auf mich warten ...... schrecklich!)
    Ciao sagt der JoeamBerg

  8. #138
    Benutzer Stammmitglied
    Registriert seit
    24.11.2008
    Ort
    Freiburg
    Alter
    31
    Beiträge
    49
    hallo ich habe ein Problem
    ich könnte heulen mein Asuro macht einfach nicht das was er soll,
    der Linie entlang fahren. Er ruckelt hin und her und erkennt auch manche dunkleren stellen doch nicht auf der linie er fährt immer ein kleines stück der linie entlang und dan biegt er ab. Manchmal fährt er am Rand des Papiers entlang aber meistens dreht er sich im Kreis. Ich weiß einfach nicht was ich noch machen soll ich habe schon so viele Programme ausprobiert.
    Habt ihr eine Idee?
    Liegt es vielleicht an der Ausgedruckten Strecke (zu dünn, zu scharfe Kurven, zu glänzend wegen Laserdrucker ????) ich weiß es nicht.

    Also wäre nett wenn ihr vllt eine Lösung wüsstet.

  9. #139
    Benutzer Stammmitglied
    Registriert seit
    24.11.2008
    Ort
    Freiburg
    Alter
    31
    Beiträge
    49
    Mein Asuro ist übrigens im Originalzustand falls das wichtig ist

  10. #140
    Erfahrener Benutzer Roboter Genie Avatar von pinsel120866
    Registriert seit
    18.12.2007
    Ort
    Hohenems
    Alter
    58
    Beiträge
    847
    Hallo,

    wenn der Asuro die Linie verliert kannst du dir dadurch behelfen, indem du eine kleine Manschette machst, die du über Photodioden und FrontLed steckst.

    Viel bringt auch den Liniensensorumbau zu machen und die Bauteile einzustecken. Dadurch kommen sie näher an die Linie. Du hast ausserdem den Vorteil dass du mit verschiedenen Front-LEDs experimentieren kannst.

    Moglicherweise musst auch nur das Programmparameter besser an die Liniensensorgruppe anpassen.

Seite 14 von 15 ErsteErste ... 412131415 LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress