I'm trying to use an RGBD camera (I'm using gazebo_plugins gazebo_ros_openni_kinect plugin in simulation with gazebo 1.9.1) with the VoxelLayer.
The problem I'm facing is basically that the voxel_grid (I visualize it on rviz) is not cleared when the readings are further than the max range; there's no point to raytrace and clear them. I'm thinking of publishing some sort of a max_range point cloud only for clearing.
However, I'm curious about how people manage to solve this problem.
FYI, I'm using branch/tag 1.11.8 and I've seen a few changes you've introduced up to 1.11.11. Are they bug fixes? Or can I live without them?
This videos tries to show the issue: http://youtu.be/Pz0osmz-G24?t=26s If it's not clear enough, please tell me and I'll create another one. This is the video description (copy&paste): In this video I show two "experiments". First, I move the table close to the wall, and the voxel grid (in red) is cleared after removing the table. Second, I move the table again closer to the robot (far from the wall), and now there are voxels not cleared after removing the table. I think this could be because there is no point to clear the elements on the costmap.
Note that the gazebo_ros_openni_kinect plugin uses the depth image to generate the point cloud. And the depth image is generated using raytracing in gazebo (AFAIK). This means that when the ray doesn't hit anything the pixel is black (0); the same as if the distance were 0 (close). Therefore, for these points there's no clearing.
Trying to look for a workaround I've modified the plugin here: https://github.com/pal-robotics/gazebo_ros_pkgs/pull/2 I'm using a simulation similar to REEM's for testing.
Post score: 0