在Drake工具库IK求解器设置verbosity时如何指定SolverId?
Drake逆运动学求解器verbosity配置解答
你需要填入的SolverId参数为 drake::solvers::IpoptSolver::id(),Drake逆运动学NLP问题默认调度Ipopt作为求解器。修改后的可用代码示例如下:
drake::solvers::SolverOptions options; // 针对Ipopt求解器设置verbose级别:1开启日志输出,0关闭日志输出 options.SetOption(drake::solvers::IpoptSolver::id(), "verbose", 1); const auto result = Solve(ik.prog(), {}, options); const auto q_sol = result.GetSolution(ik.q());
补充说明:
- 如果你手动为IK问题指定了其他NLP求解器(如SNOPT、OSQP等),将
IpoptSolver替换为对应求解器的类名即可,例如SNOPT对应SnoptSolver::id() - 如果你不确定当前问题会调度哪个求解器,可以直接使用无SolverId的
SetOption重载,该配置会生效于所有支持verbose参数的求解器:options.SetOption("verbose", 1); - 你示例代码中的参数值写法有误,
verbose为单整数值,不需要传入{0,1}类数组格式。
内容的提问来源于stack exchange,提问作者skywalker
相关产品推荐
相关产品推荐

