In the last chapter, we discussed pluginlib, nodelets, and Gazebo plugins. The base library for making plugins in ROS is pluginlib, and the same library can be used in nodelets and Gazebo plugins. In this chapter, we will continue with pluginlib-based concepts, such as ROS controllers and RViz plugins. We have already worked with ROS controllers and have reused some standard controllers, such as joint state, position, and trajectory controllers in Chapter 4: Simulating Robots Using ROS and Gazebo.
In this chapter, we will see how to write a basic ROS controller for a generic robot. We will implement a desired controller for our seven_dof_arm robot, developed in previous chapters, executing it in the Gazebo simulator. The RViz plugins can add more functionality to RViz, and in this chapter we will look at how to create a basic RViz...