Issue with setting tf in gmapping
I logged laser scans from P3dx in a bag file and ran gmapping on the bag file. I get the following warning
MessageFilter [target=/odom ]: Dropped 100.00% of messages so far. Please turn the [ros.gmapping.message_notifier] rosconsole logger to DEBUG for more information
I set up the following tf using static_transform_publisher.
map -> odom -> base_footprint -> base_link -> base_laser
This is the tf I got when I ran gmapping on the bag file given in slam_gmapping tutorial (gmapping is working perfectly on this bag file). So, I assume this is the right tf.
The bag file I created using p3dx was filtered to contain only the laser scans, and all the tfs were published through static_transform_publisher.
gmapping continues to give the warning. Any help?
Update 1 I get only odom -> base_link from the bag file I created. That forced me to use static_transform_publisher, which now I understand is not right. But the bag file I downloaded contains odom -> base_footprint -> base_link -> base_laser. How do I get this tf.?
To collect data on p3dx I use
rosrun p2os_driver p2os
rosbag record -O mylaserdata /base_scan /tf
Anything I should change to get the required tf?
Update 2 This is how I run gmapping now. I still get the same warning.
rosparam set /base_frame "/base_link"
rosrun tf static_transform_publisher 0 0 0 0 0 0 base_link base_laser 100
rosrun gmapping slam_gmapping scan:=base_scan
rosbag play gmapping_data.bag
Now the tf is map -> odom -> base_link -> base_laser
Update 3 Set the debug level of ros.gmapping.message_filter in slam_gmapping node to "Debug". I get this message now
[DEBUG] [1299740216.768663556, 1299651571.155978846]: MessageFilter [target=/odom ]: Removed oldest message because buffer is full, count now 5 (frame_id=laser, stamp=1299651570.618031)
[DEBUG] [1299740216.768820286, 1299651571.155978846]: MessageFilter [target=/odom ]: Added message in frame laser at time 1299651571.154, count now 5