Entwickler-Ecke

Gemeinschaftsprojekte (alt) - Sandbox - Robotics Developement Studio


Hidden - Sa 28.03.09 19:56
Titel: Sandbox - Robotics Developement Studio
Hi :wave: :wave:

Seit längerer Zeit spukt in meinem Kopf eine Idee herum, ein etwas größeres Projekt mit teilweise verknüpften Teilbereichen, von denen aber ein paar für sich recht schnell lauffähig wären. Zusammen kennen wir sicher auch ein wenig an bestehenden Komponenten und Code-Bibliotheken(Code-Editor, Quelltext-Parser, Physik-Engine, ..), da vieles etwas elementarerer Natur ist.

Da ich auch brav die Regeln dieser Sparte gelesen habe, laufe ich jetzt mal die Punkte ab:
  1. Projekttitel: Sandbox - ein Roboting Developement Tool. (zu diskutieren :))
  2. Projektbeschreibung inkl. Ziel des Projektes
    Sandbox ist ein Programm, das zunächst IDE(-> Programmierung), später Simulator(-> Test) und dann auch Download-Manager(-> Übertragen des Programms) zur Erstellung von Robotersoftware sein will.

    IDE
    Zunächst will ich mich auf die wohl verbreitetsten Roboter, RCX und NXT von Lego Mindstorms, konzentrieren. Erweiterungsvorschläge auf andere Systeme nehme ich aber gerne an :D

    Mir ist aufgefallen, dass Roboter bei fast allen Wettbewerben und komplexeren Aufgaben ein Programm benötigen, das Orts- und Fortschrittsinformationen in strikt getrennten Programmschleifen umsetzt. Auch das Auslagern von Programmteilen in getrennte Textdateien kann dem nur teilweise gerecht werden, da dies zu sehr vielen, teilweise 5-zeiligen, Dateien führt und damit alles andere als übersichtlich ist.

    Die Anzeige des Quelltextes wird deshalb auf Tabs mit Initialisierung, Konstanten, Methoden, Tasks, einer Phasenübersicht und dem Gesamtquelltext aufgeteilt. Das Programm kann mit einstellbarer Geschwindigkeit getestet werden, dabei kann der Sensorinput frei eingestellt werden.

    Simulator
    Geplant ist eine Umgebung mit getrennt gestaltbaren Karten für Hintergrundbild(-> Foto hereinladen), blockierenden Wänden, detektierbaren Farben sowie mehreren Skizzenebenen.

    Außerdem wird es Objekte geben, die der Natur nach alle Roboter sind. Eine Wippe demnach, oder eine Bodenwelle, könnte zusätzlich innerhalb ihrer Bewegungsmöglichkeiten ein beliebig komplexes Programm ausführen.

    Zunächst soll sich noch alles in 2D abspielen; durch Rechnung mit Vektorklassen aber leicht auf 3D erweiterbar.

    Programmdownload - für den RCX von Lego Mindstorms existiert bereits eine Komponente; die verbreitete IDE BricxCC [http://bricxcc.sourceforge.net/] ist mit Delphi geschrieben.

  3. Verwendete Sprache: Delphi/Object Pascal.

  4. Lizenz: Open Source oder frei verwendbar.


  5. voraussichtliche Projektdauer: IDE evtl. bis Sommer. Danach Neuorientierung bzgl. Dimension des Simulationsprogramms.

  6. ToDo-Liste:

    • IDE

      • Editor: Komponente verwenden? Zeilenmarkierungen für Breakpoints und Nummerierungen benötigt
      • Menüleiste und Toolbar
      • Konvertierbarkeit zu bestehender Software(BricxCC, Robolab, NQC-Software).
        :arrow: alpha-Version, Phasenbasierte Codeansicht verwendbar.

      • Parser und variable Code-Bibliothek
        :arrow: Elemente der Sprache und Operatoren per Formular hinzufügbar
        :arrow: Color-Highlighting entsprechend wählbar für Oberklassen wie Operator, Zahl, .., denen die Sprachelemente zugeordnet werden müssen.
        :arrow: Datei-Format für Code-Bibliothek und zugeordnetes Highlighting
      • Code-Bibliotheken vorbereiten: BricxCC, Pascal, ..
      • Parser-Erweiterung zur Ausführung des Programms
      • Programmtest-Umgebung mit Breakpoints, Step, Run, etc.

    • Simulator

      • grundlegende Objektlogik
      • Design-Umgebung für Objekte und Terrain/Labyrinth(der logik nach auch ein Objekt, kann in ein größeres Labyrinth als Objekt eingefügt werden)
      • Testumgebung zum Programmenwurf



  7. zeitlicher Ablauf: Reihenfolge wie in ToDo-Liste gruppiert. Erster Teil auf jeden Fall in mittlerer Zeit realisierbar. Arbeitsaufwand und Zulauf für Code-Ausführung und Robotersimulation vorerst schwer abschätzbar.

  8. benötigte Fähigkeiten der Team-Mitglieder:
    Aufgaben sehr vielseitig, vermutlich für jeden etwas dabei ;)

  9. sinnvolle Teamgröße:
    Genug Teilgebiete haben wir ja :) Wie viel wir umsetzen, müssen wir dann sehen. Insofern können wir glaube ich mit einem kleineren Team effizient arbeiten und hätten trotzdem schnell Erfolge. Nach oben würde ich dann aber erstmal keine Grenze setzen.

  10. Organisation innerhalb des Teams (Prozess der Entscheidungsfindung):
    U. A. Skype, TeamViewer, TeamSpeak, EE und ICQ möglich.

So, dann hoffe ich mal auf rege Beteiligung. Sofern sich jetzt hier nicht die Rückmeldungen häufen, auch gerne das ein oder andere "vielleicht".

Im Anhang habe ich mal zur besseren Vorstellung das hochgeladen, was ich bislang entworfen habe.

Hier ein paar Fälle, bei denen eine phasenbasierte Programmierung sinnvoll wäre:
mfG,


GTA-Place - So 29.03.09 18:04

Für die Ansteuerung des NXT könnte ich unter Umständen meine NXT-Delphi-Lib zur Verfügung stellen, wenigstens in Form einer DLL.


Hidden - Do 02.04.09 19:48

*push*


Webo - Do 02.04.09 21:30

Das Projekt hört sich richtig cool an, habe selbst noch einen Lego Mindstorms Roboter hier stehen. Morgen werd ich mir das ganze nochmal genauer anschauen ...


der organist - Mo 06.04.09 08:42

Lieber Hidden,

ich denke, dass es da eine ganze Reihe von Interessierten (mich eingeschlossen) gibt. Main Problem dabei ist nur, die ToDo-Liste beschreibt zwar was gemacht werden muss, aber ich hab absolut keine Ahnung, wie ich einzelne Dinge davon anstellen soll. Soll heissen, das ich mich in dem Gebiet (wie auch vielen anderen bei Delphi) einfach als Anfänger beschreiben muss....
Wenn du noch hinzufügen könntest, welche Komponenten du da verwenden willst, etc, wie das Programm grundsätzlich aussehen soll, das würde einiges helfen.


fireworker - Di 21.04.09 20:56

Hallo Leute,

Aus reinem Interesse und um die Übersicht zu bewahren, wollte ich allgemein mal fragen:
a) Wie viele haben Interesse an diesem Projekt, bzw. macht mit?
b) Gibt es schon weitere Fortschritte?

mfG


Hidden - Di 21.04.09 21:39

Hi :)

Sry, dass ich auf Lukas' Beitrag nicht sofort reagiert habe, aber ich hatte erst einmal anderes zu erledigen :)

user profile iconder organist hat folgendes geschrieben Zum zitierten Posting springen:
Wenn du noch hinzufügen könntest, welche Komponenten du da verwenden willst, etc, wie das Programm grundsätzlich aussehen soll, das würde einiges helfen.
Tja, mal abgesehen von den ganz grundlegenden Komponenten wie TRichEdit(die du ja per Skype angesprochen hattest): Es existieren sicherlich bereits Komponenten für einen Editor mit Zeilenmarkierungen und der Möglichkeit, Icons oder Zeilenmarkierungen(wie in Delphi z.B. für Breakpoints) zu setzen.

Die andere Sache wäre ein möglichst flexibler Quelltext-Parser(Lesekopf-Programm, das die Eingaben interpretiert und in Machinensprache umsetzt). Dort werde ich mich einmal umsehen und, wenn ich nichts nach meinem Geschmack finde, mal ein erstes Konzept entwickeln.

Zum Aussehen: Ein erstes Layout befindet sich ja oben im Screenshot, oder was willst du genau wissen? ;)

mfG,


Delete - Mi 22.04.09 19:20

Moin!

Ich würde mich gerne bewerben um einen Teamplatz.Vor einem Jahr , habe ich auch daren gedacht sowas in der Art zu schreiben , aber irgendwie kam etwas dazwischen und ich habs dann dochnicht gemacht.Beim Simulator könnte ich mit DirectX9 aushelfen um die Umgebung anschaulicher zu gestalten.



€:Habe die Mindestanforderungen grade erst gesehen. ;)

MfG , j.klugmann


Delete - Fr 24.04.09 19:38

Gibts irgendwann auchmal eine Meldung von Hidden? ;)


Hidden - Fr 24.04.09 20:48

user profile iconj.klugmann hat folgendes geschrieben Zum zitierten Posting springen:
Gibts irgendwann auchmal eine Meldung von Hidden? ;)
Na kar, pünktlich zum Wochenende :D
Wir würden uns selbstverständlich freuen, dich dabei zu haben :welcome:

Alles weiter mache ich mal gerade per PN: Ich weiß nicht, was davon das Team genau in dieser Sparte sehen will :)

mfG,


freak4fun - Fr 24.04.09 23:21

Hi,
also um ehrlich zu sein, habe ich den Sinn des Projektes noch nicht ganz erfassen können. Kann das vieleicht noch mal einer erklären?

Ich verstehe das so: NXT mit Delphi programmieren. :)

Wir programmieren zur Zeit den NXT mit Java / leJOS. ;)


Hidden - Fr 24.04.09 23:46

Hi :)

Grundlegend gibt es da zwei Ziele, die so noch nicht von anderen Programmen umgesetzt wurden :)

Zum einen die Kompatiblität zwischen den gängigen Sprachen: NQC- oder Java-Quelltext lässt sich bisher nur schwer in die graphisch ausgelegten Sprachen portieren. Das sollte jetzt quasi mit einem Knopfdruck gehen. Kompliziertere Konstrukte wie manche Klassen müssten aber nach wie vor von Hand übersetzt werden.

Außerdem ein Programmtest ohne Übertragung auf den Roboter. Damit fällt auch das Problem weg, dass ein Labyrinth normalerweise etwas längere Bauzeit und größeren Aufwand hat. Es ist also möglich, "mal eben" ein neues Labyrinth zu erstellen oder auch den Bau eines Labyrinths im Voraus zu planen.

mfG,


Mitmischer 1703 - Sa 25.04.09 10:27

Ich würde auch gerne mitmachen :)

Ich denke nicht, dass ich sooo gut programmieren kann, aber die Grundlagen habe ich (und arbeite mich grad an Indy heran=))

MfG,

Mitmischer 1703


Delete - Sa 25.04.09 11:53

Ich wusste das der Mitmischer mitmischt.Also ich würde mich über Verstärkung freuen.Die Entscheidung liegt bei Hidden. ;)


Hidden - Sa 25.04.09 12:00

Hi :welcome:

Musste gerade mal auf Safari umsteigen^^ sobald der FF aufhört, vom aktivieren der neuen Add-Ons zu laggen, bekommst du auch deine PN :)

mfG,


Mitmischer 1703 - Sa 25.04.09 13:09

Starte doch mal abgesichert ;)