Ok, to be more precise. The standard mobile robot tf frames should be:
World->Map->Odom->Base_footprint->Base_link
I think the fact that the robot is not moving in Rviz but Gazebo is because you are not publishing a tf between your odom and the `base_link`/`base_footprint`. The only thing that rviz does is reading from the `/tf` topic and compute the relative position of each link with respect the fixed frame; but if you are only publishing a static transform Rviz does not know if the robot moved so what you need is something to publish the tf between your `base_link`/`base_footprint` and your robot odometry to reflect that the robot is moving.
You can check odom tf broadcaster [here](http://wiki.ros.org/tf/Tutorials/Writing%20a%20tf%20broadcaster%20%28C%2B%2B%29). But that can be done with multiple tools like `AMCL`, `robot_localization` or even a model [plugin](http://gazebosim.org/tutorials?tut=plugins_model&cat=write_plugin) since you are working with Gazebo.
↧