2016-04-28 4 views
0

Ich verwende einen RRTstar-Planer von OMPL. es zu lösen Ich verwende:Wie wird der OMPL-Planer gestoppt, nachdem die erste Lösung gefunden wurde?

ompl::base::PlannerStatus solved = setup.solve(time); 

solve() nimmt eine doppelte Zeitwert der angeforderten Laufzeit des Algorithmus zu spezifizieren. Wie kann ich den Algorithmus stoppen, nachdem die erste gültige Lösung gefunden wurde?

Eine Instanz der Klasse ompl::base::PlannerTerminationCondition kann auch an solve() übergeben werden, aber ich bin nicht sicher, wie man es benutzt und ob es in diesem Fall verwendet würde.

Antwort

0

Ok, Mark Moll hat diese Frage in einer Email an mich beantwortet. Die meisten Planer in OMPL stoppen, nachdem die erste Lösung gefunden wurde. Aber die asymptotisch optimalen Planer wie RRT * versuchen, den Weg so lange zu optimieren, wie es die Zeit erlaubt. Dieses Verhalten kann geändert werden, indem setCostThreshold mit einem großen Wert des Optimierungsziels aufgerufen wird (standardmäßig wird die Pfadlänge minimiert).

Verwandte Themen