Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.python > #4475

RRT mit Python

Newsgroups de.comp.lang.python
Date 2016-06-24 12:37 -0700
Message-ID <c72daf0d-d11b-41f0-9299-03b23f870ac7@googlegroups.com> (permalink)
Subject RRT mit Python
From Manuel Rodriguez <aa5@gmx.net>

Show all headers | View raw


Hallo,
das ist mein erstes Posting hier in der Gruppe. Keineswegs soll hier
der Versuch unternommen werden, Python schlechtzumachen, ganz im
Gegenteil. Python ist eine der besseren Programmiersprachen. Besonders
bemerkenswert ist die Eigenschaft in wenigen Zeilen Code elaborierte
Programme zu schreiben. Und wirklich langsam ist Python auch nicht,
weil es jedem frei steht, Erweiterungsbibliotheken in purem C-Code zu
schreiben und über import einzubinden.

Aber genug der Vorrede, ich möchte zum eigentlichen Thema kommen. Und zwar
habe ich mir für den Anfang ein Problem aus der Robotik herausgesucht
und zwar die Erstellung eines Rapidly-exploring random tree (RRT). Der
soll mit Hilfe von unterschiedlichen Instanzen von Box2D arbeiten um so
als Solver zu fungieren.

Eine erste Version ist bereits erstellt, keine Angst den Sourcecode gibt
es hier nicht zu sehen. Vielmehr geht es allgemein darum, wie man ein
derartiges Problem struktuiert. In der aktuellen Version wird der RRT
Tree als Klasse implementiert und die einzelnen Nodes als Array innerhalb
dieser Klasse. Leider hat das zur Folge, dass das etwas unübersichtlich
ist. Es gibt ziemlich viele Methoden und noch mehr Variablen. Erschwerend
kommt hinzu, dass man dabei sowohl in der Zeit vorwärtsgeht als auch
unterschiedliche Abzweigungen verwaltet.

Die generelle Frage die mich umtreibt ist, ob und welche
Datenstrukturen man einsetzen sollte, für derartige Probleme. Eine
Recherche bei Google hat bisher nur wenig Informationen gebracht. Es
gibt einerseits die RRT Tree Referenzimplementierung von Lavelle,
http://msl.cs.uiuc.edu/~lavalle/code.html und zum anderen einen
ausgewachsenen Motion Planner genannt OMPL. Die Lavelle Version ist zwar
schön übersichtlich, ist jedoch nicht dafür gedacht um unterschiedliche
Physik-Engine-Instanzen zu verwalten. Die OMPL Software hingegen ist
zwar leistungsfähig, setzt aber auf C++ als Programmiersprache und ist
didaktisch gesehen eine Katastrophe.

RRT Bäume sind eng verwand mit Backtracking und A* Algorithmen. Hier wird
häufig Rekursion eingesetzt die auch in Python realisierbar wäre. Aber,
Rekursion ist nicht gerade etwas, was leicht verständlich ist. Gibt es
womöglich noch etwas, was ich übersehen habe?

Back to de.comp.lang.python | Previous | NextNext in thread | Find similar


Thread

RRT mit Python Manuel Rodriguez <aa5@gmx.net> - 2016-06-24 12:37 -0700
  Re: [Python-de] RRT mit Python Stefan Schwarzer <sschwarzer@sschwarzer.net> - 2016-06-25 10:32 +0200
    Re: [Python-de] RRT mit Python Manuel Rodriguez <aa5@gmx.net> - 2016-07-02 13:11 -0700
  Re: [Python-de] RRT mit Python "Dr. Volker Jaenisch" <volker.jaenisch@inqbus.de> - 2016-06-25 19:42 +0200
    Re: [Python-de] RRT mit Python Manuel Rodriguez <aa5@gmx.net> - 2016-07-02 13:14 -0700

csiph-web