Feedback control and obstacle avoidance for non-holonomic differential drive robots