mirror of
https://github.com/caperren/school_archives.git
synced 2025-11-09 21:51:15 +00:00
73 lines
2.4 KiB
Python
73 lines
2.4 KiB
Python
import csv
|
|
import matplotlib.pyplot as plotter
|
|
|
|
base_path = "/home/caperren/catkin_ws/src/rob456_hw3/logging_outputs"
|
|
odom_path = base_path + "/" + "odomlogfile.txt"
|
|
slam_path = base_path + "/" + "slamlogfile.txt"
|
|
|
|
if __name__ == '__main__':
|
|
odom_file = open(odom_path, "r")
|
|
slam_path = open(slam_path, "r")
|
|
|
|
odom_csv = csv.reader(odom_file, delimiter=',')
|
|
slam_csv = csv.reader(slam_path, delimiter=',')
|
|
|
|
odom_time = []
|
|
odom_x_error = []
|
|
odom_y_error = []
|
|
odom_theta_error = []
|
|
|
|
for line in odom_csv:
|
|
odom_time.append(line[0])
|
|
odom_x_error.append(line[1])
|
|
odom_y_error.append(line[2])
|
|
odom_theta_error.append(line[3])
|
|
|
|
slam_time = []
|
|
slam_x_error = []
|
|
slam_y_error = []
|
|
slam_theta_error = []
|
|
|
|
for line in slam_csv:
|
|
slam_time.append(line[0])
|
|
slam_x_error.append(line[1])
|
|
slam_y_error.append(line[2])
|
|
slam_theta_error.append(line[3])
|
|
|
|
# Plot for odometry
|
|
figure_object_odom, axes_object_odom = plotter.subplots()
|
|
axes_object_odom.plot(odom_time, odom_x_error, label="X Error")
|
|
axes_object_odom.plot(odom_time, odom_y_error, label="Y Error")
|
|
|
|
axes_theta = axes_object_odom.twinx()
|
|
axes_theta.plot(odom_time, odom_theta_error, label="Theta Error", color="r")
|
|
axes_theta.legend()
|
|
|
|
axes_object_odom.set_title("Odometery Error Graphs")
|
|
axes_object_odom.set_xlabel("Time")
|
|
axes_object_odom.set_ylabel("Error")
|
|
axes_object_odom.legend(loc=4)
|
|
axes_object_odom.autoscale(enable=True, axis='x', tight=True)
|
|
|
|
figure_object_odom.savefig("odom_error_graphs.pdf", bbox_inches="tight")
|
|
|
|
# Plot for slam
|
|
figure_object_slam, axes_object_slam = plotter.subplots()
|
|
axes_object_slam.plot(slam_time, slam_x_error, label="X Error")
|
|
axes_object_slam.plot(slam_time, slam_y_error, label="Y Error")
|
|
|
|
axes_theta = axes_object_slam.twinx()
|
|
axes_theta.plot(slam_time, slam_theta_error, label="Theta Error", color="r")
|
|
axes_theta.legend()
|
|
# axes_theta.plot(slam_time, slam_theta_error, label="Theta Error")
|
|
|
|
axes_object_slam.set_title("Slam Error Graphs")
|
|
axes_object_slam.set_xlabel("Time")
|
|
axes_object_slam.set_ylabel("Error")
|
|
axes_object_slam.legend(loc=4)
|
|
axes_object_slam.autoscale(enable=True, axis='x', tight=True)
|
|
|
|
figure_object_slam.savefig("slam_error_graphs.pdf", bbox_inches="tight")
|
|
|
|
plotter.show()
|