当我开始在 Gazebo 中模拟 Turtlebot 时,它会自行缓慢移动(线性和有角度)。如果我检查 Gazebo 发布的 'odom' 消息,总会有一个小转折(线性 x 和角度 z)。几分钟后,您可以在 Gazebo GUI 中清楚地看到更改后的姿势。这也发生在 Gazebo 中生成的其他一些简单对象(如圆柱体)上。我已经在机器人和世界 URDF 中测试了其他摩擦值,但没有成功。
要重现该问题,您可以简单地从 turtlebot_gazebo 包运行 turtlebot_world.launch 并查看“odom”消息:
roslaunch turtlebot_gazebo turtlebot_world.launch &
rostopic echo /odom
200 秒后,我看到它有轻微的旋转(几度),但几乎处于相同的位置。如果您查看地面上的接触点,您会发现车轮之间存在连续振荡,这会导致小的数值积分误差累积。
示例奥多姆:
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]
---
系统:Ubuntu 16.04(内核 4.15),ROS Kinetic(最新版本的所有相关软件包,Gazebo 7)。