Как остановить планировщик OMPL после того, как найдено первое решение?
Я использую планировщик RRTstar от OMPL. Для ее решения я использую:
ompl::base::PlannerStatus solved = setup.solve(time);
solve()
принимает двойное значение времени, чтобы указать запрошенное время работы алгоритма. Как я могу запросить остановку алгоритма сразу после того, как найдено первое правильное решение?
Экземпляр класса ompl::base::PlannerTerminationCondition
можно передать solve()
также, но я не уверен, как использовать это и будет ли это использоваться в этом случае.
1 ответ
Хорошо, Марк Молл ответил на этот вопрос по электронной почте мне. Большинство планировщиков в OMPL останавливаются после того, как найдено первое решение. Но асимптотически оптимальные планировщики, такие как RRT*, стараются оптимизировать путь так долго, как позволяет время. Это поведение можно изменить, вызвав setCostThreshold
с большим значением цели оптимизации (по умолчанию длина пути минимизирована).