#!/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()