Robotersimulations-Software mit C++ Schnittstelle

  • Hallo,


    kann mir jemand sagen ob es eine Robotersimulationssoftware
    gibt welche eine sehr umfangreiche Visual C++ Schnittstelle besitzt?


    Damit man versteht was ich unter "umfangreich" verstehe, hier
    eine Aufgabenstellung.
    Ich würde gerne zwei Roboter an eine Tischtennisplatte stellen.
    Jeder bekommt einen Schläger und dann werfe ich per C++ einen
    Ball ins Spiel und die beiden Roboter spielen drauf los. Die Strategien
    würde ich in C++ entwickeln und müssen halt auf die Simulation einwirken.


    Gruß
    Twister

    Kleinere Wunder werden sofort erledigt... größere nach der Mittagspause...

  • ANZEIGE
  • Hallo Twister,



    Weitere Frage: soll die Simulation nur die Visualisierung beinhalten, und den Rest rechnest Du selbst, oder auch die Robotersteuerung.



    Ich kann Dir ja mal kurz schreiben, wie ich das bei meinem KR6 Simulator mache
    SimuKR6.


    Es handelt sich hierbei nur um die Visualisierung, die Robotersteuerung ist OfficeLite.


    Grundlage sind die CAD-Daten von Robotern. Kuka stellt diese zum Beispiel zur Verfügung. Die sind dann in VRML (Virtual Reality Modeling Language) Dateien übersetzt worden, hier ein Link zu dieser Arbeit. Dann braucht man einen Player, ich benutze den InstantPlayer vom Frauenhofer Institut.


    Eine Tischtennisplatte und einen Ball in VRML zu programmieren, ist easy.


    Es gibt eine Java Schnittstelle, mit der die virtuelle Szene beeinflußt werden kann. Die heißt EAI, External Authoring Interface. Für meinen KR6 sind es die 6 Achsen-Winkel, die verändert werden können. Du kannst eine hohe Bildfrequenz erzeugen, 25 Bilder/Sekunde stellen kein Problem dar.


    Um das ganze mit einem C++ Programm zu verbinden, nutzt Du einfach "Sockets", UDP oder TCP. Ich habe zum Beispiel für mein Projekt einen Server in C++ geschrieben, der in OfficeLite über die Crossschnittstelle die Achswinkel ausliest, und sie dann an die Java-Schnittstelle weitergibt.


    Diese ganze Architektur könnte man für Dein "Spielprojekt" :mrgreen: anpassen. Dein C++ Programm müßte dann allerdings nicht nur die Position des Balles, sondern auch die Achsbewegungen berechnen (deswegen meine Frage am Anfang).



    Viele Grüße,
    Tilman/Frankreich


    PS: das wäre auch ein schönes Projekt für meine Schüler bei der IMERIR :lol:.

    Einmal editiert, zuletzt von Tilman ()

  • Hallo,


    ich hab mir die DLL-Version von Easyrob auf der Homepage angeschaut.
    Das sieht ja schon mal sehr gut aus.
    Ein Satz hat mich aber ein wenig gestört:
    "...Die EASY-ROB™ DLL Version beinhaltet den Funktionalitätsumfang
    der Single-Robot Version, zuzüglich der Optionen Multi-KIN..."
    Das bedeutet wohl dass nur ein Roboter simuliert wird. Lieg ich da richtig?


    Hauptsächlich gehts mir darum dass ich ein "solide" Grundsoftware
    habe mit der ich nicht gleich an Grenzen stoßen möchte und dann
    natürlich vom jeweiligen Hersteller aktuell gehalten wird was zukünfigte
    Datenformate betrifft.


    Ich hab mir in C++ selbst einen STL-Import programmiert. Das ist ja noch einfach
    da nur Dreiecke in der Datei gespeichert sind. Allerdings halt wirklich nur
    Dreiecke. Ich hab dann keine Oberflächenfarben, kein Kinematikachsen, Massen
    und Trägheiten wären auch nicht schlecht. Andere 3D-Formate sind komplizierter
    aufgebaut und haben Parametrik und andere Optionen welche auch immer wieder
    erweitert werden. Deshalb würde ich gerne die komfortable Importmöglichkeit
    einer solchen Software nutzen um beliebige CAD-Modelle in meine Simulation zu laden.
    Absolut Top wär Quellcode welcher mir die gängigsten CAD-Formate in Dreiecke
    umrechnet fürs OpenGL. Naja... man darf ja träumen. :)


    Das ganze in Hardware umzusetzen ist dann doch ein bissel sportlich für
    so nebenher. Ich denke dass hier der Ball Probleme machen würde. Wann ist
    das Ding wo, wie schnell, welchen Drall... Und in meiner Simulation sind
    die Roboter ja auch viel schneller als in der Realität. Aber wenn so eine
    Simulation mal läuft kann man gut abschätzen ob es Sinn machen würde es
    real aufzubauen. (Was ich aber wirklich nicht plane)


    Tilman
    Ich habe kein OfficeLite (leider), hab mir die wichtigsten Roboterbewegungen
    LIN/PTP selbst in C++ nach programmiert. Und als ich in einem Thread mal
    drauf hingewiesen habe dass dein "Paket" am Roboter zu groß ist, dann nur
    weil mein Roboter mit solch einem Paket umfallen würde. ;)


    Vielen Dank für Eure Hilfe


    Gruß
    Twister

    Kleinere Wunder werden sofort erledigt... größere nach der Mittagspause...

    Einmal editiert, zuletzt von Twister ()


  • "...Die EASY-ROB™ DLL Version beinhaltet den Funktionalitätsumfang
    der Single-Robot Version, zuzüglich der Optionen Multi-KIN..."
    Das bedeutet wohl dass nur ein Roboter simuliert wird. Lieg ich da richtig?


    Das ist meines Wissens nach nur eine Frage der Preisgestaltung. Die Standardversion des Programms gibt es in einer preiswerten Version, die nur einen Roboter simuliert. Will man mehrere Roboter gleichzeitig, muss man die Option dazu kaufen. Wenn da steht die Option ist enthalten, bedeutet das doch wohl, mit dieser Version kann man mehrere Roboter simulieren.



    Die Raumpositionen aller Objekte würde ich schon selbst rechnen. Hierzu verwende
    ich eine Physic Engine welche mir alle Kollisionen berechnet und dynamisches Verhalten
    realisiert.


    Einen Roboterarm zu zeichnen ist in OpenGL auch nicht so schwierig.


    Vorwärtskinematik ist auch nur Matrizenrechnung. Rückwärtskinematik ist in diversen Schriften beschrieben, benutz mal die Suchfunktion.

  • Hallo Twister


    Zitat

    Ich hab dann keine Oberflächenfarben, kein Kinematikachsen, Massen und Trägheiten wären auch nicht schlecht.


    Gerade deswegen habe ich VRML gewählt. Konvertierungstools gibt es zum downloaden (oder sind bereits in der CAD Software drin), zum bearbeiten der Szene benutze ich Flux-Studio. Den ganzen Rest... Oberflächenfarben, Beleuchtung, Kinematikachsen... sind dann super einfach zu realisieren. Und den Player gibt es auch umsonst (für nicht kommerzielle Anwendungen). Wenn es also nur um die Darstellung gehrt, würde ich mich nicht mit OpenGL abmühen.


    Zitat

    dass dein "Paket" am Roboter zu groß ist


    Hallo, hallo. Ich programmiere nur High-Tech Anwendungen :lol:. Die Kiste ist natürlich aus Aerogel.


    Viele Grüße,
    Tilman

  • Hallo,


    @St.Anton
    Wenn die Software dann soweit fertig ist soll sie schon kommerziell genutzt werden. Jedoch nicht um virtuell Tischtennis zu spielen. Das ist mein privater "Splin".


    Tilman
    Ich werd mir das Flux-Studio mal anschauen. Hab auch schon mit dem
    Gedanken gespielt eine "Game-Engine" mit rein zu nehmen. Da gibts
    auch tolle Grundfunktionen. Ist aber dann wohl ein bissel zu viel. Ziel der
    Software soll ja keine super Grafik sein sondern nen technischen Hintergrund.


    Gruß
    Twister

    Kleinere Wunder werden sofort erledigt... größere nach der Mittagspause...

  • Sieht gut aus.


    Hast du damit in den letzten 2 Jahren deine Freizeit verbracht ? Ich hoffe, es gibt noch ein Leben ohne Kuka Roboter ? :zwink:


    Darf man fragen, mit welcher Engine das jetzt gemacht wurde ? Das letzte Video sieht ja so aus, als ob das schon ein kommerzielles Produkt geworden ist.


    Grüße


    Urmel

  • Naja, das Freizeitprojekt hat mit Sicherheit einige lange Nächte beschert. ;)
    Die echte Roboterzelle und die Simulationsoftware war auf der Messe TUBE&WIRE im März 2012 zu sehen.
    Engine bleibt mein Geheimnis.


    Gruß
    Twister

    Kleinere Wunder werden sofort erledigt... größere nach der Mittagspause...

    Einmal editiert, zuletzt von Twister ()

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden