Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.python > #4475
| 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> |
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 | Next — Next in thread | Find similar
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