diff --git a/examples/solo_bend.py b/examples/solo_bend.py index fe617391a..9dfc5cd2c 100644 --- a/examples/solo_bend.py +++ b/examples/solo_bend.py @@ -70,7 +70,7 @@ def update_target(sphere, x): # Define cost functions -base_weight = 0.5 +base_weight = 2.0 w_xreg = np.diag([1e-3] * nv + [1e-3] * nv) w_xreg[range(3), range(3)] = base_weight @@ -108,7 +108,8 @@ def main(): problem = aligator.TrajOptProblem(x0, stages, term_cost) - solver = aligator.SolverProxDDP(1e-3, 1e-4, verbose=aligator.VERBOSE) + mu_init = 1e-2 + solver = aligator.SolverProxDDP(1e-3, mu_init, verbose=aligator.VERBOSE) solver.reg_init = 1e-8 solver.setup(problem) flag = solver.run(problem, xs_i, us_i) diff --git a/include/aligator/solvers/proxddp/solver-proxddp.hxx b/include/aligator/solvers/proxddp/solver-proxddp.hxx index 1400850ec..a4bed036e 100644 --- a/include/aligator/solvers/proxddp/solver-proxddp.hxx +++ b/include/aligator/solvers/proxddp/solver-proxddp.hxx @@ -223,7 +223,7 @@ void SolverProxDDPTpl::computeMultipliers( lams_plus[i + 1] = lams_prev[i + 1] + dd.value_ / mudyn(); lams_pdal[i + 1] = 2 * lams_plus[i + 1] - lams[i + 1]; Lds[i + 1] = mudyn() * (lams_plus[i + 1] - lams[i + 1]); - ALIGATOR_RAISE_IF_NAN(Lds[i + 1]); + ALIGATOR_RAISE_IF_NAN_NAME(Lds[i + 1], fmt::format("Lds[{:d}]", i + 1)); // 2. use product constraint operator // to compute the new multiplier estimates