Lego Mindstorms NXT
Navigating accurately around a room is hard enough let alone going from one room to the next. So in order to better keep track of where the robot was I decided to use the grid of floor tiles as a guide.
The idea was to use two sensors to detect the joints between the tiles and then realign the robot at certain points. However it still had to travel straight accurately enough to cross over mats and carpets. Then it needed someway of knowing where it was and where it had to go next. I could have used the screen and buttons on the brick but decided this was too small and hard to see so built a 'dial' with the different possible destinations (K= kitchen, C=chair in TV room etc) and a large knob with a pointer. It also needed to be able to handle obstacles that may have been left in its path, or doors that had been closed, so I added two touch sensors and a large front bumper assembly.
The Robot used a lot of sensors:
The HiTechnic Compass sensor to determine the approximate initial heading. I found I could not use this for navigation because there is a lot of metal in my house; the door frames for example are metal.
Two Touch sensors for collision detection.
Another Touch sensor for an input button. This meant I also needed the HiTechnic Touch Multiplexor.
The HiTechnic IR Link to control the Power Functions lift motor.
The HiTechnic IR Receiver for the optional Remote Control mode.
A Light sensor as one of the sensors to detect the joints between tiles.
The HiTechnic EOPD sensor which makes a really great light sensor as the other tile join detector.
The HiTechnic Colour sensor (V2) to detect the limits for the lift mechanism.
With so many sensors I then needed the HiTechnic Sensor multiplexer.
Two NXT motors were used as drive motors, the third as a rotation sensor for the destination dial.
A small power functions motor was used to power the lift mechanism. At first I had just a Ball castor as a third wheel so that the robot could rotate about its own axis, but I found that when the ball went over a join between tiles it tended to sometimes 'throw' the robot off course. So I decided the easiest way around this was to add two rear wheels which I could lift off the ground when the robot needed to turn and then could be lowered when the robot needed to go straight. This slowed things down but worked well and speed was never a requirement of the design.
Then just for fun I added head lights, flashing lights, lots of sounds and the ability to override the automatic navigation and control it with a remote. All in all a pretty complicated project that required many many redesigns and a lot of testing but which actually worked really well in the end (even it it did sometimes seem to get totally lost for no apparent reason!)
Home The NXT Step Nxtasy RobotC Bricklink HiTechnic Mindstorms Home Contact Me
LEGO, MINDSTORMS and NXT are registered trademarks of The LEGO Group.