From 206a89330c12aa4e4b7478bd846466ce1e5e97a4 Mon Sep 17 00:00:00 2001 From: Maksim Sviridov Date: Fri, 26 Dec 2025 13:16:04 -0500 Subject: [PATCH] added warning messages for missing interfaces --- .../src/joint_state_broadcaster.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/joint_state_broadcaster/src/joint_state_broadcaster.cpp b/joint_state_broadcaster/src/joint_state_broadcaster.cpp index 4e91c86c8b..75b9f34ae8 100644 --- a/joint_state_broadcaster/src/joint_state_broadcaster.cpp +++ b/joint_state_broadcaster/src/joint_state_broadcaster.cpp @@ -243,11 +243,19 @@ bool JointStateBroadcaster::init_joint_data() name_if_value_mapping_[prefix_name] = {}; } // add interface name + std::string interface_name = si->get_interface_name(); if (map_interface_to_joint_state_.count(interface_name) > 0) { interface_name = map_interface_to_joint_state_[interface_name]; } + else + { + RCLCPP_WARN( + get_node()->get_logger(), + "Interface '%s' of joint '%s' is not mapped to any joint state field. The default value %s will be used.", + interface_name.c_str(), prefix_name.c_str(), interface_name.c_str()); + } name_if_value_mapping_[prefix_name][interface_name] = kUninitializedValue; // filter state interfaces that have at least one of the joint_states fields, @@ -265,8 +273,16 @@ bool JointStateBroadcaster::init_joint_data() joint_names_.push_back(prefix_name); } } + } else { + // Moreover, when there is not even the default interface (position, velocity, effort), + //then it should also print that it is not present and NaN's will be obtained in the respective field. + RCLCPP_WARN( + get_node()->get_logger(), + "Interface '%s' of joint '%s' is not present in JointState message fields. NaN's will be obtained in the respective field.", + interface_name.c_str(), prefix_name.c_str()); } } + std::reverse(joint_names_.begin(), joint_names_.end()); if (is_model_loaded_ && params_.use_urdf_to_filter && params_.joints.empty()) {