1 # -*- coding: utf-8 -*-
2 """This scipt loads result JSON and print cost dependent on time.
5 argv[1] -- 1st file/folder with json trajectory results.
6 argv[2] -- 2nd file/folder with json trajectory results.
9 from math import cos, pi, sin
10 from matplotlib import pyplot as plt
11 from os import listdir
12 from sys import argv, exit
15 print("Exactly 2 arguments needed.")
21 def load_trajectory(fname):
22 """Load trajectory from file."""
24 raise ValueError("File name as argument needed")
25 with open(fname, "r") as f:
26 trajectory = loads(f.read())
29 def plot_nodes(nodes=[]):
30 """Return xcoords, ycoords of nodes to plot.
33 nodes -- The list of nodes to plot.
40 return (xcoords, ycoords)
42 if __name__ == "__main__":
45 # blue nodes (not parallel)
47 for f in listdir(TRAJ_FILE):
48 t = load_trajectory("{}/{}".format(TRAJ_FILE, f))
49 for p in zip(t["secs"], t["cost"]):
53 t = load_trajectory(TRAJ_FILE) # fixed to trajectories
54 for p in zip(t["secs"], t["cost"]):
57 print("Failed loading 1st")
59 # red nodes (parallel)
61 for f in listdir(TRAJ_FILE2):
62 t = load_trajectory("{}/{}".format(TRAJ_FILE2, f))
63 for p in zip(t["secs"], t["cost"]):
67 t = load_trajectory(TRAJ_FILE2) # fixed to trajectories
68 for p in zip(t["secs"], t["cost"]):
71 print("Failed loading 2nd")
75 ax = fig.add_subplot(111)
76 ax.set_aspect("equal")
77 ax.set_title("SCENARIO")
78 ax.set_xlabel("Time [s]")
79 ax.set_ylabel("Cost (Euclidean length) [m]")
87 plt.plot(*plot_nodes(nodes), color="blue")
88 plt.plot(*plot_nodes(podes), color="red")
94 #plt.savefig("{}_{}.png".format(argv[1], argv[2]))