This is essentially the QuickStart robot from the Lego Mindstorms nxt kit without the grabber and with a wider front bumper. It took about 15 minutes to build and about three days to program.
It can complete the LMR Chair Challenge (see video) by using rotation encoders to follow a preset path - which I feel is a bit of a cheat. However, it fails much more often than it succeeds because it wanders off line and crashes into a chair leg. There seems to be a known problem with the accuracy of the encoders when using one "motor block" to control two motors. I tried to correct this by using the front bumper, but have yet to find a way to create and trap an interrupt from the touch switch whilst the motors are carrying out an instruction to rotate a certain number of degrees. I can generate an interrupt when rotating an unlimited number of turns, but then the distatnce encoders don't seem to work. I have also found that the accuracy of the encoders improves the faster the robot moves, which seems counter-intuative.
If you max the volume on the video you may be able to hear the robot announcing its intentions before each move. I should have increased the volume but my daughter was trying to sleep in the next room.
Although this robot is essentially finished - I have videoed the chair challenge - I want to improve its reliability by using some sensor (touch or sonar) to detect that it is off-course and to attempt a correction.
09 January 2009
Here's another video. I've got some more of the sensors working, so this time the 'bot wanders around until it finds a dark place to curl up and go to sleep. If it hits an obstacle it backs up in a random direction before setting off again.
You may notice that I redesigned the "nose cone" slightly to give the bumper a better chance of hitting the obstacle before the sonar gets tangled up. Whilst trying the chair challenge I had noted the 'bot had a tendancy to drift to the right. I swapped over the motor connections - so the right motor output now drives the left motor and vice versa - and the 'bot now drifts to the left. So either the nxt brick drives the motors differently, or a difference in the motor leads is having a significant impact.