How to list available hardware resource interfaces in ros_control?
I'm new to the ros_control package and I'm a bit confused as to how it coordinates itself. I've mainly been playing with the Jackal simulation and what I've gathered is:
- Gazebo creates simulated hardware interfaces from URDF.
- The
jackal_control
package instantiates controllers which use parameters that specify hardware resources by name, which match the URDF. - The physical real Jackal registers hardware interfaces.
What I don't understand is how does the controller_manager magically know what hardware resource interfaces are available? It appears that you need to register them in separate nodes, but where is this communication happening?
In ROS I'm used to seeing topics, services, and parameters all publicly listed and accessible. But this hardware resource communication is invisible to me.
I appreciate any help / pointers. Thanks!