You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Until now, the coupling logic for the iCub and R1 has been hardcoded in the gazebo_yarp_controlboard plugin, in particular as child classes of the BaseCouplingHandler in the file https://github.com/robotology/gazebo-yarp-plugins/blob/3fa2c45a4b8a63ef15c524462124b505f29b3ed9/plugins/controlboard/include/yarp/dev/ControlBoardDriverCoupling.h . As the gazebo-yarp-plugins is meant to be robot-indipendent, this is clearly not ideal, as any new coupled mechanism needs to manually modify the source code of gazebo-yarp-plugins to simulate in Gazebo, see for example #469 .
I think that the best solution is to add support in gazebo_yarp_controlboard to load coupling logic from classes loaded dynamically. In particular, as the rest of the infrastructure already uses a lot of YARP logic, I think the easiest option is to install the header that contains the BaseCouplingHandler, and then permit to downstream users to define YARP device drivers that inherit from BaseCouplingHandler, and then specify the name of the YARP device driver to load in the .ini configuration file of the gazebo_yarp_controlboard plugin.
The text was updated successfully, but these errors were encountered:
traversaro
changed the title
Move coupling logic to dynamically loaded plugins
Move gazebo_yarp_controlboard coupling logic to dynamically loaded plugins
Mar 6, 2020
Until now, the coupling logic for the iCub and R1 has been hardcoded in the
gazebo_yarp_controlboard
plugin, in particular as child classes of theBaseCouplingHandler
in the file https://github.com/robotology/gazebo-yarp-plugins/blob/3fa2c45a4b8a63ef15c524462124b505f29b3ed9/plugins/controlboard/include/yarp/dev/ControlBoardDriverCoupling.h . As the gazebo-yarp-plugins is meant to be robot-indipendent, this is clearly not ideal, as any new coupled mechanism needs to manually modify the source code of gazebo-yarp-plugins to simulate in Gazebo, see for example #469 .I think that the best solution is to add support in
gazebo_yarp_controlboard
to load coupling logic from classes loaded dynamically. In particular, as the rest of the infrastructure already uses a lot of YARP logic, I think the easiest option is to install the header that contains theBaseCouplingHandler
, and then permit to downstream users to define YARP device drivers that inherit fromBaseCouplingHandler
, and then specify the name of the YARP device driver to load in the.ini
configuration file of thegazebo_yarp_controlboard
plugin.In particular, I think we should still use the coupling configuration format (see https://github.com/robotology/icub-gazebo/blob/ab22fdc34c0a9faa6f72428c2abdb6afc3145872/icub/conf/gazebo_icub_left_hand_index.ini#L17):
But the first string of the line, instead of being an hardcoded string checked in
gazebo-yarp-plugins/plugins/controlboard/src/ControlBoardDriver.cpp
Line 219 in bd884ac
BaseCouplingHandler
interface.cc @fiorisi @randaz81 @ale-git @xEnVrE
The text was updated successfully, but these errors were encountered: