Standalone (oder fähig zu sein) Robotics Simulator

13

Ich bin ein Software-Ingenieur, der sich freiwillig für eine gemeinnützige Organisation engagiert, die junge Mädchen in die Technologie einführt. Wir haben kürzlich über Methoden gesprochen, um diese Kinder in die Welt der Robotik einzuführen, und ich bin gespannt, welche Arten von kostengünstigen Optionen wir haben.

Eine sehr ansprechende Idee wäre ein Online-Simulator oder (noch besser) ein Offline-Standalone-Simulator, mit dem wir einfache Roboter bauen und programmieren können. Vielleicht nichts weiter, als Komponenten zusammen zu ziehen und dann die Interaktionen zwischen diesen Komponenten zu programmieren.

Welche Lösung (en) gibt es, die ich in unserer Öffentlichkeitsarbeit nutzen könnte?

Sampson
quelle
Nach meiner Erfahrung erhält ein nicht funktionierender, durchschnittlich aussehender Roboter viel mehr Aufmerksamkeit (als ein Roboter) als ein ausgewachsener, cool aussehender Roboter in einem Simulator. Solange es nicht echt ist, kann es auch ein Computerspiel oder ein Cartoon für alle Kinder sein.
Shahbaz
Wir brauchen einen Simulator, damit die Mädchen Programmierkonzepte lernen und anwenden können. Der Simulator muss nicht hübsch sein - es kann sich nur um grobe geometrische Formen handeln. Auf den Code kommt es an.
Sampson

Antworten:

7

Stage und Gazebo sind Open Source 2D- und 3D-Simulatoren. Sie werden vom Player-Projekt erstellt und verwaltet . Sie sind sehr einfach zu bedienen und haben viele vorgefertigte Karten und Roboter. Abhängig von der Erfahrung Ihres Publikums müssen Sie möglicherweise ein wenig anstrengen (dh Konfigurationsdateien und die Hauptklassen erstellen).

Sie haben auch ein paar zusätzliche Vorteile. Erstens, solange Sie Ihren Hauptsteuerungscode als Player-Plug-Ins erstellen, können diese problemlos an echte Roboter angepasst werden. Zweitens gibt es eine große Anzahl von Plug-Ins, die bereits für die Arbeit mit echter Hardware entwickelt wurden. Drittens arbeiten sie mit ROS .

DaemonMaker
quelle
4

Vielleicht ist es ein bisschen teuer (CHF 75), aber ich schlage immer noch Colobot vor . Es ist eine schöne, fast spielerische Umgebung, in der Roboter den Menschen helfen müssen, eine Weltraumbasis bewohnbar zu machen. Roboter werden von den Kindern programmiert, während immer komplexere Aufgaben ausgeführt werden. Das Programm vermittelt die Grundlagen der Programmierung auf zielgerichtete, lustige Weise.

rics
quelle
3

Microsoft Robotics ist KOSTENLOS und enthält einen Simulator . Es ist nicht gerade die einfachste Umgebung der Welt, aber es ist robust und für echte Robotik geeignet. Ich denke, mit einigem Engagement des Lehrers, um die Dinge im Voraus einzurichten, könnte es brauchbar sein. Es gibt ein Simulator-Paket für LEGO, Neato und einige andere Roboter, die in C # oder einer visuellen Drag & Drop-Sprache programmiert werden können.

Wiederum denke ich, dass es einige Vorarbeiten erfordern würde, um es den Jugendlichen leicht zu machen, aber es wäre nicht so schwer, und wäre mein Ansatz angesichts Ihrer Anforderungen. Was die Komplexität angeht, würde ich sagen, dass dies (Windows) im Vergleich zu einer Linux-Umgebung mit Gazebo / ROS etwas weniger kompliziert ist, obwohl das meiste davon hoffentlich mit Vorbereitungsarbeiten verborgen bleibt.

Spiked3
quelle
2

RobotC verfügt über einen Simulator , obwohl beide Produkte kostenpflichtig sind. Sie sind jedoch sehr auf jüngere Studierende und Bildung ausgerichtet. Dies ist der einfachste und am besten geeignete Weg, wenn die Kosten kein Sperrfaktor sind ( ca. 100 USD pro Lizenz für beide für einen Benutzer, 300 USD für 6 Benutzer, 600 USD für 30 Benutzer ).

Wenn Sie die Studentenversion ROBOTC für MINDSTORMS NXT von LEGO kaufen, kann der Preis 49 $ für jede oder 40 $ (mehr als 20 Lizenzen) betragen.

Spiked3
quelle
2

V-Rep (Virtual Robot Experimentation Platform) scheint ziemlich breit in der Art von Simulationen zu sein, die es durchführen kann. Es ist kostenlos für Bildungszwecke und wird mit einer Vielzahl von Tools geliefert. Sie können sich dieses YouTube-Video für eine Demo ansehen .

Shahbaz
quelle
1

Vielleicht kein vollständiger Robotik-Simulator, aber wir verwenden 3D-CAD, Autodesk Inventor, ziemlich oft für Simulationen. In der Regel erstellen wir eine Schnittstelle zum CAD, die der gewünschten Schnittstelle für die Hardware entspricht. Auf diese Weise können wir das CAD-Modell als virtuellen Prototyp verwenden, um:

  • Designfehler frühzeitig erkennen. Kollisionen, zu wenig Hub etc.
  • Es war auch nützlich, um Kompensationen für Fehler wie Ausrichtungsfehler zu finden. Mit dem CAD können wir nacheinander verschiedene Fehler modellieren und unsere Kompensationen testen. Es ist zweckmäßig, große Fehler mit bekanntem Vorzeichen einführen zu können.
  • Der CAD gibt auch Antworten zu solchen Trägheitsmomenten.
  • Wir verwenden auch das CAD-Modell, um das Programm für die Ausrüstung zu generieren.
Johan Larsson
quelle
Korrigieren Sie mich, wenn ich falsch liege, aber CAD konzentriert sich sehr auf die korrekte Modellierung von Hardware und Physik, geschweige denn auf die Programmierung des Roboters. Das OP ist daran interessiert, Programmieren zu unterrichten, nicht Ingenieurwesen, daher denke ich, dass ein CAD-System sein Problem nicht
angeht
@ThomasH Wir hatten einige Erfolge bei der Programmierung der API des CAD und konnten auf diese Weise viel entwickeln. Soll ich löschen?
Johan Larsson
1
Keine Notwendigkeit zu löschen. Es ist keine schlechte Antwort, nur weil ich denke, dass es nicht gut zur OP passt. Das Wählen treibt normalerweise die passendste Antwort sowieso nach oben, und das OP akzeptiert diejenige, die am meisten geholfen hat. Aber vielleicht sind Sie immer noch für jemanden von Interesse, der ein ähnliches Problem hat und auf diese Frage
stößt
1

Vielleicht möchten Sie " MindRover " ausprobieren . Es ist alt und schwerer zu finden, da die ursprüngliche Website nicht mehr existiert, aber immer noch bei Ebay oder Amazon zu finden ist . Obwohl spiel- / missionsorientiert, mussten sie aus einer Palette von Roboterkomponenten ausgewählt, auf ein Chassis gesetzt und dann miteinander verbunden werden. Es war wirklich gut für ein Spiel gemacht und konnte verwendet werden, um einfache bis mittelschwere Konzepte zu erkunden. Einige Screenshots hier: http://images.google.com/images?q=mindrover .

Wenn Sie nach etwas Ernsthafterem mit realen Fähigkeiten suchen, sollten Sie FlowStone for Education ausprobieren . Ich habe es nicht benutzt, aber ich glaube, es ist eine visuelle Programmierumgebung, die sich ideal für Arbeiten mit Robotern eignet.

Zuletzt, obwohl keine Software oder Simulation, stieß ich vor kurzem auf einen Kommentar zu reddit von phblj bezüglich einer Technik zur Einführung der Programmierung , und ich fand sie wirklich gut (und besonders anpassbar an die Roboterprogrammierung). Zitat:

Tolles Beispiel für Computer, die ich mit Kindern gemacht habe: Ein Kind musste das "Programm" sein und gab Anweisungen, wie man ein Erdnussbutter-Gelee-Sandwich macht, aber sie konnten meine Handlungen nicht beobachten. Ich war der Computer und befolgte die Anweisungen genau. Heiterkeit war die Folge. (Den Deckel nicht von der Erdnussstange nehmen, kein Brot aus der Schachtel holen, in der ich es hatte). Nach einer Minute kam ein anderes Kind und versuchte es. Sie kamen ein Stück weiter, aber sie zappelten immer noch. "Lege die Erdnussbutter auf das Brot" führte dazu, dass das Glas auf dem Laib saß usw. Es brauchten mehrere Kinder, aber irgendwann bekamen wir es. Wenn Sie einen Assistenten haben, lassen Sie ihn die Anweisungen wie gesagt schreiben und das "Programm" erstellen.

Man kann sich dann auf Erklärungen einlassen, aber die Sache, die wirklich steckte, war, dass die Kinder jeweils "schlauer als ein Computer" waren. Aber diese Computer waren wirklich sehr, sehr schnell darin, Anweisungen zu befolgen. Also mussten sie ihre Intelligenz und die Geschwindigkeit des Computers einsetzen und ... programmieren!

kaliatech
quelle