0
$\begingroup$

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
/cmd_vel_mux/parameter_updates

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
$\endgroup$
2

1 Answer 1

0
$\begingroup$

/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.

$\endgroup$
1
  • $\begingroup$ 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. :) $\endgroup$
    – Scott
    Jan 25, 2019 at 17:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.