[ros-users] pr2 and sr ethercat devices plugins

Yann Sionneau yann.sionneau at telecom-sudparis.eu
Mon Feb 7 14:17:41 UTC 2011


Hello,

I wonder how the binding is done between the different EtherCAT devices 
and the actual C++ class of the device.

I've found it's been implemented as plugins, but I don't understand how 
it works though.

For example in 
ros/cturtle/stacks/pr2_ethercat_drivers/ethercat_hardware/src/wg0x.cpp 
there is :

PLUGINLIB_REGISTER_CLASS(6805005, WG05, EthercatDevice);

Here the WG05 is a C++ class that extends the EthercatDevice class.

And in 
ros/cturtle/stacks/pr2_ethercat_drivers/ethercat_hardware/ethercat_device_plugin.xml 
there is :

<class name="6805005" type="WG05" base_class_type="EthercatDevice">

So there seem to be a link between the number 6805005 (btw what is this 
number ?) and the class WG05 but I don't understand exactly how all of 
this work.

Regarding the documentation I found there 
(http://www.ros.org/wiki/pluginlib) the first argument of 
PLUGINLIB_REGISTER_CLASS should be the name of the class ? or just some 
kind of a key ?

Another question I have is : how does the discovery of all the devices 
in the Ethercat bus work ?

How does ROS become aware of the fact that there are two devices of 
class WG05 and three of class WG021 for example ?

I don't know if I am clear enough in my questions.

Regards,

-- 
Yann Sionneau



More information about the ros-users mailing list