Skip to content

Occupancy map with missing voxels #96

@lucascdlima

Description

@lucascdlima

Hi,

I am currently using wavemap with a depth image as input. The issue I am facing is that occupied voxels are missing (not appearing) on the wavemap output, depending on the resolution chosen.

Configuration file:

File: wavemap_depth_camera.yaml

depth_scale: 1
general:
  world_frame: "odom"
  logging_level: debug
  allow_reset_map_service: true

map:
  type: hashed_chunked_wavelet_octree
  min_cell_width: { meters: 0.06 } #{ meters: 0.02 original}

map_operations:
  - type: threshold_map
    once_every: { seconds: 0.2 }
  - type: prune_map
    once_every: { seconds: 5 }
  - type: publish_map
    once_every: { seconds: 0.1 }



measurement_integrators:
  ACCC8EBBB1E5:
    projection_model:
      width: 1920
      height: 1080
      fx: 1085.4730379734315
      fy: 1085.4730379734315
      cx: 959.5
      cy: 539.5
      type: pinhole_camera_projector
    measurement_model:
      type: continuous_ray
      range_sigma:
        meters: 0.01
      scaling_free: 0.5
      scaling_occupied: 0.999
    integration_method:
      type: hashed_chunked_wavelet_integrator
      min_range:
        meters: 0.1
      max_range:
        meters: 70.0
 
inputs:
- type: depth_image_topic
  topic_name: /camera_depth_image/ACCC8EBBB1E5
  measurement_integrator_names: ACCC8EBBB1E5
  topic_queue_length: 10
  max_wait_for_pose:
    seconds: 1.0

Lunch file:
src/wavemap/interfaces/ros1/wavemap_ros/launch/wavemap_server.launch

Command
roslaunch wavemap_server.launch param_file:=/path_to_config/wavemap_depth_camera.yaml

Depth image input:

Image

For instance, using the following configuration with the min_cell_width: { meters: 0.06 }, I get the following output:

Image

In the output above, the wall on the left (marked with the left arrow) should have occupied voxels, but it is empty. The same issue occurs with the floor that has occupied voxels closer to the sensor, but further away from the sensor, the floor disappears (arrow on the right).

However, if I increase the resolution min_cell_width: { meters: 0.02 }, the above problems do not occur anymore, as seen in the picture below:

Image

Given the runtime requirements of my application, I would prefer using the 0.06 cell width, which has the issue.

I looked at the code, but I still didn't fully understand why this is happening. My guess is that with the lower voxel resolution (0.06) the voxels are being cleared during the projective integration. For some reason, this clearing effect doesn't happen in the higher voxel resolution (0.02).

I appreciate any help to address and/or explain this issue.

I can send a bag file with the data I am using if it helps to understand the problem and debug.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions