Ask Your Question

What am I doing wrong? Gmapping on Turtlebot Clone. I've pictures!

asked 2012-02-06 22:26:41 -0600

osuairt gravatar image

Hello all,

I've been scratching my head over this for a while now, and I would appreciate an explanation. If some of the angels on top high (like Melonee) could just give me a straightforward answer, it would be awesome.

Basically, I have been putting together my Turtlebot Clone over the past few weeks. Gotten around to doing some mapping recently, I am just using the standard demo as per suggested by the tutorials. However, I get errors, and mutated maps that even their own mothers couldn't love.

So, I have taken some screenshots to give you a step by step of what I am doing.

image description

I start off with the above. I have my robot model, laser, map and camera all good to go. I have ran the gmapping launch file. You can see that the first parts of the occupancy grid is filling in. I have not moved the robot yet. There are no errors and we are all green on the dashboard.

image description

Now, I have moved the turtlebot slightly to the left. The occupancy grid expands, however errors start to appear from the dashboard. What do those errors look like you might ask? I'll show you.

image description

It is damn ugly I know. If I continue going around the environment, I will keep getting the error where the transform from base_link to odom fails. The only thing I touch in relation to launch files etc, is the minimal.launch. I don't use startup because teleop would not run when I did. I did the usual gyro config beforehand, and instead of putting the parameters into turtlebot.launch, I place them in minimal.launch. From what I can figure this should work fine. Correct me if I am wrong.

image description

Now, if I continue around the map. I get another flavor of error. This time this is to do with a loop rate that isn't being met. It is usually just shy of it.

image description

Now, if I continue on my merry way around the simple rectangular arena you see that obviously something is wrong. The two differences I can see from anyone else is how I do the bringup with the calibration values in the minimal.launch instead of the turtlebot.launch and I have a weaker netbook than what is suggest. If I had to put my money on it, I would say that it is the netbook not being fast enough.

You can look at the specs of the netbook I bought here.

Samsung NC110

My hands were a little tied with the choice, so this is why I didn't get something more powerful.

Again, I would really and truly like some feedback on what I might be doing wrong here, so I can zero in on the problem faster.

Thank you in advance.

edit retag flag offensive close merge delete


p.s. you should use upstart..ask a new question about the teleop and I'll help you make it work...
mmwise gravatar image mmwise  ( 2012-02-07 05:51:39 -0600 )edit
on your TurtleBot run the command top and tell me what the load average is...
mmwise gravatar image mmwise  ( 2012-02-07 05:59:34 -0600 )edit
Hi Melonee, thank you for taking the time to get back to me. I've written up the upstart stuff at: . And, I went ahead and ran top while do the mapping .
osuairt gravatar image osuairt  ( 2012-02-08 02:06:13 -0600 )edit
a load average of 5 might be your problem. Try changing the point cloud throttle max rate to 10Hz. see if that helps.. You want to have a load average less than 2.
mmwise gravatar image mmwise  ( 2012-02-08 10:59:41 -0600 )edit
:) Thank you. Can you tell me which config file I can change this parameter? I'll let you know if that helps. Thanks again!!
osuairt gravatar image osuairt  ( 2012-02-08 20:34:22 -0600 )edit
Lorenz gravatar image Lorenz  ( 2012-02-08 20:36:06 -0600 )edit
Thank you very much. I have altered the point cloud throttle max rate down to 1Hz even. Then I get a load of 2.4 while driving around, and I still get the Transform from base_link to odom failure. Your thoughts?
osuairt gravatar image osuairt  ( 2012-02-09 03:55:43 -0600 )edit
I still think that something is wrong with your transform tree, maybe with robot_pose_ekf. Otherwise tf_echo would be able to find odom_combined. Did you verify that robot_pose_ekf is actually connected to all required topics as I mentioned in one comment below?
Lorenz gravatar image Lorenz  ( 2012-02-09 04:37:31 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2012-02-07 00:26:54 -0600

Lorenz gravatar image

updated 2012-02-13 02:04:48 -0600

To me it looks like something is wrong with your odometry or with the laser data that is coming in You could check the following:

  1. Is odometry running and publishing sane values (check with rostopic echo /odom). Move around and verify that odometry is changing.
  2. Check if the odom transform is coming in (rosrun tf tf_echo odom base_footprint). Try setting the fixed frame in rviz to odom and move the robot around. Verify that the robot is moving correctly in rviz, i.e. when you move one meter forward, it should also be approximately one meter in rviz (the grid display helps here).
edit flag offensive delete link more


Hi. In both cases of the rosparam get above, it was odom instead of odom_combined as you mentioned. Also, when I run rostopic list, there is only odom no odom_combined. The tf_echo also says that odom_combined does not exist. What do you think?
osuairt gravatar image osuairt  ( 2012-02-07 00:41:32 -0600 )edit
The topic is actually odom :) Did you configure and run robot_pose_ekf for fusing odometry and the gyro? You have two choices now: 1) don't use robot_pose_ekf (requries a patch to turtlebot_node) 2) configure robot_pose_ekf and change ros parameters for gmapping and move_base to use odom_combined.
Lorenz gravatar image Lorenz  ( 2012-02-07 01:05:05 -0600 )edit
I performed the standard calibration for the gyro and odometry from the tutorials and included them in minimal.launch. Lets go with the second option. Can you give me a idea of how I go about configuring the robot_pose_ekf and for move_base to use odom_combined?
osuairt gravatar image osuairt  ( 2012-02-07 01:13:35 -0600 )edit
robot_pose_ekf is started by minimal.launch. Check with rxgraph or `rosnode info robot_pose_ekf` if all input topics are connected. I don't know which launch file you were using for gmapping but the odom frame needs to be set to odom_combined there. You don't need to start move_base for just mapping
Lorenz gravatar image Lorenz  ( 2012-02-07 03:19:21 -0600 )edit
I see what you are saying that it should be odom_combined.
osuairt gravatar image osuairt  ( 2012-02-09 22:29:59 -0600 )edit
Is that really the launch file you are using. It is PR2 specific. Remove the remapping line at the end or change it to match your setup. Also, to solve your problem, it is really important to understand your setup, so please provide the output of `rosrun tf tf_monitor` and `rostopic info odom`.
Lorenz gravatar image Lorenz  ( 2012-02-09 22:36:34 -0600 )edit
Well I pulled down and did the Turtlebot Ubuntu install as usual, there was no mention in the install instructions that additional modifications had to be made. I've removed the mapping at the end robot_pose_ekf. tf_monitor - rostopic -
osuairt gravatar image osuairt  ( 2012-02-10 00:22:44 -0600 )edit
Also, there is my minimal.launch -
osuairt gravatar image osuairt  ( 2012-02-10 00:28:53 -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



Asked: 2012-02-06 22:26:41 -0600

Seen: 1,265 times

Last updated: Feb 13 '12