plot_results.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #!/usr/bin/python
  2. #
  3. # Plots the results from the 2D pose graph optimization. It will draw a line
  4. # between consecutive vertices. The commandline expects two optional filenames:
  5. #
  6. # ./plot_results.py --initial_poses optional --optimized_poses optional
  7. #
  8. # The files have the following format:
  9. # ID x y yaw_radians
  10. import matplotlib.pyplot as plot
  11. import numpy
  12. import sys
  13. from optparse import OptionParser
  14. parser = OptionParser()
  15. parser.add_option("--initial_poses", dest="initial_poses",
  16. default="", help="The filename that contains the original poses.")
  17. parser.add_option("--optimized_poses", dest="optimized_poses",
  18. default="", help="The filename that contains the optimized poses.")
  19. (options, args) = parser.parse_args()
  20. # Read the original and optimized poses files.
  21. poses_original = None
  22. if options.initial_poses != '':
  23. poses_original = numpy.genfromtxt(options.initial_poses, usecols = (1, 2))
  24. poses_optimized = None
  25. if options.optimized_poses != '':
  26. poses_optimized = numpy.genfromtxt(options.optimized_poses, usecols = (1, 2))
  27. # Plots the results for the specified poses.
  28. plot.figure()
  29. if poses_original is not None:
  30. plot.plot(poses_original[:, 0], poses_original[:, 1], '-', label="Original",
  31. alpha=0.5, color="green")
  32. if poses_optimized is not None:
  33. plot.plot(poses_optimized[:, 0], poses_optimized[:, 1], '-', label="Optimized",
  34. alpha=0.5, color="blue")
  35. plot.axis('equal')
  36. plot.legend()
  37. # Show the plot and wait for the user to close.
  38. plot.show()