I'd like to record some bag files of Kinect data and then run RGBDSLAM on them later. (The computer I'm doing the collection with isn't up to doing the RGBDSLAM itself.)
The problem is that I want to keep the bag files as small as possible, so I want to collect the minimal amount of data necessary.
In particular, that means I would like to record to the bag file the smallest number of topics possible, and preferably only image topics and the like -- PointCloud2 messages are quite large in comparison.
Can someone tell me exactly which topics are necessary for running RGBDSLAM off a bag file, and walk me through how to get RGBDSLAM to use only them? (Also, I'm a little confused about whether I should be using the dynamic_reconfigure reconfigure_gui to turn on OpenNI's depth registration or not...)
I thought I needed only RGB and depth image and possibly camera info topics, but when I tried running RGBDSLAM off of only those, it kept saying it was waiting for various other things. I think maybe I just need to change the parameters in the launch file to tell it that those are the only things I want it to work with, but I can't figure out how to do that properly.
Any help would be greatly appreciated! :)
As a specific example of one of the things I've tried, I ran the following:
$ rosbag record /camera/depth_registered/image_rect_raw /camera/rgb/image_rect_color /camera/rgb/camera_info
I then ran the RGBDSLAM GUI and pressed the space key. The status bar displayed:
Processing. Waiting for motion information.
I then started playback of the bag file. Nothing changed.
I followed Felix's directions, and everything worked swell... except for one problem. The depth images were not registered with the RGB images, so the textures in the resulting map were all incorrect.
So I tried again, this time using
openni_launch openni.launch, using the
dynamic_reconfigure reconfigure_gui to turn on depth registration (
/camera/driver --> depth registration checkbox), and then using the following call to
rosbag to record the bag file:
$ rosbag record -o /home/full/path/and/filename_prefix /tf /camera/rgb/image_color /camera/rgb/camera_info /camera/depth_registered/image /camera/depth/camera_info
I then ran the following launch file on this bag file (pressing the spacebar to start the processing once the GUI came up):
<launch> <node pkg="rgbdslam" type="rgbdslam" name="rgbdslam" cwd="node" required="false" output="log" > <!-- see rgbslam_sample_config.launch for all available parameters and their default values --> <param name="config/topic_image_mono" value="/camera/rgb/image_color"/> <param name="config/topic_image_depth" value="/camera/depth_registered/image"/> <param name="config/topic_points" value=""/> <!--if empty, poincloud will be reconstructed from image and depth --> <param name="config/camera_info_topic" value="/camera/rgb/camera_info"/> <param name="config/bagfile_name" value="/home/full/path/and/filename.bag"/> <param name="config/start_paused" value="true"/> <param name="config/wide_topic" value=""/>; <param name="config/wide_cloud_topic" value=""/>; <param name="config/drop_async_frames" value="true"/> <!-- Check association of ...