ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
IIURC, you want to send commands to different interfaces from a single controller, but there is one interface associated to each resource (eg. joint). This is currently not well supported, and would require (C++ and ROS) API changes to be done correctly.
That being said, you could hack your way around by deriving your controller from controller_interface::ControllerBase
(as opposed to controller_interface::Controller<T>
). The upside is that you get access to a RobotHW*
, (as opposed to a particular interface), hence to all the robot's resources. The downside is that the getHardwareInterfaceType method, which you must implement, assumes a single HW interface. Resource conflict handling might not work correctly in such a case, I haven't checked the implications in detail.
This is not what you are trying to do, but I add it here for completeness. If you want to attack the same resource from different HW interfaces, you can implement a custom checkForConflict(...) method for your hardware abstraction, and override the default exclusive resource usage policy.