Lego's Mindstorms have been a popular platform for teaching robotics. The new Mindstorm NXT takes this to the next level with a sophisticated NXT control module featuring a pair of built-in processors. It also includes a new modular set of sensors and some impressive servos. The system is well packaged with great documentation.
Lego worked with National Instruments on the software. I will be taking a closer look at the Lego software and third party support in later articles of this series. For now, I will just let you know that it is probably even more impressive than the hardware that we are now examining.
By The Book
The Mindstorm NXT's building blocks are compatible with Lego's existing Mindstorms and Lego building blocks, although the Mindstorm NXT kits are self-contained. That is, all the robots discussed in the documentation can be built from parts within the kit. Of course, the idea is to learn enough so that you can build your own robots, and that is where it is handy to have a few extra building blocks in the box. I will discuss the building blocks at the end of the article.
Some of the robots you can build with the kit include the Tribot (Fig. 1) and the robot arm and claw (Fig. 2). I built the Tribot first, since it was the first robot in the book. The book includes graphical step-by-step instructions. This pictorial approach allows children and adults of almost any age to build the system. Of course, that is just the start, but at least the construction side of things does not require any expertise.
The step-by-step approach is good for even complex entities. Although the documentation does not mention it explicitly, it is possible for students to infer suitable construction techniques that can be used for building other robots and structures. The documents do not highlight construction or design techniques, so it does help if novices get some input from more experienced people (as I have often seen Lego robots disintegrate as they operate because of poor designs).
The NXT Intelligence
The cookbook process includes the incorporation of the NXT control brick/module (Fig. 3) into the system. This control module contains a 48-MHz, 32-bit ARM7 microprocessor plus a 4-MHz, 8-bit Atmel AVR microcontroller. The AVR handles the peripherals while the ARM7 runs the main application. There are 6 AA batteries (alkaline or rechargeable) inside the back of the module.
The ATM7 has 256 Kbytes of flash memory and 64 Kbytes of RAM. These are non-expandable. The AVR has 4 Kbytes of flash and 512 bytes of SRAM. The AVR is essentially fixed from a programmer's standpoint, while the ARM7 is the main application platform.
The 64- by 100-pixel LCD display supports a menu system (Fig. 4) that can be navigated using the four buttons on the front pane. There is a USB 2.0 port that can connect to a PC, but I found the Bluetooth wireless connectivity to be more effective. A Bluetooth dongle is not included, but if you have a Bluetooth keyboard or mouse then you probably have a compatible interface. The Logitech keyboards I have in the lab work very well with this interface. It can be used while the robot is running, and it can also be used to download new applications. As any roboticist will tell you, untethered development is always preferable.
The control module has 4 input ports (1, 2, 3, 4) and 3 output ports (A, B, C). All use cabling with an RJ-12 form factor (Fig. 5), but the actual connectors are keyed to the right as opposed to the center keying found in regular RJ-12 telephone connections.
The module also has a built-in speaker that is driven by a digital-to-analog converter. Its 8-KHz rate is sufficient for voice output and the system includes a set of predefined verbal responses.
See no evil, hear no evil...
The Mindstorm NXT kit comes with three servos and four sensors. The sensors include a touch/bump, an audio input sensor, an optical sensor (Fig. 6) and an ultrasonic range finder (Fig. 7). This collection essentially uses all of the control module's IO, but it will be possible to plug in a hub in the future that increases the number of devices, allowing more complex systems to be created. The standard collection is sufficient for some rather sophisticated projects, and will likely be all that the majority of NXT users will ever utilize.
The three servo motors are identical. They can operate in full rotation mode so they can drive wheels or gears. There are a number of ways to mount or link Lego components or shafts, allowing a servo to be used in a number of different rotational applications. The interface is more sophisticated than many robotic servos in that a program can specify rotation based on degrees, revolutions or seconds. It is possible to specify whether the stopping process will be immediate (brake) or coasting. Each servo has its own tachometer.
The bump sensor has been slightly improved over the older Mindstorm product by allowing a shaft connection to the sensor input. The audio sensor provides a threshold intensity support, and is omnidirectional. It is not suitable as a recording device.
The optical sensor can detect colors, and it includes a white LED to generate its own light. This is handy for line following because it provides a consistent light level and eliminates external lighting from the equation. The LED is less useful as the distance between the sensor and a detectable object increases.
The ultrasonic range sensor is probably the most sophisticated of the bunch. It looks like a pair of robotic eyes, but in fact one side is the transmitter and the other is the receiver. The sensor sensitivity varies a little depending upon the environment, but it should handle distances up to 100 in. with pretty good accuracy.
Lego kits have included gears and wheels since their inception. The Mindstorm products take advantage of these by allowing designers to employ the servo motors in a host of applications. Many of these designs tend to be fragile because of the kinds of gears and wheels provided (Fig. 8). The approach is to make the parts durable since there is plenty of play between gears.
Shafts tend to be a bit more robust. Most of the beams in the kit have holes, allowing linkages and pivots to be easily incorporated into design while remaining quite solid in terms of construction. All the designs in the book use press fit parts found in the kit, but it is also possible to add nuts and bolts to a system to make it more rugged.
Over all, the Mindstorm NXT is an excellent learning and basic research platform. It is obviously in a different class from the iRobot Create or White Box Robotics' PC-BOT, but they can be complementary.
As a standalone system, the Mindstorm NXT is great for learning about robotics. Still, more sophisticated designs can be done by combining kits or using the kit with other platforms. I plan on using the NXT on the iRobot Create. I also happen to have some older Lego platforms that are compatible with the NXT. A little use of the drill and a Dremel tool will allow some based units to be bolted to the iRobot Create's mounting holes. Linking the Mindstorm NXT control module to the iRobot Create Command Module will take a little electronic expertise, but it should lead to some interesting interactions.