Ошибка в решении оптимизации траектории использования Snopt в drake, как это исправить?

#optimization #drake

Вопрос:

Я пытаюсь решить задачу оптимизации траектории в Дрейке и случайным образом получить доступ к первоначальным догадкам. Я обнаружил, что если первоначальные предположения недостаточно хороши, то процедура решения завершится неудачей и сообщит о проблеме с ресурсами, как показано на рисунке ниже. Как мне выделить больше места для хранения этого ресурса? Я попытался выделить больше с помощью необязательного параметра «Общая целочисленная рабочая область», но это не работает. Есть ли кто-нибудь, кто подскажет мне, как выделить больше относительного хранилища для Snopt в Дрейке? Если это невозможно установить вручную, что я могу сделать, когда это произойдет?

Спасибо!

снопт.вон

Ответ №1:

Вы можете задать параметры с помощью SetSolverOption

 prog.SetSolverOption(SnoptSolver::id(), "Total integer workspace", 100000);
prog.SetSolverOption(SnoptSolver::id(), "User integer workspace", 100000);
 

чтобы изменить размер рабочей области по умолчанию в SNOPT. Для получения дополнительной информации о настройке параметров решателя, пожалуйста, обратитесь к руководству https://github.com/RobotLocomotion/drake/blob/master/tutorials/solver_parameters.ipynb

Комментарии:

1. СПАСИБО за ответ! Я следую командам, но, похоже, это не работает: 1. Я не могу найти никаких параметров, измененных в файле журнала snopt.out, так как я установил «Основной допуск выполнимости»; 2. Решение все еще не удалось по той же причине, но величина нехватки памяти имеет очень небольшое изменение, например, 1969563—>1960807 ; Я думаю, что некоторые параметры могут быть изменены, но не будут отображаться в файле журнала из-за уровня печати Snopt, верно? Кроме того, я публикую процесс отладки «Всего целочисленного рабочего пространства»и»Пользовательского целочисленного рабочего пространства» по следующей ссылке (скоро будет), пожалуйста, помогите мне, СПАСИБО!!