In this chapter, you have achieved correspondence between the physical GoPiGo3 and its virtual model in Gazebo. You have checked how it doesn't matter whether you're controlling the actual robot or a virtual robot from the point of view of ROS. Since both are moved using the same topic, /cmd_vel, ROS does not care about which type of robot you're dealing with.
This fact explains how, from the point of view of ROS, you have the choice to test your code with a virtual robot and then safely apply it to the physical robot. We just need to launch the ROS node of the physical robot. This is useful in three situations. First, when you are developing a new application for an existing robot, you can debug the code with a virtual model in Gazebo. Second, when you do not have available the hardware of the robot – because you are still deciding which one to buy...