This is an easy-to-use script to quickly generate cost-success graphs (as pdf) from benchmark database file(s) generated in the Open Motion Planning Library (OMPL).
To produce a cost-success graph from a database file, simply run the following command:
./ompl_benchmark_plotter.py examples/example.db -s
There are two options to use the script:
- Single database file: As input, you can specify one database (.db) files.
- Multiple database files: If more than one database file is specified, the script will generate a single graph by merging the database files. This allows you to compare different planners for the same experiment, which are stored in different database files. If you want to compare different experiments, you can simply run the script multiple times with different database files.
- -o, --output-file PDF-FILENAME Specify output pdf filename
- -s, --show Show output as pdf (requires xdg-open).
- -v {0,1,2,3}, --verbose {0,1,2,3} Select verbosity level. Default: 1.
- --quiet Do not show any output. Invalidates any verbose values.
NOTE: default values can be found in config/default.json
- --max-cost MAX-COST Specify upper bound on cost axis.
- --min-cost MIN-COST Specify lower bound on cost axis.
- --max-time MAX-TIME Specify upper bound on time axis.
- --min-time MIN-TIME Specify lower bound on time axis.
- --fontsize FONTSIZE Fontsize of title and descriptions.
- --label-fontsize LABEL-FONTSIZE Fontsize of tick labels.
- --ignore-non-optimal-planner Do not plot non-optimal planner.
- --title-name TITLE-NAME Set title name
- --legend-separate-file Print legend as separate file.
- --legend-below-figure Print legend below graph.
- --legend-none Do not print legend.
pytest
@gammell: This repository has been created as a tool to easily generate graphs similar to the ones which Jonathan Gammell has used throughout his work (Check out his work on asymptotically-optimal motion planning.)
@frangrothe: This library is also based upon earlier work by Francesco Grothe, who used cost-success graphs extensively for his work on time-based motion planning (Check it out here: https://github.com/frangrothe/bt-motion-planning).
@servetb and @JayKamat99: For feedback on earlier versions, and advice on improvements.