Skip to content

Commit

Permalink
adapts long & lat MPC file
Browse files Browse the repository at this point in the history
  • Loading branch information
FreyJo committed Mar 10, 2022
1 parent a75d7ee commit 3497717
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 6 deletions.
8 changes: 5 additions & 3 deletions selfdrive/controls/lib/lateral_mpc_lib/lat_mpc.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,12 @@
JSON_FILE = os.path.join(LAT_MPC_DIR, "acados_ocp_lat.json")
X_DIM = 4
P_DIM = 2
MODEL_NAME = 'lat'
ACADOS_SOLVER_TYPE = 'SQP_RTI'

def gen_lat_model():
model = AcadosModel()
model.name = 'lat'
model.name = MODEL_NAME

# set up states & controls
x_ego = SX.sym('x_ego')
Expand Down Expand Up @@ -102,7 +104,7 @@ def gen_lat_ocp():
ocp.solver_options.qp_solver = 'PARTIAL_CONDENSING_HPIPM'
ocp.solver_options.hessian_approx = 'GAUSS_NEWTON'
ocp.solver_options.integrator_type = 'ERK'
ocp.solver_options.nlp_solver_type = 'SQP_RTI'
ocp.solver_options.nlp_solver_type = ACADOS_SOLVER_TYPE
ocp.solver_options.qp_solver_iter_max = 1
ocp.solver_options.qp_solver_cond_N = 1

Expand All @@ -116,7 +118,7 @@ def gen_lat_ocp():

class LateralMpc():
def __init__(self, x0=np.zeros(X_DIM)):
self.solver = AcadosOcpSolverCython(JSON_FILE)
self.solver = AcadosOcpSolverCython(MODEL_NAME, ACADOS_SOLVER_TYPE, N)
self.reset(x0)

def reset(self, x0=np.zeros(X_DIM)):
Expand Down
8 changes: 5 additions & 3 deletions selfdrive/controls/lib/longitudinal_mpc_lib/long_mpc.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@

from casadi import SX, vertcat

MODEL_NAME = 'long'
LONG_MPC_DIR = os.path.dirname(os.path.abspath(__file__))
EXPORT_DIR = os.path.join(LONG_MPC_DIR, "c_generated_code")
JSON_FILE = os.path.join(LONG_MPC_DIR, "acados_ocp_long.json")
Expand All @@ -37,6 +38,7 @@
DANGER_ZONE_COST = 100.
CRASH_DISTANCE = .5
LIMIT_COST = 1e6
ACADOS_SOLVER_TYPE = 'SQP_RTI'


# Fewer timestamps don't hurt performance and lead to
Expand Down Expand Up @@ -64,7 +66,7 @@ def desired_follow_distance(v_ego, v_lead):

def gen_long_model():
model = AcadosModel()
model.name = 'long'
model.name = MODEL_NAME

# set up states & controls
x_ego = SX.sym('x_ego')
Expand Down Expand Up @@ -171,7 +173,7 @@ def gen_long_ocp():
ocp.solver_options.qp_solver = 'PARTIAL_CONDENSING_HPIPM'
ocp.solver_options.hessian_approx = 'GAUSS_NEWTON'
ocp.solver_options.integrator_type = 'ERK'
ocp.solver_options.nlp_solver_type = 'SQP_RTI'
ocp.solver_options.nlp_solver_type = ACADOS_SOLVER_TYPE
ocp.solver_options.qp_solver_cond_N = 1

# More iterations take too much time and less lead to inaccurate convergence in
Expand All @@ -194,7 +196,7 @@ def __init__(self, e2e=False):
self.source = SOURCES[2]

def reset(self):
self.solver = AcadosOcpSolverCython(JSON_FILE)
self.solver = AcadosOcpSolverCython(MODEL_NAME, ACADOS_SOLVER_TYPE, N)
self.v_solution = np.zeros(N+1)
self.a_solution = np.zeros(N+1)
self.prev_a = np.array(self.a_solution)
Expand Down

0 comments on commit 3497717

Please sign in to comment.