72 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import argparse
 | |
| import pickle
 | |
| 
 | |
| import matplotlib.pyplot as plt
 | |
| import numpy as np
 | |
| 
 | |
| parser = argparse.ArgumentParser()
 | |
| parser.add_argument("-d", "--data", type=str, required=True)
 | |
| args = parser.parse_args()
 | |
| data = pickle.load(open(args.data, "rb"))
 | |
| if "robot" in data and "mujoco" in data:
 | |
|     res = None
 | |
|     while res is None or res not in ["1", "2"]:
 | |
|         res = input("plot robot (1) or mujoco (2) ? ")
 | |
|     if res == "1":
 | |
|         command_value = data["robot"]
 | |
|         title = "Robot"
 | |
|     else:
 | |
|         command_value = data["mujoco"]
 | |
|         title = "Mujoco"
 | |
| elif "mujoco" in data:
 | |
|     command_value = data["mujoco"]
 | |
|     title = "Mujoco"
 | |
| elif "robot" in data:
 | |
|     command_value = data["robot"]
 | |
|     title = "Robot"
 | |
| else:
 | |
|     print("NO DATA")
 | |
|     exit()
 | |
| 
 | |
| 
 | |
| dofs = {
 | |
|     0: "right_hip_yaw",
 | |
|     1: "right_hip_roll",
 | |
|     2: "right_hip_pitch",
 | |
|     3: "right_knee",
 | |
|     4: "right_ankle",
 | |
|     5: "left_hip_yaw",
 | |
|     6: "left_hip_roll",
 | |
|     7: "left_hip_pitch",
 | |
|     8: "left_knee",
 | |
|     9: "left_ankle",
 | |
|     10: "neck_pitch",
 | |
|     11: "head_pitch",
 | |
|     12: "head_yaw",
 | |
|     13: "left_antenna",
 | |
|     14: "right_antenna",
 | |
| }
 | |
| # command_value = np.array(command_value)
 | |
| fig, axs = plt.subplots(4, 4)
 | |
| dof_id = 0
 | |
| for i in range(4):
 | |
|     for j in range(4):
 | |
|         if i == 3 and j == 3:
 | |
|             break
 | |
|         print(4 * i + j)
 | |
|         command = []
 | |
|         value = []
 | |
|         for k in range(len(command_value)):
 | |
|             command.append(command_value[k][0][4 * i + j])
 | |
|             value.append(command_value[k][1][4 * i + j])
 | |
|         axs[i, j].plot(command, label="command")
 | |
|         axs[i, j].plot(value, label="value")
 | |
|         axs[i, j].legend()
 | |
|         axs[i, j].set_title(f"{dofs[dof_id]}")
 | |
|         dof_id += 1
 | |
| 
 | |
| 
 | |
| name = args.data.split("/")[-1].split(".")[0]
 | |
| fig.suptitle(title)
 | |
| plt.show()
 |