If the laser scanner is seeing maximum range, it might not be able to clear your obstacles. Some laser scanners will fill a maximum range point with 0.0 instead of some value. No return means that the costmap cannot be cleared. In order to clear an obstacle, the costmap must receive a scan that raytraces through where the obstacle used to be and returns a value. This tells the costmap "since I have now received a scan point that is farther away than the previous one, there must no longer be an obstacle here". If you do not receive this farther point (because max range fills 0.0 or your raytrace_range parameter is too low), you cannot clear the map.