LEGO Mindstorm Book Review 50
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
- Welcome to MINDSTORMS
- What Is a Robot?
- Mobile Robots
- What Is MINDSTORMS?
- What Now?
- Online Resources
- Hank, the Bumper Tank
- About the Building Instructions
- Building Instructions
- A Simple Program
- Wheels
- Bumpers and Feelers
- Gears
- Multitasking
- Online Resources
- Trusty, a Line Follower
- Building Instructions
- Some Tricky Programming
- The Light Sensor
- Idler Wheels
- Using Two Light Sensors
- Online Resources
- Not Quite C
- A Quick Start
- RCX Software Architecture
- NQC Overview
- Trusty Revisited
- Online Resources
- Minerva, a Robot with an Arm
- Building Instructions
- Programming
- Directional Transmission
- Pulleys
- Mechanical Design
- Two Sensors, One Input
- Where Am I?
- Online Resources
- pbFORTH
- Replacement Firmware
- pbFORTH Overview
- About Forth
- pbFORTH Words
- An Expensive Thermometer
- Minerva Revisited
- Debugging
- Online Resources
- 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
- 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
- RoboTag, a Game for Two Robots
- Building Instructions
- Subsumption Architecture
- Online Resources
- legOS
- About legOS
- Development Tools
- Hello, legOS
- Function Reference
- New Brains for Hank
- Development Tips
- Online Resources
- 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
Referance is good. (Score:1)
I know that I would need help with the programming aspect of it as I'm not a programmer, but a networking geek. Ask me to config a router or set up a server, no problem, but I've always had a hard time with code.
A sad day (Score:1)
Those New Fangled Gadgets... (Score:1)
The only thing that moved in our toys was the wheels, which only moved if you pushed them really hard.
AND WE LIKED IT THAT WAY.
mindstorms for mac? (Score:1)
If I were a Windows user, RIS would have been up at the tippy-top of my holiday list.
LEGO thoughts (Score:2)
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.
Ahhh Lego memories... (Score:1)
Now if I could just convince my wife I can't live without getting Mindstorms I'll be all set.
Re:mindstorms for mac? (Score:2)
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
Re:LEGO thoughts (Score:1)
Re:A sad day (Score:1)
Re:LEGO thoughts (Score:2)
Look here [crynwr.com] 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 [geocities.com] and here [geocities.com] (front and back sides of their printed ad).
Moderate this down (-1, Minus One)
--
Re:LEGO thoughts (Score:2)
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.
Print is Dead. Long Live Print! (Score:1)
Can't be for kids? (Score:1)
_________________________
Mello like the Yello, but without the fizz.
Re:Ahhh Lego memories... (Score:1)
MEEEEE TOOOO
[AOL MODE OFF]
Seriously, I want four of them, at least. I'd build an ass-kicking Beowulf cluster^W^W^W^W^W^Wa cool robot with distributed brains.
And I want an expansion board to control more motors and sensors. And small-size, low-power motors that can be easily converted to servos. Looks like time to refresh my soldering skills (which never were great).
Moderate this down (-1, Childish)
--
I'm a 40 year old kid (Score:2)
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.
Re:Print is Dead. Long Live Print! (Score:1)
sorry, as you can tell, sleep is something I HAVEN'T gotten in a while
Programming Mindstorms (Score:1)
While I agree that RCX code is lame (I use NQC when I build robots myself), my 6 year old son groks the RCX code pretty well, and can make it do fundamental things. Good for getting young kids into robotics and programming!
Re:LEGO thoughts (Score:2)
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.
Those fatbrain links generate referral fees. (Score:1)
Re:mindstorms for mac? (Score:1)
You're right about this, and you can get more info either by visiting the DACTA site [lego.com] or the ROBOLAB page [ni.com] from National Instruments.
The ROBOLAB version is multi-platform (currently Windows and Mac) because the software interface used to program the RCX controller brick is a derivative of a multi-platform graphical programming environment called LabVIEW that's been around for about 15 years. LabVIEW itself is available under Windows, Macintosh, Linux, Solaris, etc.
I've used ROBOLAB quite a bit and can vouch for the power of its programming environment--on the higher levels, anyway. The lower levels allow younger kids to build their own control programs more easily.
LEGO-wise, the ROBOLAB kit uses most of the same sensors that you can get with Mindstorms, and also comes with some templates (both LEGO and code) to get the new user going.
Star Wars Droid Developer Kit (Score:1)
Re:Can't be for kids? (Score:1)
it doesn't sound like anyone under 12 could begin to use them
It says "ages 12 and above" in large letters on my package
-
We cannot reason ourselves out of our basic irrationality. All we can do is learn the art of being irrational in a reasonable way.
Color photos are going to help? (Score:1)
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.
Um, well, I don't know if color is going to help out a black beam...
Re:LEGO thoughts (Score:1)
I own the RCX 1.0 and would like to have the Software/Hanbook in my native language, then my son could use it better.
I try to get him in programming, but I don't know if NQC is the way to go. It's possible to get the Software, a bit expensive I think...
I asked in my mail for Linux support for the RCX!
Lego answered:
That they know and like NQC but there is no plan for getting there software running under Linux. They hope for a GPL version that alows GUI programming, soon available for the RCX.
Does anybody know how good the support for projects like NQC from LEGO really is?
So far
Michael
The greatest toy? (Score:1)
It appeals to children as well as geeky adults like me.
jackchaos.com - The Freak of Geeks
Cheap motors you might already have (Score:1)
Re:I'm a 40 year old kid (Score:1)
I was completely surprised when I received one on Christmas morning (my wife spoils me!). I spent four hours that day playing with it,
Only four hours? I only got the Robotics Discovery set, and I managed to play with it from 0830 when I opened it to 1930 when I finally got some dinner! My girlfriend was so pleased, she read one of the books I got her cover to cover on the couch.
I am so in love with this. When my dad and stepmom come to visit in Jan. I'm gonna hopefully have the RIS waiting for me! Man, oh, man.
Heaven.
Witch Doctor
This is my cubicle. There are many like it, but this one is mine.
Re:LEGO thoughts (Score:1)
Why they don't produce an environment (for any OS) that is not intentionally crippled? Maybe they think that the market segment that demands such environment is better served by open source tools, and competing with these tools would not be cost effective for Lego. I don't know.
Moderate this down (-1, You Post Too Much, Get Back To Work)
--
Lego Mindstorms pricing (Score:2)
D
----
Lego and Linux and the two books (Score:1)
A fault I find with both boths is the absence of information about Linux. I know it makes sense for Lego to focus on Windows and ignore the "fringe" OSes like Mac and Linux. But I think that among people who really get into robotics and programming (to the extent they would buy a book) the Linux users must represent a much higher percentage. Baum is himself a Mac person as well as the creator of NQC, so in his book at least, the Mac is well represented.
NQC, a C-like programming language for the RCX, is excellent and works superbly with Linux. My son uses it with no trouble, despite almost no programming skills. He is a good keyboarder and does his homework under Linux, but has really never programmed before. I set him up with the editor nedit and added a few menu items which make it a baby IDE for NQC on the RCX. It works surprisingly well.
My hope is that this might be an easy introduction to programming for him. We'll see. The truth is though, that he is much more interested in gear ratios and assembling and running the darn things than programming them.
Re:Cheap motors you might already have (Score:2)
Moderate this down (-1, Your Family Is Waiting For You)
--
Re:Lego Mindstorms pricing (Score:2)
Jazilla.org - the Java Mozilla [sourceforge.net]
You folks are missing the point here.... (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!
Re:You folks are missing the point here.... (Score:1)
Moderate this down (-1, GOT)
--
I got one too! (Score:2)
I went to finally sit down and play with it last night and realized I'd forgotten to buy batteries.
*sigh*
Re:Cheap motors you might already have (Score:1)
The new motors are much better, as you can connect useful things directly, where the old motor doesn't always fit where it is needed, with the increased size due to the reduction gears.
Re:mindstorms for mac? (Score:1)
Re:mindstorms for mac? (Score:1)
Mindstorm (Score:1)
=======
There was never a genius without a tincture of madness.
A place to live (Score:1)
Re:You folks are missing the point here.... (Score:1)
I generally agree, even though a lot of adults are buying the RIS. It doesn't particularly bother me that Lego is targeting (teenage) kids and hasn't provided explicit support of Linux, for example. The user community has done an excellent job of filling in this particular hole and is much more adaptable and nimble than Lego can ever be at fulfilling their needs. I suspect Lego's turn around time is pretty slow - especially for something that required as much preparation as Mindstorms. Consider the long interval of time that elapsed between MIT's programmable brick (the precursor of Mindstorms) and the official introduction of Mindstorms istelf!
Point 2) Books are a good thing.
Aren't they though! In the review I didn't mean to imply that they weren't. Only that despite the fact that much of this material was available elsewhere, that I still found that the books sucked me in. I don't think I stated this clearly enough: The books are indeed a worthwhile investment!
Re:Color photos are going to help? (Score:1)
In both cases, the illustration problems aren't deadly. I was able to construct Knudsen's most complicated robot, Minerva, without any major misunderstandings. Nonetheless, it would be nice if the respective authors' websites contained copies of the original color illustrations (perhaps the publishers wouldn't approve?).
One non-minor difference between RIS 1.0 and 1.5 (Score:1)
Comparing my RIS 1.5 set with the 1.0 set someone at work has, another big difference is how many basic Legos are included. 1.0 has tons more of the "normal" Lego pieces.
As far as we can tell, the 1.0 set is better in basically every way. :-(