From 5c80bcb0152762c9cd3f61e1bc6fb14a1cae5552 Mon Sep 17 00:00:00 2001 From: Sauman Raaj Date: Tue, 21 Oct 2025 15:03:10 -0400 Subject: [PATCH] Fix: preserve planar joint suffix in Ros2ControlManager (Fixes #3594) --- .../src/controller_manager_plugin.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/moveit_plugins/moveit_ros_control_interface/src/controller_manager_plugin.cpp b/moveit_plugins/moveit_ros_control_interface/src/controller_manager_plugin.cpp index 349a97d478..2db58bab2c 100644 --- a/moveit_plugins/moveit_ros_control_interface/src/controller_manager_plugin.cpp +++ b/moveit_plugins/moveit_ros_control_interface/src/controller_manager_plugin.cpp @@ -76,12 +76,12 @@ rclcpp::Logger getLogger() * @param[in] claimed_interface claimed interface as joint_name/INTERFACE_TYPE * @return joint_name part of the /p claimed_interface */ -std::string parseJointNameFromResource(const std::string& claimed_interface) +static std::string parseJointNameFromResource(const std::string& claimed_interface) { - const auto index = claimed_interface.find('/'); - if (index == std::string::npos) - return claimed_interface; - return claimed_interface.substr(0, index); + const auto last = claimed_interface.rfind('/'); + if (last == std::string::npos) + return claimed_interface; // no interface segment present + return claimed_interface.substr(0, last); // preserve multi-DOF suffix; strip only interface } /**