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

gmapping yields map with a bend at one point

asked 2011-07-07 02:17:28 -0600

Alex Brown gravatar image

Hi, I am using gmapping in a hallway 100 feet long and 8 feet wide. There is an alcove for elevators on one side in the middle of the hallway. I am using a URG-04LX laser scanner.

Each time I build a map, there is a bend that occurs at one end of the alcove. The hallway is mapped pretty straight except for the area where the bend occurs. Interestingly, the bend occurs at the same end of the alcove regardless of which end of the hallway the robot begins its mapping run.

I have plotted my odometry, x,y,and theta, and they are quite straight for the entire length of the hallway. I have played with srr,srt,str and stt; reducing them to zero makes the turn a little more abrupt, doubling the terms from the default values has little effect.

Of course the map should work pretty well for navigation, but the bend is annoying since my odometry is very good. Any suggestions will be appreciated.


image description

edit retag flag offensive close merge delete


Do you get better results if you traverse the hallway twice (once in each direction) during the mapping run?
Brian Gerkey gravatar image Brian Gerkey  ( 2011-07-07 03:07:00 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2011-07-07 03:00:23 -0600

dornhege gravatar image

updated 2011-07-07 03:01:50 -0600

Can you have a look at the laser data at the specific location. 8 ft is not that far from the URG's max range, perhaps there is very little data to match properly and the map you are getting is good (matching wise).

Otherwise you can play around with (at the cost of computation time):

  • iterations (more)
  • linearUpdate/angularUpdate (decrease)
  • particles (more)
edit flag offensive delete link more


Brian, the data shown is the result of making a round trip from one end of the hall and back. The map looks like this after going down the hall one way and doesn't change appreciably on the way back. To Dornhege, it was only about 6 feet from the center of the hall, where I drove the robot, to the farthest wall; so I don't think it was out of range. I'll try looking at your other suggestions. I'm not sure what parameters are for the "updates".
Alex Brown gravatar image Alex Brown  ( 2011-07-07 13:13:03 -0600 )edit
linearUpdate and angularUpdate determine how far the robot must have translated or rotated before a filter update is performed; units are meters and radians, respectively. Decreasing them will take account of laser data more often.
Brian Gerkey gravatar image Brian Gerkey  ( 2011-07-07 13:27:50 -0600 )edit
You might also try increasing ~lsigma, which is the standard deviation in the laser model.
Brian Gerkey gravatar image Brian Gerkey  ( 2011-07-07 13:29:43 -0600 )edit
I don't think you were out of the maxrange, but maybe there was no clear data to match at that point. The bend seems to be at a point where the lower site has no ranges.
dornhege gravatar image dornhege  ( 2011-07-08 01:24:41 -0600 )edit
Well, I varied each suggested parameter to 50% and 200% of the default values while processing a bag file. The results varied from no appreciable difference to a bit worse bend (maybe 25% more). Tomorrow, I can run the bot in the same hallway and will try it with the door closed and perhaps using a sheet of cardboard to extend the wall so that the laser doesn't see the alcove. Thanks for your help. I'll let you know what happens.
Alex Brown gravatar image Alex Brown  ( 2011-07-08 03:47:51 -0600 )edit
If you want to trick/cheat the environment for the algorithm: Put something that is not aligned with the corridor, 90deg at best.
dornhege gravatar image dornhege  ( 2011-07-08 04:26:08 -0600 )edit

Question Tools


Asked: 2011-07-07 02:17:28 -0600

Seen: 920 times

Last updated: Jul 07 '11