Turtlebot unintentionally moving by itself in Gazebo ROS Kinetic
When I start a simulation of the Turtlebot in Gazebo, it is slowly moving by itself (linear and angular). If I check the 'odom' messages published by Gazebo, there is always a small twist (linear x und angular z). After some minutes you can clearly see the changed pose in the Gazebo GUI. This is also happening to some other simple objects spawned in Gazebo (like cylinders). I already testet other friction values in the robot and world URDFs, but without success.
To reproduce the issue, you can simply run the turtlebot_world.launch from turtlebot_gazebo package and take a look at the 'odom' messages:
roslaunch turtlebot_gazebo turtlebot_world.launch &
rostopic echo /odom
After 200 seconds I see that it has a slight rotation (a few degrees) , but is pretty much in the same position. If you look at the contact points on the ground you'll see that there's a continuous oscillation between the wheels that can cause small numerical integration errors to accumulate.
Example odom:
header:
seq: 20117
stamp:
secs: 201
nsecs: 190000000
frame_id: "odom"
child_frame_id: "base_footprint"
pose:
pose:
position:
x: 1.59948835343e-07
y: 6.79624858795e-07
z: 0.0
orientation:
x: 0.0
y: 0.0
z: -0.0384809462098
w: 0.999259334096
covariance: [0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1000000.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1000000.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1000000.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05]
twist:
twist:
linear:
x: 6.49424452091e-06
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: -0.000414815298426
covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
---
System: Ubuntu 16.04 (kernel 4.15), ROS Kinetic (all involved packages on latest version, Gazebo 7).