Skip to content

Commit 2d18953

Browse files
committed
Remove pointer to solver and directly have object in class
1 parent 0dd62ea commit 2d18953

File tree

3 files changed

+9
-9
lines changed

3 files changed

+9
-9
lines changed

include/simple-mpc/inverse-dynamics/kinodynamics.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#include <simple-mpc/robot-handler.hpp>
44
#include <tsid/contacts/contact-point.hpp>
55
#include <tsid/formulations/inverse-dynamics-formulation-acc-force.hpp>
6-
#include <tsid/solvers/solver-HQP-factory.hxx>
6+
#include <tsid/solvers/solver-proxqp.hpp>
77
#include <tsid/solvers/utils.hpp>
88
#include <tsid/tasks/task-actuation-bounds.hpp>
99
#include <tsid/tasks/task-joint-posVelAcc-bounds.hpp>
@@ -80,7 +80,7 @@ namespace simple_mpc
8080
std::shared_ptr<tsid::tasks::TaskSE3Equality> baseTask_;
8181
std::shared_ptr<tsid::tasks::TaskJointPosVelAccBounds> boundsTask_;
8282
std::shared_ptr<tsid::tasks::TaskActuationBounds> actuationTask_;
83-
tsid::solvers::SolverHQPBase * solver_;
83+
tsid::solvers::SolverProxQP solver_;
8484
tsid::solvers::HQPOutput last_solution_;
8585
tsid::trajectories::TrajectorySample samplePosture_;
8686
tsid::trajectories::TrajectorySample sampleBase_;

src/inverse-dynamics/centroidal.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ namespace simple_mpc
8282

8383
// Dry run to initialize solver data & output
8484
const tsid::solvers::HQPData & solver_data = formulation_.computeProblemData(0, q_ref, v_ref);
85-
last_solution_ = solver_->solve(solver_data);
85+
last_solution_ = solver_.solve(solver_data);
8686
}
8787

8888
void CentroidalID::setTarget(

src/inverse-dynamics/kinodynamics.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ KinodynamicsID::KinodynamicsID(const RobotModelHandler & model_handler, double c
1010
, data_handler_(model_handler_)
1111
, robot_(model_handler_.getModel())
1212
, formulation_("tsid", robot_)
13+
, solver_("solver-proxqp")
1314
{
1415
const pinocchio::Model & model = model_handler.getModel();
1516
const size_t nq = model.nq;
@@ -61,7 +62,7 @@ KinodynamicsID::KinodynamicsID(const RobotModelHandler & model_handler, double c
6162
if (settings_.w_posture > 0.)
6263
formulation_.addMotionTask(*postureTask_, settings_.w_posture, 1);
6364

64-
samplePosture_ = tsid::trajectories::TrajectorySample(nq_actuated, nu);
65+
samplePosture_.resize(nq_actuated, nu);
6566

6667
// Add the base task
6768
baseTask_ = std::make_shared<tsid::tasks::TaskSE3Equality>("task-base", robot_, model_handler_.getBaseFrameName());
@@ -89,8 +90,7 @@ KinodynamicsID::KinodynamicsID(const RobotModelHandler & model_handler, double c
8990
formulation_.addActuationTask(*actuationTask_, 1.0, 0); // No weight needed as it is set as constraint
9091

9192
// Create an HQP solver
92-
solver_ = tsid::solvers::SolverHQPFactory::createNewSolver(tsid::solvers::SOLVER_HQP_PROXQP, "solver-proxqp");
93-
solver_->resize(formulation_.nVar(), formulation_.nEq(), formulation_.nIn());
93+
solver_.resize(formulation_.nVar(), formulation_.nEq(), formulation_.nIn());
9494

9595
// By default initialize target in reference state
9696
const Eigen::VectorXd q_ref = model_handler.getReferenceState().head(nq);
@@ -114,7 +114,7 @@ KinodynamicsID::KinodynamicsID(const RobotModelHandler & model_handler, double c
114114

115115
// Dry run to initialize solver data & output
116116
const tsid::solvers::HQPData & solver_data = formulation_.computeProblemData(0, q_ref, v_ref);
117-
last_solution_ = solver_->solve(solver_data);
117+
last_solution_ = solver_.solve(solver_data);
118118
}
119119

120120
void KinodynamicsID::setTarget(
@@ -182,7 +182,7 @@ void KinodynamicsID::setTarget(
182182
}
183183
}
184184
}
185-
solver_->resize(formulation_.nVar(), formulation_.nEq(), formulation_.nIn());
185+
solver_.resize(formulation_.nVar(), formulation_.nEq(), formulation_.nIn());
186186
}
187187

188188
void KinodynamicsID::solve(
@@ -217,7 +217,7 @@ void KinodynamicsID::solve(
217217
}
218218

219219
const tsid::solvers::HQPData & solver_data = formulation_.computeProblemData(t, q_meas, v_meas);
220-
last_solution_ = solver_->solve(solver_data);
220+
last_solution_ = solver_.solve(solver_data);
221221
assert(last_solution_.status == tsid::solvers::HQPStatus::HQP_STATUS_OPTIMAL);
222222
tau_res = formulation_.getActuatorForces(last_solution_);
223223
}

0 commit comments

Comments
 (0)