Every plugin contains a bunch of openrave interfaces, the plugincpp plugin creates a simple OpenRAVE::ModuleBase interface named mymodule.
Inside programs, load the plugin using the RaveLoadPlugin, and then create the module the plugin offers using
m=RaveCreateModule(env,"mymodule");
To test things through the command line, do:
openrave --loadplugin libplugincpp.so --module mymodule "my args"
This will load liboplugincpp.so and startup module "mymodule". From plugincpp, notice that mymodule supports some "commands". These are in-process string-based calls invoked through interface->SendCommand function.
If you are using octave or matlab, then can communicate with openrave through tcp/ip, check out: http://openrave.programmingvision.com/wiki/index.php/OctaveMATLAB
Most openrave users use python to dynamically interact with openrave. For example:
openrave.py -i --loadplugin libplugincpp.so data/lab1.env.xml
drops into the python promp with the plugin loaded and a scene loaded. Then it is possible to execute the following python commands to create the interface and call a command:
m=RaveCreateModule(env,'mymodule') env.Add(m,true,'my args') m.SendCommand('numbodies')
Full Example Code: