The reasons for adding a separate inflation layer to the teb_local_planner
are:
The costmap is actually a grid with occupied cells. Lethal obstacles have maximum cell cost, free space zero cost. The concept of inflation adds an exponential cost decay in the vicinity of lethal obstalces.
This representation is perfectly suited for sampling-based planners that can simply evaluate the cost of the current trajectory sample in a discrete /counting manner.
On the other hand, planning approaches with continuous optimization (requiring derivatives of the cost function) cannot directly use such a grid-based cost-function.
In order to integrate the teb_local_planner as part of the navigation stack, lethal obstacle cells are included as point-shaped obstacles. This is by far not efficient, but works for small/mid-scale costmap sizes.
But if we would also include all the inflation cells, the computational burden required for planning would be intractable.
Hence I just added a separate cost function term for each lethal obstacle with a smaller weight to slightly penalize the distance to obstacles even in case no collision occurs.
Originally posted by croesmann with karma: 2531 on 2018-02-01
This answer was ACCEPTED on the original site
Post score: 2
Original comments
Comment by spoluri on 2021-06-09:
If I understand correctly from your comment, the inflation layer for local costmap when using TEB planner is not necessary.