Self-driving cars: Past, present and future