Find package.xml in ros_packages/package_name too as we moved it here. Index: pluginlib-1.10.4/include/pluginlib/class_loader_imp.h =================================================================== --- pluginlib-1.10.4.orig/include/pluginlib/class_loader_imp.h +++ pluginlib-1.10.4/include/pluginlib/class_loader_imp.h @@ -444,6 +444,7 @@ namespace pluginlib std::string package_name; boost::filesystem::path p(plugin_xml_file_path); boost::filesystem::path parent = p.parent_path(); + boost::filesystem::path basename = p.filename(); //Figure out exactly which package the passed XML file is exported by. while (true) @@ -453,6 +454,11 @@ namespace pluginlib std::string package_file_path = (boost::filesystem::path(parent / "package.xml")).string(); return(extractPackageNameFromPackageXML(package_file_path)); } + else if(boost::filesystem::exists(parent / "ros_packages" / basename / "package.xml")) + { + std::string package_file_path = (boost::filesystem::path(parent / "ros_packages" / basename / "package.xml")).string(); + return(extractPackageNameFromPackageXML(package_file_path)); + } else if (boost::filesystem::exists(parent / "manifest.xml")) { #if BOOST_FILESYSTEM_VERSION >= 3 @@ -470,6 +476,7 @@ namespace pluginlib } //Recursive case - hop one folder up + basename = parent.filename(); parent = parent.parent_path().string(); //Base case - reached root and cannot find what we're looking for