destogl
14
I think you got this right in the previous post. You can create your own ros2_control node, but you don’t have to. And in most of the use-cases you don’t need to do this. In ros2_control, both, hardware and controller are used through pluginlib. That is exact reason why you don’t have to write your own nodes again.
I am not sure if you posted the right link up there. You liked “hardware-description-in-urdf” section which only describes how to configure which plugin to load, how to set up parameters and how to describe your robotic-setup to be understandable.
So the demos in ros2_control_demos repository are showing exactly what is expected use/setup of hardware_interfaces.
You can instantiate the node there. We are not doing this because we don’t have any use-case that really needs access to the ROS2-world without controllers. Using controllers for this provides much better controllability and determinism in the framework.
For the 3rd pproach, you can simply start another node. We are doing this actually a lot. Each controller is a node and they are all loaded from Controller Manager using pluginlib.
2 Likes