urosolia / RacingLMPC

Implementation of the Learning Model Predictive Controller for autonomous racing
284 stars 77 forks source link

New Track #15

Open JonasMysliwitz opened 2 years ago

JonasMysliwitz commented 2 years ago

Hi, i tried the following new map:

    self.slack = 0.45
    self.halfWidth = 0.8
    self.lengthcurve = 4
    spec = np.array([[3/2, 0],
                     [self.lengthcurve/ 2 , self.lengthcurve /np.pi],
                     [self.lengthcurve / np.pi * (3.5), 0],
                     [self.lengthcurve /2,self.lengthcurve / np.pi],
                     [4/2, 0],
                     [self.lengthcurve  , self.lengthcurve / np.pi],
                     #[1/2 + 0.1, 0],
                     [self.lengthcurve, - self.lengthcurve / np.pi],
                     #[1/2, 0],
                     [self.lengthcurve / 2 *3, - 3* self.lengthcurve / np.pi],
                     [self.lengthcurve, self.lengthcurve / np.pi],
                     #[1-0.04647909, 0],
                     [self.lengthcurve/ 2 * 4.5, 4.5 * self.lengthcurve / np.pi]])

Figure_23

But then it fails in the first iteration of LMPC with the raise: Starting PID ===== PID terminated Starting MPC ===== MPC terminated Starting TV-MPC ===== TV-MPC terminated Starting LMPC Traceback (most recent call last): File "C:\Users\jonas\AppData\Local\Programs\Python\Python39\lib\site-packages\cvxopt\misc.py", line 1429, in factor lapack.potrf(F['S']) ArithmeticError: 1

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "C:\Users\jonas\AppData\Local\Programs\Python\Python39\lib\site-packages\cvxopt\coneprog.py", line 2010, in coneqp try: f3 = kktsolver({'d': matrix(0.0, (0,1)), 'di': File "C:\Users\jonas\AppData\Local\Programs\Python\Python39\lib\site-packages\cvxopt\coneprog.py", line 1981, in kktsolver return factor(W, P) File "C:\Users\jonas\AppData\Local\Programs\Python\Python39\lib\site-packages\cvxopt\misc.py", line 1444, in factor lapack.potrf(F['S']) ArithmeticError: 1

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "C:\Users\jonas\PycharmProjects\RacingLMPC-master(alt)\src\main.py", line 179, in main() File "C:\Users\jonas\PycharmProjects\RacingLMPC-master(alt)\src\main.py", line 116, in main xTVMPC_cl, uTVMPC_cl, xTVMPC_clglob, = simulator.sim(xS, mpc) File "C:\Users\jonas\PycharmProjects\RacingLMPC-master(alt)\src\fnc/simulator\SysModel.py", line 34, in sim Controller.solve(x_cl[-1]) File "C:\Users\jonas\PycharmProjects\RacingLMPC-master(alt)\src\fnc/controller\PredictiveControllers.py", line 117, in solve self.computeLTVdynamics() File "C:\Users\jonas\PycharmProjects\RacingLMPC-master(alt)\src\fnc/controller\PredictiveControllers.py", line 144, in computeLTVdynamics Ai, Bi, Ci = self.predictiveModel.regressionAndLinearization(self.xLin[i], self.uLin[i]) File "C:\Users\jonas\PycharmProjects\RacingLMPC-master(alt)\src\fnc/controller\PredictiveModel.py", line 70, in regressionAndLinearization Ai[yIndex, self.stateFeatures], Bi[yIndex, self.inputFeaturesVx], Ci[yIndex] = self.LMPC_LocLinReg(Q_vx, b_vx, self.inputFeaturesVx) File "C:\Users\jonas\PycharmProjects\RacingLMPC-master(alt)\src\fnc/controller\PredictiveModel.py", line 172, in LMPC_LocLinReg res_cons = qp(Q, b) # This is ordered as [A B C] File "C:\Users\jonas\AppData\Local\Programs\Python\Python39\lib\site-packages\cvxopt\coneprog.py", line 4485, in qp return coneqp(P, q, G, h, None, A, b, initvals, kktsolver = kktsolver, options = options) File "C:\Users\jonas\AppData\Local\Programs\Python\Python39\lib\site-packages\cvxopt\coneprog.py", line 2013, in coneqp raise ValueError("Rank(A) < p or Rank([P; A; G]) < n") ValueError: Rank(A) < p or Rank([P; A; G]) < n

Does someone have an idea why this map is not working correctly?