ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
The short answer is yes you could have service calls or a continually updating topic subscription populate your read() method and in your write() method have a topic publish or action service request. If you did want something simple like this I wouldn't bother using ros_control however, it would be more suitable to just write your own py/cpp node that doesn't implement the robot_hw interface.
The main reason why this isn't a good idea is that your control loop is going to be slow as you are using non-realtime operations within it. Whilst its possible to avoid this with realtime publishers and subscribers or just having a slow control loop, as I said previously, it wouldn't be worth the effort to use ros_control.
You are right that there is no specific need for a i2c or CAN or etherCAT communication system in your robot_hardware but you will find that most research and commercial implementations will have this. I would recommend looking through some real world examples on github like Clearpath's Husky.