Adventures with Lego Mindstorms: NXT

Wednesday, January 31, 2007

An Educational Experience from Lego Education

Recently I was turned on to an amazing website called LEGO Education. The range of products offered was amazing and very much geared towards the educational and research user. I ordered two products from them. The Educational Resource Set (the expansion to the NXT kit) and the rechargeable battery pack for the NXT. This blog exists to share my experience with LEGO Mindstorms both good and bad, and this is the story of that order.

Ordering the Product

First off, let me say that I really love this site. It is well organized, up to date and offers a bewildering array of products from the standard NXT sensors right up to highly accurate scientific sensors based on the IC2 interface. Their selection of individual parts is amazing and the prices are very acceptable. They have a "wish list" function so you can cue up purchases. All-in-all a wonderful site; however, the design, the logo and the products all imply that LEGO Education is a branch of LEGO itself. It is not, and this should be indicated clearly when ordering.

The order process seemed to go very smoothly. There was one note that my address would need to be confirmed by LEGO Education before my order could be sent, and I was offered the option of pressing continue in order to start this process. As a Canadian and ordering from a US site, this isn't a strange experience for me. More then a few sites require some sort of confirmation before sending products across international borders. However, after about a half hour I received an order confirmation which I have pasted below;

Dear Mathew,

Thanks for your order from LEGO Education.
A brief summary of your order is below.
Please feel free to contact us if you have any questions.


Order Summary:


Order ID: 166916


Order Total:


Merchandise Total: $109.00
Discounts: $0.00
Sub-Total: $109.00

Local Tax: $0.00
State/Province Tax: $0.00
Country Tax: $0.00
Shipping: $8.72
Handling: $0.00

Order Total: $117.72

Gift Certificate: $0.00
Grand Total: $117.72


Billing Information:


Name: Mathew J Edlund
Company: XXXXX
Address1: xxxx
Address2: xxxxxxxxx.
City: Edmonton State: AB Zip: xxxxxx
Country: CA
Phone: 780-4XX-XXXX
Fax: None
E-Mail Address:
Payment Method: Credit Card


Shipping Information:


Name: Mathew J Edlund
Company: XXXXX
Address1: xxx
Address2: xxxxxxxxxx
City: Edmonton State: AB Zip: xxxxxx
Country: CA
Phone: 780-XXX-xxxx
Fax: None
E-Mail Address: <MY Email>


These products will be shipped to the above address:


1. Product ID: W979648
Product Name: Education Resource Set
Attributes (if any):
Price: $59.00
Quantity: 1
2. Product ID: W979798
Product Name: NXT Rechargeable Battery
Attributes (if any):
Price: $50.00
Quantity: 1


Thanks again,
LEGO Education


Not as advertised

Once I had received this confirmation I figured I was set to go. Boy was I mistaken! I placed my order on Friday and received my confirmation Friday evening. Upon reading the confirmation it certainly seems like my card had been charged and that the order was on it's way. On Monday I went back to LEGO Education and checked my order and was quite surprised to see that it was still in Pending status. Confused as to why it was taking so long to process my order, and suspecting that it might be waiting for the Resource Set to be back in stock I phoned up the number listed on the website and spoke to one of the customer reps there. It was then, and ONLY then that I was informed that LEGO Education doesn't ship to Canada. Of course my question was, "Why, then, did you confirm my order?".


Eventually I was connected to a manager who informed me that LEGO Education has a distributor in Canada that all orders have to go through. I was also directed to a wizard, buried deep in their FAQ that supposedly informs customers of this fact. Of course nothing during the order process itself tells you this and the order confirmation leads you to believe that your order has been accepted. Finally I was more then a little annoyed that the only way I found out about this little quirk was to call LEGO Education directly myself. One would think that an email would be sent out, or at least the order status would be changed on their website. None of this happened. The manager directed me to Spectrum Education their Canadian Distributor. As you can see by the website, it wasn't easy to even find any LEGO products. So I downloaded their 400+ page PDF catalog and searched it. Much to my complete surprise I didn't find any mention of Mindstorms NXT and instead was presented with a catalog of RCX products presented like they were new.


The Run Around


By now I was feeling like I had been given a run around of epic proportions so back I went to LEGO Education. I was able to speak to the same manager which tells me that they have a ticketing system and excellent support for customers, normally. The situation as it stood was totally unacceptable. As a consumer, the distribution arrangements between LEGO Education and Spectrum Education are none of my concern. Nor does a wizard buried four pages in mitigate the situation. The entire issue reminds me of when Best Buy offered video cards on their website far below market value due to a typo on their web page. At first they refused to honor their price, but were eventually forced to honor the deal they advertised. The situation here is the same. I was offered a product, purchased a product, received confirmation of that purchase.. I would expect that my product would be shipped, or at least I would be contacted in the event of any problems. None of this occurred so I demanded that LEGO Education honor their offer or I would be taking my case directly to LEGO. Happily they honored their agreement, processed my order and it will be shipped to me as soon as The Resource Kit again is in stock.


Conclusion


I have to admit this I find this entire situation baffling. I don't see how this agreement benefits either LEGO Education or Spectrum Education. I would have expected my order to be processed by LEGO Education and then passed on to Spectrum for the product to be sent out. After all, the more product that Spectrum sells, the more money LEGO Education makes. Especially considering that Spectrum doesn't have online shopping on their site and they carry a far larger selection then just LEGO.


Before anyone takes this review as a total bashing of LEGO Education I would like to say that their customer service was excellent and the amount of people who have experienced this problem is very small. From what I was told I was the first customer to encounter this kind of problem. From my point of view this is a good thing as it gives them a chance to fix the issue before thousands have this problem. After all, Canada isn't exactly Bulgaria (where they ship to without issue I might add) and for every person who complains, there are 10 who didn't. Also as this site is made up to look like it is part of LEGO International, a poor experience with them reflects badly on LEGO International regardless of the actual situation. Perception IS reality. This issue shouldn't effect US and most international customers at all and the quality of the site is a step above most online shopping stores that I have seen. I have to commend them on insuring that I was satisfied and that they worked very hard to resolve my issue. If they fix the problem with ordering and modify their distribution agreements to come into the 21 century I would have no problem recommending this site to any Canadian client. I would not however recommend Spectrum. Their website is extremely slow, even sitting at the head end of an ISP as I am currently. Many of their catalog pages won't come up, their catalog is hopelessly out of date.


The problem was frustrating but there was a good resolution. Problems will always occur and issues will always arrise. The mark of a excellent company is how they deal with these issue and the resolutions they come up with. In this case I am very satisfied on that note.

Sunday, January 28, 2007

Robotics Competition at the University of Alberta this Weekend

Along with my weekly post I wanted to add that this weekend in Edmonton there is a student robotic competition happening over at the University of Alberta which I saw profiled on CBC's The National.

I would LOVE to post pictures, links and event details, maybe even drop in to see what is happening; however, this event has NO web presence. A search on Google brings up no links for Robotic Competitions more recent than 2002 in Edmonton. There is no story on CBC.ca, no links from the University Website nothing, apparently, anywhere. Of course I have many, many links to the Mobile Robotics Competition that happened back in 2002, but that hardly helps.

Nice work guys! I would love to support you, unfortunately you have made it impossible.

Good luck with that!

Let the Building Begin!

The Set

Well I just love this set! Techniques has obviously come a long way since I last opened a box! Even this is an understatement as many of these pieces I don't even recognize from previous sets. The lack of the standard "bump" pieces (except for two connectors that aren't used) was somewhat confusing to begin with; however, after a very short time I was clicking and snapping pieces together like a pro!

Building the included model

I like to do the included models first when I do a LEGO set so my first step was to build the three wheeled robot as detailed in the booklet handouts that come with the kit. I find building the models helps inspire more creations and gives ideas on how to achieve a certain goal or function using the pieces provided. When completed it looks like something that easily could have been designed by NASA. The grey and white colour scheme for the pieces gives the entire creation a clean professional look. The contents of the set itself are very impressive. When done there is a considerable amount of LEGO left which just begs to be assembled into new and interesting additions to your robot. Piece selection is also very well done with extras of almost every kind of piece needed for construction including the new 90 degree connectors for connecting two long beams. Most surprising was the addition of two, brightly coloured red and blue plastic balls so that your robot will have something to grab onto right out of the box.

Functionality

One of the main reasons that I bought this kit was to try and work on robotic interactions with the outside world, mapping it's environment and interacting with objects. To do this, I needed a good test platform with sensors all around and it seemed that the Tribot was the best choice with this in mind. However, there are some immediate disadvantages with the configuration as it stands. The sensor package that is situated up front consists of a downward facing light sensor and a forward facing push sensor with a touch bar hanging down in front with the ultrasonic sensor perched on top like a set of eyes. The entire thing is encircled by a pair of manipulator arms that are driven by the central motor of the Tribot. The function of this array is immediately apparent. The obvious use is to have the robot drive up to an object (the aforementioned coloured balls for instance) wait for the touch sensor to be depressed and then to close the manipulator arms to carry the object.

While this is an excellent set-up to teach basic programming and provide a platform for educational use, it falls short in of my needs in the following ways. First of all the three wheeled set-up itself has a very narrow wheel base. This is, for the most part, made up by the weight of the motors being very low, but with the NXT brick on top the centre of gravity is high enough that building the robot up any more would present some serious stability issues. Even in standard configuration a quick turn can cause some wobble although I have yet to have the robot fall completely over.

Customization!

To overcome this limitation it was necessary to widen the wheel base. I was also concerned about the ability of my bot to move around the sometimes chaotic mess that is my living room floor. It would have to navigate across the carpet, crawl over obstacles, and easily handle the transition from lino to carpet from the kitchen to the living room. The Mindstorm set comes with two pairs of fantastic rubber wheels, only one set of which is used on the Tribot. One of the first things that struck me while building the chassis of the Tribot is how closely it resembles the real life configuration of a skid steer. Having a second set of wheels available I set out to provide my little robot with four wheel drive skid steer propulsion. After much experimentation I came up with the configuration that you see in the picture. Unfortunately the Mindstorms set doesn't come with enough gears to allow me to extend the wheel base back far enough to provide stability fore and aft (especially important for skid steers as they tend to flip backwards and forwards under acceleration) so the third wheel now becomes the fifth to prevent backwards flips. The bot also has to sit up a little higher on the wheel to allow clearance for the aft sensor assembly. The front set of wheels is far enough forward to provide stability when accelerating backwards so no extra work was required up front. The drive unit is attached to the Tribot chassis at the rear of the bot and by using a 90 degree connector acting as the front strut. while it is possible to connect the unit by just using the attachment at the rear and at the front axle connection, this applies unnecessary stress on the axle.

The four wheel drive skid steer set-up has worked wonderfully. It eats up obstacles, has no problems at all with the carpet and is as maneuverable as the Tribot with a much wider, and more stable wheel base. There is no way this bot will tip over sideways! Ultimately I would like to add a third set of wheels behind the rear set. This would allow me to ditch the fifth wheel (Which has a tendency to get hung up on small objects anyway) not to mention would allow the robot to go any place my imagination desires!

Now that the drive systems have been created and installed, it was time to take a look at the sensor package and manipulation arms. A limitation of the standard Tribot which I was trying to overcome was the lack of input sensors at the rear of the unit. While moving forward the ultrasonic sensor can provide input forward, but when moving in reverse the bot would be traveling blind and the touch sensor would only be of use when using the manipulator arms. So the first addition to my bot is going to be a rear bumper bar using the touch sensor. I can use the ultrasonic sensor to provide input forward and by lowering it (so that it's sight line is blocked by objects in front of it such as the red ball), we can use the sensor to activate the arms when an object reaches the correct distance from our bot and by rotating the bot we can measure the width of objects as well as sense their presence. At least that is what I am hoping to do!

A Bot is born

So I am a proud father; however, there are still issues that I want to look at with this configuration. I am not overly fond of the manipulator arms and have been debating if I should keep them. For now I am deciding to let them remain, at least until I figure out a use for the third motor. I modified the sensor bar extensively from the original Tribot model. I wanted to insure it indicated the maximum width of the bot and provided a sturdy enough bar so that it wouldn't bend without pushing the button in.

There are still some things that will need to be looked at and modified. The rear bumper bar hangs out quite far and makes the unit unacceptably long and unwieldy. The problem is compounded by the long manipulator arms which can hit the front wheels when fully extended. The little "fingers" on the lower part of the claw sometimes seems to scrape along the ground as well. The touch sensor itself seems a little close to the gear being used as a push. The bar appears to rest on the sensor pad and I have a feeling this will cause problems down the road. Lastly the drive units themselves have a tendency for the outermost bar to come loose. All this can be all changed and I will be detailing the process in another post. You have to love LEGO!

Well there it is! Mikey Version 1.0. It isn't perfect by any means, but its a good start and there will be more to follow. I really need to get more LEGO as I am starting to run out of crucial pieces so I will have to be extra creative with my modifications. There is an Education Resource Set that goes with the Mindstorms NXT which I am planning on getting when it is next available on the website.

Next: Programming Options and My First Program

Sunday, January 21, 2007

First post, for the second time!

Before we start, a note to Google and Blogger;

Lets hear it for Blogger's "Save as Draft" feature! It's function seems to be to create a blank blog posting with no data. To bad it says it is to save work because it is quite aggravating to loose two hours of it by using the function that is supposed to prevent such loss.

On to my first post, for the second time!

This weekend I picked up Lego Mindstorms NXT as a Christmas gift to my self. I have started up this blog to track my learning progress and to act as a resource for others. Here you will find notes on my current projects, code samples, pictures and videos. Hopefully it will help someone with their own Mindstorms Project.

First Impressions

The kit is very impressive on first impression. The box certainly is hard to open! The tear off tabs at the back had me stumped for quite a while. The last time I opened a LEGO set I was about 10 years old and there are some immediate changes that are noticeable. The most obvious is that the large plastic molded container with depressions for pieces is gone in favor of a simple box filled with permeated bags containing the Lego pieces. While I understand that this reduces packaging costs, it would be nice to have resealable bags to help with organization. The unique parts and NXT Brick are all packaged separately in a nice box that can be reused (IE. isn't destroyed by opening) and the instructions are in large format and are universal to read. All things I would expect from LEGO.

The set itself seems to be quite large with a wide variety of pieces. Unlike most Lego Sets, this is a generalized building set rather then a model, so parts are varied and provide a wide range of possibilities beyond just the models included in the instructions. The unique pieces that come with the set have a well made, quality feel that seems a step above the motorized LEGO I remember from my childhood.

Installation and Set-up

My installation and set-up was a far from smooth experience. I managed to run into every problem and roadblock that exists with these devices. Initially everything went well. I hooked up the brick to it's motors and sensors and ran the TRY ME programs that come with the brick, as well as running the little DEMO program that is saved in MY FILES. Everything ran well with no problems until I went to install the software, driver and do a NXT Firmware update. When I installed the Mindstorms NXT application to my computer and started up the program. My first indication that everything might not go smoothly was a message indicating that my Bluetooth dongle isn't supported by the NXT device. This shouldn't be too much of an issue, so I just unplugged the dongle and continued on with the installation. I wish I could say that everything other then Bluetooth worked as expected, but when the Mindstorms program booted up it was immediately apparent that something was wrong. The programming interface came up, but on the right hand side of the screen, where instructions for other models should appear, is just a blank page. There don't seem to be any options or settings for the program so I have no idea why it is displaying this behavior. Uninstalling and reinstalling doesn't fix the problem. Again, this shouldn't be a show stopper so I continued on to update the NXT Firmware.



Firmware

The firmware update dialog was easily found under tools and when it booted up I was surprised to find it had already detected and had prepared a firmware update to 1.03 for me! Of course at the time I had no idea that this was just the default layout and that the firmware displayed was not the newest available. I activated the upgrade and watched with the status bars crawled across the screen and my NXT updated the firmware. It was after this that all the problems started. Once the firmware update was completed, my NXT brick became totally unresponsive and sat softly clicking to me. knowing that there was a reset button on the bottom, and checking online in the FAQ I tried a reset, but with no results. I then upgraded the software on my computer, the NXT driver and got the newest firmware from the LEGO website. Nothing would work. I contacted LEGO technical support via email and was quickly rewarded with a response. Their support was excellent and quick. I had been connecting through a USB hub and by changing to a USB port directly on the computer I was able to detect the NXT and update the firmware. By this time I was just happy that my brick would boot up at all. It had been a few days since I purchased the set and having it sit useless was upsetting. While I though everything was good to go, the brick had other ideas. This time it refused to run any programs at all, or communicate with the computer. Another email to LEGO ensued and it was suggested that I return the set for exchange. I was about to do this, had actually packed up the component, removed the batteries when I decided to give it one last crack and as luck would have it, it worked! That certainly saved me an embarrassing episode at the return counter of the Toy Store!

Tech Support

I have to hand it to LEGO Mindstorms Technical Support. It should be noted that this is not the same department as regular LEGO tech support. They did an excellent job,and at all times made me feel like a valued customer. Good job guys!

So that is my first post, read on to see what I build!