Summary
In this chapter, we discussed a fundamental problem of all robotic systems: how to control the motors of the robot. The main solution offered by ROS 2 is provided from the ros2_control
framework, a collection of packages allowing developers to directly contact the robot hardware. ROS 2 already comes with a series of controllers: both basic controllers that directly forward a desired command to a hardware interface, and something more complex, such as the differential drive controller (diff_drive_controller
) that transforms the input data to desired commands for the joints.
Another possibility offered by the ros2_control
framework is the possibility of implementing a custom controller to perform specific actions. This topic was discussed with the implementation of a controller moving the joints of a simulated robot in Gazebo.
In this chapter, we discussed the possibility of controlling a robot from a low-level point of view; in the next chapter, we will see how to...