After the pure A* search, the path is completely valid. But then we run over the smoother and the optimization function will basically find that the sharp turn is invalid and bump it out until it grazes a collision cell. #16 might fix this with exact values, but for the case that the maximum curvature is set too low for the robot for the environment, it could be valid that it is not permissible.
In this case, should we return failure? Or just assume that the trajectory planner will know better at the time and tweak it to not graze. Keep in mind, this occurs with pure A where there is no motion model and naively searches neighbors, that could be kinematically impossible. Once we do hybrid sampling, then this should not appear because for a path to be found at all, it has to be feasible by the motion model. Thusly, it doesn't overly concern me, but does make me wonder in this case for just normal A, should we return that slightly collision path, return failure, return the non-smoothed valid grid path, or other?
After the pure A* search, the path is completely valid. But then we run over the smoother and the optimization function will basically find that the sharp turn is invalid and bump it out until it grazes a collision cell. #16 might fix this with exact values, but for the case that the maximum curvature is set too low for the robot for the environment, it could be valid that it is not permissible.
In this case, should we return failure? Or just assume that the trajectory planner will know better at the time and tweak it to not graze. Keep in mind, this occurs with pure A where there is no motion model and naively searches neighbors, that could be kinematically impossible. Once we do hybrid sampling, then this should not appear because for a path to be found at all, it has to be feasible by the motion model. Thusly, it doesn't overly concern me, but does make me wonder in this case for just normal A, should we return that slightly collision path, return failure, return the non-smoothed valid grid path, or other?