Skip to content

Commit 934d302

Browse files
Use new API of PID class (backport of #1410) (#1418)
* Use new API of PID class * Add error_deadband Co-authored-by: Christoph Fröhlich <[email protected]>
1 parent f5cb451 commit 934d302

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

ur_controllers/src/scaled_joint_trajectory_controller.cpp

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)