robotics - 在 Drake 工具箱的 IK 解算器选项中设置详细程度时如何设置 SolverId?
问题描述
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
文件的操作。
推荐阅读
- python - 为符号返回 HEX
- doctrine-orm - 类中的注释“@Doctrine\ORM\Mapping\Entity”不存在,或者无法自动加载。
- python - 你如何撤销所有邀请 Discord.py 重写,而不删除频道?
- c++ - 使用 GDI+ 旋转位图然后转换为 HDC
- python - 根据熊猫数据框中列中的值过滤数据
- imagemagick - 有没有办法通过 Imagemagick 只删除未知标签?
- sublimetext3 - 我的 Javascript/HTML 代码或 Sublime 有问题吗?
- java - 打印序列的所有数字,直到数字在 Java 中重复
- java - 你如何覆盖Java中的父构造函数?
- ubuntu-16.04 - Spyder3 崩溃,安装 jupyter-notebook 后