TurtleBot gmapping demo still waiting for map
UPDATE:
I downloaded an update for the turtlebot code today (AUG 15) and the gmapping demo worked. I noticed that there were changes to the gmapping_demo.launch file. Specifically,
It includes kinect.launch which launches the openni/Kinect services for turtlebot. Was this here before? I had to launch the openni services manually just yesterday...
It includes base.launch which launches robot_pose_ekf. It seems robot_pose_ekf subscribes to the odom topic (in the odom frame?) and publishes to the robot_pose_ekf/odom_combined topic (in the odom_combined frame)... this was definitely not in gmapping_demo.launch before (yesterday).
Can someone confirm that these updates were made recently? I literally arrived in the office this morning, installed the update, ran the code and had gmapping working (!).
I also have some questions regarding the transform tree for gmapping in general.
gmapping uses/creates the map and odom_combined frames. Does gmapping provide the transformation map -> odom_combined as well?
My earlier problem (see below) was caused by a missing transform odom -> base_link or odom_combined -> base_link and slam_gmapping complained about "still waiting for map". Is it correct to say that the robot_pose_ekf package basically takes the odometry data from the odom topic (and IMU data if any) and publishes odom_combined -> base_link?
PROBLEM:
I'm trying to get SLAM (gmapping) working on the turblebot and kinect.
The turtlebot is correctly generating "fake" laser scan data. The Kinect is acquiring a point cloud which is being converted into a laser scan. I can see all of this working correctly in rviz.
But no map is being published... The "Map" display in rviz is saying "No map received" and the slam_gmapping node is printing "Still waiting on map..." to the terminal.
I believed I have a problem with frames and transformations.
In the TF display of rviz, there are two frames that are not connected to the turtlebot frame tree: map and odom (map's child). There are no transformations connecting map to any of the frames in the turtlebot frame tree.
In the Odometry display of rviz, rivz says "Frame [odom] does not exist."
So the odom frame is not created by default as part of the turtlebot frame tree...
QUESTIONS:
What is the odom frame?
How do I create the odom frame and generate the transformation that connects odom to the rest of the turtlebot frame tree?
I don't want to write new code. Is there any existing, standard, general ROS code and/or turtlebot-specific ROS code that I can launch to answer Question 2?
MORE INFORMATION:
Using rostopic to inspect the "odom" topic more closely, I find that odom has no subscribers (other than rviz). So whichever node is supposed to be running and using the odom information doesn't exist in my current configuration.
I would like to provide a rxgraph screenshot of my current configuration, but I get this error
Traceback (most recent call last):
File "/opt/ros/diamondback/stacks/rx/rxgraph/src/rxgraph/impl.py", line 123, in run
changed = g.update()
File "/opt/ros ...