0
$\begingroup$

Rosanswers logo

I'm trying to create a rqt plugin. I've tried to mimic the rqt_image_view package as much as possible.

When I open rqt and try to open the plugin from the drop-down menu, I get the following error in the terminal output:

[ERROR] [1481649833.824410737]: Failed to load nodelet [rqt_myplugin/MyPlugin_1] of type [rqt_myplugin/MyPlugin]: MultiLibraryClassLoader: Could not create object of class type rqt_myplugin::MyPlugin as no factory exists for it. Make sure that the library exists and was explicitly loaded through MultiLibraryClassLoader::loadLibrary()
RosPluginlibPluginProvider::load_explicit_type(rqt_myplugin/MyPlugin) failed creating instance
PluginManager._load_plugin() could not load plugin "rqt_myplugin/MyPlugin": RosPluginlibPluginProvider.load() could not load plugin "rqt_myplugin/MyPlugin"

What could be the error?

Here is the package: https://github.com/ksatyaki/rqt_myplugin It seems to work with force discover option. I don't understand what this option does exactly. Previously I even tried installing the plugin to /opt/ros/kinetic. It didn't work.


Originally posted by McMurdo on ROS Answers with karma: 1247 on 2016-12-13

Post score: 0


Original comments

Comment by Dirk Thomas on 2016-12-13:
The error message indicates a problem with the plugin registration. If you could share your code it might be possible to spot the different to other working plugins.

Comment by McMurdo on 2016-12-14:
I edited the question

Comment by gvdhoorn on 2016-12-14:
@McMurdo: if you feel your question has been answered, please don't close it, but instead accept one of the answers by ticking the checkmark to the left of it. That makes it much clearer from the question list that the question is in fact answered, and not closed for some other reason.

Thanks.

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

The operation to gather a list of available ROS packages is an expensive operation because it needs to crawl recursively through the file system. Therefore the tools cache the result for a certain amount of time. The command line option --force-discover enforces a crawling (ignoring the cache) and therefore ensures that you get an up-to-date result.

rospack has a rather short maximum age for the cache (60s). rqt on the other hand reuses the cache for a pretty long time of (1 day).


Originally posted by Dirk Thomas with karma: 16276 on 2016-12-14

This answer was ACCEPTED on the original site

Post score: 1

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.