Monday, July 17, 2006

Lego NXT Impressions



I should've got on this sooner. From reading online, I was one of the first recipients of a shipping Lego Mindstorms NXT system last month and I really could've had an early scoop, even before Gizmodo. I was on the waiting list all of one day before I got the shipment notification, and then was off for a 1 week vacation.

But that's not the real reason. I'm actually behind b/c I had a legitimate use for the NXT - it's part of my thesis project on controlling devices with dynamic bluetooth UI's. So for the first non-vacation weeks of my system, I spent it hacking, researching, and begging for early open-source info... especially on the byte codes to directly control the NXT over bluetooth, without any LabView programs.

I'm happy to say that it looks like that part of the project is going to be a success, although (for reasons I'll post later), I'm still very anxious to get ahold of Lego's upcoming developer toolkits. I had to do some serious online begging to get the byte-command information to drive the NXT outside of the LabView environment.



So, impressions from someone that had a real reason to use it (however convenient)?:
  1. It's very easy to get started. The kit has some worthwhile projects to build out of the box, although you'll need to follow instructions in the labview environment for some.
  2. LabView is really interesting. Somehow I've gotten an undergrad degree in computer engineering and 75% through a Master's in software engineering without ever using it. I know this is a simplified version, but thinking from a non-programmer's perspective, it could be highly functional and even intuitive. That said, from the programmer's perspective, it's limiting, and gets very cluttered very fast for relatively simple programs.
  3. Having bluetooth built in is a huge plus. No problems connecting to my PC and downloading programs. However, it appears to be a somewhat proprietary communications format on top of the serial port profile that adds mailboxes and severely limits message lengths. That was very bad news for my project. I'm sure this simplifies things greatly for the non-BT crowd though.
  4. Too little memory, as others have noted. The thing should really just have an SD slot
  5. I really wish there was 1 more motor and motor port. All of the ideas I had required 4 degrees of movement, which is not possible (although 3rd party vendors will likely have a solution for this soon).
  6. The support for the NXT by the newly released Microsoft Robotics Studio was a pleasant surprise. They require an intermediary PC to process and send commands to the NXT, and it ultimately inspired a partial workaround in Java to the BT message length limit problem.
  7. It's been about 20 years since I last used Legos, and sometime during that point I unknowingly lost my patience for hunting for the right tiny plastic pieces in a pile of other plastic pieces. I used to live for it as a kid, but now I kind of wished it shipped with one of the robots pre-assembled.

All in all it's a very promising kit. The fact that it will be open source will likely drive a wave of usefull API's and toolkits that will make the platform invaluable. I'm just glad, at 32, to have a valid reason to buy Legos again.

0 Comments:

Post a Comment

<< Home