A Nonlinear Programming Method for Time-Optimal Control of an Omni-Directional Mobile Robot