Skip to content

Commit 087c395

Browse files
Cleanup parameter validation
1 parent b419fc3 commit 087c395

2 files changed

Lines changed: 5 additions & 14 deletions

File tree

control_toolbox/include/control_toolbox/pid.hpp

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -291,24 +291,15 @@ class Pid
291291
d_gain_(d),
292292
u_max_(u_max),
293293
u_min_(u_min),
294+
i_max_(antiwindup_strat.i_max),
295+
i_min_(antiwindup_strat.i_min),
294296
antiwindup_strat_(antiwindup_strat)
295297
{
296-
if (std::isnan(u_min) || std::isnan(u_max))
297-
{
298-
throw std::invalid_argument("Gains: u_min and u_max must not be NaN");
299-
}
300-
if (u_min > u_max)
301-
{
302-
std::cout << "Received invalid u_min and u_max values: " << "u_min: " << u_min
303-
<< ", u_max: " << u_max << ". Setting saturation to false." << std::endl;
304-
u_max_ = std::numeric_limits<double>::infinity();
305-
u_min_ = -std::numeric_limits<double>::infinity();
306-
}
307298
}
308299

309300
bool validate(std::string & error_msg) const
310301
{
311-
if (u_min_ >= u_max_)
302+
if (u_min_ >= u_max_) // is false if any value is nan
312303
{
313304
error_msg = fmt::format("Gains: u_min ({}) must be less than u_max ({})", u_min_, u_max_);
314305
return false;

control_toolbox/src/pid.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,9 @@ Pid::Pid(
5050
double p, double i, double d, double u_max, double u_min,
5151
const AntiWindupStrategy & antiwindup_strat)
5252
{
53-
if (u_min > u_max)
53+
if (u_min >= u_max)
5454
{
55-
throw std::invalid_argument("received u_min > u_max");
55+
throw std::invalid_argument("received u_min >= u_max");
5656
}
5757
set_gains(p, i, d, u_max, u_min, antiwindup_strat);
5858

0 commit comments

Comments
 (0)