Learning-based control for pushing with a non-holonomic mobile robot