- LiTime Speicher und Akkus         
Seite 1 von 5 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 41

Thema: Virtueller Bot [KINEMATIKMODELL]

  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von vohopri
    Registriert seit
    11.09.2004
    Ort
    südlich der Alpen
    Beiträge
    1.708

    Virtueller Bot [KINEMATIKMODELL]

    Anzeige

    Praxistest und DIY Projekte
    Hallo,

    weil mich die Regeltechnik interessiert, aber ich keine Ahnung davon hab, musste ich mir jetzt eine virtuelle Experimentierplattform basteln.

    Als erstes hab ich eine Bahnsteuerung programmiert. Es wird ein vierrädriges Fahrgestell simuliert mit einer Trapezlenkung. Das Ziel ist, in dieser ersten Aufgabe, einer Linie zu folgen. Das ist ja eine leichte Aufgabe. Aber für mich war es recht aufschlussreich, mit Algorithmen und Parametern zu experimentieren.

    Bild hier  

    VIDEO

    grüsse,
    Hannes

  2. #2
    Erfahrener Benutzer Roboter-Spezialist Avatar von sast
    Registriert seit
    30.11.2004
    Alter
    53
    Beiträge
    502
    Hallo Hannes,

    sehr schöne Idee mit der virtuellen Reglerstrecke.

    Kannst du bitte etwas mehr über die Hindergründe erzählen. Also zB mit was du programmiert hast und welche Ereignisse du behandelst um den Regler zu füttern?

    Mich würde mal interessieren warum er bei Kreuzungen nicht einfach mal abbiegt

    sast

    雅思特史特芬
    开发及研究

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von vohopri
    Registriert seit
    11.09.2004
    Ort
    südlich der Alpen
    Beiträge
    1.708
    Hallo sast,

    da kann ich gern mehr drüber schreiben:

    Programmiert hab ich das in Object Pascal, sprich Delphi.

    Das ganze soll im Lauf der Zeit noch andere Aufgaben bekommen und für die Aufgaben dann auch unterschiedliche Algorithmen.

    Der gerade implementierte Algo fragt nur periodisch ab, was das Fahrzeug unter 2 Testpunkten hat. Es werden sozusagen 2 optische Liniensensoren simuliert. Die liegen ca einen halben Achsabstand vor der gelenkten Vorderachse und sind mit dem Fahrgestell verbunden. Sie passen knapp in den Leitstreifen hinein, wenn das Fahrzeug ausgerichtet ist.

    Ist ein Sensor draussen, wird um eine Stufe in die andere Richtung gelenkt. Sind beide drinnen,wird um eine Stufe Richtung Neutralstellung gelenkt. Die letzte Vorschrift ist wichtig, damit das Ding nicht übersteuert und wie besoffen herumeiert. Als nächste wird dann noch eine Vorschrift für beide Sensoren draussen hinzugefügt.

    Für die Einfachheit lenkt der Algo doch recht geschmeidig und weich. Interessant ist, dass da 3 Stufen für jede Seite ausreichen. -36,-24,-12,0,12,24,36 Grad Lenkausschlag beispielsweise. Wichtig ist aber das häufige Abfragen, und das rechtzeitige Neutralstellen der Lenkung. Hier frage ich die Sensoren ab und lenke nach, wenn er die Wegstrecke von einem Pixelabstand zurückgelegt hat.

    Das Reagieren auf die Kreuzungen, hast sicher gesehen: Vorausgesetzt, das Fahrzeug ist ausgerichtet, beeinflusst die Kreuzung die Fahrt überhaupt nicht. Es setzt ja nur für eine kurze Strecke die seitliche Führung aus. Bei der Kreuzung rechts oben, von oben kommend, ist das Fahrzeug nach der Kurvenfahrt noch nicht ganz gerade ausgerichtet. Drum fährt es leicht schräg auf die Kreuzung zu und richtet sich erst aus, wenn die Sensoren die Kreuzug überquert haben.

    Am besten gefällt mir an dem Miniprojekt, dass man so schnell zwischendurch was testen kann.

    grüsse,
    Hannes

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    43
    Beiträge
    1.273
    Hi Hannes,
    sieht sehr gut aus, aber eine wichtige Sache fehlt glaube ich... Im Mom. ist es wahrscheinlich so, dass zu jedem Zeitpunkt zu dem sich das Fahrzeug bewegt auch die Sensoren abgefragt werden. Das wird in der Realität leider nie so sein. Probier doch mal was passiert wenn dein Fahrzeug sich die ganze Zeit bewegt, die Sensoren aber nur alle 10ms abgefragt werden. Oder füge mal ein bisschen Rauschen hinzu, das macht die Optimierung noch viel spannender ;-D
    Viele Grüße, William
    -> http://william.thielicke.org/

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von vohopri
    Registriert seit
    11.09.2004
    Ort
    südlich der Alpen
    Beiträge
    1.708
    Hi William,

    das wird dann nochmal so spannend. Rauschen gehört unbedingt dazu, sonst bleibt das alles zu theoretisch. Die Sensoren gehören mit Rauschen beaufschlagt, aber das Fahrzeug selbst auch.

    Bei der Videoaufnahme habe ich bei der langsamsten Fahrstufe alle 40ms abgefragt, und bei der schnellsten alle 7 ms. Ich werde testen, was sich tut, wenn ich seltener abfrage.

    Interessant, da tun sich echt vielversprechende Perspektiven auf. Ob DAS ein Miniprojekt bleibt?

    grüsse,
    Hannes

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.07.2004
    Beiträge
    580
    Ein sehr interessantes Projekt!
    Wie ich deine Projekte kenne wird es bestimmt auch nicht so "mini" bleiben

    Kannst du ein bisschen was zur Umsetzung in Object Pascal sagen?
    Also konkreter auf die Programmierung eingehen, Quelltextauszüge evtl.?
    Wie hast du das ganze gelöst? Objektorientiert?


    Danke für dieses schöne Projekt

    edit:
    Du hast je mehrere Einzelprojekte die sich mit der Steuerung von Fahrzeugen unterschiedlicher Art befassen, hast du vor daraus mal ein "großes" Projekt zu machen?

    Crypi

  7. #7
    Erfahrener Benutzer Roboter-Spezialist Avatar von sast
    Registriert seit
    30.11.2004
    Alter
    53
    Beiträge
    502
    Danke erst mal für die Erklärungen.

    Um es realistischer zu machen, könntest du zB aber sicher noch Massenträgheit und Verarbeitungszeit (nicht so häufige Abfrage) mit einrechnen.

    Wenn du bei 1 Sensor draussen nur um eine Stufe nachregelst, wann kommen denn dann überhaupt die anderen Stufen ins Spiel? Da hab ich irgend wie noch eine Verständnislücke. Wäre schön wenn du die noch schließen könntest.

    Bei der Kreuzungsquerung wollen wir mal hoffen, das kein Sturm von der Seite drückt [-o< . Da kann man sicher noch viel zusammenspinnen an Störgrößen. Dafür ist so eine Simulation hervorragend geeignet.

    Vielleicht kannst du ja auch mal ein Bild deiner Gesamtapplikation zeigen. Wie man da Parameter ändern kann usw. Mir würde da noch einfallen, dass man beliebig Störer auf die Strecke setzt und denen bestimmte Eigenschaften mitgibt. Einer könnte zB ganz helles Gelb verschütten, was eine Sichtverschlechterung der Sensoren bedeutet und und und...

    Tja ich schweife ab, sorry.

    Als konkrete Frage noch, wie hast du die Sensor-Daten-Aufnahme gestaltet? Kann man da eine beliebige Strecke zeichnen. Ist doch sicher ein Canvas auf dem ein Rechteck rumwackelt. Wäre interessant zu sehen wie das Fahrzeug bei zu dünner Leitlinie gebändigt werden kann.

    sast

    雅思特史特芬
    开发及研究

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von vohopri
    Registriert seit
    11.09.2004
    Ort
    südlich der Alpen
    Beiträge
    1.708
    Hallo,

    das ist ja ein Menge von Anregungen und Ideen! Super, danke!

    @ Programmierung:
    Im ersten Anlauf ist bei mir sowas nicht wirklich objektorientiert, sondern prozedural geschrieben. Aber die Aufteilung der Aufgaben in Prozeduren hat schon eine Struktur, dass es dann nur ein formales Überarbeiten ist, um aus den Prozeduren ein Objekt Fahrzeug zu erstellen.
    So ist die Source auch nicht sehenswert. Zudem bin ich nur ein Hobbyist.

    Mein Interesse liegt mehr bei den Algorithmen und der Diskussion darüber.
    Da beantworte ich konkrete Fragen gerne auch mal genauer.

    @ Andere Fahrzeuge:
    Das was ich mir hier mit dem Simulator erarbeite, soll in die realen Fahrzeuge einfliessen.Das Landfahrzeug soll eine verbesserte Bahnsteuerung bekommen. Und beim Solarboot weiss ich noch überhaupt nicht, wie das Regelverhalten sein wird. Der Autopilot funktioniert am Trockenen, aber das Verhalten des Geamtsystems in der Zeit kenne ich noch nicht. Das werd ich mir anschauen und dann Verbesserungen simulieren.

    @Trägheit:
    für so kleine Spielzeugfahrzeuge auf dem Land spielt die Trägheit meistens kaum eine Rolle, wohl aber beim Schifferl. Da wird das ganz wichtig sein.

    @Zeit:
    bei jedem Update ist definiert, wieviel Zeit vergangen ist. Das ist voll berücksichtigt. Entsprechend der vergangenen Zeit, der Geschwindigkeit und dem Lenkwinkel wird die Translation oder Rotation berechnet.

    @Mehr Stufen:
    Wenn der rechte Sensor vom Leitstreifen geraten ist, lenke ich um eine Stufe nach links. Wenn beim nächsten Update der Sensor immer noch draussen ist, dann lenke ich eine weitere Stufe nach links, wenn er aber schon wieder auf dem Streifen ist, lenke ich eine Stufe zur Mitte. Und so weiter.

    @Seitenwind:
    Bei Fahrzeugen, die mit dem Algo fahren, gibt es keinen Seitenwind. Bei Fahrzeugen, für die Seitenwind relevant ist, muss man sich was besseres einfallen lassen. Aber jetzt ganz im Ernst: für die Kreuzungen der Pfade mit sich selbst könnte man den Bereich in der Mitte intensiver einfärben. Ohne viel Änderung in der Verarbeitung könnte man ohne Aussetzer in der Führung über diese Kreuzungen fahren. Bei Kreuzungen vollständig unterschiedlicher Pfade könnte man unterschiedliche Farben für die Wege und Mischfarben auf den Kreuzungen verwenden. Durch Filten der Farbbits, tritt dann die Kreuzung gar nicht in Erscheinung.

    @Ansicht der Applikation:
    Da gibts noch nicht viel zu sehen. So lange noch am Code gearbeitet wird, ändere ich Parameter als Konstanten im Code. Wenn der Code in diesem Bereich stabiler wird, dann lege ich die Steuerung auf die Oberfläche. Das wird jetzt für Maximalausschlag und Inkrement der Lenkung gerade gemacht. Während der Entwicklung sind immer auch jede Menge obsoleter Steuerinstrumente zu sehen, mit denen getestet wurde, und die noch nicht beseitigt wurden.

    @Sensordatenaufnahme:
    Das Ganze sind 2 Images übereinander liegend. Ins untere ist das Bild mit dem Pfad, Hindernissen, usw. geladen. Das darüber liegende hat einen transparenten Hintergrund. Da übermale ich das alte Rechteck weiss und das Rechteck an der neuen Position wird schwarz gemalt. Was unter den Sensoren liegt, das wird im Pfadbild nachgesehen. Und schon gleitet das Fahrzeug elegant über die virtuelle Landschaft. (Nix wackeln )

    grüsse,
    Hannes

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.06.2005
    Ort
    DD
    Beiträge
    519
    Hihi, sowas ähnliches hab ich vor vielen Jahren auchmal geschrieben: https://www.roboternetz.de/phpBB2/ze...ag.php?t=11934 (nicht mehr alle Links aktuell..[und ich hab nichtmal geantwortet..schlimm schlimm ])

    Wie hast du das mit den Schnittpunkten gelöst? Hat das Gefährt eine Art Dynamik, oder gibt es ein internes Abbild der Spur?

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von vohopri
    Registriert seit
    11.09.2004
    Ort
    südlich der Alpen
    Beiträge
    1.708
    Hallo äh,

    ist ja auch eine gute Idee, soetwas zu simulieren. Hast du Animationen auf Video? Da könnte man gut den Einachser mit dem Zweiachser vergleichen.

    Der Umgang mit den Schnittpunkten ist weiter oben im Thread beschrieben. Die Kreuzungen dienen nur dazu, einen längeren Testkurs unter zu bringen, drum hab ich da nichts besonderes ausgearbeitet, sie funktionieren recht gut.

    Was meinst du mit Dynamik und innere Spur? Weiter oben steht, wie die Lenkung und der Algo gestaltet sind. Daraus ergibt sich das Verhalten. Auch wie die Sollspur vorgegeben wird, ist beschrieben.

    Hi all,

    Den Algo hab ich noch weiter ausgearbeitet. Der Lenkausschlag ist jetzt proportional zur Geschwindigkeit. Wenn mehr Zeit vergangen ist, muss ich grössere Fehler ausregeln können Wenn wenig Zeit vergangen ist, dann sollen sich die Steueraktivitäten auch nicht zu starkt aufsummieren.

    Zusätzlich hab ich, wie geplant eine Regel eingefügt, die nach Verlassen der Spur mit BEIDEN Sensoren für einen sinnvollen Lenkausschlag zurück sorgt. Es wird auf die Seite gelenkt, wo zuletzt der Leitstreifen gesehen wurde. Wieder zunehmend bis zum Volleinschlag.

    Bei der folgenden Demo habe ich das provoziert, damit man es gut sieht. Der Lenkeinschlag wurde auf 30° begrenzt, was für 2 Kurven deutlich zuwenig ist.

    Bild hier  

    VIDEO

    grüsse,
    Hannes

Seite 1 von 5 123 ... LetzteLetzte

Berechtigungen

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

LiTime Speicher und Akkus