Skip to content

Commit 209d67d

Browse files
committed
initialize() return false on missing tip parameter
1 parent 0c48ef3 commit 209d67d

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

kinematics_interface_kdl/src/kinematics_interface_kdl.cpp

+11-3
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,19 @@ bool KinematicsInterfaceKDL::initialize(
5757
}
5858
alpha = alpha_param.as_double();
5959
// get end-effector name
60-
auto end_effector_name = rclcpp::Parameter("tip", "MISSING_END_EFFECTOR_NAME");
60+
auto end_effector_name_param = rclcpp::Parameter("tip");
6161
if (parameters_interface->has_parameter(ns + "tip"))
6262
{
63-
parameters_interface->get_parameter(ns + "tip", end_effector_name);
63+
parameters_interface->get_parameter(ns + "tip", end_effector_name_param);
6464
}
65+
else
66+
{
67+
RCLCPP_ERROR(
68+
LOGGER, "Failed to find end effector name parameter [tip].");
69+
return false;
70+
}
71+
std::string end_effector_name = end_effector_name_param.as_string();
72+
6573

6674
// create kinematic chain
6775
KDL::Tree robot_tree;
@@ -82,7 +90,7 @@ bool KinematicsInterfaceKDL::initialize(
8290
{
8391
RCLCPP_ERROR(
8492
LOGGER, "failed to find chain from robot root %s to end effector %s", root_name_.c_str(),
85-
end_effector_name.as_string().c_str());
93+
end_effector_name.c_str());
8694
return false;
8795
}
8896
// create map from link names to their index

kinematics_interface_kdl/test/test_kinematics_interface_kdl.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -193,3 +193,8 @@ TEST_F(TestKDLPlugin, KDL_plugin_no_robot_description)
193193
loadTipParameter();
194194
ASSERT_FALSE(ik_->initialize("", node_->get_node_parameters_interface(), ""));
195195
}
196+
197+
TEST_F(TestKDLPlugin, KDL_plugin_no_parameter_tip)
198+
{
199+
ASSERT_FALSE(ik_->initialize(urdf_, node_->get_node_parameters_interface(), ""));
200+
}

0 commit comments

Comments
 (0)