Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

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/moveit_tutorials/html/doc/perception_pipeline/perception_pipeline_tutorial.html). 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. Thank you in advance for all ideas!

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/moveit_tutorials/html/doc/perception_pipeline/perception_pipeline_tutorial.html). 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. 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!

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/moveit_tutorials/html/doc/perception_pipeline/perception_pipeline_tutorial.html). 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!

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/moveit_tutorials/html/doc/perception_pipeline/perception_pipeline_tutorial.html). 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?