Как остановить планировщик OMPL после того, как найдено первое решение?

Я использую планировщик RRTstar от OMPL. Для ее решения я использую:

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

solve() принимает двойное значение времени, чтобы указать запрошенное время работы алгоритма. Как я могу запросить остановку алгоритма сразу после того, как найдено первое правильное решение?

Экземпляр класса ompl::base::PlannerTerminationCondition можно передать solve() также, но я не уверен, как использовать это и будет ли это использоваться в этом случае.

1 ответ

Решение

Хорошо, Марк Молл ответил на этот вопрос по электронной почте мне. Большинство планировщиков в OMPL останавливаются после того, как найдено первое решение. Но асимптотически оптимальные планировщики, такие как RRT*, стараются оптимизировать путь так долго, как позволяет время. Это поведение можно изменить, вызвав setCostThreshold с большим значением цели оптимизации (по умолчанию длина пути минимизирована).

Другие вопросы по тегам