@@ -57,8 +57,9 @@ void check_set_parameters(
57
57
const double I_MAX = 10.0 ;
58
58
const double I_MIN = -10.0 ;
59
59
const bool ANTIWINDUP = true ;
60
+ const bool SAVE_ITERM = true ;
60
61
61
- ASSERT_NO_THROW (pid.initPid (P, I, D, I_MAX, I_MIN, ANTIWINDUP));
62
+ ASSERT_NO_THROW (pid.initPid (P, I, D, I_MAX, I_MIN, ANTIWINDUP, SAVE_ITERM ));
62
63
63
64
rclcpp::Parameter param;
64
65
@@ -81,6 +82,9 @@ void check_set_parameters(
81
82
ASSERT_TRUE (node->get_parameter (prefix + " antiwindup" , param));
82
83
ASSERT_EQ (param.get_value <bool >(), ANTIWINDUP);
83
84
85
+ ASSERT_TRUE (node->get_parameter (prefix + " save_iterm" , param));
86
+ ASSERT_EQ (param.get_value <bool >(), SAVE_ITERM);
87
+
84
88
// check gains were set
85
89
control_toolbox::Pid::Gains gains = pid.getGains ();
86
90
ASSERT_EQ (gains.p_gain_ , P);
@@ -215,8 +219,9 @@ TEST(PidParametersTest, SetParametersTest)
215
219
const double I_MAX = 10.0 ;
216
220
const double I_MIN = -10.0 ;
217
221
const bool ANTIWINDUP = true ;
222
+ const bool SAVE_ITERM = false ;
218
223
219
- pid.initPid (P, I, D, I_MAX, I_MIN, ANTIWINDUP);
224
+ pid.initPid (P, I, D, I_MAX, I_MIN, ANTIWINDUP, SAVE_ITERM );
220
225
221
226
rcl_interfaces::msg::SetParametersResult set_result;
222
227
@@ -237,6 +242,8 @@ TEST(PidParametersTest, SetParametersTest)
237
242
ASSERT_TRUE (set_result.successful );
238
243
ASSERT_NO_THROW (set_result = node->set_parameter (rclcpp::Parameter (" antiwindup" , ANTIWINDUP)));
239
244
ASSERT_TRUE (set_result.successful );
245
+ ASSERT_NO_THROW (set_result = node->set_parameter (rclcpp::Parameter (" save_iterm" , SAVE_ITERM)));
246
+ ASSERT_TRUE (set_result.successful );
240
247
241
248
// process callbacks
242
249
rclcpp::spin_some (node->get_node_base_interface ());
@@ -314,7 +321,7 @@ TEST(PidParametersTest, GetParametersTest)
314
321
const double I_MIN = -10.0 ;
315
322
const bool ANTIWINDUP = true ;
316
323
317
- pid.initPid (0.0 , 0.0 , 0.0 , 0.0 , 0.0 , false );
324
+ pid.initPid (0.0 , 0.0 , 0.0 , 0.0 , 0.0 , false , false );
318
325
pid.setGains (P, I, D, I_MAX, I_MIN, ANTIWINDUP);
319
326
320
327
rclcpp::Parameter param;
@@ -336,6 +343,9 @@ TEST(PidParametersTest, GetParametersTest)
336
343
337
344
ASSERT_TRUE (node->get_parameter (" antiwindup" , param));
338
345
ASSERT_EQ (param.get_value <bool >(), ANTIWINDUP);
346
+
347
+ ASSERT_TRUE (node->get_parameter (" save_iterm" , param));
348
+ ASSERT_EQ (param.get_value <bool >(), false );
339
349
}
340
350
341
351
TEST (PidParametersTest, GetParametersFromParams)
@@ -380,8 +390,8 @@ TEST(PidParametersTest, MultiplePidInstances)
380
390
const double I_MAX = 10.0 ;
381
391
const double I_MIN = -10.0 ;
382
392
383
- ASSERT_NO_THROW (pid_1.initPid (P, I, D, I_MAX, I_MIN, false ));
384
- ASSERT_NO_THROW (pid_2.initPid (P, I, D, I_MAX, I_MIN, true ));
393
+ ASSERT_NO_THROW (pid_1.initPid (P, I, D, I_MAX, I_MIN, false , false ));
394
+ ASSERT_NO_THROW (pid_2.initPid (P, I, D, I_MAX, I_MIN, true , false ));
385
395
386
396
rclcpp::Parameter param_1, param_2;
387
397
ASSERT_TRUE (node->get_parameter (" PID_1.p" , param_1));
0 commit comments