Ask Your Question

p3at doesnt update position on /map when moving forward

asked 2012-06-18 08:56:59 -0500

michaelsrobot gravatar image

Hello everyone,

I am trying to make my robot navigate autonomously. I am using the p3at robot along with a hokuyo laser (URG-04LX-UG01). The problem is that the robot cant tell that it is moving forward or backwards on the map where as it works when it is only moving left and right. I am using Rosaria to control the robot, along with ROS electric and ubuntu 10.10. I tried making a map using the gmapping package. It would create a map if I simply spun the robot left or right (this is because the hokuyo laser only looks forward), but when i tried moving it forward the map would mess up since the robot didnt move inside the map. When this failed I tried to use hector_mapping instead and changed some of the parameters so that it didnt use odometry. This worked and I could successfully create a good map.

Now however I have tried to make it autonomous using move_base and I have the same problem. It will start on the map in the initial position and then I will point in RVIZ its target destination. The robot will move forward, but in RVIZ the robot will stay in the same position in the map. When it approaches a wall it will see it as a giant obstacle moving towards it rather than the wall in the map. Meanwhile, it is clear that it registers in rviz when it has turned left or right. I have been loosely following the tutorials found online at

Here is a picture of the view frames.

Any help will be greatly appreciated. I have been stuck on this problem for a long time.

Thanks! Michael

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2012-06-18 17:12:28 -0500

weiin gravatar image

Looks like your fixed frame is not correct. Have you checked that in RViz, the fixed frame is 'map' or 'odom'?

The other possibility is your /odom frame broadcaster is not doing it correctly. I suggest you do the sanity check in here before you proceed with gmapping. At the very least, you should get a rough map using just teleop, fixed frame = /odom, and long decay time for laser scan in rviz.

edit flag offensive delete link more

answered 2012-06-19 07:30:33 -0500

michaelsrobot gravatar image

Thanks for the reply. The fixed frame is correct. Changing it to anything else does not fix the problem.

I tried doing the sanity check from the link and there is indeed a problem with the translation. The spinning works fine with a bit of drift, where as when i move the robot towards a wall, it simply gets thicker and thicker when i put the decay time to 20 seconds. There must be a problem with the odometry. How do i fix the odometry of the robot or make sure there is a problem?

Thanks in advance, Michael

edit flag offensive delete link more


Not sure about the details of your particular robot. But most robots would have a particular node handling the odom frame broadcast. That's the code that needs to be changed.

weiin gravatar image weiin  ( 2012-06-20 14:46:28 -0500 )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


Asked: 2012-06-18 08:56:59 -0500

Seen: 561 times

Last updated: Jun 19 '12