This page walks you through the steps needed to create your own bag files with ground truth data. TODO: I may add pictures here to make it easier to follow.
1.) Reseat your robot's camera so it is pointed up (the 3d printed mount has a slot to help you do this). Make sure to push it in fully so the camera is facing as close to vertical as possible.
2.) Adjust the position (slightly) of the clear plastic mount with the raspberry pi so that the camera is not rotated relative to the forward direction of the robot.
3.) Put the robot under a desk or table.
4.) Connect to the robot using the typical procedure.
5.) Drive your robot out from under the table and position it so that as you rotate your robot 360 degrees in place, you can only see one of the markers on the ceiling (it's okay if other markers enter the robot's field of view while spinning, but they should not be fully visible).
6.) Run the april tags launch file
$ roslaunch my_pf apriltags.launch
To see that it's working, add a view of /camera/tag_detections_image to rviz. You should see a box drawn around any markers that are entirely within the camera's field of view).
7.) Run the april tags calibration script.
$ rosrun my_pf calibrate_star_pose_revised.py
8.) Spin (the robot) very slowly in a circle. You should see a plot with a red circle and a bunch of points drawn in blue. If all goes well, the points should basically fall along the circle. Once you have rotated around almost a full revolution, hit control-c (this will save the calibration parameters).
9.) Make sure you have good landmarks to track. This can be accomplished by adding walls to the middle of AC109 (e.g., by flipping tables on their sides).
10.) Create a bag file.
$ roslaunch my_pf record_ground_truth.launch bag_name:=my_gt_bag
Note: This will start up gmapping and record a bag in your ~/.ros directory with the name prefix "my_gt_bag" (in this case).
11.) Drive your robot around to collect the bag. You should strive to get a pretty good map built up.
12.) Save the map.
$ rosrun map_server map_saver -f name_of_map map:=transformed_map
13.) Stop recording your bag file by hitting control-c in the terminal where you launched record_ground_truth.launch.
14.) Run a post processing script on your bag file to strip out unwanted transforms.
$ rosrun my_pf fix_bag.sh path-to-bag-file.bag path-to-fixed-bag-file-to-create.bag
15.) Run a post processing script on your map file
$ rosrun my_pf fix_map.py path-to-map-YAML-file
That should do it. This is the exact procedure I ran to create the bags that are in the repo. While it is quite involved to go through, I hope you will learn a lot and that it will be useful to you in your debugging and validation of your particle filter.