ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

turtlebot2 kobuki turns itself off when cmd_velocity > 1

asked 2017-05-24 15:32:35 -0600

mesteinf gravatar image

updated 2017-05-25 02:55:16 -0600

gvdhoorn gravatar image

The setup: I currently have 2 turtlebots and a workstation all communicating via multimaster_fkie. The workstation only launches the multimaster_discovery node while the turtlebots bringup both multimaster_discovery and multimaster_sync nodes. The turtlebots have been configured to ignore one another so that only communication with the workstation is possible.

The problem occurs when a velocity command that is "too high" is published from the workstation. The workstation publishes velocity commands to both the turtlebots under topics /master_cmd and /slave_cmd (there is no real master/slave implementation going on unless you count the workstation as the master and the turtlebots as slaves)

I have a simple implementation where the turtlebots listen for either /master[slave]_cmd velocity command from the workstation and subsequently publishes this command to the kobuki base. I have turned all other diagnostics off so only the kobuki base should initialized. (My launch file can be seen pasted below)

Currently I have many different implementations all yielding the same result. I have tried defining my own nodlet so a constant twist message is published. I have a full node which does the same thing. and I have a node runnning on the turtlebot netbook while another node from the workstation computer sends commands.

In all most all cases I am able to send a velocity of up to 1.0 (I assume m/s)

When I change from: msg.linear.x = 1 to msg.linear.x = 2 and run everything as before the turtlebot kobuki sounds the offline jingle and everything stops. When I kill the node trying to publish the velocity commands the online jingle can be heard.

Throughout this I can rostopic list/echo all the topics and even verify that the correct value is being sent.

The problem is very weird because if all the velocities are below 1 both turtlebots act as excepted. It is only when one is commanded to go faster than 1 that the problem occurs.

Why does the kobuki turn it self off when too high a velocity is received?

  <!-- Turtlebot --> 
  <arg name="base"              default="$(env TURTLEBOT_BASE)"         doc="mobile base type [create, roomba]"/>
  <arg name="battery"           default="$(env TURTLEBOT_BATTERY)"      doc="kernel provided locatio for battery info, use /proc/acpi/battery/BAT0 in 2.6 or earlier kernels." />
  <arg name="stacks"            default="$(env TURTLEBOT_STACKS)"       doc="stack type displayed in visualisation/simulation [circles, hexagons]"/>
  <arg name="3d_sensor"         default="$(env TURTLEBOT_3D_SENSOR)"    doc="3d sensor types [kinect, asux_xtion_pro]"/>
  <arg name="simulation"        default="$(env TURTLEBOT_SIMULATION)"   doc="set flags to indicate this turtle is run in simulation mode."/>
  <arg name="serialport"        default="$(env TURTLEBOT_SERIAL_PORT)"  doc="used by create to configure the port it is connected on [/dev/ttyUSB0, /dev/ttyS0]"/>
  <arg name="robot_name"        default="$(env TURTLEBOT_NAME)"         doc="used as a unique identifier and occasionally to preconfigure root namespaces, gateway/zeroconf ids etc."/>
  <arg name="robot_type"        default="$(env TURTLEBOT_TYPE)"         doc="just in case you are considering a 'variant' and want to make use of this."/>
  <arg name="manager"       default="mobile_base_nodelet_manager"   doc=""/>
  <param name="/use_sim_time" value="$(arg simulation ...
edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2017-05-25 03:18:52 -0600

gvdhoorn gravatar image

updated 2017-05-25 03:20:21 -0600

I'm not quite sure I understand your problem description: is the problem that the TBs just stop?

Is 1 m/s a valid velocity for a Kobuki TB? According to the specifications, the maximum is 0.7m/s (this is also mentioned on wiki/Setup the Navigation Stack for TurtleBot):

  • Functional Specification

    • Maximum translational velocity: 70 cm/s
    • ..

I can imagine that the controller shuts down on an invalid command input. 1 m/s already seems quite far outside the specs.

edit flag offensive delete link more


I have seen that before and maybe just mistook it for 7m/s but why then, when I have only 1 turtlebot can I see a difference in the rate the wheel spins when commanded to go at 1 vs 3? I would expect both cases to yield 0.7 but I do not observe this. There is distinctly more 'buzzing' and its faster

mesteinf gravatar image mesteinf  ( 2017-05-25 12:44:30 -0600 )edit

I feel like the only people that can give you an authoritative answer would be Yujin Robot themselves. Either wait for them to post an answer/comment to this question, or open an issue over at yujinrobot/kobuki/issues. Do refer to this one, please.

gvdhoorn gravatar image gvdhoorn  ( 2017-05-26 03:45:00 -0600 )edit

Question Tools


Asked: 2017-05-24 15:32:35 -0600

Seen: 400 times

Last updated: May 25 '17