Learned Gap Density Estimation for Reactive Navigation
Dynamic Gap steers a robot through the gaps between pedestrians. Its Kalman filter
assumes linear obstacle motion. It also puts false velocity on static obstacles. We
have explored using a GRU to correct this behavior.
Density alone is a snapshot. In one collision the chosen gap went from 0.12 to 2.79
in six planning cycles. By then the robot had committed. So I added two features. One
is the rate of change of density. The other is aspect ratio, 1/θ, which tells a
corridor apart from an opening.
For one experiment, I ran three configurations over 50 episodes each. With the planner config held fixed,
the future-density model cut collision events by 30%. The goal rate rose from 53% to
67%. No episode got worse.
53 → 67%
Goal rate, hardest episodes
The useful result was a failure
Predictions tracked ground truth. Navigation still got worse. Walls carry near-zero
density, so minimising it pulled the robot into them. The planner also blew its
10 Hz compute budget and fell back to idling. Neither problem was in the network.
Retuning three planner weights cut the mean path from 52.7 m to 30.0 m.
I also rewrote two gap cost functions. The old width term had no ceiling and reached
540 at a 1 mm gap. It now rejects gaps the robot cannot fit through, then prices
the clearance that is left.
Motion PlanningState Estimation
GRUCost Design
ROSC++