can not save map with octomap_server / octomap_saver from rgbdslam ROS Fuerte
Hi,
I have seen on this ROS Answer topic that someone already had trouble saving maps from rgbd slam using octomap. I have exactly the same problem, I click on "Graph" -> Send Model (ctrl+M) inside the rgbdslam window, the model and the map seem to be sent correctly (30 out of 30 nodes, for example), but when I run "rosrun octomap_server octomap_saver mymap.bt" there is only 1 node saved to the map file (so empty map in octovis).
Let me explain my setup : rgbdslam from the wiki svn, adapted with many efforts to be used in fuerte and built with rosmake. I can capture a scene (by pressing space), but no map can be saved with octomap_saver as said above.
I have also set up the octomap_mapping.launch file accordingly (fixed frame "openni_camera" and "cloud_in" remapped to "/rgbdslam/batch_clouds").
I am also using the experimental branch of octomap. Here are the steps that I did to build it in ROS Fuerte:
downloaded mapping_msgs from svn (ros wiki) downloaded point_cloud_perception from svn (ros wiki) downloaded geometric_shapes_msgs from svn (ros wiki) downloaded octomap_mapping-experimental from svn https://alufr-ros-pkg.googlecode.com/svn/branches/octomap_mapping-experimental/
Error : /home/micmac/fuerte_workspace/octomap_mapping-experimental/octovis/src/octovis/TrajectoryDrawer.cpp:63:5: erreur: ‘GLUquadricObj’ was not declared in this scope
> Edited /home/micmac/fuerte_workspace/octomap_mapping-experimental/octovis/src/octovis/TrajectoryDrawer.h to add #include <GL/glu>
> and added GL and GLU to target_link_libraries to octomap_mapping-experimental/octovis/CMakeLists.txt
Error: /home/micmac/fuerte_workspace/octomap_mapping-experimental/octomap_ros/src/conversions.cpp:45:114: erreur: explicit instantiation shall not use ‘inline’ specifier [-fpermissive] Error: /home/micmac/fuerte_workspace/octomap_mapping-experimental/octomap_ros/src/conversions.cpp:46:125: erreur: explicit instantiation shall not use ‘inline’ specifier [-fpermissive]
> Edited /home/micmac/fuerte_workspace/octomap_mapping-experimental/octomap_ros/src/conversions.cpp to remove 'inline' specifier on both lines 45 and 46
Then rosmake octomap_mapping-experimental : Built 39 packages with 0 failures
So both RGBDSLAM and octomap_mapping-experimental seem to run fine, but I can't save any map using "rosrun octomap_server octomap_saver mymap.bt"
I have also tried to publish a static transform from /rgbdslam/batch_clouds to octomap_server by adding this line to octomap_mapping.launch:
<node pkg="tf" type="static_transform_publisher" respawn="false" name="octomap_tf_conversion" args="0 0 0 0 0 0 /rgbdslam/batch_clouds /octomap_server 10" output="screen"/>
I must also precise that I am using the Asus Xtion Pro live cam, so the topics may be a little different here and there (camera_rgb_optical_frame instead of openni_rgb_optical_frame), but I also tried all the required changed without success.
Would you please have any advice to give me on how to save a map from rgbdslam with octomap_mapping ? I've been spending monthes on this without success so far...
Do you really need the experimental branch of octomap_mapping? I think it's pretty outdated and not maintained by anyone...
Well I sticked to what is said in the wiki. Furthermore, I have read somewhere (can not remember url sorry) that the experimental branch includes some transforms or other required stuff in order for the communication between rgbdslam and octomap server to work.
Could you update from the repository and see whether it works now?