A method of progressive constraints for nonholonomic motion planning