Slashdot Mirror


LEGO Mindstorm Book Review

Jim Bumgardner took it upon himself to review two of the major Legos Mindstorms books out on the market. The first, O'Reilly's The Unofficial Guide to LEGO MINDSTORMS Robots, has been reviewed here before, but this review adds a comparsion to the second book. The second is from Apress Press, and is titled Dave Baum's Definitive Guide to LEGO Mindstorms (Technology In Action). Click below to learn how to use your Mindstorms more effectively. The Unofficial Guide to LEGO MINDSTORMS Robots & Dave Baum's De author Jonathan B. Knudsen & Dave Baum pages 266 publisher O'Reilly & Apress rating 8/10 reviewer Jim Bumgardner ISBN 1-56592-692-7 & 1-89 summary A broader overview of the Lego Mindstorms world, with coverage of alternativefirmware and building your own sensors. & An in-depth look at building and programming Lego Mindstorms Robots, witha particular emphasis on robot design and NQC programming. An Embarrassment of Lego (books) As you know, this year's best holiday gift for the important geek in your life is a Lego Mindstorms Robotic Invention System (RIS). Through strategic use of heavy-handed hinting, I managed to get my loved ones to purchase one for me a few weeks ago for my birthday. I've been obsessed with the thing ever since, and recently picked up copies of the two available books on the subject, which I'll compare for you below. Knudsen's book was reviewed here recently, while Baum's has not.

Since Robotics involves a lot of different disciplines, these books are going to have a pretty varied audience. In my case, I'm a longtime programmer and (extremely) novice robot builder who couldn't properly handle a soldering iron if my life depended on it. I'm not particularly interested in the chapters on the ins and outs of the C language, but very interested in things like gear ratios and sensing algorithms, which I never learned in school. The mileage you'll get out of these books will vary, depending on your background.

In the comparitive sections below, Knudsen's book (and Knudsen himself) will be referred to as K, while Baum's book (and Baum himself) will be referred to as B.

Cover First let's get the important stuff out of the way... K's cover is prettier, having a picture of a cute bunny wobot. It's an O'Reilly book after all.

Length B is 34 pages longer, but K uses a smaller font. I suspect B is a bit longer, but not by much.

Value Both are 25 bucks retail, and cheaper online (typically 20 bucks). B comes with a CD-ROM. K doesn't. The CD contains all the sample code, a copy of NQC and related utilities, some demos and a QuickTime movie showing the assembly of one of the simpler robots (tankbot). With the exception of the sample code, the CD-ROM is kind of superfluous.

Illustrations K uses photos, which have been tweaked in Photoshop to remove the backgrounds. B uses computer-generated models rendered in isometric projection (also known as "2 1/2 D" -- similar to what you see in the Lego Constructopedia). Both books' images are reproduced in B&W and suffer for it. It's particular hard to see (and count) the holes in black beams, for example.

B's illustrations are definitely clearer than K's, primarily due to the use of computer graphics. The isometric projection definitely helps in figuring out how pieces fit together. K's illustrations have helpful lists of pieces and arrows showing where they go, however there are problems due to poor constrast and fuzziness, as well as distortions introduced by the camera's perspective. Despite these problems, I managed to get even his most complex bot, Minerva, assembled relatively quickly.

Breadth and Depth In general, K has more breadth, while B has more depth. K's book includes more introductory material about robotics (e.g. "What is a Robot?"), while B jumps right into installation instructoins, assuming you know that stuff already (e.g. "Robotics is nothing new"). K covers a lot of ground, including various available software packages, such as pbForth and LegOS, while B sticks to RCX code and NQC. K also gets into some interesting topics not found in B such as Subsumption Architecture and building your own sensors. On the other hand, B gets much more in depth into specific programming and modelling issues. There are a lot more examples of algorithms for handling touch and light sensors, and discussion of specific problems that might arise and how to deal with them. B's line following algorithms are different, taking advantage of the percieved "gray area" on the edge of the black line, using upper and lower feedback limits, while K uses a "zig-zag" approach with a single threshhold value (when I implemented them, I found K's approach to be more effective - the "gray area" approach requires more minute adjustments). B also has good coverage of the strengths and weaknesses of the different mindstorm kits and parts.

Programming B coverage of algorithms is generally better, particular in his detailed handling of touch and light sensor issues. K has a nice example of Rodney Brooks' subsumption architecture, written in NQC.

B, being the author of NQC, makes NQC programming an intregal part of his book. Every program is shown in both RCX Code and NQC versions (although the RCX Code version is often seriously crippled (as needs be). Nonetheless, B appears to have more success in getting RCX Code to do useful things than K, who pretty much gives up on RCX Code after a couple of chapters. A personal note: I found RCX Code to be a general pain in the ass. Personally I'm not all that convinced that it is a better alternative for the novices it is aimed at. Especially when you have to go though such contortions to to get it to do such useful things. Is mouse pushing really all that simpler than typing?

Design Both books cover design reasonably well. I'd give the slight edge to B, who has a good design chapter before going into the specifics of building individual robots. The chapter not only covers some of the things covered in Fred Martin's "Art of Lego Design" paper, but also covers the use of Pulleys and Ratchets. K tends to weave similar design lessons directly into the chapters on specific bots. There are design issues in both books not covered by the other. B's discussion of stresses in bumpers is quite good. K has some nice examples of directional transmissions (which don't necessarily use the differential).

Robot Models Both writers' basic robots, are simpler and more utilitarian than their Lego counterparts from the RIS's Constructopedia, which tend to be a bit more fanciful (although K uses the all important wings parts for Minerva). Both books start with a basic tread robot which make ideal learning tools for learning to program with touch and light sensors. K's robot is geared down right away (for more power and lower speed). B doesn't gear down until the reduced speed is needed (for line following). B's book has designs and programs for 14 different robots, some mobile, some not. K only has 4 robots (all mobile robots). Both of these numbers are misleadingly high, since some of the bots are quite similar. Some of B's more advanced bots require extra parts not included in the RIS kit. In some cases, the extra parts are needed to explain an interesting concept, like rack and pinion steering. B includes some designs for some interesting non-mobile robots, such as a brick sorter and a vending machine, which reads lego "punch cards". Both books' final robot is an armed robot - apparently the holy grail of many robot designers (there's one depicted on the cover of the RIS kit which I'm guessing can't be built with the stock parts). B's robot, RoboArm, requires an extra motor and bricks. K's robot, Minerva, manages to do a lot of stuff using all stock parts from a single 1.0 RIS kit (he accomplishes this via a directional transmission and an ingenious one-motor grabber arm borrowed from Ben Williamson). When I built this model using my 1.5 kit (which has a slightly different allotment of pieces), I found I was missing a couple bevel gears needed to complete the model (I borrowed some old style "thin" bevel gears from my daughter's Lego bucket, but they're very flimsy). This bot certainly accomplishes a lot with relatively spare resources, although it is perhaps pushing the envelope too far, as the "arm" assembly tends to require frequent attention, as the author notes. I found it useful to test more advanced designs with a spare 9V battery box I had left over from an old Technic kit. You can also use your computer as a remote, for this purpose.

Online References K's online references are more thorough. Both books have the most important URL, of course, which is www.lugnet.com - the center of the online Lego universe.

Timeliness B, a little later to press, includes coverage of RIS 1.5, and differences between RIS 1.5 and 1.0 (they are relatively minor).

Writing Style K tends to wax a bit more eloquently. I like his prose better. B is a bit less philosophical and tends to dive right into discussions of procedures and problems. This has its merits too, as he devotes a little more time to the nitty gritty.

Conclusions In some ways, these books are a little bit superfluous. The whole point, it seems, of the Lego Mindstorms kits is to learn by doing - by playing with them. Also, a lot of the material in the books, such as coverage of NQC, LegOS and other software packages, can be easily found on the net. Nonetheless, I found myself compelled to suck up both books, and I'm sure I will ultimately use some of the tips and tricks I've learned from both.

The two books complement each other very well, and if you have the interest and the bucks, I would spring for both. Knudsen's book provides a broader overview of the Lego Mindstorm's world and robotics in general, while Baum provides a lot of valuable technical information on solving specific problems. Purchase The Unofficial Guide at fatbrain or grab Dave Baum's at from fatbrain as well.

Table of Contents (Baum)
  • Preface
  • Introduction
  • History
  • Part I-Building Fundamentals
    • Chapter 1 - Mechanics
    • Chapter 2 - Motors
    • Chapter 3 - Sensors
    • Chapter 4 - Basic Vehicles
  • Part II-Programming Fundamentals
    • Chapter 5 -NQC
    • Chapter 6 - Robolab
    • Chapter 7 - Sequenced Operations
    • Chapter 8 - Event Based Programming
    • Chapter 9 - Making Decisions
    • Chapter 10 - Using Feedback
    • Chapter 11 - Data Logging
    • Chapter 12 - Using more than one RCX
    • Chapter 13 - Advanced Programming
  • Part III-Robots
    • Chapter 14 - Garbage Truck
    • Chapter 15 - Copy Machine
    • Chapter 16 - Vending Machine (or ATM)
    • Chapter 17 - Robot Tag
    • Chapter 18 - Elevator
    • Chapter 19 - Brick Sorter
    • Chapter 20 - Electric Train Controller
    • Chapter 21 - Stair Climbing/Walking
    • Chapter 22 - Multiple-RCX Robot
    • Appendices
      • Appendix A. Other Resources
      • Appendix B. On-line Resources
      • Appendix C. Robolab Development Environment
      • Appendix D. Lego CyberMaster product
    Table of Contents (Knudsen)
    • Preface
    1. Welcome to MINDSTORMS
      • What Is a Robot?
      • Mobile Robots
      • What Is MINDSTORMS?
      • What Now?
      • Online Resources
    2. Hank, the Bumper Tank
      • About the Building Instructions
      • Building Instructions
      • A Simple Program
      • Wheels
      • Bumpers and Feelers
      • Gears
      • Multitasking
      • Online Resources
    3. Trusty, a Line Follower
      • Building Instructions
      • Some Tricky Programming
      • The Light Sensor
      • Idler Wheels
      • Using Two Light Sensors
      • Online Resources
    4. Not Quite C
      • A Quick Start
      • RCX Software Architecture
      • NQC Overview
      • Trusty Revisited
      • Online Resources
    5. Minerva, a Robot with an Arm
      • Building Instructions
      • Programming
      • Directional Transmission
      • Pulleys
      • Mechanical Design
      • Two Sensors, One Input
      • Where Am I?
      • Online Resources
    6. pbFORTH
      • Replacement Firmware
      • pbFORTH Overview
      • About Forth
      • pbFORTH Words
      • An Expensive Thermometer
      • Minerva Revisited
      • Debugging
      • Online Resources
    7. A Remote Control for Minerva
      • Two Heads Are Better Than One
      • The Allure of Telerobotics
      • Building Instructions
      • Programming the Remote Control
      • Programming Minerva
      • Online Resources
    8. Using Spirit:ocx with Visual Basic
      • You May Already Have Visual Basic
      • About Spirit:ocx
      • Calling Spirit:ocx Functions
      • Immediate and Delayed Gratif ication
      • Programs, Tasks, and Subroutines
      • Tips
      • Retrieving the Datalog
      • Online Resources
    9. RoboTag, a Game for Two Robots
      • Building Instructions
      • Subsumption Architecture
      • Online Resources
    10. legOS
      • About legOS
      • Development Tools
      • Hello, legOS
      • Function Reference
      • New Brains for Hank
      • Development Tips
      • Online Resources
    11. Make Your Own Sensors
      • Mounting
      • Passive Sensors
      • Powered Sensors
      • Touch Multiplexer
      • Other Neat Ideas
      • What About Actuators?
      • Online Resources
    • A: Finding Parts and Programming Environments
    • B: A pbFORTH Downloader
    • C: Future Directions

11 of 50 comments (clear)

  1. LEGO thoughts by jd · · Score: 2
    I wish LEGO would get it's head out of the sand. Virtually everything they make is for Windows! Ok, ok, so Windows is popular, but let's face it. LEGO is for people with the desire to play, build and experiment. It's not for people who want everything pre-packaged.

    Thus, sure, Windows may have more actual seats out there (for now), but OS' such as Linux and *BSD are going to have much higher percentages of people interested in LEGO software, for the simple reason that they attract similar mindsets.

    LEGO is bent on proprietary solutions, whether it's Mindstorms or any of their other packages. But, ultimately, that'll be as much their downfall as it was for Mecchano in the UK. They're aiming at entirely the wrong market, and closing it off from the right one.

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
    1. Re:LEGO thoughts by anatoli · · Score: 2
      Do you read stuff? There are alternative programming environments for Mindstorms/RCX, created by enthusiasts. Why should Lego bother and produce a solution for 1001 hardware/OS combinations, if people are willing to do that job for free?

      Look here for a comprehensive list of available RCX tools.

      As for aiming at the wrong market -- their attitude slowly changes. They start marketing for adults. Look here and here (front and back sides of their printed ad).

      Moderate this down (-1, Minus One)
      --

      --
      Industrial space for lease in Flatlandia.
    2. Re:LEGO thoughts by jd · · Score: 2
      Let's take a look at that argument, for a moment. Let's say they use SDL, OpenGL or one of the other cross-platform toolkits. That's 90% of the difficulty of supporting more than one platform taken care of, right there and then.

      Ok, then throw in the other side - the number of sets made & sold. 140 million Windows seats, but maybe only 20% are home users, 10% of those are interested in anything innovative, and only 10% of those are into Lego. This gives you a grand total of 280,000 potential customers. Just about right for the number of sets made.

      Now look at Linux. Whereas Windows is mostly Office, Linux is mostly Server. So let's say 20% again for home users. Linux home users are almost entirely innovative, through necessity, so you've 100% on that. Let's say only 10% like Lego, though. Total Linux seats - 40 million. This gives you 800,000 potential customers, nearly four times as many as exist for Windows.

      Please note -- the percentages are very crude guesstimates and are not intended to reflect reality except in a somewhat abstract way. The important part is that figure at the end - the one of there being maybe four times the potential sales for Linux. This is probably fairly accurate, and may even be an under-estimate. Windows is a saturated market, Linux is not.

      I'd say that Lego is doing itself out of potentially increasing it's market size by a factor of four, or thereabouts, by being so focussed on a market that can't possibly have the interest -or- the capacity.

      --
      It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
    3. Re:LEGO thoughts by jd · · Score: 2
      You know, it might shock you to learn that not everyone trawls Freshmeat and the various other free software sites, every time they want to buy a christmas gift for their cousin or something.

      Why should Lego bother? For the same reason other companies are starting to wake up and smell the penguin mints. Because the markets they are shutting themselves out of are sometimes orders of magnitudes larger than the ones they support. Because the demand is there and, if they won't fill it, someone else will. And not just OSS people giving code away for free, either.

      Picture this. A rival company, Mego, starts up, and supports ONLY Windows, Linux and FreeBSD. Nothing else. Produces virtually identical products, though, for the same price. Five times the market share = five times the profits. Before long, they can afford to undercut Lego, and Lego virtually collapses.

      That is classic Market Forces. The market wants to play with those forces, so it must follow the rules of those forces. Rule 1 is that if your competitor can capture YOUR market, AND any market you've ignored, they'll flatten you. People like to have interchangable products. Specialised, single-system software is dead-meat, the moment anything of quality that's cross-platform enters the arena.

      Sure, Lego can't -write- software for 1,001 hardware/OS combinations, but who's asking it to? If the software exists and is Open Source, simply tidy the interface, tidy the I/O and shove it on the CD-ROM. Non-issue!

      Then, if the software was written sensibly, making it cross-platform is trivial. It =should= be largely a case of simply changing line-feeds and carriage-returns, then compiling on the other platform. That's why people spend years learning how to write software well. Not for the lecturer's benefit, but so that programs aren't so tied to a single machine, for no better reason than the coder was too stupid to do things differently.

      --
      It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  2. Re:mindstorms for mac? by javajonathan · · Score: 2

    There's a MacOS version of NQC, which is free. And
    ROBOLAB has a Macintosh version, but you'll have to pay for it.

    You will need a cable for the IR tower, which you can order from Pitsco LEGO DACTA (800)362-4308. It's part number 4119830, $15.

    -Jonathan

  3. I'm a 40 year old kid by rossz · · Score: 2

    A month ago my wife asked me what I wanted for Christmas. I told her I would love a Lego Mindstorms Robotics Invention Set, but recommended against getting me one for several reasons:

    1. They are too expensive.
    2. I would spend far too much time playing with it.
    3. I would want to by more stuff for it, thus agrevating the expense problem.

    I was completely surprised when I received one on Christmas morning (my wife spoils me!). I spent four hours that day playing with it, prooving point 2. The next day I went to the book store and purchased my first book, hinting at point 3. She knows it will only get worse. Last night she caught me online looking at the Lego catalog. There are more sensors available, and I could always use an extra motor, and a remote control would be very handy...

    I may be looking for a new place to live in a couple of months.

    --
    -- Will program for bandwidth
  4. Lego Mindstorms pricing by daviddennis · · Score: 2

    I found it for $ 150 at Best Buy, which is the lowest price I've seen yet. (No, I didn't succumb).

    D

    ----

    1. Re:Lego Mindstorms pricing by Hard_Code · · Score: 2

      I think the going price on the net is $99/$100. I haven't seen it lower than that, and I wouldn't buy it for more than that.

      Jazilla.org - the Java Mozilla

      --

      It's 10 PM. Do you know if you're un-American?
  5. Re:Cheap motors you might already have by anatoli · · Score: 2
    Older motors are bigger, less powerful and less efficient, meaning shorter battery life. Other than that they are ok. (I know because I tried to add an old motor to a car designed for the new one, and the thing couldn't move!) So get the new motor if you are serious.

    Moderate this down (-1, Your Family Is Waiting For You)
    --

    --
    Industrial space for lease in Flatlandia.
  6. You folks are missing the point here.... by CSG_SurferDude · · Score: 2

    There are two points here that most everyone here seems to be missing....

    Point 1) These kits are NOT meant for us, they are meant for kids. Granted that a large number of these kits are being bought by GLU (Geeks Like Us), the majority of them are being purchased by parents for Geeks-In-Training. Think back to when you were 12. This would have been the coolest present. That's the market where this toy is being sold.

    As such, it is well worth their time to work on MS versions of the software, just like it is worth it to all the game designers out there. MS pc's rule the home market. (Sad, but true.)

    Point 2) Books are a good thing. And while you can find most of this information on the web someplace, a book is still the best choice of media for non-time dependent information. You can write on it, scribble in it, bookmark it, read it in the bathroom, or read it in bed under the covers with your flashlight (And just how many of us remember doing that! ;-)

    Books are also good in terms of information density. And both of these books are rather dense. (good signal to noise, etc.) It is much easier (for me at least) to skip around these books than to go flipping through web pages...

    As a side note, Mindstorms is not as cool as any of the Motorola (68XX derivative), Intel (80XX Derivative), or PIC derivative robots out there, but it is easier to get started with Mindstorms than any of the other alternatives that require soldering and a basic knowledge of electronics and programming.

    CSG_SurferDude

    Imagine a picture of a MadCat on a Surfboard HERE!

  7. I got one too! by tgd · · Score: 2

    My parents bought me a Robotics Discovery Set which was quickly exchanged for a linux-compatible RIS.

    I went to finally sit down and play with it last night and realized I'd forgotten to buy batteries.

    *sigh*