sbgisen / moveit

:robot: The MoveIt motion planning framework
http://moveit.ros.org/
BSD 3-Clause "New" or "Revised" License
0 stars 1 forks source link

filtered_cloud is incorrect #19

Open nyxrobotics opened 1 month ago

nyxrobotics commented 1 month ago

Description

If you set debug to true in move_group.launch, you can see filtered_cloud in rviz This filtered_cloud automatically removes the robot's own model and the model of the scene added with rviz However, this model is not fully removed and there is a point cloud that is not removed as shown in the image

Screenshot from 2024-05-14 11-59-54

Your environment

Steps to reproduce

Tell us how to reproduce this issue. Attempt to provide a working demo, perhaps using Docker.

Expected behaviour

Tell us what should happen

Actual behaviour

Tell us what happens instead

Backtrace or Console output

Use gist.github.com to copy-paste the console output or segfault backtrace using gdb.

nyxrobotics commented 1 month ago

I think octomap is working correctly and only filtered_cloud seems to be wrong.

nyxrobotics commented 1 month ago

I found the cause. These processes were using OpenGL, and instead of “erasing the inside of the BOX”, they were “rendering the mesh of the BOX and erasing the back side of the mesh to the shadow_threshold distance”. The first image shows that the point cloud at a distance greater than shadow_threshold from the mesh in view has not been removed.

https://github.com/sbgisen/moveit/blob/051e3eddfc2928e06dcb7835d684f9cca203b80c/moveit_ros/perception/mesh_filter/src/stereo_camera_model.cpp#L165-L180

nyxrobotics commented 1 month ago

The problem seems to be solved by increasing shadow_threshold. However, the following issues need to be fixed