<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Rapidly-exploring_random_tree</id>
	<title>Rapidly-exploring random tree - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Rapidly-exploring_random_tree"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Rapidly-exploring_random_tree&amp;action=history"/>
	<updated>2026-05-25T20:47:49Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Rapidly-exploring_random_tree&amp;diff=2362171&amp;oldid=prev</id>
		<title>imported&gt;Invisigoth67: typo</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Rapidly-exploring_random_tree&amp;diff=2362171&amp;oldid=prev"/>
		<updated>2026-02-08T07:00:56Z</updated>

		<summary type="html">&lt;p&gt;typo&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Datei:Rapidly-exploring Random Tree (RRT) 500x373.gif|mini|Rapidly-exploring Random Tree (RRT) 500x373]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rapidly-exploring random tree (RRT)&amp;#039;&amp;#039;&amp;#039; (dt. etwa &amp;#039;&amp;#039;schnell erkundender zufälliger Baum&amp;#039;&amp;#039;) ist ein [[Suchverfahren|Suchalgorithmus]] (und dessen zugrunde liegende [[Baum (Graphentheorie)|Baum-Datenstruktur]]), der hochdimensionale [[Suchraum|Suchräume]] zufällig nach möglichen Pfaden absucht. In der [[Robotik]] werden der Algorithmus und Variationen davon häufig für [[Motion planning]] verwendet, also für die Planung von effizienten Bewegungen, z.&amp;amp;nbsp;B. von Greifarmen.&amp;lt;ref name=&amp;quot;Lavalle1998&amp;quot;&amp;gt;{{cite journal&lt;br /&gt;
 | author = Lavalle, S.M.&lt;br /&gt;
 | year = 1998&lt;br /&gt;
 | title = Rapidly-exploring random trees: A new tool for path planning&lt;br /&gt;
 | journal = Computer Science Dept, Iowa State University, Tech. Rep. TR&lt;br /&gt;
 | pages = 98–11&lt;br /&gt;
 | url = http://citeseer.ist.psu.edu/311812.html&lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Geschichte ==&lt;br /&gt;
Um Pfadplanung für Roboter um Hindernisse herum durchzuführen, wurde relativ früh in der Informatik der [[A*-Algorithmus]] entwickelt (1960er Jahre). Dieser sucht in einem Graphen nach dem kürzesten Pfad von A nach B. RRT erweitert [[A*-Algorithmus|A*]] um zwei wesentliche Elemente: einmal wird ein [[Voronoi-Diagramm|Voronoi bias]] verwendet, der den Problemraum in gleichmäßige Bereiche unterteilt und zweitens kann der Graph an einer beliebigen zufälligen Stelle um neue Knoten erweitert werden. Der Voronoi Bias kommt überwiegend bei geometrischen Pfadplanungs-Problemen zum Einsatz. Das Ziel ist es, den Graphen überall dort zu erweitern wo bisher der Raum nicht gut ausgeleuchtet wurde. Damit ist es möglich, auch Wege zu planen die zunächst durch eine Verengung führen und sich dann aufgabeln wie es bei komplizierten Labyrinthen der Fall ist. Die Möglichkeit an einer beliebigen Stelle neue Nodes hinzuzufügen ist dafür erforderlich.&amp;lt;ref name=&amp;quot;rohrmoserimplementierung&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
RRT gilt als eines der effizientesten Verfahren um in Labyrinthen und unter Berücksichtigung von Hindernissen Wege zu planen.&lt;br /&gt;
&lt;br /&gt;
Neben dem ursprünglichen RRT-Algorithmus wurden viele Erweiterungen entwickelt, wovon RRTConnect die bekannteste ist. Obwohl häufig effizient, so schneidet RRT in einigen Fällen sogar schlechter ab als ein klassischer [[Dijkstra-Algorithmus]]&amp;lt;ref name=&amp;quot;knispel2013performance&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Voronoi Bias ==&lt;br /&gt;
Der Voronoi Bias dient dazu, das Wachstum des RRT-Baumes zu steuern&amp;lt;ref name=&amp;quot;urmson2003approaches&amp;quot; /&amp;gt; und wird daher auch als „guided policy search“ oder als „shaping“ bezeichnet. Die Spielfläche wird in gleichmäßige Kästchen unterteilt, von jedem Quadranten die Anzahl der darin enthaltenen [[Knoten (Graphentheorie)|Nodes]] bestimmt und der Bereich mit den wenigsten Nodes wird um einen neuen Node erweitert.&lt;br /&gt;
&lt;br /&gt;
Diese Möglichkeit der Effizienzsteigerung funktioniert leider nicht bei weiteren Problemen aus der Robotik wie z.&amp;amp;nbsp;B. Graspplanning weil dort der Problemraum sich nicht als 2D Spielfeld abbilden lässt, sondern eine höhere Anzahl von Variablen vorliegt. In solchen Fällen lässt sich nicht berechnen welche Bereiche des Spielfeldes eng nebeneinander liegen und welche weit voneinander entfernt sind. Anders ausgedrückt, es mangelt an einem Gütekriterium um die Ausbreitung des RRT-Baumes einzuschätzen.&lt;br /&gt;
&lt;br /&gt;
== DARRT ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Diverse Action Rapidly-exploring Random Tree (DARRT)&amp;#039;&amp;#039;&amp;#039; ist ein spezieller RRT-Algorithmus, welcher Motion Primitive mit einem RRT-Solver kombiniert. Damit können komplexe Robotik Aufgaben wie das Greifen eines Objektes oder das Gehen in unwegsamem Gelände bewältigt werden.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung ===&lt;br /&gt;
Ausgangspunkt für die Entwicklung von DARRT war die Frage, wie man einen bestimmten Sollzustand im [[Konfigurationsraum|C-Space]] (Configuration space) erreicht. Normalerweise ist der Problemraum zu groß um ihn mittels [[Brute-Force-Methode]]n durchzuprobieren. In der Vergangenheit ist an dieser Herausforderung jedes Robot-Control-System gescheitert. DARRT löst das Problem dadurch, dass in einem ersten Schritt bestimmte Motion Primitive definiert werden (Diverse Actions). Diese Motion Primitive werden mit Hilfe eines Solvers durchprobiert und zwar in Form eines Graph. Daher auch der Zusatz RRT.&lt;br /&gt;
&lt;br /&gt;
Ein Motion Primitive kann sein „walk forward“, „grasp“ oder „reachpoint“. Das Konzept der Motion Primitive ist abgeleitet von der [[Prozedurale Animation|prozeduralen Animation]], wo so etwas schon länger eingesetzt wird, um Charaktere in Computerspielen realistisch zu animieren. Das RRT-Sampling hingegen basiert auf einer [[Suchverfahren#Suche in Graphen|graphenbasierenden Suche]]. Jeder Node entspricht einem Zustand der [[Physik-Engine]], von dem ausgehend Sub-Knoten generiert werden. Auf diese Weise braucht eine Forward Simulation der Physik-Engine nur für einen kleinen Moment ausgeführt werden, was CPU-Zeit einspart. Ursprünglich entstammt RRT dem pathplanning wird aber bei DARRT eingesetzt, um Instanzen von [[Box2D]], [[Open Dynamics Engine|ODE]] oder anderen Physik-Engines zu sampeln.&lt;br /&gt;
&lt;br /&gt;
Eine Implementierung als ausführbares Programm von DARRT befindet sich als Open-Source auf den Webseiten des ROS-Projektes&amp;lt;ref name=&amp;quot;ros2013&amp;quot; /&amp;gt;. Das Greifen von Objekten wird hier&amp;lt;ref name=&amp;quot;kaelbling2015intelligence&amp;quot; /&amp;gt; erläutert.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Erfinder&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[Jennifer L. Barry]] ist die Erfinderin von DARRT. Sie hat das Verfahren erstmals im Jahr 2013 in ihrer Dissertation beschrieben&amp;lt;ref name=&amp;quot;barry2013thesis&amp;quot; /&amp;gt;. Jennifer L. Barry ist bei [[Boston Dynamics]] angestellt&amp;lt;ref name=&amp;quot;linkedln&amp;quot; /&amp;gt;. Zuvor war sie bei Rethink Robotics und am [[Massachusetts Institute of Technology|MIT]] tätig. Auf dem Server des MIT ist ihre Webseite abrufbar&amp;lt;ref name=&amp;quot;mitwebsite&amp;quot; /&amp;gt;, wo DARRT und weitere Projekte der Öffentlichkeit vorgestellt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Hybridsystem&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Der Grund warum bei DARRT sowohl Motion Primitive als auch RRT eingesetzt wird, hat damit zu tun, dass beide Verfahren Stärken als auch Schwächen haben, die sich optimal ergänzen. RRT alleine gilt als zu rechenaufwendig, ist aber programmiertechnisch leicht zu implementieren. Motion Primitive benötigen nur wenig CPU-Ressourcen, lassen sich aber nur schwer programmieren, da manueller C++ Sourcecode erstellt werden muss der stark vom konkreten Problem abhängig ist. Kombiniert man jedoch beide Verfahren erhält man einerseits einen Algorithmus der wenig CPU Leistung benötigt gleichzeitig aber sehr mächtig ist.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Verallgemeinerung&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
DARRT ist ein sogenannter Multi-Modal-Planner&amp;lt;ref name=&amp;quot;jentzsch2015mopl&amp;quot; /&amp;gt;. Dieser Begriff entstammt dem [[PDDL]] Umfeld und definiert Macroactions um komplexe hierarchische Probleme zu lösen. Beispielsweise eine Aufgabe, bei dem ein Roboter zuerst einen Schlüssel aus einem Zimmer holen muss, um mit diesem eine Schatztruhe zu öffnen. Solche Probleme lassen sich mit herkömmlichen Verfahren der Künstlichen Intelligenz nicht lösen.&lt;br /&gt;
&lt;br /&gt;
=== Anwendungsmöglichkeiten ===&lt;br /&gt;
Der DARRT-Algorithmus wurde bisher auf dem [[Robot Operating System|ROS]] Standardroboter PR2 implementiert. Es gibt dazu Videos&amp;lt;ref name=&amp;quot;barry2013thesis&amp;quot; /&amp;gt; die zeigen, wie dieser eine komplexe Aktionsfolge plant und ausführt. Zuerst fährt er zu einem Tisch, führt dann eine Push-Aktion mit einem Teller durch, greift diesen an der Tischkante, fährt mit dem Teller zu einem zweiten Tisch, legt den Teller dort ab und führt eine erneut eine Push Aktion aus. An diesem Ablauf erkennt man wie DARRT in der Praxis arbeitet. Es gibt eine Reihe von vordefinierten Motion Primitiven die hintereinander ausgeführt werden. Die genaueren Parameter sowie die Reihenfolge werden über einen Planner bestimmt.&lt;br /&gt;
&lt;br /&gt;
Weiterhin wurde DARRT im Rahmen des [[Defense Advanced Research Projects Agency|DARPA]] ARM-S Projektes auch für „dexterous grasping“ Aufgaben eingesetzt&amp;lt;ref name=&amp;quot;arms&amp;quot; /&amp;gt;. Dort bestand die Aufgabe darin, für den „[[Carnegie Mellon University|CMU]] Andy Roboter“ eine Software zu schreiben, die ein Werkzeug von einem Tisch aufnimmt und an einer anderen Stelle wieder ablegt. DARRT wurde verwendet, um den [[Behavior Tree]] on-the-fly zu generieren, der die Aktionsfolge plant.&lt;br /&gt;
&lt;br /&gt;
Weitere Anwendungen in der Praxis waren:&lt;br /&gt;
* auf einem Baxter-Roboter der Firma Rethink Robotics im Rahmen eines Workshops&amp;lt;ref name=&amp;quot;barry2013workshop&amp;quot; /&amp;gt;&lt;br /&gt;
* zum Sortieren von Lego-Steinen durch einen PR2 Roboter&amp;lt;ref name=&amp;quot;gupta2015using&amp;quot; /&amp;gt; (ein dem DARRT-Algorithmus verwandtes Verfahren)&lt;br /&gt;
* Steuerung von Roboterarmen um ein Objekt auf dem Tisch zu verschieben&amp;lt;ref name=&amp;quot;king2015nonprehensile&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
{{Commonscat|Rapidly exploring random tree|Rapidly-exploring random tree}}&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;urmson2003approaches&amp;quot;&amp;gt;&lt;br /&gt;
{{Literatur&lt;br /&gt;
 |Autor=Chris Urmson, Raid G. Simmons&lt;br /&gt;
 |Titel=Approaches for heuristically biasing RRT growth&lt;br /&gt;
 |Sammelwerk=IROS&lt;br /&gt;
 |Band=2&lt;br /&gt;
 |Nummer=&lt;br /&gt;
 |Datum=2003&lt;br /&gt;
 |Seiten=1178-1183}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;rohrmoserimplementierung&amp;quot;&amp;gt;&lt;br /&gt;
{{Literatur&lt;br /&gt;
 |Autor=Bertram Rohrmoser, Christopher Parlitz&lt;br /&gt;
 |Titel=Implementierung einer Bewegungplanung für einen Roboterann Implementation of a path-planning algorithm for a robot arm&lt;br /&gt;
 |Sammelwerk=Fraunhofer IPA&lt;br /&gt;
 |Band=&lt;br /&gt;
 |Nummer=&lt;br /&gt;
 |Datum=2002&lt;br /&gt;
 |Seiten=}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;knispel2013performance&amp;quot;&amp;gt;&lt;br /&gt;
{{Literatur&lt;br /&gt;
 |Autor=Lukas KNispel, Radomil Matousek&lt;br /&gt;
 |Titel=A Performance Comparison of Rapidly-exploring Random Tree and Dijkstra’s Algorithm for Holonomic Robot Path Planning&lt;br /&gt;
 |Sammelwerk=Institute of Automation and Computer Science, Faculty of Mechanical Engineering, Brno University of Technology&lt;br /&gt;
 |Band=&lt;br /&gt;
 |Nummer=&lt;br /&gt;
 |Datum=2013&lt;br /&gt;
 |Seiten=}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;ros2013&amp;quot;&amp;gt;&lt;br /&gt;
[http://wiki.ros.org/darrt darrt Documentation], ROS.org, 2013, abgerufen am 21. Dezember 2016&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;mitwebsite&amp;quot;&amp;gt;&lt;br /&gt;
[http://people.csail.mit.edu/jbarry/ Personal Website Jennifer Barry, CSAIL, MIT 2013], abgerufen am 21. Dezember 2016&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;arms&amp;quot;&amp;gt;&lt;br /&gt;
Matt Klingensmith, Youtube-Video: DARRT Tool Regrasp (4x) 2014&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;linkedln&amp;quot;&amp;gt;&lt;br /&gt;
[https://www.linkedin.com/in/jennifer-barry-742a0799 Jennifer Barry professional biography, LinkedIn, 2016]&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;barry2013workshop&amp;quot;&amp;gt;&lt;br /&gt;
{{Literatur&lt;br /&gt;
 |Autor=Jennifer Barry&lt;br /&gt;
 |Titel=Planning and Manufacturing Robots&lt;br /&gt;
 |Sammelwerk=NSF Workshop on Robot Planning in the Real World&lt;br /&gt;
 |Band=&lt;br /&gt;
 |Nummer=&lt;br /&gt;
 |Datum=2013&lt;br /&gt;
 |Seiten=}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;kaelbling2015intelligence&amp;quot;&amp;gt;&lt;br /&gt;
{{Literatur&lt;br /&gt;
 |Autor=[[Leslie Kaelbling]], Thomas Lozano-Perez&lt;br /&gt;
 |Titel=Intelligence in the Now: Robust Intelligence in Complex Domains&lt;br /&gt;
 |Sammelwerk=DTIC Document&lt;br /&gt;
 |Band=&lt;br /&gt;
 |Nummer=&lt;br /&gt;
 |Datum=2015&lt;br /&gt;
 |Seiten=}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;jentzsch2015mopl&amp;quot;&amp;gt;&lt;br /&gt;
{{Literatur&lt;br /&gt;
 |Autor=Sören Jentzsch, Andre Gaschler, Oussama Khatib, Alois Knoll&lt;br /&gt;
 |Titel=MOPL: A multi-modal path planner for generic manipulation tasks&lt;br /&gt;
 |Sammelwerk=International Conference on Intelligent Robots and Systems (IROS)&lt;br /&gt;
 |Band=&lt;br /&gt;
 |Nummer=&lt;br /&gt;
 |Datum=2015&lt;br /&gt;
 |Seiten=6208–6214}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;barry2013thesis&amp;quot;&amp;gt;&lt;br /&gt;
{{Literatur&lt;br /&gt;
 |Autor=Jennifer Lynn Barry&lt;br /&gt;
 |Titel=Manipulation with diverse actions&lt;br /&gt;
 |Sammelwerk=MIT&lt;br /&gt;
 |Band=&lt;br /&gt;
 |Nummer=&lt;br /&gt;
 |Datum=2013&lt;br /&gt;
 |Seiten=}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;gupta2015using&amp;quot;&amp;gt;&lt;br /&gt;
{{Literatur&lt;br /&gt;
 |Autor=Megha Gupta, Jörg Müller, Gaurav Sukhatme&lt;br /&gt;
 |Titel=Using manipulation primitives for object sorting in cluttered environments&lt;br /&gt;
 |Sammelwerk=IEEE transactions on Automation Science and Engineering&lt;br /&gt;
 |Band=12&lt;br /&gt;
 |Nummer=2&lt;br /&gt;
 |Datum=2015&lt;br /&gt;
 |Seiten=608-614}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;king2015nonprehensile&amp;quot;&amp;gt;&lt;br /&gt;
{{Literatur&lt;br /&gt;
 |Autor=Jennifer E. King, Joshua A. Haustein, Siddharta S. Srinivasa, Tamim Asfour&lt;br /&gt;
 |Titel=Nonprehensile whole arm rearrangement planning on physics manifolds&lt;br /&gt;
 |Sammelwerk=IEEE International Conference on Robotics and Automation (ICRA)&lt;br /&gt;
 |Band=&lt;br /&gt;
 |Nummer=&lt;br /&gt;
 |Datum=2015&lt;br /&gt;
 |Seiten=2508–2515}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Robotik]]&lt;br /&gt;
[[Kategorie:Suchalgorithmus]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Invisigoth67</name></author>
	</entry>
</feed>