| #!/usr/bin/python |
| # |
| # Plots the results from the 2D pose graph optimization. It will draw a line |
| # between consecutive vertices. The commandline expects two optional filenames: |
| # |
| # ./plot_results.py --initial_poses optional --optimized_poses optional |
| # |
| # The files have the following format: |
| # ID x y yaw_radians |
| |
| import matplotlib.pyplot as plot |
| import numpy |
| import sys |
| from optparse import OptionParser |
| |
| parser = OptionParser() |
| parser.add_option("--initial_poses", dest="initial_poses", |
| default="", help="The filename that contains the original poses.") |
| parser.add_option("--optimized_poses", dest="optimized_poses", |
| default="", help="The filename that contains the optimized poses.") |
| (options, args) = parser.parse_args() |
| |
| # Read the original and optimized poses files. |
| poses_original = None |
| if options.initial_poses != '': |
| poses_original = numpy.genfromtxt(options.initial_poses, usecols = (1, 2)) |
| |
| poses_optimized = None |
| if options.optimized_poses != '': |
| poses_optimized = numpy.genfromtxt(options.optimized_poses, usecols = (1, 2)) |
| |
| # Plots the results for the specified poses. |
| plot.figure() |
| if poses_original is not None: |
| plot.plot(poses_original[:, 0], poses_original[:, 1], '-', label="Original", |
| alpha=0.5, color="green") |
| |
| if poses_optimized is not None: |
| plot.plot(poses_optimized[:, 0], poses_optimized[:, 1], '-', label="Optimized", |
| alpha=0.5, color="blue") |
| |
| plot.axis('equal') |
| plot.legend() |
| # Show the plot and wait for the user to close. |
| plot.show() |