WIP: added heading arrow to simulation
parent
f30abf18bb
commit
3c9152ffab
|
@ -10,6 +10,7 @@ from cvxpy_mpc import optimize
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
|
|
||||||
|
# Robot Starting position
|
||||||
SIM_START_X=0
|
SIM_START_X=0
|
||||||
SIM_START_Y=2
|
SIM_START_Y=2
|
||||||
SIM_START_H=0
|
SIM_START_H=0
|
||||||
|
@ -39,6 +40,7 @@ class MPC():
|
||||||
self.sim_time=0
|
self.sim_time=0
|
||||||
self.x_history=[]
|
self.x_history=[]
|
||||||
self.y_history=[]
|
self.y_history=[]
|
||||||
|
self.h_history=[]
|
||||||
self.v_history=[]
|
self.v_history=[]
|
||||||
self.w_history=[]
|
self.w_history=[]
|
||||||
|
|
||||||
|
@ -84,32 +86,36 @@ class MPC():
|
||||||
self.sim_time = self.sim_time+self.dt
|
self.sim_time = self.sim_time+self.dt
|
||||||
self.x_history.append(self.state[0])
|
self.x_history.append(self.state[0])
|
||||||
self.y_history.append(self.state[1])
|
self.y_history.append(self.state[1])
|
||||||
|
self.h_history.append(self.state[2])
|
||||||
self.v_history.append(self.opt_u[0,1])
|
self.v_history.append(self.opt_u[0,1])
|
||||||
self.w_history.append(self.opt_u[1,1])
|
self.w_history.append(self.opt_u[1,1])
|
||||||
|
|
||||||
plt.clf()
|
plt.clf()
|
||||||
plt.title("MPC Simulation \n" + "Simulation elapsed time {}s".format(self.sim_time))
|
|
||||||
|
|
||||||
grid = plt.GridSpec(2, 3)
|
grid = plt.GridSpec(2, 3)
|
||||||
plt.subplot(grid[0:2, 0:2])
|
|
||||||
|
|
||||||
# self.ax = plt.axes(xlim=(np.min(self.path[0,:])-1, np.max(self.path[0,:])+1),
|
plt.subplot(grid[0:2, 0:2])
|
||||||
# ylim=(np.min(self.path[1,:])-1, np.max(self.path[1,:])+1))
|
plt.title("MPC Simulation \n" + "Simulation elapsed time {}s".format(self.sim_time))
|
||||||
|
|
||||||
plt.plot(self.path[0,:],self.path[1,:], c='tab:orange', marker=".", label="reference track")
|
plt.plot(self.path[0,:],self.path[1,:], c='tab:orange', marker=".", label="reference track")
|
||||||
plt.plot(self.x_history, self.y_history, c='tab:blue', marker=".", alpha=0.5, label="vehicle trajectory")
|
plt.plot(self.x_history, self.y_history, c='tab:blue', marker=".", alpha=0.5, label="vehicle trajectory")
|
||||||
plt.plot(self.x_history[-1], self.y_history[-1], c='tab:blue', marker=".", markersize=12, label="vehicle position")
|
plt.plot(self.x_history[-1], self.y_history[-1], c='tab:blue', marker=".", markersize=12, label="vehicle position")
|
||||||
|
plt.arrow(self.x_history[-1], self.y_history[-1],np.cos(self.h_history[-1]),np.sin(self.h_history[-1]),color='tab:blue',width=0.2,head_length=0.5)
|
||||||
plt.ylabel('map y')
|
plt.ylabel('map y')
|
||||||
plt.xlabel('map x')
|
plt.xlabel('map x')
|
||||||
plt.legend()
|
plt.legend()
|
||||||
|
|
||||||
plt.subplot(grid[0, 2])
|
plt.subplot(grid[0, 2])
|
||||||
|
#plt.title("Linear Velocity {} m/s".format(self.v_history[-1]))
|
||||||
plt.plot(self.v_history,c='tab:orange')
|
plt.plot(self.v_history,c='tab:orange')
|
||||||
plt.ylabel('v(t) [m/s]')
|
plt.ylabel('v(t) [m/s]')
|
||||||
|
plt.xlabel('sample')
|
||||||
|
|
||||||
plt.subplot(grid[1, 2])
|
plt.subplot(grid[1, 2])
|
||||||
|
#plt.title("Angular Velocity {} m/s".format(self.w_history[-1]))
|
||||||
plt.plot(np.degrees(self.w_history),c='tab:orange')
|
plt.plot(np.degrees(self.w_history),c='tab:orange')
|
||||||
plt.ylabel('w(t) [deg/s]')
|
plt.ylabel('w(t) [deg/s]')
|
||||||
|
plt.xlabel('sample')
|
||||||
|
|
||||||
plt.tight_layout()
|
plt.tight_layout()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue