robot-motion / bench-mr

Motion Planning Benchmark
https://robot-motion.github.io/bench-mr
MIT License
80 stars 34 forks source link

Optimizing planners and tracking progress #42

Closed ksatyaki closed 2 years ago

ksatyaki commented 2 years ago

Hello,

Is there a way to track optimizing planners' progress? I see that intermediate solutions are stored. Are improvements to existing solutions considered intermediate solutions? If the OMPL callback is used, I guess this should be the case, but I just wanted to check anyway.

In the OMPL benchmark, there is a way to record the cost of the current solution every t seconds. I guess this is useful for plotting. Do you also have a way to plot the costs of the intermediate solutions?

I don't think I saw anything related to this in the documentation or the tutorials. If it's already implemented, please point me to the relevant files and I can contribute the tutorial / documentation. :-)

eric-heiden commented 2 years ago

Hi,

The intermediary solutions are recorded via the OMPL callback here: https://github.com/robot-motion/bench-mr/blob/master/src/planners/OMPLPlanner.hpp#L67-L78

These intermediary paths are evaluated here and recorded in the results JSON file: https://github.com/robot-motion/bench-mr/blob/master/src/utils/PathEvaluation.hpp#L223-L231

I don't think we have yet added any example notebook using these intermediary solutions. But here is some front-end code that shows how to plot those intermediary paths: https://github.com/robot-motion/bench-mr/blob/37d93a1ad5b86874715fced995451966ebf2f3f6/python/plot_trajectory_convergence.py#L112-L116 You should be able to extract the cost and other metrics from the stats entry of each intermediary solution (they are stored via the PathEvaluation.hpp code from above).

Let us know if you need further help. We would definitely appreciate contributions to the tutorials/documentation! 🙂

ksatyaki commented 2 years ago

I will try this. This means it's no longer an issue. :-)