[ros-users] pr2 and sr ethercat devices plugins

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: User discussions
Date:  
To: ros-users
Subject: [ros-users] pr2 and sr ethercat devices plugins
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