Load plugin from separate package
Is it possible to load a plugin developed in a separate package without declaring it in the package where the base class resides? Would it be enough to declare the plugin in the .cpp file where the actual plugin lives?
When I tried this, I got the error:
[ERROR] [1372978694.271503470]: The plugin failed to load for some reason. Error: According to the loaded plugin descriptions the class amigctrl_plugin/AmigoBot with base class type cruise_plugin_base::PBase does not exist. Declared types are cruise_core/amigo_locomotion_plugin
So the plugin that I developed isn't listed here. Just the one that exists in the original package. Can plugins only be declared in the package where they are to be loaded? Is there a way around this?
EDIT: Fixed one error, another came up to go. First, for reference:
<export>
<pkg_name plugin="${prefix}/plugin.xml" />
</export>
The tag "pkg_name" must be the name of the package where the base class resides. I named it the package name of the actual plugin.
Now we have a new runtime error, saying:
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_S_construct null not valid
Aborted (core dumped)
Any advice on this would be appreciated.