@@ -352,15 +352,19 @@ void ScaledJointTrajectoryController::update_pids()
352352{
353353 for (size_t i = 0 ; i < num_cmd_joints_; ++i) {
354354 const auto & gains = params_.gains .joints_map .at (params_.joints .at (map_cmd_to_joints_[i]));
355+ control_toolbox::AntiWindupStrategy antiwindup_strat;
356+ antiwindup_strat.set_type (gains.antiwindup_strategy );
357+ antiwindup_strat.i_max = gains.i_clamp ;
358+ antiwindup_strat.i_min = -gains.i_clamp ;
359+ antiwindup_strat.error_deadband = gains.error_deadband ;
360+ antiwindup_strat.tracking_time_constant = gains.tracking_time_constant ;
355361 if (pids_[i]) {
356362 // update PIDs with gains from ROS parameters
357- #pragma GCC diagnostic push
358- #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
359- pids_[i]->set_gains (gains.p , gains.i , gains.d , gains.i_clamp , -gains.i_clamp );
360- #pragma GCC diagnostic pop
363+ pids_[i]->set_gains (gains.p , gains.i , gains.d , gains.u_clamp_max , gains.u_clamp_min , antiwindup_strat);
361364 } else {
362365 // Init PIDs with gains from ROS parameters
363- pids_[i] = std::make_shared<control_toolbox::Pid>(gains.p , gains.i , gains.d , gains.i_clamp , -gains.i_clamp );
366+ pids_[i] = std::make_shared<control_toolbox::Pid>(gains.p , gains.i , gains.d , gains.u_clamp_max , gains.u_clamp_min ,
367+ antiwindup_strat);
364368 }
365369 ff_velocity_scale_[i] = gains.ff_velocity_scale ;
366370 }
0 commit comments