diff --git a/include/CCC/DdpCentroidal.h b/include/CCC/DdpCentroidal.h index 8375a65..71c4bf4 100644 --- a/include/CCC/DdpCentroidal.h +++ b/include/CCC/DdpCentroidal.h @@ -362,5 +362,8 @@ class DdpCentroidal //! Force scale limits (i.e., limits of \f$\lambda_i\f$ in the order of lower, upper) std::array force_scale_limits_ = {0.0, 1e6}; + + //! Latest returned value from DDP solver + bool ddp_solved_ = false; }; } // namespace CCC diff --git a/src/DdpCentroidal.cpp b/src/DdpCentroidal.cpp index e09b242..404c703 100644 --- a/src/DdpCentroidal.cpp +++ b/src/DdpCentroidal.cpp @@ -226,11 +226,11 @@ Eigen::VectorXd DdpCentroidal::planOnce(const std::function double t = current_time + i * ddp_problem_->dt(); current_u_list.push_back(DdpProblem::InputDimVector::Zero(ddp_problem_->inputDim(t))); } - ddp_solver_->solve(current_time, initial_param.toState(ddp_problem_->mass_), current_u_list); + ddp_solved_ = ddp_solver_->solve(current_time, initial_param.toState(ddp_problem_->mass_), current_u_list); } else { - ddp_solver_->solve(current_time, initial_param.toState(ddp_problem_->mass_), initial_param.u_list); + ddp_solved_ = ddp_solver_->solve(current_time, initial_param.toState(ddp_problem_->mass_), initial_param.u_list); } return ddp_solver_->controlData().u_list[0];