(!) Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags.

Update a point cloud

Description: In this tutorial we will tell the next_best_view node which views we have seen. So it can remove normals which are seen by these views. Without the deletion of normals the next NextBestView might try to look at same hypothesis from the same direction.

Tutorial Level: INTERMEDIATE

Description

In this tutorial we will tell the next_best_view node which views we have seen. So it can remove normals which are seen by these views. Without the deletion of normals the next NextBestView might try to look at same hypothesis from the same direction.

Setup

Do the previous tutorial.

Tutorial

Run:

rosservice call /nbv/update_point_cloud "pose_for_update:
  position:
    x: -0.50
    y: -0.585
    z: 1.47
  orientation:
    x: -0.115
    y: 0.243
    z: 0.412
    w: 0.870
object_type_name_list:
- 'Cup'"

Now you should see some removed normals which were showing towards the frustum origin:

tutNBVUpdate.png

Furthermore we can set the point cloud in the first tutorial with a list of viewports, which have been seen:

rosservice call /nbv/set_point_cloud "point_cloud:
  elements:
  - pose:
      position:
        x: 0.0
        y: 0.0
        z: 1.0
      orientation:
        x: -0.707
        y: 0.0
        z: 0.0
        w: 0.707
    type: 'Cup'
    identifier: '0'
viewports_to_filter:
- pose:
    position: {x: -0.5, y: -0.585, z: 1.47}
    orientation: {x: -0.115, y: 0.243, z: 0.412, w: 0.870}
  object_type_name_list: ['Cup']"

is_valid: True
normals_per_object:
  -
    type: Cup
    identifier: 0
    active_normals: 9
    deactivated_object_normals: 3

The results says that the point cloud is valid and that 3 of 9 normals were removed.

Wiki: asr_next_best_view/UpdatePointCloud (last edited 2019-11-09 08:03:16 by FelixMarek)