import os import subprocess from cffi import FFI mpc_dir = os.path.dirname(os.path.abspath(__file__)) libmpc_fn = os.path.join(mpc_dir, "libcommampc.so") subprocess.check_output(["make", "-j4"], cwd=mpc_dir) ffi = FFI() ffi.cdef(""" typedef struct { double x, y, psi, delta, t; } state_t; typedef struct { double x[50]; double y[50]; double psi[50]; double delta[50]; } log_t; void init(); int run_mpc(state_t * x0, log_t * solution, double l_poly[4], double r_poly[4], double p_poly[4], double l_prob, double r_prob, double p_prob, double curvature_factor, double v_ref, double lane_width); """) libmpc = ffi.dlopen(libmpc_fn)