The robot we are working with is a differential robot with two wheels and two caster wheels. The complete characteristics of the robot should model as the Gazebo-ROS plugin for the simulation. Luckily, the plugin for a basic differential drive is already implemented.
To move the robot in Gazebo, we should add a Gazebo-ROS plugin file called libgazebo_ros_diff_drive.so to get the differential drive behavior in this robot.
Here is the complete code snippet of the definition of this plugin and its parameters:
<!-- Differential drive controller --> <gazebo> <plugin name="differential_drive_controller" filename="libgazebo_ros_diff_drive.so"> <rosDebugLevel>Debug</rosDebugLevel> <publishWheelTF>false</publishWheelTF> ...