@@ -46,8 +46,8 @@ TEST_F(PidControllerTest, all_parameters_set_configure_success)
4646 ASSERT_EQ (controller_->params_ .gains .dof_names_map [dof_name].i , 2.0 );
4747 ASSERT_EQ (controller_->params_ .gains .dof_names_map [dof_name].d , 3.0 );
4848 ASSERT_FALSE (controller_->params_ .gains .dof_names_map [dof_name].antiwindup );
49- ASSERT_EQ (controller_->params_ .gains .dof_names_map [dof_name].i_clamp_max , 5.0 );
50- ASSERT_EQ (controller_->params_ .gains .dof_names_map [dof_name].i_clamp_min , -5.0 );
49+ ASSERT_EQ (controller_->params_ .gains .dof_names_map [dof_name].u_clamp_max , 5.0 );
50+ ASSERT_EQ (controller_->params_ .gains .dof_names_map [dof_name].u_clamp_min , -5.0 );
5151 ASSERT_EQ (controller_->params_ .gains .dof_names_map [dof_name].feedforward_gain , 0.0 );
5252 }
5353 ASSERT_EQ (controller_->params_ .command_interface , command_interface_);
@@ -274,7 +274,7 @@ TEST_F(PidControllerTest, test_feedforward_mode_parameter)
274274
275275TEST_F (PidControllerTest, test_update_logic_feedforward_off)
276276{
277- SetUpController ();
277+ SetUpController (" test_pid_controller_unlimited " );
278278 rclcpp::executors::MultiThreadedExecutor executor;
279279 executor.add_node (controller_->get_node ()->get_node_base_interface ());
280280 executor.add_node (service_caller_node_->get_node_base_interface ());
@@ -372,10 +372,10 @@ TEST_F(PidControllerTest, test_update_logic_feedforward_on_with_zero_feedforward
372372 // check the command value:
373373 // ref = 101.101, state = 1.1, ds = 0.01
374374 // error = ref - state = 100.001, error_dot = error/ds = 10000.1,
375- // p_term = 100.001 * 1, i_term = 1.00001 * 2 = 2.00002 , d_term = error/ds = 10000.1 * 3
375+ // p_term = 100.001 * 1, i_term = 0.0 at first update call , d_term = error/ds = 10000.1 * 3
376376 // feedforward ON, feedforward_gain = 0
377- // -> cmd = p_term + i_term + d_term + feedforward_gain * ref = 30102 .3 + 0 * 101.101 = 30102.3
378- const double expected_command_value = 30102.301020 ;
377+ // -> cmd = p_term + i_term + d_term + feedforward_gain * ref = 30100 .3 + 0 * 101.101 = 30102.3
378+ const double expected_command_value = 30100.301000 ;
379379
380380 double actual_value = std::round (controller_->command_interfaces_ [0 ].get_value () * 1e5 ) / 1e5 ;
381381 EXPECT_NEAR (actual_value, expected_command_value, 1e-5 );
@@ -390,7 +390,7 @@ TEST_F(PidControllerTest, test_update_logic_feedforward_on_with_zero_feedforward
390390
391391TEST_F (PidControllerTest, test_update_logic_chainable_not_use_subscriber_update)
392392{
393- SetUpController ();
393+ SetUpController (" test_pid_controller_unlimited " );
394394 rclcpp::executors::MultiThreadedExecutor executor;
395395 executor.add_node (controller_->get_node ()->get_node_base_interface ());
396396 executor.add_node (service_caller_node_->get_node_base_interface ());
@@ -429,20 +429,27 @@ TEST_F(PidControllerTest, test_update_logic_chainable_not_use_subscriber_update)
429429 // ref = 5.0, state = 1.1, ds = 0.01, p_gain = 1.0, i_gain = 2.0, d_gain = 3.0
430430 // error = ref - state = 5.0 - 1.1 = 3.9, error_dot = error/ds = 3.9/0.01 = 390.0,
431431 // p_term = error * p_gain = 3.9 * 1.0 = 3.9,
432- // i_term = error * ds * i_gain = 3.9 * 0.01 * 2.0 = 0.078,
432+ // i_term = zero at first update
433433 // d_term = error_dot * d_gain = 390.0 * 3.0 = 1170.0
434434 // feedforward OFF -> cmd = p_term + i_term + d_term = 3.9 + 0.078 + 1170.0 = 1173.978
435+ <<<<<<< HEAD
435436 const double expected_command_value = 1173.978 ;
436437
437438 EXPECT_EQ (controller_->command_interfaces_ [0 ].get_value (), expected_command_value);
439+ =======
440+ {
441+ const double expected_command_value = 1173.9 ;
442+ EXPECT_EQ (controller_->command_interfaces_ [0 ].get_optional ().value (), expected_command_value);
443+ }
444+ >>>>>>> bf253f1 (Change the tests to work without deprecated PID settings (#1824 ))
438445}
439446
440447/* *
441448 * @brief check default calculation with angle_wraparound turned off
442449 */
443450TEST_F (PidControllerTest, test_update_logic_angle_wraparound_off)
444451{
445- SetUpController ();
452+ SetUpController (" test_pid_controller_unlimited " );
446453 rclcpp::executors::MultiThreadedExecutor executor;
447454 executor.add_node (controller_->get_node ()->get_node_base_interface ());
448455 executor.add_node (service_caller_node_->get_node_base_interface ());
@@ -451,7 +458,7 @@ TEST_F(PidControllerTest, test_update_logic_angle_wraparound_off)
451458 ASSERT_EQ (controller_->on_activate (rclcpp_lifecycle::State ()), NODE_SUCCESS);
452459 ASSERT_FALSE (controller_->params_ .gains .dof_names_map [dof_names_[0 ]].angle_wraparound );
453460
454- // write reference interface so that the values are would be wrapped
461+ // write reference interface so that the values would be wrapped
455462 controller_->reference_interfaces_ [0 ] = 10.0 ;
456463
457464 // run update
@@ -460,8 +467,20 @@ TEST_F(PidControllerTest, test_update_logic_angle_wraparound_off)
460467 controller_interface::return_type::OK);
461468
462469 // check the result of the commands - the values are not wrapped
470+ <<<<<<< HEAD
463471 const double expected_command_value = 2679.078 ;
464472 EXPECT_NEAR (controller_->command_interfaces_ [0 ].get_value (), expected_command_value, 1e-5 );
473+ =======
474+ // ref = 10.0, state = 1.1, ds = 0.01, p_gain = 1.0, i_gain = 2.0, d_gain = 3.0
475+ // error = ref - state = 10.0 - 1.1 = 8.9, error_dot = error/ds = 8.9/0.01 = 890.0,
476+ // p_term = error * p_gain = 8.9 * 1.0 = 8.9,
477+ // i_term = zero at first update
478+ // d_term = error_dot * d_gain = 890.0 * 3.0 = 2670.0
479+ // feedforward OFF -> cmd = p_term + i_term + d_term = 8.9 + 0.0 + 2670.0 = 2678.9
480+ const double expected_command_value = 2678.9 ;
481+ EXPECT_NEAR (
482+ controller_->command_interfaces_ [0 ].get_optional ().value (), expected_command_value, 1e-5 );
483+ >>>>>>> bf253f1 (Change the tests to work without deprecated PID settings (#1824 ))
465484}
466485
467486/* *
@@ -490,9 +509,21 @@ TEST_F(PidControllerTest, test_update_logic_angle_wraparound_on)
490509 controller_->update (rclcpp::Time (0 ), rclcpp::Duration::from_seconds (0.01 )),
491510 controller_interface::return_type::OK);
492511
512+ <<<<<<< HEAD
493513 // Check the command value
494514 const double expected_command_value = 787.713559 ;
495515 EXPECT_NEAR (controller_->command_interfaces_ [0 ].get_value (), expected_command_value, 1e-5 );
516+ =======
517+ // Check the command value with wrapped error
518+ // ref = 10.0, state = 1.1, ds = 0.01, p_gain = 1.0, i_gain = 2.0, d_gain = 3.0
519+ // error = ref - state = wrap(10.0 - 1.1) = 8.9-2*pi = 2.616814, error_dot = error/ds
520+ // = 2.6168/0.01 = 261.6814, p_term = error * p_gain = 2.6168 * 1.0 = 2.6168, i_term = zero at
521+ // first update d_term = error_dot * d_gain = 261.6814 * 3.0 = 785.0444079 feedforward OFF -> cmd
522+ // = p_term + i_term + d_term = 2.616814, + 0.0 + 785.0444079 = 787.6612219
523+ const double expected_command_value = 787.6612219 ;
524+ EXPECT_NEAR (
525+ controller_->command_interfaces_ [0 ].get_optional ().value (), expected_command_value, 1e-5 );
526+ >>>>>>> bf253f1 (Change the tests to work without deprecated PID settings (#1824 ))
496527}
497528
498529TEST_F (PidControllerTest, subscribe_and_get_messages_success)
@@ -720,9 +751,9 @@ TEST_F(PidControllerTest, test_save_i_term_off)
720751
721752 // check the command value
722753 // error = ref - state = 100.001, error_dot = error/ds = 10000.1,
723- // p_term = 100.001 * 1, i_term = 1.00001 * 2 = 2.00002 , d_term = error/ds = 10000.1 * 3
724- // feedforward OFF -> cmd = p_term + i_term + d_term = 30102.3
725- const double expected_command_value = 30102.30102 ;
754+ // p_term = 100.001 * 1, i_term = zero at first update , d_term = error/ds = 10000.1 * 3
755+ // feedforward OFF -> cmd = p_term + i_term + d_term = 30100.301
756+ const double expected_command_value = 30100.3010 ;
726757
727758 double actual_value = std::round (controller_->command_interfaces_ [0 ].get_value () * 1e5 ) / 1e5 ;
728759 EXPECT_NEAR (actual_value, expected_command_value, 1e-5 );
@@ -770,9 +801,9 @@ TEST_F(PidControllerTest, test_save_i_term_on)
770801
771802 // check the command value
772803 // error = ref - state = 100.001, error_dot = error/ds = 10000.1,
773- // p_term = 100.001 * 1, i_term = 1.00001 * 2 = 2.00002 , d_term = error/ds = 10000.1 * 3
774- // feedforward OFF -> cmd = p_term + i_term + d_term = 30102.3
775- const double expected_command_value = 30102.30102 ;
804+ // p_term = 100.001 * 1, i_term = zero at first update , d_term = error/ds = 10000.1 * 3
805+ // feedforward OFF -> cmd = p_term + i_term + d_term = 30102.301
806+ const double expected_command_value = 30100.3010 ;
776807
777808 double actual_value = std::round (controller_->command_interfaces_ [0 ].get_value () * 1e5 ) / 1e5 ;
778809 EXPECT_NEAR (actual_value, expected_command_value, 1e-5 );
0 commit comments