@@ -74,12 +74,10 @@ class TestableDiffDriveController : public diff_drive_controller::DiffDriveContr
7474 return realtime_odometry_publisher_;
7575 }
7676 // Declare these tests as friends so we can access odometry_message_
77- FRIEND_TEST (TestDiffDriveController, configure_succeeds_tf_test_prefix_false_no_namespace);
78- FRIEND_TEST (TestDiffDriveController, configure_succeeds_tf_test_prefix_true_no_namespace);
79- FRIEND_TEST (TestDiffDriveController, configure_succeeds_tf_blank_prefix_true_no_namespace);
80- FRIEND_TEST (TestDiffDriveController, configure_succeeds_tf_test_prefix_false_set_namespace);
81- FRIEND_TEST (TestDiffDriveController, configure_succeeds_tf_test_prefix_true_set_namespace);
82- FRIEND_TEST (TestDiffDriveController, configure_succeeds_tf_blank_prefix_true_set_namespace);
77+ FRIEND_TEST (TestDiffDriveController, configure_succeeds_tf_prefix_no_namespace);
78+ FRIEND_TEST (TestDiffDriveController, configure_succeeds_tf_blank_prefix_no_namespace);
79+ FRIEND_TEST (TestDiffDriveController, configure_succeeds_tf_prefix_set_namespace);
80+ FRIEND_TEST (TestDiffDriveController, configure_succeeds_tf_tilde_prefix_set_namespace);
8381 // Declare these tests as friends so we can access controller_->reference_interfaces_
8482 FRIEND_TEST (TestDiffDriveController, chainable_controller_unchained_mode);
8583 FRIEND_TEST (TestDiffDriveController, chainable_controller_chained_mode);
@@ -310,29 +308,7 @@ TEST_F(
310308 EXPECT_EQ (cmd_if_conf.type , controller_interface::interface_configuration_type::INDIVIDUAL);
311309}
312310
313- TEST_F (TestDiffDriveController, configure_succeeds_tf_test_prefix_false_no_namespace)
314- {
315- std::string odom_id = " odom" ;
316- std::string base_link_id = " base_link" ;
317- std::string frame_prefix = " test_prefix" ;
318-
319- ASSERT_EQ (
320- InitController (
321- left_wheel_names, right_wheel_names,
322- {rclcpp::Parameter (" tf_frame_prefix_enable" , rclcpp::ParameterValue (false )),
323- rclcpp::Parameter (" tf_frame_prefix" , rclcpp::ParameterValue (frame_prefix)),
324- rclcpp::Parameter (" odom_frame_id" , rclcpp::ParameterValue (odom_id)),
325- rclcpp::Parameter (" base_frame_id" , rclcpp::ParameterValue (base_link_id))}),
326- controller_interface::return_type::OK);
327-
328- ASSERT_EQ (controller_->on_configure (rclcpp_lifecycle::State ()), CallbackReturn::SUCCESS);
329-
330- /* tf_frame_prefix_enable is false so no modifications to the frame id's */
331- ASSERT_EQ (controller_->odometry_message_ .header .frame_id , odom_id);
332- ASSERT_EQ (controller_->odometry_message_ .child_frame_id , base_link_id);
333- }
334-
335- TEST_F (TestDiffDriveController, configure_succeeds_tf_test_prefix_true_no_namespace)
311+ TEST_F (TestDiffDriveController, configure_succeeds_tf_prefix_no_namespace)
336312{
337313 std::string odom_id = " odom" ;
338314 std::string base_link_id = " base_link" ;
@@ -349,13 +325,12 @@ TEST_F(TestDiffDriveController, configure_succeeds_tf_test_prefix_true_no_namesp
349325
350326 ASSERT_EQ (controller_->on_configure (rclcpp_lifecycle::State ()), CallbackReturn::SUCCESS);
351327
352- /* tf_frame_prefix_enable is true and frame_prefix is not blank so should be appended to the frame
353- * id's */
328+ // frame_prefix is not blank so should be prepended to the frame id's
354329 ASSERT_EQ (controller_->odometry_message_ .header .frame_id , frame_prefix + " /" + odom_id);
355330 ASSERT_EQ (controller_->odometry_message_ .child_frame_id , frame_prefix + " /" + base_link_id);
356331}
357332
358- TEST_F (TestDiffDriveController, configure_succeeds_tf_blank_prefix_true_no_namespace )
333+ TEST_F (TestDiffDriveController, configure_succeeds_tf_blank_prefix_no_namespace )
359334{
360335 std::string odom_id = " odom" ;
361336 std::string base_link_id = " base_link" ;
@@ -372,38 +347,12 @@ TEST_F(TestDiffDriveController, configure_succeeds_tf_blank_prefix_true_no_names
372347
373348 ASSERT_EQ (controller_->on_configure (rclcpp_lifecycle::State ()), CallbackReturn::SUCCESS);
374349
375- /* tf_frame_prefix_enable is true but frame_prefix is blank so should not be appended to the frame
376- * id's */
377- ASSERT_EQ (controller_->odometry_message_ .header .frame_id , odom_id);
378- ASSERT_EQ (controller_->odometry_message_ .child_frame_id , base_link_id);
379- }
380-
381- TEST_F (TestDiffDriveController, configure_succeeds_tf_test_prefix_false_set_namespace)
382- {
383- std::string test_namespace = " /test_namespace" ;
384-
385- std::string odom_id = " odom" ;
386- std::string base_link_id = " base_link" ;
387- std::string frame_prefix = " test_prefix" ;
388-
389- ASSERT_EQ (
390- InitController (
391- left_wheel_names, right_wheel_names,
392- {rclcpp::Parameter (" tf_frame_prefix_enable" , rclcpp::ParameterValue (false )),
393- rclcpp::Parameter (" tf_frame_prefix" , rclcpp::ParameterValue (frame_prefix)),
394- rclcpp::Parameter (" odom_frame_id" , rclcpp::ParameterValue (odom_id)),
395- rclcpp::Parameter (" base_frame_id" , rclcpp::ParameterValue (base_link_id))},
396- test_namespace),
397- controller_interface::return_type::OK);
398-
399- ASSERT_EQ (controller_->on_configure (rclcpp_lifecycle::State ()), CallbackReturn::SUCCESS);
400-
401- /* tf_frame_prefix_enable is false so no modifications to the frame id's */
350+ // frame_prefix is blank so nothing added to the frame id's
402351 ASSERT_EQ (controller_->odometry_message_ .header .frame_id , odom_id);
403352 ASSERT_EQ (controller_->odometry_message_ .child_frame_id , base_link_id);
404353}
405354
406- TEST_F (TestDiffDriveController, configure_succeeds_tf_test_prefix_true_set_namespace )
355+ TEST_F (TestDiffDriveController, configure_succeeds_tf_prefix_set_namespace )
407356{
408357 std::string test_namespace = " /test_namespace" ;
409358
@@ -423,18 +372,17 @@ TEST_F(TestDiffDriveController, configure_succeeds_tf_test_prefix_true_set_names
423372
424373 ASSERT_EQ (controller_->on_configure (rclcpp_lifecycle::State ()), CallbackReturn::SUCCESS);
425374
426- /* tf_frame_prefix_enable is true and frame_prefix is not blank so should be appended to the frame
427- * id's instead of the namespace*/
375+ // frame_prefix is not blank so should be prepended to the frame id's instead of the namespace
428376 ASSERT_EQ (controller_->odometry_message_ .header .frame_id , frame_prefix + " /" + odom_id);
429377 ASSERT_EQ (controller_->odometry_message_ .child_frame_id , frame_prefix + " /" + base_link_id);
430378}
431379
432- TEST_F (TestDiffDriveController, configure_succeeds_tf_blank_prefix_true_set_namespace )
380+ TEST_F (TestDiffDriveController, configure_succeeds_tf_tilde_prefix_set_namespace )
433381{
434382 std::string test_namespace = " /test_namespace" ;
435383 std::string odom_id = " odom" ;
436384 std::string base_link_id = " base_link" ;
437- std::string frame_prefix = " " ;
385+ std::string frame_prefix = " ~ " ;
438386
439387 ASSERT_EQ (
440388 InitController (
@@ -448,9 +396,8 @@ TEST_F(TestDiffDriveController, configure_succeeds_tf_blank_prefix_true_set_name
448396
449397 ASSERT_EQ (controller_->on_configure (rclcpp_lifecycle::State ()), CallbackReturn::SUCCESS);
450398
399+ // frame_prefix has tilde (~) character so node namespace should be prepended to the frame id's
451400 std::string ns_prefix = test_namespace.erase (0 , 1 ) + " /" ;
452- /* tf_frame_prefix_enable is true but frame_prefix is blank so namespace should be appended to the
453- * frame id's */
454401 ASSERT_EQ (controller_->odometry_message_ .header .frame_id , ns_prefix + odom_id);
455402 ASSERT_EQ (controller_->odometry_message_ .child_frame_id , ns_prefix + base_link_id);
456403}
0 commit comments