Changed the obstacle lookup to be constant time instead of O(n). Can have a much smaller grid now.
Finally a decent A* implementation. Had to switch back to omni drive. Problem was that the goal was not being translated back into robot coordinates. Cleanned up spacing in potential_controller.
Added the potential controller back in. Works well (if slowly). Next step will me to move the A* computation to a separate thread.