@@ -356,15 +356,19 @@ void ScaledJointTrajectoryController::update_pids()
356356{
357357 for (size_t i = 0 ; i < num_cmd_joints_; ++i) {
358358 const auto & gains = params_.gains .joints_map .at (params_.joints .at (map_cmd_to_joints_[i]));
359+ control_toolbox::AntiWindupStrategy antiwindup_strat;
360+ antiwindup_strat.set_type (gains.antiwindup_strategy );
361+ antiwindup_strat.i_max = gains.i_clamp ;
362+ antiwindup_strat.i_min = -gains.i_clamp ;
363+ antiwindup_strat.error_deadband = gains.error_deadband ;
364+ antiwindup_strat.tracking_time_constant = gains.tracking_time_constant ;
359365 if (pids_[i]) {
360366 // update PIDs with gains from ROS parameters
361- #pragma GCC diagnostic push
362- #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
363- pids_[i]->set_gains (gains.p , gains.i , gains.d , gains.i_clamp , -gains.i_clamp );
364- #pragma GCC diagnostic pop
367+ pids_[i]->set_gains (gains.p , gains.i , gains.d , gains.u_clamp_max , gains.u_clamp_min , antiwindup_strat);
365368 } else {
366369 // Init PIDs with gains from ROS parameters
367- pids_[i] = std::make_shared<control_toolbox::Pid>(gains.p , gains.i , gains.d , gains.i_clamp , -gains.i_clamp );
370+ pids_[i] = std::make_shared<control_toolbox::Pid>(gains.p , gains.i , gains.d , gains.u_clamp_max , gains.u_clamp_min ,
371+ antiwindup_strat);
368372 }
369373 ff_velocity_scale_[i] = gains.ff_velocity_scale ;
370374 }
0 commit comments