Hi Sean,
Glass behaves like a mirror for lidars. It could indeed ray trace empty cells over a wall behind the glass. Honestly, this is one annoying issue with lidars :)
You could try to compare grid_map versus grid_prob_map, if the lidar readings on glass are spurious (noisy), the occupancy probability may not decrease too much. By adjusting those parameters:
Param: GridGlobal/OccupancyThr = "0.5" [Occupancy threshold (value between 0 and 1).]
Param: GridGlobal/ProbClampingMax = "0.971" [Probability clamping maximum (value between 0 and 1).]
Param: GridGlobal/ProbClampingMin = "0.1192" [Probability clamping minimum (value between 0 and 1).]
Param: GridGlobal/ProbHit = "0.7" [Probability of a hit (value between 0.5 and 1).]
Param: GridGlobal/ProbMiss = "0.4" [Probability of a miss (value between 0 and 0.5).]
we can make obstacles fading away slower or faster.
If the glass behaves exactly like a mirror (lidar readings don't appear noisy) and your lidar has intensity channel, you may check if there is a difference of intensity betwee lidar coming from glass relfection and normal lidar readings. If there is a difference (like lower intensity for glass), it could be possible to create a scan filter before rtabmap node to remove those readings.
If you can modify the environment, you may add some tapes on glass walls (and metallic surrfaces) at the height of the lidar.
Regards,
Mathieu