UnknownFreeOccupied / ufomap

UFOMap: An Efficient Probabilistic 3D Mapping Framework That Embraces the Unknown
https://unknownfreeoccupied.github.io/
BSD 2-Clause "Simplified" License
255 stars 46 forks source link

Spurious Large Occupied Voxels #6

Open generush opened 3 years ago

generush commented 3 years ago

Hello,

I've noticed some spurious large occupied voxels that appear and disappear in the ufomap. They appear to be unknown voxels that get inadvertently converted to occupied. Within the first few minutes, I have noticed it a number of times. I am curious if you have observed this as well and perhaps can think of a quick fix. If more data would be helpful, please let me know, I already have uploaded a screen recording and rosbags for a 45 minute dataset to google drive, and it would be easy to share.

Here is the first instance of the issue: Screenshot from 2021-05-12 10-57-08

Here is a video showing that the spurious occupied node was converted from unknown to occupied: https://user-images.githubusercontent.com/33467025/118020657-8f04ac80-b317-11eb-8cc8-0c511fad57cc.mp4

Within the first few minutes, there were more instances of this issue: Screenshot from 2021-05-12 10-57-56 Screenshot from 2021-05-12 10-59-11 Screenshot from 2021-05-12 10-59-16 Screenshot from 2021-05-12 11-01-32

This last one was a huge 40m voxel because the robot went outside: Screenshot from 2021-05-12 11-03-02

https://user-images.githubusercontent.com/33467025/118022038-20c0e980-b319-11eb-8d62-76edf57a4f6a.mp4

martinakos commented 2 years ago

I see the same artifacts. Is there any explanation for these?

salihmarangoz commented 1 year ago

I think they are caused by the incremental updates of the grid map, because it is working fine with update_part_of_map set to true. But it is slow this way. The problem is in the incremental updating or in the RViz plugin.

If this issue is caused by incremental updates, then this problem may also affect nodes using ufomap API. I also can't confirm if this bug affects free and unknown voxels since they are difficult to debug by the human eye.

Setting pub_rate to a non-zero value (e.g. 60 for full update every min) should fix the issue temporarily for RViz, for now. For nodes using the API, subscribing to full updates is also a solution but it is slow. This package needs a bug fix.