Open Fellfalla opened 3 years ago
I think the problem is that you your lasers did not mark the free space properly. Did you make sure that, after moving the static object, the laser capture the new free space? Note that the mapping algorithm is a little conservative about occupied space, it needs more observations to mark free space than occupied space.
The lidars in the example above cover 360°, so they definitely also cover the new free space. The static object slowly decades within minutes. Maybe the lidar sensors resolution
and samples
settings are wrong?
No, I believe your settings are not wrong. The behaviour that you are having is expected. The mapping process uses a Frequency Map (see FrequencyOccupancyMap) with an occupancy threshold of 0.25. That is, any occupancy probability above 0.25 is considered occupied. This is why it is harder to change from occupied to free.
Unfortunately, at the moment, the threshold is currently hardcoded, and the behaviour can not be changed.
I chaged the threshold by occ_thresh = 0.45
, but this seems to me just to be a workaround that mitigates the real problem, because the problem is not there from the very beginning and becomes more significant over time. It's really heavy when people keep walking through the office. The thing is: occupied cells pop up without any lidar point detection. They popup randomly without any obvious reason.
Doesn't the FrequencyOccupancyMap have a rolling time window?
The FrequencyOccupancyMap is intended for mostly static environments. It will handle small dynamic changed but, just like you reported, with a considerable ammount of people walking it may "fail".
The FrequencyOccupancyMap does not have a rolling time window. But I do not believe that a rolling time window is the best approach, unless you really want to "forget" mapped areas over time.
My suggestion is to periodically check all cells and remove the ones with a low number of visits, or cells that have no neighbours. You could also try the ProbabilisticOccupancyMap. This map will react more quickly to changes.
The thing is: occupied cells pop up without any lidar point detection. They popup randomly without any obvious reason.
Could you kindly provide a dataset where this happen? This is the first time someone report this kind of behaviour. I would like to investigate understand what is is happening.
@Fellfalla Just a side note,
Your robot's footprint seems a bit odd. So I assumed this might be the thing that is happening: The lidars are seeing the robot itself, probably because of a bad mount position or the lidar's gap area is obstructed by some part of the robot.
I saw this behaviour on one of my interns' robot and called it "the robot is poopin on the places that it visits"
Was this the thing happening? Did you resolve this issue?
The Setup
How to reproduce
Actual Behavior
On this screenshot you can see black dots around the footprint of the robot on the right hand side of the screenshot.
Note: We observe the same behavior on the real robot, in the real word with sick nanoscan3 lidars.
Expected Behavior