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

Revision history [back]

OK, so you have two problems here that I can see off the bat, and they are both related.

First, get rid of the static transform from map->base_footprint. Gmapping knows to update the map when that transform changes (either in translation or rotation) by a user specified amount. By using a static transform, that transform will never change and therefore the map will never update.

Second, looking at Screenshot from 2016-06-18 19:51:20.png, you can see that there is no transform between odom->base_footprint. You may have something publishing an nav_msgs/Odometry message, but there is nothing publishing the transform to the tf topic. I don't know what your odometry node looks like, but it seems to be missing the transform publisher. Take a look at lines 43-55 in the sample code of the odom tutorial.

OK, so you have two problems here that I can see off the bat, and they are both related.

First, get rid of the static transform from map->base_footprint. Gmapping knows to update the map when that transform changes (either in translation or rotation) by a user specified amount. By using a static transform, that transform will never change and therefore the map will never update.

Second, looking at Screenshot from 2016-06-18 19:51:20.png, you can see that there is no transform between odom->base_footprint. You may have something publishing an nav_msgs/Odometry message, but there is nothing publishing the transform to the tf topic. I don't know what your odometry node looks like, but it seems to be missing the transform publisher. Take a look at lines 43-55 in the sample code of the odom tutorial.

[EDIT] Change the t.child_frame_id = base_link; to t.child_frame_id = base_footprint;. Frames can have multiple children but only a single parent. The way it is set up now, base_footprint is the child of both base_footprint and odom. As this isn't allowed it will latch onto the first parent to be published, in this case base_footprint.

OK, so you have two problems here that I can see off the bat, and they are both related.

First, get rid of the static transform from map->base_footprint. Gmapping knows to update the map when that transform changes (either in translation or rotation) by a user specified amount. By using a static transform, that transform will never change and therefore the map will never update.

Second, looking at Screenshot from 2016-06-18 19:51:20.png, you can see that there is no transform between odom->base_footprint. You may have something publishing an nav_msgs/Odometry message, but there is nothing publishing the transform to the tf topic. I don't know what your odometry node looks like, but it seems to be missing the transform publisher. Take a look at lines 43-55 in the sample code of the odom tutorial.

[EDIT] Change the t.child_frame_id = base_link; to t.child_frame_id = base_footprint;. Frames can have multiple children but only a single parent. The way it is set up now, base_footprint base_link is the child of both base_footprint and odom. As this isn't allowed it will latch onto the first parent to be published, in this case base_footprint.