@@ -525,7 +525,7 @@ controller_interface::return_type PidController::update_and_write_commands(
525525 size_t gains_start_index = dof_reference_size;
526526 for (size_t i = 0 ; i < dof_; ++i)
527527 {
528- const auto current_antiwindup_strat = pids_[i]->get_gains (). antiwindup_strat_ ;
528+ auto current_pid_gains = pids_[i]->get_gains ();
529529 for (size_t j = 0 ; j < GAIN_INTERFACES.size (); ++j)
530530 {
531531 const size_t buffer_index = gains_start_index + i + j * dof_;
@@ -536,22 +536,16 @@ controller_interface::return_type PidController::update_and_write_commands(
536536 switch (gain_type)
537537 {
538538 case 0 : // P gain
539- pids_[i]->set_gains (
540- new_gain_value, std::numeric_limits<double >::quiet_NaN (),
541- std::numeric_limits<double >::quiet_NaN (), std::numeric_limits<double >::quiet_NaN (),
542- std::numeric_limits<double >::quiet_NaN (), current_antiwindup_strat);
539+ current_pid_gains.p_gain_ = new_gain_value;
540+ pids_[i]->set_gains (current_pid_gains);
543541 break ;
544542 case 1 : // I gain
545- pids_[i]->set_gains (
546- std::numeric_limits<double >::quiet_NaN (), new_gain_value,
547- std::numeric_limits<double >::quiet_NaN (), std::numeric_limits<double >::quiet_NaN (),
548- std::numeric_limits<double >::quiet_NaN (), current_antiwindup_strat);
543+ current_pid_gains.i_gain_ = new_gain_value;
544+ pids_[i]->set_gains (current_pid_gains);
549545 break ;
550546 case 2 : // D gain
551- pids_[i]->set_gains (
552- std::numeric_limits<double >::quiet_NaN (), std::numeric_limits<double >::quiet_NaN (),
553- new_gain_value, std::numeric_limits<double >::quiet_NaN (),
554- std::numeric_limits<double >::quiet_NaN (), current_antiwindup_strat);
547+ current_pid_gains.d_gain_ = new_gain_value;
548+ pids_[i]->set_gains (current_pid_gains);
555549 break ;
556550 }
557551 reference_interfaces_[buffer_index] = std::numeric_limits<double >::quiet_NaN ();
0 commit comments