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

Scan matching failed, using odometry

asked 2016-03-22 23:44:49 -0600

pgigioli gravatar image

updated 2016-03-24 11:14:15 -0600

Whenever I'm trying to navigate while using gmapping with my turtlebot2, I get the error "scan matching failed, using odometry" and as a result my local and global costmaps do not get published. In fact, the map and odom topics never get published to the move_base local and global costmaps and as a result the robot relies on odometry for navigation which is really inaccurate.

Thinking this was a problem with my parameters, I tried gmapping on gazebo on a separate pc and got the same error. Still convinced that I messed with the parameters somehow, I completely reinstalled ros and tried the gazebo gmapping tutorial found here but got the same error.

Is anyone else experiencing this issue? On my rqt_graph when using gazebo gmapping, the move_base node doesn't show up at all.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2016-03-23 10:03:47 -0600

lightbulb gravatar image

You should use the rosrun tf view_frames to display the structure of your tf tree. I think you may lose your tf from /odom to /base_link. I had this problem before, but I didn't use the move_base, instead, I used the robot_pose_ekf to provide the tf from /odom to /base_link.

edit flag offensive delete link more


You're absolutely right. My transform link goes map -> odom X base_footprint -> baselink where X represents the missing transform between odom and base_footprint. How did you solve this? Did you simply run the robot_pose_ekf node in parallel with your other nodes?

pgigioli gravatar image pgigioli  ( 2016-03-23 11:43:04 -0600 )edit

Or did you replace move_base with robot_pose_ekf?

pgigioli gravatar image pgigioli  ( 2016-03-23 11:43:19 -0600 )edit

I think using the word "replace" is not correct. When I use gmapping, I just thought that I only can use one of move_base and ekf. But I realize that they serve different purposes when I use amcl. Because I think move_base is a tool which can provides a simple way to make path plan.

lightbulb gravatar image lightbulb  ( 2016-03-23 12:07:19 -0600 )edit

And ekf is a tool to provide tf and more accurate pose information. So, for your concern, I say yes. I think they can run in parallel. Maybe you can try it.

lightbulb gravatar image lightbulb  ( 2016-03-23 12:10:03 -0600 )edit

In addition, I didn't use move_base before, because I didn't know how to alter it to fit my robot at that time and I used my Xbox 360 wireless controller to control my robot.

lightbulb gravatar image lightbulb  ( 2016-03-23 12:13:59 -0600 )edit

robot_pose_ekf did not help. Do you think this has something to do with a common error I get when I try to do any autonomous navigation "you must specify at least three points for the robot footprint, reverting to previous footprint" ?

pgigioli gravatar image pgigioli  ( 2016-03-24 11:13:31 -0600 )edit

You mean that you have tried robot_pose_ekf, but the tf tree is still wrong? From my experience, I don't have the error you say. If you are trying to use amcl, I suggest you to use move_base and robot_pose_ekf at same time. Because I can make run autonomous navigation with this configuration.

lightbulb gravatar image lightbulb  ( 2016-03-24 12:15:19 -0600 )edit

The tf tree is fine now. I think the broken tree was a glitch because now it is consistently connected. Also, I did an odometry test and when I spin the robot in place using teleop keyboard, I get the scan matching failed error. It seems this error has to do with the mapping process.

pgigioli gravatar image pgigioli  ( 2016-03-24 12:45:30 -0600 )edit

Question Tools

1 follower


Asked: 2016-03-22 23:44:49 -0600

Seen: 2,225 times

Last updated: Mar 24 '16