Ask Your Question
0

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.

Alex

image description

edit retag flag offensive close merge delete

Comments

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

1 Answer

Sort by ยป oldest newest most voted
0

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

Comments

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 imageAlex 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 imageBrian 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 imageBrian 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 imagedornhege ( 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 imageAlex 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 imagedornhege ( 2011-07-08 04:26:08 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

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

Seen: 697 times

Last updated: Jul 07 '11