Why no cmd_vel topic when running Turtlebot simulation on ROS + Gazebo?

I have been having a very difficult time trying to understand why my system does not have the cmd_vel topic. I am trying to get a ROS system running with Gazebo so that I can work through tutorials and learn ROS. I started with the ROS Development Studio (online) and it was great! But sooner or later one must be able to get ROS going on a local system. So I built a Ubuntu system and installed ROS + Gazebo, then installed Turtlebot including the simulator. It all works! I can launch a Turtlebot simulation then launch the Turtlebot_teleop package and I am able to move the robot around.
But when I list the running topics cmd_vel is not one of them. These are the list of topics grep'd on "cmd":

scott@Ubvm:~/catkin_ws/devel\$ rostopic list | grep cmd
/cmd_vel_mux/active
/cmd_vel_mux/input/navi
/cmd_vel_mux/input/safety_controller
/cmd_vel_mux/input/switch
/cmd_vel_mux/input/teleop
/cmd_vel_mux/parameter_descriptions


No /cmd_vel! So I can't work through tutorials to drive the robot around. Besides, I just don't understand why it is not there but teleop works.

Could someone tell me why I do not see the cmd_vel topic?

System info:

Ubuntu 16.04

ROS Kinetic

Gazebo 7 (not sure exactly which version but it launches and runs)

Installed Turtlebot based on Indigo install but replaced with kinetic.

sudo apt-get install
ros-kinetic-turtlebot
ros-kinetic-turtlebot-apps
ros-kinetic-turtlebot-interactions
ros-kinetic-turtlebot-simulator
ros-kinetic-kobuki-ftdi
ros-kinetic-rocon-remocon
ros-kinetic-rocon-qt-library
ros-kinetic-ar-track-alvar-msgs


/cmd_vel and /cm_vel_mux are very often interchangeably used where the latter is a multiplexer superimposed to enforce priority in execution. Obviously, if the robot is moving, there has to be a navigation topic with data being published.

You should check the /cmd/vel_mux/input/navi topic - it should be the one that has a Twist message to it and makes the Turtlebot move.

• Yes, I now know that cmd_vel is only a convention and not a requirement, so that helps my understanding a lot. Seems Turtlebo2 uses cmd_vel_mux and folks on other forums agree that for Turtlebot the topic to use is cmd_vel_mux/input/navi. The weird thing on my system is I must use cmd_vel_mux/input/teleop to control the robot. Maybe it is because it is a simulation in Gazebo. I'm just happy to be able to control it. :) – Scott Jan 25 at 17:35