Skip to content
Snippets Groups Projects
Commit 85362be9 authored by chsieh16's avatar chsieh16
Browse files

Rename ctd back to cte fpr consistency

parent 0102a733
No related branches found
No related tags found
No related merge requests found
...@@ -55,8 +55,8 @@ class DTreeAgBotStanleyGurobiTeacher(DTreeGurobiTeacherBase): ...@@ -55,8 +55,8 @@ class DTreeAgBotStanleyGurobiTeacher(DTreeGurobiTeacherBase):
return new_x, new_y, new_yaw return new_x, new_y, new_yaw
def g(perc): def g(perc):
prcv_ctd, prcv_heading = perc prcv_cte, prcv_heading = perc
error = prcv_heading + np.arctan(K_P*prcv_ctd/FORWARD_VEL) error = prcv_heading + np.arctan(K_P*prcv_cte/FORWARD_VEL)
# Calculate controller output # Calculate controller output
ang_vel = error / CYCLE_TIME ang_vel = error / CYCLE_TIME
if ang_vel > ANG_VEL_LIM: if ang_vel > ANG_VEL_LIM:
...@@ -72,8 +72,8 @@ class DTreeAgBotStanleyGurobiTeacher(DTreeGurobiTeacherBase): ...@@ -72,8 +72,8 @@ class DTreeAgBotStanleyGurobiTeacher(DTreeGurobiTeacherBase):
return self.PERC_GT @ state return self.PERC_GT @ state
def v(gt_perc) -> float: def v(gt_perc) -> float:
ctd, psi = gt_perc cte, psi = gt_perc
return abs(psi + np.arctan((K_P*ctd) / FORWARD_VEL)) return abs(psi + np.arctan((K_P*cte) / FORWARD_VEL))
def spec(state, perc) -> bool: def spec(state, perc) -> bool:
v_old = v(m_star(state)) v_old = v(m_star(state))
...@@ -95,20 +95,20 @@ class DTreeAgBotStanleyGurobiTeacher(DTreeGurobiTeacherBase): ...@@ -95,20 +95,20 @@ class DTreeAgBotStanleyGurobiTeacher(DTreeGurobiTeacherBase):
m = self._gp_model m = self._gp_model
old_x, old_y, old_yaw = self._old_state.tolist() old_x, old_y, old_yaw = self._old_state.tolist()
new_x, new_y, new_yaw = self._new_state.tolist() new_x, new_y, new_yaw = self._new_state.tolist()
ctd, psi = self._percept.tolist() cte, psi = self._percept.tolist()
ang_vel, = self._control.tolist() ang_vel, = self._control.tolist()
# Controller # Controller
K_ctd_V = m.addVar(name="K*dhat/Vf", lb=-K_CTE_V_LIM, ub=K_CTE_V_LIM) K_cte_V = m.addVar(name="K*dhat/Vf", lb=-K_CTE_V_LIM, ub=K_CTE_V_LIM)
m.addConstr(K_ctd_V == K_P*ctd/FORWARD_VEL) m.addConstr(K_cte_V == K_P*cte/FORWARD_VEL)
atan_K_ctd_V = m.addVar(name="atan(K*dhat/Vf)", atan_K_cte_V = m.addVar(name="atan(K*dhat/Vf)",
lb=-ATAN_K_CTE_V_LIM, ub=ATAN_K_CTE_V_LIM) lb=-ATAN_K_CTE_V_LIM, ub=ATAN_K_CTE_V_LIM)
m.addGenConstrTan(xvar=atan_K_ctd_V, yvar=K_ctd_V) m.addGenConstrTan(xvar=atan_K_cte_V, yvar=K_cte_V)
# Clip angular velocity # Clip angular velocity
raw_ang_vel = m.addVar(name="(φhat+atan(K*dhat/V))/T", raw_ang_vel = m.addVar(name="(φhat+atan(K*dhat/V))/T",
lb=-RAW_ANG_VEL_LIM, ub=RAW_ANG_VEL_LIM) lb=-RAW_ANG_VEL_LIM, ub=RAW_ANG_VEL_LIM)
m.addConstr(raw_ang_vel == (psi + atan_K_ctd_V) / CYCLE_TIME) m.addConstr(raw_ang_vel == (psi + atan_K_cte_V) / CYCLE_TIME)
ang_vel = m.addVar(name="ω", lb=-ANG_VEL_LIM, ub=ANG_VEL_LIM) ang_vel = m.addVar(name="ω", lb=-ANG_VEL_LIM, ub=ANG_VEL_LIM)
m.addGenConstrPWL(name="clip", xvar=raw_ang_vel, yvar=ang_vel, m.addGenConstrPWL(name="clip", xvar=raw_ang_vel, yvar=ang_vel,
......
...@@ -46,8 +46,8 @@ class DTreeGEMStanleyGurobiTeacher(DTreeGurobiTeacherBase): ...@@ -46,8 +46,8 @@ class DTreeGEMStanleyGurobiTeacher(DTreeGurobiTeacherBase):
assert len(ex) == self.state_dim + self.perc_dim assert len(ex) == self.state_dim + self.perc_dim
def g(perc): def g(perc):
ctd, psi = perc cte, psi = perc
error = psi + np.arctan(K_P*ctd/FORWARD_VEL) error = psi + np.arctan(K_P*cte/FORWARD_VEL)
steer = np.clip(error, -STEERING_LIM, STEERING_LIM) steer = np.clip(error, -STEERING_LIM, STEERING_LIM)
return (steer,) return (steer,)
...@@ -85,12 +85,12 @@ class DTreeGEMStanleyGurobiTeacher(DTreeGurobiTeacherBase): ...@@ -85,12 +85,12 @@ class DTreeGEMStanleyGurobiTeacher(DTreeGurobiTeacherBase):
m = self._gp_model m = self._gp_model
old_x, old_y, old_yaw = self._old_state.tolist() old_x, old_y, old_yaw = self._old_state.tolist()
new_x, new_y, new_yaw = self._new_state.tolist() new_x, new_y, new_yaw = self._new_state.tolist()
ctd, psi = self._percept.tolist() cte, psi = self._percept.tolist()
steering, = self._control.tolist() steering, = self._control.tolist()
# Controller # Controller
K_cte_V = m.addVar(name="K*d/Vf", lb=-K_CTE_V_LIM, ub=K_CTE_V_LIM) K_cte_V = m.addVar(name="K*d/Vf", lb=-K_CTE_V_LIM, ub=K_CTE_V_LIM)
m.addConstr(K_cte_V == K_P*ctd/FORWARD_VEL) m.addConstr(K_cte_V == K_P*cte/FORWARD_VEL)
atan_K_cte_V = m.addVar(name="atan(K*d/Vf)", atan_K_cte_V = m.addVar(name="atan(K*d/Vf)",
lb=-ATAN_K_CTE_V_LIM, ub=ATAN_K_CTE_V_LIM) lb=-ATAN_K_CTE_V_LIM, ub=ATAN_K_CTE_V_LIM)
m.addGenConstrTan(xvar=atan_K_cte_V, yvar=K_cte_V) m.addGenConstrTan(xvar=atan_K_cte_V, yvar=K_cte_V)
...@@ -197,10 +197,10 @@ class GEMStanleySymPyTeacher(SymPyTeacherBase): ...@@ -197,10 +197,10 @@ class GEMStanleySymPyTeacher(SymPyTeacherBase):
# Variable Aliases # Variable Aliases
old_x, old_y, old_yaw = self._old_state old_x, old_y, old_yaw = self._old_state
new_x, new_y, new_yaw = self._new_state new_x, new_y, new_yaw = self._new_state
ctd, psi = self._percept cte, psi = self._percept
steering, = self._control steering, = self._control
err = psi + sympy.atan2(ctd*self.K_P, self.FORWARD_VEL) err = psi + sympy.atan2(cte*self.K_P, self.FORWARD_VEL)
clipped_err = sympy.Piecewise( clipped_err = sympy.Piecewise(
(self.STEERING_LIM, err > self.STEERING_LIM), (self.STEERING_LIM, err > self.STEERING_LIM),
(-self.STEERING_LIM, err < -self.STEERING_LIM), (-self.STEERING_LIM, err < -self.STEERING_LIM),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment