There is a fundamental tradeoff in planning between the length of the path and the costs contained in the costmap. The neutral cost is a penalty for moving from one cell to an adjacent cell. The raw values in the costmap can be weighted as well. See the README for more conceptual explanations.
Practically speaking, we take the cost for each cell (c) and generally interpret it as a float: c' = neutral_cost + scale * c
The caveat is that c' should not be greater than the the lethal cost, so non-lethal costs c with c' >= lethal_cost will be interpreted as c' = lethal_cost -1
A plot of this can be seen here: https://www.desmos.com/calculator/2haig4ki8h
The special case is when c==255, i.e. NO_INFORMATION. There are three intepretations possible here.
- LETHAL - Unknown cells are treated as lethal obstacles and cannot be passed through.
- EXPENSIVE - Unknown cells are valid, but assigned a high cost. (lethal_cost - 1)
- FREE - Unknown cells are valid and given the same weight as free cells. (neutral_cost)
Definition at line 66 of file cost_interpreter.h.