看这个OMPL 优化教程,有一行:
ob::PlannerStatus solved = planner->solve(1.4/*seconds timeout*/);
有了这个PlannerStatus
定义。
但是,我正在使用具有一定成本阈值的 RRT# 算法,让我们10.0
为了争论而说。如果我将其设置得太低,则该算法会在 1.4 秒后以目前找到的最佳值中止,并打印一条消息:
Info: ... Final solution cost 17.071
Info: Solution found in 1.418528 seconds
并返回ob::PlannerStatus::EXACT_SOLUTION
- 我想我确实有一个精确但可能不是最佳解决方案。
如果我使用一组不同的数据运行,我可以看到如下内容:
Info: ... Final solution cost 9.543
Info: Solution found in 0.003216 seconds
然而,这也会返回ob::PlannerStatus::EXACT_SOLUTION
。
那么,如何区分超时解决方案和阈值匹配解决方案呢?