33
44#include " aligator/modelling/dynamics/multibody-constraint-fwd.hpp"
55#include < aligator/modelling/dynamics/integrator-semi-euler.hpp>
6- #include < aligator/modelling/multibody/center-of-mass-translation.hpp>
76#include < aligator/modelling/multibody/centroidal-momentum.hpp>
87#include < aligator/modelling/multibody/contact-force.hpp>
98#include < aligator/modelling/multibody/dcm-position.hpp>
@@ -26,7 +25,6 @@ namespace simple_mpc
2625 using FrameTranslationResidual = FrameTranslationResidualTpl<double >;
2726 using FrameVelocityResidual = FrameVelocityResidualTpl<double >;
2827 using DCMPositionResidual = DCMPositionResidualTpl<double >;
29- using CenterOfMassTranslationResidual = CenterOfMassTranslationResidualTpl<double >;
3028 using IntegratorSemiImplEuler = dynamics::IntegratorSemiImplEulerTpl<double >;
3129
3230 FullDynamicsOCP::FullDynamicsOCP (const FullDynamicsSettings & settings, const RobotModelHandler & model_handler)
@@ -423,9 +421,9 @@ namespace simple_mpc
423421
424422 term_cost.addCost (
425423 " state_cost" , QuadraticStateCost (ter_space, nu_, model_handler_.getReferenceState (), settings_.w_x ));
426- /* term_cost.addCost(
424+ term_cost.addCost (
427425 " centroidal_cost" ,
428- QuadraticResidualCost(ter_space, cent_mom, settings_.w_cent)); */
426+ QuadraticResidualCost (ter_space, cent_mom, settings_.w_cent * 10 ));
429427
430428 return term_cost;
431429 }
@@ -436,30 +434,12 @@ namespace simple_mpc
436434 {
437435 throw std::runtime_error (" Create problem first!" );
438436 }
439- CenterOfMassTranslationResidual com_cstr =
440- CenterOfMassTranslationResidual (ndx_, nu_, model_handler_.getModel (), com_ref);
441-
437+
442438 double tau = sqrt (com_ref[2 ] / 9.81 );
443439 DCMPositionResidual dcm_cstr = DCMPositionResidual (ndx_, nu_, model_handler_.getModel (), com_ref, tau);
444440
445441 problem_->addTerminalConstraint (dcm_cstr, EqualityConstraint ());
446442
447- Motion v_ref = Motion::Zero ();
448- for (auto const & name : model_handler_.getFeetNames ())
449- {
450- FrameVelocityResidual frame_vel = FrameVelocityResidual (
451- ndx_, nu_, model_handler_.getModel (), v_ref, model_handler_.getFootId (name), pinocchio::LOCAL_WORLD_ALIGNED);
452- if (settings_.force_size == 6 )
453- problem_->addTerminalConstraint (frame_vel, EqualityConstraint ());
454- else
455- {
456- std::vector<int > vel_id = {0 , 1 , 2 };
457-
458- FunctionSliceXpr vel_slice = FunctionSliceXpr (frame_vel, vel_id);
459- problem_->addTerminalConstraint (vel_slice, EqualityConstraint ());
460- }
461- }
462-
463443 terminal_constraint_ = true ;
464444 }
465445
0 commit comments