pluginlib/class_loader does not load the correct class.
Hi all,
For background, I'm trying to create two IKFast plugins for MoveIt! The problem I have is that MoveIt! only loads and uses one of the plugins. (I have confirmed this with print statements and have followed the trail all the way down to this line (github source code) of the "kinematics_plugin_loader.cpp" file of MoveIt!
This is the line of code:
result.reset(kinematics_loader_->createUnmanagedInstance(it->second[i]));
It uses the pluginlib::ClassLoader
of ROS.
To try and figure what is going on, I place some print statements around the code. I print out the library path and the argument name and everything looks OK (The names are different and the library paths are different). Yet when I call the method - named "testing" - of each library. They output the same message. What they should do is output different messages. So, it clearly executing the same library... But this is strange because I print out the library path and its different...
I have no idea what going on... Can anyone help?
Billy
The code looks like this :
ROS_INFO_STREAM("trying to load - "<<it->second[i]);
result.reset(kinematics_loader_->createUnmanagedInstance(it->second[i]));
result->testing();
ROS_INFO_STREAM("printing path - "<<kinematics_loader_->getClassLibraryPath(it->second[i]));
ROS_INFO_STREAM("after - "<<it->second[i]);
The output looks like this:
[ INFO] [1427495868.777012914]: rviz version 1.11.7
[ INFO] [1427495868.777129943]: compiled against OGRE version 1.8.1 (Byatis)
[ INFO] [1427495868.919105126]: Stereo is NOT SUPPORTED
[ INFO] [1427495868.919228039]: OpenGl version: 3 (GLSL 1.3).
[ INFO] [1427495869.578403687]: trying to load - thex3_l1_kinematics/IKFastKinematicsPlugin
[ INFO] [1427495869.629037635]: this is a test plugin 1
[ INFO] [1427495869.675017046]: printing path - /home/billy/moveit/devel/lib//libthex3_l1_moveit_ikfast_plugin.so
[ INFO] [1427495869.675101183]: after - thex3_l1_kinematics/IKFastKinematicsPlugin
[ INFO] [1427495869.681656644]: this is a test plugin 1
[ INFO] [1427495869.681832825]: trying to load - thex3_r2_kinematics/IKFastKinematicsPlugin
[ INFO] [1427495869.681905655]: this is a test plugin 1
[ INFO] [1427495869.730896859]: printing path - /home/billy/moveit/devel/lib//libthex3_r2_moveit_ikfast_plugin.so
[ INFO] [1427495869.730995835]: after - thex3_r2_kinematics/IKFastKinematicsPlugin
[ INFO] [1427495869.737139491]: this is a test plugin 1
[ INFO] [1427495871.880978103]: Publishing maintained planning scene on 'monitored_planning_scene'
[ INFO] [1427495871.891378640]: MoveGroup debug mode is ON
I've seen other posts about issues trying to use multiple different IKFast plugins in MoveIt. Can't find them now though. If you really feel this is a bug (either in MoveIt, or in pluginlib), I suggest you post an issue on their respective issue trackers on github.