ive built a few diy versions of that and can say those "smart car" motor/wheel are an excellent way to mobilize. ive since switched to two wheel for cost and even better mobility. ive used ultrasonic and ir to navigate rooms and cheapo photodetector to follow lines. asm is my toolset so wont be of much help to arduinos. i can say that at a minimum you need 3 sensors but more can simplify software and improve response time.