LEGO Mindstorms

I was asked this year to be a coach for my sons robotics team through First Lego League (FLL).  It was my honor and privilege to coach these fourth and fifth grade boys.  It is when I see activities like this I feel good about the future of our country as I fully expect each one of these kids to be the future scientists and engineers of our country.

For our school it was our first year in FLL.  We had 4 teams, each with 6 kids.  The season lasts from start of school to until the end of February and for our team we met once a week and for the last month we met twice a week.  All meetings were 90 minutes long.  That is an incredible commitment for coaches, kids and parents.  It spans football, volleyball, soccer, wrestling and basketball seasons (and I’m sure several others).

This years theme was Body Forward and the competition consists of two major components.  The first is the research project where you identify a problem and come up with a solution.  Our team had fun and chose the brain as their topic and our presentation was ‘Zombie Brain Inspectors’ because, as we all know, zombies like BRAINS!

The second part of the competition is where the real fun is.  There is a 4 by 8 foot playing field with a number of field pieces (made out of LEGO’s of course) with tasks (each with their own set of rules for completion) that you have to do in two and half minutes.  You build your robot using the Lego Mindstorms kit and software.  Our robot did well, partly I think, because we went through three major robot designs, and finally settled on a tank design that offered stability, flexibility, and repeatability (things you really want in your robot!).

The LEGO Mindstorms NXT programming software stinks, which is unfortunate, because it has marred an otherwise awesome experience.  It’s written in LabVIEW and while I’ve heard people rave about how good LabVIEW is – our experience was anything but that.

First, getting it to run on Mac OS X 10.5 and 10.6 was difficult (PPC or Intel didn’t seem to matter).  In fact, after trying for a month I gave up on it and went back to an old Dell laptop running Windows XP.  The installers on the CD’s don’t work in those Mac operating systems.  Period.  There’s a hack where you have to copy all of the files to your hard drive, modify one of the installation files and then install from hard disk.  Really!?  Leopard was introduced by Apple in October of 2007.  Simply unacceptable.

Once we did get it installed on my two year old Mac laptop the darn thing never worked right.  The mouse was always jittery and made it next to impossible to select the blocks.  It didn’t seem to matter if they used the built-in trackpad or an external mouse.  My team got so frustrated they all voted to switch to the Dell laptop.

Even once we got onto the Dell, our problems didn’t really go away.  We had permission issues with the help files that required fixing.  We had file corruption issues:  once during one of the practice rumbles!  Because of this we (okay, this one was mine but the boys loved it), “Save As will save your…bacon” and it did after we learned the ‘save as’ lesson the hard way.  Unfortunately, we discovered that saving to a thumb drive didn’t always work.  A file length of zero is a bad thing!  We also discovered that doing a Save As will sometimes rearrange your blocks for you and another coach reported having severe issues copying programming files from one computer to another.  Ya.  Not good.

Once you get into the development environment a couple of things strike you as being odd.  First, everything is a shade of white and grey making it hard on the eyes.  A lot of the really important text, while black, is tiny when it should probably be the most important thing on the screen at the time.  The  User Interface in the environment isn’t Windows, it’s not Mac OS X, heck it’s not even Java it’s some weird thing that I’ve never seen before.  One has to presume that this is the environment that LabVIEW creates.

The whole left to right programming paradigm is odd.  I think you could argue that a top to bottom approach would make more sense and would certainly make it easier to print out.  I don’t have a strong opinion about this as there might be some very good reasons to do it the way they did.  Frankly, making it look like LEGO’s is eye candy and could be left out in my opinion as it adds absolutely no value.

The NXT brick only has 4 input ports and 3 output ports.  Why do I have to specify which port on every block?  Why can’t I just say, somewhere, that Port B is the LEFT motor, Port C is the RIGHT motor, and Port A is the ARM?  Or that Port 1 is the LIGHT sensor, Port 2 TOUCH sensor, etc?  I can’t tell you how many times the kids kept changing the wrong motor or used the wrong sensor because they chose the wrong port.  Why can’t I customize the names of the ports?  That simple change alone would have made life simpler.

The Mindstorms software has the ability to add comments to your code.  It’s less than optimal because you can’t tie it to a block or group of blocks.  So if you make a comment and then insert or remove a block it doesn’t move and I’ll be darned if I can figure out how to move a comment once you’ve created it.  End result is we’ve taught the kids not to bother with comments and I find that to be troubling.

I live and breathe cross-platform software development on a daily basis so I am being very critical.  I can’t tell you how many times I’ve thought about how cool it would be to use Real Studio to develop a better, more modern Mindstorms application.  It would be  a MUCH better experience for kids learning how to program using the LEGO Mindstorms kit.  It would be a native Mac OS X and Windows application with the appropriate installation methods.

Alas, it is but a pipe dream.  FLL requires that the kids use the LEGO Mindstorms software.  I can’t tell you how much money I’ve spent on Lego’s for kids over the years.  You’d think LEGO could come up with some better software for all the money I’ve given them.  The software came out in 2008 and hopefully a new version is in the works.

Now that the season is over I will remember the good things about the season.  I will also try to forget the crappy experience we had with their software.



I’d be lying if I said I had a lot of time for games.  Between the full time and a half job that BKeeney Software is, writing for RB Developer and this blog I don’t have a lot of time to play games.  Oh, and that giant sucking sound you hear is ARBP sucking away any chance at finding free time.

However, after a Friday afternoon meeting, a team member showed me Spore and let me test drive the game for a few minutes.  It was enough for me to go to the Apple Store in torrential downpours Friday night to get the last copy on the shelf.  After a Kansas City Symphony concert I managed to put in a couple of hours before bed and also put in about three hours late Saturday night.  Do I like the game?  Heck yes!

The graphics and sounds are high quality and the game play is fairly fast.  The game isn’t so hard that you can’t advance, in fact, the game sort of hinges upon your failures and how you respond to them – the game is about evolution after all (at least in the first half).

You start as a single cell in the primordial soup of your world and from there you start deciding what you’re doing to be by eating other creatures and choosing what to evolve to.  You start in the ocean getting bigger and bigger until you can leave the ocean.  This part of the game reminds me of PacMan of all things.

From there you move on to land where some of the characteristics you added in the water now help/hinder you on land.  I was a carnivore so I had teeth and spikes for weapons and poison and shell as a defense.  Once you’re on land the goal is to evolve into tribes.  I found this section to be challenging because other creatures are also evolving and adding strengths and it soon becomes apparent that you can’t be a rogue and just go out and kill everything in site because there are some mighty large creatures out there (one was so big it stepped on me and I died nearly right away).  So it’s either eat or be eaten or learn how to cooperate with others.  I’m a carnivore – what do I care about cooperating with others?  I’m not sure what this part of the game reminds me of – it’s not quite like Diablo or Neverwinter Nights but it has the same sort of feel.

Once you’ve evolved from there you go into tribal stage where you have to have hands for tools and weapons.  The object is to either wipe out or cooperate with all the other tribes for supremacy.  Your tribe gets bigger each time you conquer another tribe.  Along the way you add babies to the tribe, learn how to fish, make spears and axes and each member of the tribe can be independently controlled.  In my case, because I was seriously aggressive with nothing but powerful natural weapons (poison being one of them) the addition of axes and spears was just icing on the cake.  I quickly won this part of the evolution game.  This part of the game reminded me a lot of World of Warcraft.

The next part of the game is sort of like Civilization.  You get cities and you have to mine Spice (my guess is this varies plane to planet in the galaxy) for money.  You build weaponry and get to blast other cities and go to war.  This where I’m at – I’ve seriously pissed off all my neighbors in the world so I’m looking forward to see what happens.  My guess is that I’ll have to do some negotiation to get off planet.

The next part (I’m told) is like Pax Imperia or one of the galaxy conquering games.  It should be interesting to see how the game play is on that part.

One of the things that amazes me is the level of detail you can get to on EVERYTHING.  You creatures can be as detailed as you could ever want.  In Civilization mode you can create your own buildings and vehicles or use one of the pre-made Maxis models or, which I find way cool, is use other people’s that have uploaded theirs to the server.  In creature mode this leads to some incredibly interesting creatures and I’ve heard (though not seen) a new category of creatures called Sporn with interesting body parts.

Is it a good game?  Between my 8 year old, 16 year old and myself we’ve been playing it non-stop since Friday night.  Even if I never play it again the Keeney household has gotten its money’s-worth out of it.

So what do you think?