Gazebo odom causing extreme rotational drift

asked 2019-08-16 22:28:44 -0500

logan.ydid gravatar image

updated 2019-08-19 16:57:03 -0500

I am trying to create simulated differential drive robot in ROS by following the tutorial in chapter 12 of the book Programming Robots with ROS. i got the robot up and running but i am having trouble getting it to navigate around the simulated environment. When I teleop the robot around the room i notice crazy amounts of error introduced in the odometry data. these errors only seem to happen upon turning the robot left or right. i have recorded a video to help demonstrate the issues Im having, find it here I have also created a bag file so you guys will be able to see whats going on.

thanks in advance, if you need any other files let me know.


As per request; I am using AMCL, here are my parameter files.

Global costmap params:

  global_frame: /map
  robot_base_frame: base_link
  static_map: true

Local costmap params:

  global_frame: /odom
  robot_base_frame: base_link
  rolling_window: true

Common costmap params:

footprint: [[0.35, 0.15], [0.35, -0.15], [-0.35, -0.15], [-0.35, 0.15]]
observation_sources: laser_scan_sensor
laser_scan_sensor: {sensor_frame: hokuyo_link, data_type: LaserScan, topic: scan, marking: true, clearing: true}

Local base planner

 holonomic_robot: false
edit retag flag offensive close merge delete


I am assuming you are using robot localization, can you share your params file?

Choco93 gravatar image Choco93  ( 2019-08-19 08:20:12 -0500 )edit

Hello, I am using AMCL. see my updated question for the params

logan.ydid gravatar image logan.ydid  ( 2019-08-19 16:57:48 -0500 )edit

Have any ideas?

logan.ydid gravatar image logan.ydid  ( 2019-08-20 22:07:47 -0500 )edit

are you using all default parameters for amcl?

Choco93 gravatar image Choco93  ( 2019-08-21 05:42:02 -0500 )edit

yes accept for the parameters outlined above

logan.ydid gravatar image logan.ydid  ( 2019-08-21 06:44:17 -0500 )edit

these are all basically move_base parameters, you are using all of default param values for amcl. I don't have much experience with amcl, but what I am guessing is that you need to modify params like update_min_a ones which deal with rotation and try to find what works best for you.

Choco93 gravatar image Choco93  ( 2019-08-22 03:01:56 -0500 )edit