turtlebot2 kobuki turns itself off when cmd_velocity > 1
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?
<launch>
<!-- 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 ...