在 Drake 工具箱的 IK 解算器选项中设置冗长时如何设置 SolverId?
How to set SolverId when setting verbosity in IK solver options in Drake toolbox?
drake::solvers::SolverOptions options;
options.SetOption(drake::solvers::**?**, "verbose", {0, 1}); //{0,1} for verbose, {0,0} for no verbosity
const auto result = Solve(ik.prog(), {}, options);
const auto q_sol = result.GetSolution(ik.q());
如何设置 SolverId 来求解反向运动学 nlp 问题?
这里有两个选择:
- 为您使用的特定求解器设置选项。您可以通过检查
result
知道调用了哪个求解器
std::cout << result.get_solver_id().name() << "\n";
如果它打印“IPOPT”,那么你可以做 options.SetOption(drake::solvers::IpoptSolver::id(), ...)
.
- 另一个(更好的)解决方案是设置通用求解器选项
options.SetOption(CommonSolverOption::kPrintToConsole, 1);
对于任何支持控制台打印的求解器,它将输出信息打印到控制台。您还可以执行 options.SetOption(CommonSolverOption::kPrintFileName, "output.txt")
将输出打印到 output.txt
文件。
drake::solvers::SolverOptions options;
options.SetOption(drake::solvers::**?**, "verbose", {0, 1}); //{0,1} for verbose, {0,0} for no verbosity
const auto result = Solve(ik.prog(), {}, options);
const auto q_sol = result.GetSolution(ik.q());
如何设置 SolverId 来求解反向运动学 nlp 问题?
这里有两个选择:
- 为您使用的特定求解器设置选项。您可以通过检查
result
知道调用了哪个求解器
如果它打印“IPOPT”,那么你可以做std::cout << result.get_solver_id().name() << "\n";
options.SetOption(drake::solvers::IpoptSolver::id(), ...)
. - 另一个(更好的)解决方案是设置通用求解器选项
对于任何支持控制台打印的求解器,它将输出信息打印到控制台。您还可以执行options.SetOption(CommonSolverOption::kPrintToConsole, 1);
options.SetOption(CommonSolverOption::kPrintFileName, "output.txt")
将输出打印到output.txt
文件。