costmap2DROS warning: " still waiting on the map" at launch of sbpl navigation
Greetings,
I am working on establishing path planning on Pioneer 3AT using ROS diamondback, Ubuntu 10.04. We had generated a map of floor using gmapping. We are using resultant map as static map for autonomous navigation. Pioneer can do some path planning using navfn. It can execute the plan after a lot of rotations/oscilations. Stack is functional with Navfn.
We decided to use SBPL lattice planner for better path planning. Keeping all other costmap parameters same, we just changed the planner from Navfn to SBPL (obviously with relevant configrations). But we are facing a problem. On launching the move_base with SBPL planner as global planner, it just keep on waiting on map. Following is the INFO message from Costmap2dROS
"... still waiting on map "
and This message comes exactly once and no planner is created! Normally I observe this message comes couple of times before a map is received.
On Digging in the code, i found this message is coded in costmap_2d_ros.cpp in following while loop:
113 while(!map_initialized_ && ros::ok()){
114 ros::spinOnce();
115 ROS_INFO("Still waiting on map...\n");
116 r.sleep();
117 }
costmap_2d class subscribes to /map topic for map. but the corresponding callback Costmap2DROS::incomingMap is not getting called. I can visualize the map in rviz. I had unchecked and checked /map topic multiple times. It always gets visualized. So I believe it is getting published correctly by map_server.
I have one more observation which I am not able to understand. On running following command
rostopic hz /map
i do not get anything on console! I expected i will get publishing frequency of map.
The rxgraph generates very different outputs for movebase with Navfn and sbpl planner. The rxgraph output for move_base with Navfn is here: http://www.mediafire.com/?pt2ikau56vf171s
The rxgraph output for move_base with sbpl planner is here: rxgraph_sbpl.dot These files are dot files can be visualized using dotty. sbpl file shows a lot less published topic since planner is not created in this case. I had tried to keep the configuration parameters correct.
The launch files for similar to available with sbpl_lattice_planner. Following are my launch files:
ROSAria, Sick LMS , AMCL nodes are started with this launch file: http://www.mediafire.com/?t0r8nkc2xdf2ysv
For NavFn planner, following files executes and try to follow path: costmap_common_params.yaml, base_local_planner_params.yaml, global_costmap_params.yaml, local_costmap_params.yaml : http://www.mediafire.com/?4vcnmtyi12mcofk
For SBPL : , a tar file containing yaml and launch file are at: http://www.mediafire.com/?gt3wwdhio25s5sq
I am not able to find out when similar configuration works in Navfn, then, why move_base keeps on waiting on map in case of sbpl launch configurations?
Any kind of hints or help will definitely help Thank you
prince
UPDATE1 While trying to generate same error in simulation environment, i started changing launch files in sbpl_lattice_planner package. If I comment launch of stageros node, I gets same behavior. costmap2d_ros just waits.
For costmap2d_ros to function, I had published the map using map_server package and Laser ...