@@ -30,21 +30,21 @@ KinodynamicsID::KinodynamicsID(const RobotModelHandler & model_handler, double c
3030 switch (model_handler.getFootType (i))
3131 {
3232 case RobotModelHandler::FootType::POINT: {
33- auto contact_point = std::make_shared< tsid::contacts::ContactPoint> (
33+ auto contact_point = new tsid::contacts::ContactPoint (
3434 frame_name, robot_, frame_name, normal, settings_.friction_coefficient , min_f, max_f);
3535 contact_point->Kp (settings_.kp_contact * Eigen::VectorXd::Ones (3 ));
3636 contact_point->Kd (2.0 * contact_point->Kp ().cwiseSqrt ());
3737 contact_point->useLocalFrame (false );
38- tsid_contacts.push_back (contact_point);
38+ tsid_contacts.emplace_back (contact_point);
3939 break ;
4040 }
4141 case RobotModelHandler::FootType::QUAD: {
42- auto contact_6D = std::make_shared< tsid::contacts::Contact6d> (
42+ auto contact_6D = new tsid::contacts::Contact6d (
4343 frame_name, robot_, frame_name, model_handler_.getQuadFootContactPoints (i).transpose (), normal,
4444 settings_.friction_coefficient , min_f, max_f);
4545 contact_6D->Kp (settings_.kp_contact * Eigen::VectorXd::Ones (6 ));
4646 contact_6D->Kd (2.0 * contact_6D->Kp ().cwiseSqrt ());
47- tsid_contacts.push_back (contact_6D);
47+ tsid_contacts.emplace_back (contact_6D);
4848 break ;
4949 }
5050 default : {
@@ -56,7 +56,7 @@ KinodynamicsID::KinodynamicsID(const RobotModelHandler & model_handler, double c
5656 }
5757
5858 // Add the posture task
59- postureTask_ = std::make_shared <tsid::tasks::TaskJointPosture>(" task-posture" , robot_);
59+ postureTask_ = std::make_unique <tsid::tasks::TaskJointPosture>(" task-posture" , robot_);
6060 postureTask_->Kp (settings_.kp_posture * Eigen::VectorXd::Ones (nu));
6161 postureTask_->Kd (2.0 * postureTask_->Kp ().cwiseSqrt ());
6262 if (settings_.w_posture > 0 .)
@@ -65,7 +65,7 @@ KinodynamicsID::KinodynamicsID(const RobotModelHandler & model_handler, double c
6565 samplePosture_.resize (nq_actuated, nu);
6666
6767 // Add the base task
68- baseTask_ = std::make_shared <tsid::tasks::TaskSE3Equality>(" task-base" , robot_, model_handler_.getBaseFrameName ());
68+ baseTask_ = std::make_unique <tsid::tasks::TaskSE3Equality>(" task-base" , robot_, model_handler_.getBaseFrameName ());
6969 baseTask_->Kp (settings_.kp_base * Eigen::VectorXd::Ones (6 ));
7070 baseTask_->Kd (2.0 * baseTask_->Kp ().cwiseSqrt ());
7171 if (settings_.w_base > 0 .)
@@ -74,7 +74,7 @@ KinodynamicsID::KinodynamicsID(const RobotModelHandler & model_handler, double c
7474 sampleBase_.resize (12 , 6 );
7575
7676 // Add joint limit task
77- boundsTask_ = std::make_shared <tsid::tasks::TaskJointPosVelAccBounds>(" task-joint-limits" , robot_, control_dt);
77+ boundsTask_ = std::make_unique <tsid::tasks::TaskJointPosVelAccBounds>(" task-joint-limits" , robot_, control_dt);
7878 boundsTask_->setPositionBounds (
7979 model_handler_.getModel ().lowerPositionLimit .tail (nq_actuated),
8080 model_handler_.getModel ().upperPositionLimit .tail (nq_actuated));
@@ -84,7 +84,7 @@ KinodynamicsID::KinodynamicsID(const RobotModelHandler & model_handler, double c
8484 formulation_.addMotionTask (*boundsTask_, 1.0 , 0 ); // No weight needed as it is set as constraint
8585
8686 // Add actuation limit task
87- actuationTask_ = std::make_shared <tsid::tasks::TaskActuationBounds>(" actuation-limits" , robot_);
87+ actuationTask_ = std::make_unique <tsid::tasks::TaskActuationBounds>(" actuation-limits" , robot_);
8888 actuationTask_->setBounds (
8989 -model_handler_.getModel ().effortLimit .tail (nu), model_handler_.getModel ().effortLimit .tail (nu));
9090 formulation_.addActuationTask (*actuationTask_, 1.0 , 0 ); // No weight needed as it is set as constraint
@@ -157,14 +157,12 @@ void KinodynamicsID::setTarget(
157157 {
158158 case RobotModelHandler::FootType::POINT: {
159159 assert (f_target.at (foot_nb).size () == 3 );
160- std::static_pointer_cast<tsid::contacts::ContactPoint>(tsid_contacts[foot_nb])
161- ->setForceReference (f_target.at (foot_nb));
160+ static_cast <tsid::contacts::ContactPoint &>(*tsid_contacts[foot_nb]).setForceReference (f_target.at (foot_nb));
162161 break ;
163162 }
164163 case RobotModelHandler::FootType::QUAD: {
165164 assert (f_target.at (foot_nb).size () == 6 );
166- std::static_pointer_cast<tsid::contacts::Contact6d>(tsid_contacts[foot_nb])
167- ->setForceReference (f_target.at (foot_nb));
165+ static_cast <tsid::contacts::Contact6d &>(*tsid_contacts[foot_nb]).setForceReference (f_target.at (foot_nb));
168166 break ;
169167 }
170168 default : {
@@ -200,13 +198,13 @@ void KinodynamicsID::solve(
200198 switch (model_handler_.getFootType (foot_nb))
201199 {
202200 case RobotModelHandler::FootType::POINT: {
203- std::static_pointer_cast <tsid::contacts::ContactPoint>( tsid_contacts[foot_nb])
204- -> setReference (data_handler_.getFootPose (foot_nb));
201+ static_cast <tsid::contacts::ContactPoint &>(* tsid_contacts[foot_nb])
202+ . setReference (data_handler_.getFootPose (foot_nb));
205203 break ;
206204 }
207205 case RobotModelHandler::FootType::QUAD: {
208- std::static_pointer_cast <tsid::contacts::Contact6d>( tsid_contacts[foot_nb])
209- -> setReference (data_handler_.getFootPose (foot_nb));
206+ static_cast <tsid::contacts::Contact6d &>(* tsid_contacts[foot_nb])
207+ . setReference (data_handler_.getFootPose (foot_nb));
210208 break ;
211209 }
212210 default : {
0 commit comments