Problem with large objective function value

Hi, I’m using OSQP for whole body control of legged robots.

We defined the objective with pretty high value scale, and the objective value increases as the number of iteration increases. Someone can give some tips for tuning the parameters?

-----------------------------------------------------------------
           OSQP v0.6.0  -  Operator Splitting QP Solver
              (c) Bartolomeo Stellato,  Goran Banjac
        University of Oxford  -  Stanford University 2019
-----------------------------------------------------------------
problem:  variables n = 42, constraints m = 76
          nnz(P) + nnz(A) = 368
settings: linear system solver = qdldl,
          eps_abs = 1.0e-03, eps_rel = 1.0e-03,
          eps_prim_inf = 1.0e-04, eps_dual_inf = 1.0e-04,
          rho = 1.00e-01 (adaptive),
          sigma = 1.00e-06, alpha = 1.60, max_iter = 2000
          check_termination: on (interval 25),
          scaling: on, scaled_termination: off
          warm start: on, polish: off, time_limit: off

iter   objective    pri res    dua res    rho        time
   1   0.0000e+00   2.47e+02   6.18e+05   1.00e-01   2.58e-04s
  50   1.8453e+05   2.06e-01   5.03e+00   1.00e-01   6.10e-04s

status:               solved
number of iterations: 50
optimal objective:    184526.4206
run time:             6.17e-04s
optimal rho estimate: 1.63e-01

-----------------------------------------------------------------
           OSQP v0.6.0  -  Operator Splitting QP Solver
              (c) Bartolomeo Stellato,  Goran Banjac
        University of Oxford  -  Stanford University 2019
-----------------------------------------------------------------
problem:  variables n = 42, constraints m = 76
          nnz(P) + nnz(A) = 416
settings: linear system solver = qdldl,
          eps_abs = 1.0e-03, eps_rel = 1.0e-03,
          eps_prim_inf = 1.0e-04, eps_dual_inf = 1.0e-04,
          rho = 1.00e-01 (adaptive),
          sigma = 1.00e-06, alpha = 1.60, max_iter = 2000
          check_termination: on (interval 25),
          scaling: on, scaled_termination: off
          warm start: on, polish: off, time_limit: off

iter   objective    pri res    dua res    rho        time
   1  -1.6241e+04   8.04e+00   2.90e+07   1.00e-01   2.41e-04s
 200  -2.3358e+04   2.04e-02   9.24e+01   1.00e-01   1.70e-03s
 225  -3.0731e+04   1.94e-03   5.23e+01   1.00e-01   1.88e-03s

status:               solved
number of iterations: 225
optimal objective:    -30731.0789
run time:             1.89e-03s
optimal rho estimate: 3.22e-02

I think we will require a bit more information about the problem. It seems to me that, in both cases, the solver exited in a reasonable number of iterations ( a few hundred iterations is not uncommon) and that it reported a successful solve. Solve times also see reasonably fast.

If what you are asking about is the apparent increase/decrease in the objective value as a function if the iterations number, then you should not read anything into it I think. The objective values at iterations prior to convergence are for primal vectors which are either suboptimal or infeasible anyway, by definition. The ‘pri res’ and ‘dua res’ columns are the ones to pay attention to.