Ask Your Question

Revision history [back]

all the tfs were published through static_transform_publisher.

Do you literally mean all the tf's? If so, this is what the problem is. map->odom will be published by gmapping itself, and odom->base_footprint needs to be published by a source of odometry, so it can't really be static. The only static transforms are base_footprint->base_link and base_link->base_laser.

all the tfs were published through static_transform_publisher.

Do you literally mean all the tf's? If so, this is what the problem is. map->odom will be published by gmapping itself, and odom->base_footprint needs to be published by a source of odometry, so it can't really be static. The only static transforms are base_footprint->base_link and base_link->base_laser.

UPDATE:

Let's say you have a bag file which publishes a odom->base_link tf. You need to run gmapping with the "~base_frame" parameter set to base_link.

all the tfs were published through static_transform_publisher.

Do you literally mean all the tf's? If so, this is what the problem is. map->odom will be published by gmapping itself, and odom->base_footprint needs to be published by a source of odometry, so it can't really be static. The only static transforms are base_footprint->base_link and base_link->base_laser.

UPDATE:

Let's say you have a bag file which publishes a odom->base_link tf. You need to run gmapping with the "~base_frame" parameter set to base_link.base_link. When you were running with the bag file, it probably had the "~base_frame" set to base_footprint.