解决 drake 中 Snopt 的错误,如何解决?

问题描述

这个问题在前面的Failure of solving trajectory optimization use Snopt in drake,how to fix it?之后,谢谢戴!
当我尝试使用 Snopt 求解非线性程序时,我遇到了存储空间不足的错误错误信息如下图所示:Original error information from snopt.out

然后我使用以下命令:
prog.SetSolverOption(SnoptSolver::id(),"Total integer workspace",100000);
prog.SetSolverOption(SnoptSolver::id(),"User integer workspace",100000);
它仍然以相同的原因失败,但幅度小一些,例如从 1969563 到 1960807 的“总整数工作区”选项。Error information screenshoot1

因为它确实影响幅度,所以我设置了一个更大的“总整数工作空间”和“用户整数工作空间”。尝试结果如下:
Total integer workspace=200000,User integer workspace=200000==>Error information 2
Total integer workspace=300000,User integer workspace=300000==>Error information 3
Total integer workspace=400000,User integer workspace=400000==>Error information 4
Total integer workspace=500000,User integer workspace=500000==>Error information 5
Total integer workspace=500000,User integer workspace=600000==>Error information 6
Total integer workspace=700000,User integer workspace=700000==>Error information 7
Total integer workspace=800000,User integer workspace=800000==>https://i.stack.imgur.com/EJrft.png
Total integer workspace=800000,User integer workspace=900000==>https://i.stack.imgur.com/AblUc.png
Total integer workspace=1000000,User integer workspace=1000000==>https://i.stack.imgur.com/mS3gX.png
Total integer workspace=1010000,User integer workspace=1010000==>https://i.stack.imgur.com/pufBK.png
Total integer workspace=1020000,User integer workspace=1020000==>https://i.stack.imgur.com/biThe.png
还有一些额外的测试可能会有所帮助:
Total integer workspace=900000,User integer workspace=1000000==>https://i.stack.imgur.com/NilNy.png
抱歉上面图片格式奇怪,因为我的信誉最多只能支持8个图片链接。T_T T_T
所有这些测试都有相同的初始猜测。我发现当我将“总整数工作空间”和“用户整数工作空间”从100000增加到600000时,缺少存储的量级先变小,然后变大。当我将两个选项设置为大于 800000 时,错误类型已更改为异常。
现在我正在努力解决这些问题:
1.为什么缺储量的变化很奇怪?
2.遇到这种情况怎么办?
3.无论我们如何调整存储,最初的猜测是否会得到一个可行的解决方案?
4.如何判断初始猜测是否合理?
5.出现此存储错误时,如何设置“总整数工作空间”和“用户整数工作空间”?换句话说,当我们遇到初始猜测的合理性、存储错误、约束的可行性等问题耦合在一起时,调试流程是什么?

最衷心的感谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)