Octomap not available in MoveIt
I want to represent my robots environment (available as a point cloud) as Octomap in MoveIt (ROS Kinetic) to make it available for collision checking. Therefore I mainly followed the Perception Pipeline Tutorial (http://docs.ros.org/kinetic/api/movei...). Since I don't have an operating sensor I used a topic constantly publishing the point cloud. I created a pointcloud.yaml
sensors:
- sensor_plugin: occupancy_map_monitor/PointCloudOctomapUpdater
point_cloud_topic: /fakesensor/pointcloud
max_range: 5.0
point_subsample: 1
padding_offset: 0.1
padding_scale: 1.0
max_update_rate: 1.0
filtered_cloud_topic: filtered_cloud
And added this to my launch file:
<rosparam command="load" file="$(find robot_registration)/config/pointcloud.yaml" />
<param name="octomap_frame" type="string" value="world" />
<param name="octomap_resolution" type="double" value="0.05" />
<param name="max_range" type="double" value="15.0" />
Starting RViz I can observe the point cloud I am publishing but there is no Octomap available. Any ideas what I am missing?
I also tried to use the octomap_server. My .launch file looked like this:
<launch>
<node pkg="octomap_server" type="octomap_server_node" name="octomap_server">
<param name="resolution" value="0.5" />
<!--common frame id fixed map frame (set to 'map' if SLAM or localization running!) -->
<param name="frame_id" type="string" value="world" />
<!-- maximum range to integrate (speedup!) -->
<param name="sensor_model/max_range" value="5.0" />
<!-- data source to integrate (PointCloud2) -->
<remap from="cloud_in" to="/fakesensor/pointcloud"/>
</node>
</launch>
I don't get any errors. In RViz I can add by topic the PointCloud2 /octomap_point_cloud_centers and the Marker Array /occupied_cells_vis_array. However in both cases there is nothing displayed in RViz. As far as I can see the topics are communicating fine. /octomap_point_cloud_centers Point Cloud in RViz is receiving messages. Echoing the /octomap_point_cloud_centers the data seems to be empty. Thank you in advance for all ideas!
So far my only idea is having isues with the tf frames: the pointcloud that i am sending has its own "sensor_frame" but i am also publishing the transformation between /sensor_frame and /world. Do I have to pay special attention to sth at this point. Do I have to use tf::TransformBroadcaster or tf2_ros::StaticTransformBroadcaster for the transformation to the sensor_frame?
Did you try to change the value from world to odom?
I actually don't have an /odom frame
I can share you my experience: I had the similiar problem and when I changed the frame to odom it worked. So maybe you have to change the world frame to another frame
And you could check, if you get proper point cloud data
I played around a bit with different frames but so far not successful. Did you work with the percepton pipeline or with the octomap server? I can display the point cloud I am trying to process but I don't see any points when trying to display /filtered_cloud or /octomap_point_cloud_centers