- 12V Akku mit 280 Ah bauen         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Einfacher Robotersimulator für zweirädrige Roboter

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    12.02.2006
    Beiträge
    459

    Einfacher Robotersimulator für zweirädrige Roboter

    Hallo Zusammen,

    seit längerer Zeit schwebt mir vor, einen ganz einfachen Robotersimulator in Java zu schreiben.
    Früher gab es mal die Programmiersprache "Logo" mit der eine Schildkröte auf dem Bildschirm bewegt werden konnte.

    Roboter wie der Asuro oder NIboBee liesen sich so ganz gut darstellen.

    Hat schon mal jemand versucht, so ein Projekt zu realisieren?

    Gruß,
    robo

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    25.04.2010
    Beiträge
    1.249
    Was willst du denn genau Simulieren?
    Ein Bild vom Roboter übern Bildschirm flitzen zu lassen sit kein Ding.

    Vielleicht über ne Scriptsprache programmierbar?
    Sollen Sensoren mit einbezogen werden?
    Legst du Wert auf Kolisionen und Reaktionen darauf?
    Oder die Mechanik?
    ....

  3. #3
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.653

    Re: Einfacher Robotersimulator für zweirädrige Roboter

    Zitat Zitat von robo.fr
    ... einen ganz einfachen Robotersimulator in Java ... Hat schon mal jemand versucht, so ein Projekt zu realisieren ...
    Du kennst sicher, wie ich, die Vorschläge bzw. Wünsche, dass so etwas gemacht werden sollte (TEAM-Arbeit heisst das dann - T oll E in A nderer M achts). Aber eigentlich sage ich jetzt Hurraahhh zu Deinem Vorhaben. Ich kann mich nicht dranwagen - dazu fehlen mir die Programmier- (ein paar Physik-) Kenntnisse und vermutlich oder vor Allem der Biss dazu.

    Kennst Du den Mono Wheel Simulator von Christian H ? Zu Zeiten der absehbaren Fertigstellung von Murdoc_mm´s Mono Wheel Bot hatte Christian H einen Simulator geschrieben. Seine Arbeit fing mit diesem Posting an. Zwei, drei Seiten in dem Thread drehten sich dann um die verschiedenen Ausbaustufen des Simulators, später hatte ich dazu dann diesen Thread speziell zu diesem Simulator eröffnet. Das Ding wurde von Christian H sogar mit Autopilot ausgestattet und solchen tollen Dingen. Sollte für Murdoc_mm eine Hilfe bei der Softwareplanung sein.

    Der Simulator hiess damals einrad.exe, ich habe aber auf die Schnelle die hübschen Bildchen über die Simulationsergebnisse (tracking, Neigungswinkel, etc) vermisst. WENN Dich das interessiert, kann ich nach der *.exe suchen. Oder Du schreibst Christian H direkt ne Mail.

    ................Bild hier  
    ................Diese Simulatorfahrt auf die Schnelle . . .

    Prima Idee - auf alle Fälle ! ! *Grübelmurmelnachdenk* dann könntest Du mir gleich für (m)einen Zweirädrer eine physikgetreue Simulation für (m)eine Regelung bauen. DANN käm ich mit diesem Thema wohl wieder in die Gänge (ich bin sicher, dass Du weißt, dass dies NICHT ernst gemeint ist).
    Ciao sagt der JoeamBerg

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    09.05.2007
    Beiträge
    99
    Ich habe simbad aus dem Netz geladen. Das ist ein Roboter Simulator auf JAVA Basis. Verspricht somit auf vielen Plattformen lauffähig zu sein und ist unter meinem Windows XP extrem schnell und war dort simpelst zu installieren. Simbad ist (sogar) ein 3D Robot Simulator mit (kleiner) Physikengine und liegt (auch) im Quellcode vor.

    Genug Beispielcode ist vorhanden.

    Ich habe simbad probiert und war begeistert davon wie realistisch mein Roboter in meiner Arena mit Hilfe eines Distanzsensors den Hindernissen in der Arena ausweicht.

    Schön wäre, wenn ein orginal ASURO C-Programm den von simbad simulierten Roboter (nämlich dann den simulierten ASURO) steuern könnte.

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    12.02.2006
    Beiträge
    459
    Hallo Alle,

    vielen Dank für eure Antworten.

    Du kennst sicher, wie ich, die Vorschläge bzw. Wünsche, dass so etwas gemacht werden sollte (TEAM-Arbeit heisst das dann - T oll E in A nderer M achts). Aber eigentlich sage ich jetzt Hurraahhh zu Deinem Vorhaben. und vermutlich oder vor Allem der Biss dazu.
    Hallo Oberallgeier, das T-E-A-M Problem ist mir bekannt. Ich hatte auch schon Bedenken beim Verfassen des Posts. Morgen werde ich voraussichtlich mal ein Stückchen Code posten, damit mal ein Anfang gemacht ist.

    Ich kann mich nicht dranwagen - dazu fehlen mir die Programmier- (ein paar Physik-) Kenntnisse
    Nach den Projekten, die ich von Dir gesehen habe, kannst Du bestimmt einiges beitragen. Ich wollte den Simulator am Anfang auch ziemlich einfach halten und hoffe, dass das ganze Projekt nicht zu trivial erscheint. Die Welt in der sich der Roboter bewegt, soll flach sein, damit fallen Fallbeschleunigungen usw. schon mal weg.

    Simbad ist (sogar) ein 3D Robot Simulator mit (kleiner) Physikengine und liegt (auch) im Quellcode vor.
    Simbad habe ich schon gesehen, scheint mir im Moment allerdings noch zu kompliziert. Ich fände es besser, so ein Projekt von Null aufzuziehen und mitzuwachsen.
    Die 3D-Engine finde ich eher unpraktisch, weil es auf einer Standard-Java Installation nicht läuft und immer noch zusätzliche Libraries installiert werden müssen.


    Schön wäre, wenn ein orginal ASURO C-Programm den von simbad simulierten Roboter (nämlich dann den simulierten ASURO) steuern könnte.
    Für den Asuro reicht meiner Meinung nach die 2D-Version aus. Das C-Programm laufen lassen zu können, wäre natürlich toll. Eigentlich könnte man den Code für den Asuro mit dem GCC komplieren, wenn man die Funktionen der Asuro-Lib als Schnitstellenfunktion definiert.

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.653
    Zitat Zitat von robo.fr
    ... kannst Du bestimmt einiges beitragen ...
    Im Prinzip habe ich nix dagegen. Aber meine Javakenntnisse beschränken sich leider nur auf einfachste Modifikationen bestehender Codestückchen - z.B. Gummiband-Mauszeiger als Uhr oder Zeichnungen in HTML-Seiten; nix Komplexes!

    Die flache Erdscheibe ist ja, zeitlich gesehen, noch immer der Rekordhalter, das geht sicher gut. Und für meine Roboterrechnungen habe ich sogar ausschliesslich translatorische Bewegungsgleichungen . . . obwohl ich die hübschen asuro-Drehmessungen hier im Forum kenne.
    Ciao sagt der JoeamBerg

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    12.02.2006
    Beiträge
    459
    Hier gibt es meinen ersten Simulator-Versuch.

    Mit compile.bat lassen sich die zwei Java-Source-Files Robosim.java und Rotoer.java kompilieren. Mit start.bat kann der Simulator gestartet werden.

    Ok, zugegeben, das Programm ist etwas schlicht: Es zeigt einen blauen, im Kreis fahrenden Roboter.

    Ich habe die Bewegungsgleichungen für einen Zweirad-Roboer verwendet.

    Der Befehl

    robi.bewegen(x_schritt, y_schritt);
    ( in paintComponent )

    bewegt den Roboter indem das linke Rad um x_schritt und das rechte Rad um y_schritt bewegt wird. Daher kann man mit geeigneten Parametern den Roboer alle Bewegungen machen lassen Im Kreis drehen, gerade aus fahren, auf der Stelle drehen ...

    Falls einige Java-Experten unter euch sind, bin ich für Kommentare sehr dankbar.
    Angehängte Dateien Angehängte Dateien

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    12.02.2006
    Beiträge
    459
    Hier gibt es noch eine neuere Version 01.
    In dieser Version habe ich die Roboterklasse auf die Klasse Asuro vererbt.
    Code:
    		for(int n=0;n<10000;n++)
    		{
    			asuro.MSleep(500);
    			asuro.StatusLED(LedColor.GREEN);
    			asuro.MSleep(500);
    			asuro.StatusLED(LedColor.RED);
    			asuro.MotorSpeed(100,100);
    			asuro.MotorDir(AsuroMotor.FWD,AsuroMotor.FWD);
    			asuro.MSleep(400);
    			asuro.MotorDir(AsuroMotor.RWD,AsuroMotor.FWD);
    			asuro.MSleep(500);
    
    		}
    Jetzt kann man schon ein klein wenig den Asuro simulieren. Ich habe ein paar Asuro Befehle in Java gebaut, so dass man den Roboter damit steuern kann. Die StatusLED ist auch implementiert. Leider ist der Java-Style nicht ganz C-kompatibel, aber ich denke, man kann das Programm ziemlich leicht für den Asuro umbauen.
    Angehängte Dateien Angehängte Dateien

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    12.02.2006
    Beiträge
    459
    Im Prinzip habe ich nix dagegen. Aber meine Javakenntnisse beschränken sich leider nur auf einfachste Modifikationen bestehender Codestückchen - z.B. Gummiband-Mauszeiger als Uhr oder Zeichnungen in HTML-Seiten; nix Komplexes!
    Hallo Oberalgeier,

    was hältst du von dem Vorschlag, zur Übung die Back-LED Funktionen in der Asuro.java zu implementieren?
    Das könnte mit geringen Java Kenntnissen machbar sein und Du lernst viel.

    Beste Grüße,
    robo

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    12.02.2006
    Beiträge
    459
    Was willst du denn genau Simulieren?
    Ein Bild vom Roboter übern Bildschirm flitzen zu lassen sit kein Ding.
    Ok, das geht mitlerweile.

    Vielleicht über ne Scriptsprache programmierbar?
    Das eher nicht. Am besten wäre natürlich in der Orginalsprache und mit den Originalfunktionen des jeweiligen Roboters. Also vornehmlich in C. Soweit ich gesehen habe, gibt es in Java die Möglichkeit, externe C-Programme aufzurufen und Daten via Standard-IO auszutauschen. Meine ersten Versuche damit waren allerdings noch nicht von Erfolg gekrönt. Das externe C-Programm konnte zwar gestartet werden, der Datenaustausch hat allerdings nicht geklappt.
    Sollen Sensoren mit einbezogen werden?
    Auf jeden Fall, in der aktuellen Version wird ein Asuro modelliert und die Schalter als Sensoren benützt. Die Liniensensoren lassen sich noch einfach implementieren.

    Legst du Wert auf Kolisionen und Reaktionen darauf?
    Hindernisse sollten detektiert werden. Das wäre besonders interessant, wenn man mehrere Roboter gleichzeitig fahren lässt.
    Oder die Mechanik?
    Die Mechanik könnte man in gewissen Grenzen implementieren. Ich habe mich darum noch nicht gekümmert, deshalb fährt der Roboter noch etwas unrealistisch ruckartig. Für den Asuro gibt es schon relativ gute fertige Modell für die Motoren. Dies Modelle könnte man auf jeden Fall einbauen. Die Parameter ließen sich relativ einfach für andere Roboter wie z.B. den NiboBee einbauen.

    Im folgenden die neueste Version des Simulators: Es wird ein Hintergrundbild geladen und die Schalter erkennen die Farbe "Rot". Das Beispielprogramm lässt den Roboter soweit fahren, bis er auf ein rotes Hindernis trifft, dann kehrt er um.
    Angehängte Dateien Angehängte Dateien

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad