tag:blogger.com,1999:blog-69820404185855151432024-03-13T21:02:08.304+01:00Multi-Agent RoboticsA blog on our PMP at DTUAndershttp://www.blogger.com/profile/09195369285041182728noreply@blogger.comBlogger22125tag:blogger.com,1999:blog-6982040418585515143.post-51433103425795833022007-02-05T11:08:00.000+01:002007-05-18T10:22:56.868+02:00Project is finished for nowThe project report has been handed in today after we've spend a lot of time writing, correcting, rewriting and correcting it over and over again :)<br /><br />We have decided to put all of our developed solutions on the web.<br /><br />We have made <a href="http://anderslemke.dk/multiagent">four distinct Visual Studio Solutions</a> and <a href="">the program running on the NXT</a> available for download.<br /><br />They are:<br /><p>GridLibrary : A number of classes compiled into a dll archive to represent the grid our robots act on, including an implementation of the A* (A-star) algorithm.</p><br /><br /><p>NXTRemoteControl : Another dll archive which, like iCommand, allows users to control the Lego Mindstorms NXT robots over Bluetooth.</p><br /><br /><p>MultiRoboticAgentsBulletin : A system of multiple simple intelligent agents each controlling a robot on the floor. </p><br /><br /><p>MultiRoboticAgentsNegotiation : A system of multiple BDI agents each controlling a robot on the floor. </p><br /><br />Furthermore we have made our <a href="http://anderslemke.dk/multiagent/report.pdf"> report </a> available for download.<br /><br />We are planning to put up a number of videos of our four robot agents solving tasks on the floor.Larshttp://www.blogger.com/profile/07672956125044561551noreply@blogger.com72tag:blogger.com,1999:blog-6982040418585515143.post-91057255940209116652006-12-06T19:51:00.000+01:002006-12-07T20:01:53.077+01:002 NXT's collaborating to move 3 objects from a gridWe now have a working multi-agent system. The video below shows 2 NXT's removing their respective objects from them lego grid. The video is low quality due the fact that it's hosted at google video. A high res version is available <a href="http://www.student.dtu.dk/~s031920/2NXT3OBJECTS.wmv">here</a> (25,0 MB).<br /><br /><embed style="width:400px; height:326px;" id="VideoPlayback" align="middle" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docId=-3496725312847792565&hl=en" quality="best" bgcolor="#ffffff" scale="noScale" salign="TL" FlashVars="playerMode=embedded"> </embed><br /><br />Our updated problem is now defined as follows:<br /><br /><span style="font-style:italic;">Two teams, black and silver, of modified tribot agents are collaborating to move a number of black and silver items in a closed world back to their individual home bases (their initial postions). Only silver team tribots can remove silver items, and the black items can only be removed by the black team. If a tribot encounters an item which it is not able to remove, it must communicate the finding to the other tribots.</span><br /><br />For all danes who did not get to read the twopage special on our project in Ingeniøren (The Engineer), here is a link to the <a href="http://ing.dk/article/20061027/MASKIN/110270112">online version with pictures</a>.Larshttp://www.blogger.com/profile/07672956125044561551noreply@blogger.com95tag:blogger.com,1999:blog-6982040418585515143.post-24373757276975851112006-12-01T16:54:00.000+01:002006-12-02T11:33:39.557+01:00Single agent identifying and retrieving objectsWe have made a lot of progress since the last post. We have a fully functional implementation of the A*-path planning algorithm, which has been implemented in our C# agent. Also we have made a new grid with genuine lego plates, where we have put some black tape and pieces of reflective foil to make the actual grid, which allows the NXT to navigate.<br /><br />We currently have a working solution that enables one NXT controlled by an agent on the .NET platform to identify and retrieve objects of a desired color. We shot a video of a run:<br /><br /><embed style="width:400px; height:326px;" id="VideoPlayback" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docId=-315895189728865543&hl=en" flashvars=""> </embed><br /><br />At the moment we are working on putting more players in the game. Hopefully we will have a working solution on wednesday.Johanhttp://www.blogger.com/profile/12231482255403210978noreply@blogger.com9tag:blogger.com,1999:blog-6982040418585515143.post-80306711031496690412006-11-17T16:46:00.000+01:002006-11-17T17:10:50.618+01:00"On the floor"-actionToday we have made some satisfying progress. The status so far on the different parts of our project is as follows.<br /><br /><span style="font-weight:bold;">Grid:</span><br />At the moment, we operate with three different colors on the floor, such that the NXT can differentiate between floor, line and intersection in our grid. We have a black line, yellow intersections and gray floor. This is not too good, because the floor and intersections is both brighter than the line. This results in problems when we want to distinguish between the two because it is possible for the light sensor to read a value that is similar to gray, when it is situated between the black line and a yellow intersection, hence both reads from black and yellow and gives a mean that "looks like" gray. Ie. readings can be ambiguous. <br /><br />The solution to this problem is to create a grid where the line has the intermediate brightness between intersection and floor. For example, let the floor be brighter than the line and the intersections darker. In this environment, no ambiguous readings can occur. <br /><br /><span style="font-weight:bold;">NXT program:</span><br />The program running on the NXT is basically a big switch-statement.<br />It runs forever, and listens on a Bluetooth inbox. Depending on what message is delivered (from our .NET application) in this inbox, the NXT can turn left, turn right, follow the line to next intersection, turn around, pick up a ball, release the ball or leave the ball. (I might be missing some actions...)<br /><br />This program is almost complete for our final application, and only minor correction/additions is required.<br /><br /><span style="font-weight:bold;">.Net application:</span><br />By now, we have an application that can control one NXT in the grid. It takes initial values, being NXT position and direction. For example, x=1, y=1, direction="North".<br /><br />We can then input a new position, and the program will calculate a shortest path to this new position from it's current position. For this purpose we use an implementation of the heuristic algorithm A*. And then (of course) the NXT will go to this new position following the calculated path.<br /><br />Quite nice to finally have something working "on the floor".<br /><br />Now the real fun begins. We will implement a complex agent system with multiple agents that will cooperate to solve a task in the grid.Andershttp://www.blogger.com/profile/09195369285041182728noreply@blogger.com4tag:blogger.com,1999:blog-6982040418585515143.post-85321742976015301112006-11-10T17:13:00.000+01:002006-11-10T17:24:29.912+01:00Different lightsensor values<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/5255/852299855784364/1600/nxt_lightsensor.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger2/5255/852299855784364/400/nxt_lightsensor.jpg" border="0" alt="" /></a><br />After testing all the sensors we found out that two of the five sensors showed different values. Instead of calibrating the sensors we now set them to default. This can be done in NXT-G. We now hope that the ten other lightsensors we ordered return the same value as the three sensors.Johanhttp://www.blogger.com/profile/12231482255403210978noreply@blogger.com0tag:blogger.com,1999:blog-6982040418585515143.post-12861829196750950742006-11-10T15:08:00.000+01:002006-11-10T16:15:51.000+01:00More hardware problemsYesterday everything seemed to work for us. We made a grid out of black isolationtape with yellow dots at the intersection. Yellow seemed to return the best value when light was reflected on it.<br />Then we got the communication between computer and NXT up and running. That means the NXT will stop and send a message if a yellow dot occurs or if the bumper is pressed. It then waits for a command from the computer.<br /><br />Today the lightsensors all returned different values and had a hard time distinguish between the grey floor and the yellow dots. This could be because of the NXT is running low on battery but it could also be the change of ambient light. We now try a solution where the the line returns a value between the floor value and the intersection value.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/5255/852299855784364/1600/DSC02966.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger2/5255/852299855784364/400/DSC02966.jpg" border="0" alt="" /></a>Johanhttp://www.blogger.com/profile/12231482255403210978noreply@blogger.com0tag:blogger.com,1999:blog-6982040418585515143.post-7363410173197313202006-11-01T16:49:00.000+01:002006-11-01T17:23:24.136+01:00New goals for the projectAfter realizing a number of major difficulties with creating a lifting mechanism, we've decided to fall back on Lego's Tribot design for our project.<br /><br />This decision will perhaps set us back a bit, but we're convinced that it will pay off in the end.<br /><br />The altered problem is now defined as follows: <br /><br /><i>Two teams, red and blue, of modified tribot agents are collaborate in removing a number of blue and red items in a closed world. Only red team tribots can remove up red items, and the blue items can only be removed up by the blue team. If a tribot encounters an item which it is not permitted to remove, it must communicate the finding to the other tribots.</i><br /><br />The world will start off being a simple grid made of isolation tape, where the agents can navigate around. When an agent is communicating it will be shown by an extra lightsensor being switched on and off, signaling red light, on the tribot.Larshttp://www.blogger.com/profile/07672956125044561551noreply@blogger.com0tag:blogger.com,1999:blog-6982040418585515143.post-91552833146674287472006-10-25T18:05:00.000+02:002006-10-26T09:26:32.188+02:00Designing the moverWe've been spending some hours creating the NXTMover, which will end up representing the agents in our Multi-Agent system. The first prototype is seen below. We've used parts from the NXT box and most parts for the lift is from the Lego Technics Forklift kit.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/5255/852299855784364/1600/DSC02955.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger2/5255/852299855784364/320/DSC02955.jpg" border="0" alt="" /></a><br /><br />We still some more stabilizing of the lift, but the prototype on the picture is probably not far from the final version.Andershttp://www.blogger.com/profile/09195369285041182728noreply@blogger.com1tag:blogger.com,1999:blog-6982040418585515143.post-86781695352836473082006-10-11T16:28:00.000+02:002006-10-11T16:33:37.432+02:00The first multi-agent systemThe BallFinder is ready. A BallFinder works as follows: 1) Starts searching for a ball. 2) When a ball is found, notify other BallFinders, and meet up with them. 3) If another Ballfinder finds a ball, stop searching and meet up with the others.<br /><br />A scenario with two BallFinders is shown bellow.<br /><br /><embed style="width:400px; height:326px;" id="VideoPlayback" align="middle" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docId=-2279970353428693815&hl=en" quality="best" bgcolor="#ffffff" scale="noScale" salign="TL" FlashVars="playerMode=embedded"> </embed><br /><br />Now we are getting close to developing much more complex multi-agent systems.Andershttp://www.blogger.com/profile/09195369285041182728noreply@blogger.com0tag:blogger.com,1999:blog-6982040418585515143.post-76566890603968872792006-10-04T15:58:00.000+02:002006-10-04T16:19:22.131+02:00Follow the black line, part 2After having spend some hours on testing, we must conclude that it seems to be almost impossible to create a stable program that makes the NXT follow a line that curves both left and right by using bluetooth direct commands. We're using an approach that makes the NXT sweep first one way then the other, then double the distance and sweep again until the line is found again. The NXT's keeps on missing the line, and the amount of readings of the light sensor delays any other bluetooth commands to an extend which is not acceptable.<br /><br />Therefore, we have decided to make the "Follow Line" program as a Lego Mindstorms NXT-G program, and execute it on the VM at the NXT. The result has shown to be very stable, and the fact that the execution of a program on the NXT still allows for direct commands over bluetooth to be received and executed. This is a feature which e.g. gives us the possibility of running the line following program on the NXT and then turning the NXT 180 degrees while the line follower is still running.<br /><br />We shot a short video of two NXT's using the line following program:<br /><br /><embed style="width:400px; height:326px;" id="VideoPlayback" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docId=-5655495687756336755&hl=en"> </embed>Larshttp://www.blogger.com/profile/07672956125044561551noreply@blogger.com120tag:blogger.com,1999:blog-6982040418585515143.post-12149867740471949492006-10-03T23:01:00.000+02:002006-10-03T23:40:17.391+02:00Follow the black lineWe archived to implement a simple algorithm that enables the NXT to follow a black line forming a circle. It is simple because the NXT can only go one way around and if the black line gets on the wrong side of the NXT, it it not able to find back on track.<br />After this was accomplished we tried to implement a sweep algorithm that would make the NXT go both ways.<br />We ran into some problems:<br />1. Not enough values from the light sensors<br />2. Can not count on tacho value.<br /><br />We will continue to work on the FollowLine class, so hopefully it will be done next week.<br /><embed style="width:400px; height:326px;" id="VideoPlayback" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docId=8584827032110916000&hl=en"> </embed>Johanhttp://www.blogger.com/profile/12231482255403210978noreply@blogger.com146tag:blogger.com,1999:blog-6982040418585515143.post-30103841364558069442006-09-27T17:09:00.000+02:002006-09-27T17:19:21.281+02:00NXTMoverHaving the library NXTRemoteControl, we can now build another library using that.<br /><br />The idea behind seperating these two levels, is that you can make countless configurations of a NXT. The NXTRemoteControl should be, and is, able to control each one of them. All you need, is to develop a library on top of it.<br /><br />Our robot needs to be able to drive around and lift/move objects. Hence the name NXTMover. The library (NXTMover) will be action based, with each action running in a seperate thread. You will then be able to tell the NXTMover, to "move the robot along a line", "pick up object" or "go to this place".<br /><br />Above this, we will implement some intelligence and multi agent abilities such that several NXTMovers can coorporate about moving object. More about this later. The figure below illustrates these concepts.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/5255/852299855784364/1600/Structure.1.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger2/5255/852299855784364/320/Structure.jpg" alt="" border="0" /></a>Andershttp://www.blogger.com/profile/09195369285041182728noreply@blogger.com0tag:blogger.com,1999:blog-6982040418585515143.post-89592286916744600022006-09-27T16:58:00.000+02:002006-09-27T17:08:43.883+02:00NXTRemoteControlSo, what have wee been up to lately.<br /><br />Most of our time has been put into developing a .NET library, that we have called NXTRemoteControl. This library uses the Direct Commands published by LEGO. This allows us to remotely control every component of the NXT. That is, all sensors, motors and the Bluetooth communication device can be controlled from a computer connected to the NXT via Bluetooth. This is much similar to what iCommand does.<br /><br />It has been quite a challenge to deciffer the Direct Commands and figure out exactly what the different parameters actually does. Our effort has been rewarded. We now have a lib supporting both the sonar and synchronized motors among all the other stuff.<br /><br />I.e, so far our lib support motors and sensors.<br /><br />We have been programming in C#.Andershttp://www.blogger.com/profile/09195369285041182728noreply@blogger.com1tag:blogger.com,1999:blog-6982040418585515143.post-541073680518751942006-09-27T16:49:00.000+02:002006-09-27T17:22:06.677+02:00Public Relations (PR)More and more people are becoming interested in our project. Different people from down the hall have asked what we have achieved and what the robots can do so far. Because most of the time has been used to produce the library NXTRemoteControl, it is limited what the actual robot can do.<br />Today a photographer came by and took some pictures to a magazine advertising for DTU and IMM. The magazine will come out in the beginning of January.<br />We have been hired by Lego to give a demonstration in Bilka (shopping mall) of what the NXT Robots can do. Parents with their children can get a short introduction to how the Lego NXT works and how easy it is to build and control. This will have nothing to do with our project because the demonstrations should natural be in NXT-G.<br /><br />Our supervisors created at poster for a seminar called "IT overalt" (IT everywhere) describing the Multi Agent problem and how we tackle the different challenges. This was the picture they used:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/5255/852299855784364/1600/to_mindstorms.0.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger2/5255/852299855784364/400/to_mindstorms.jpg" border="0" alt="" /></a>Johanhttp://www.blogger.com/profile/12231482255403210978noreply@blogger.com2tag:blogger.com,1999:blog-6982040418585515143.post-37664031345326745232006-09-27T16:03:00.000+02:002006-09-27T16:04:13.588+02:00NXTRemoteControlNXTRemoteContol 0.1 is ready. Will be available for download soon.Andershttp://www.blogger.com/profile/09195369285041182728noreply@blogger.com0tag:blogger.com,1999:blog-6982040418585515143.post-46576276148099749792006-09-15T16:52:00.000+02:002006-09-15T17:16:40.320+02:00NXTRemoteConrolAfter studying the source code in iCommand we have now made the structure for our NXTRemoteControl library. It's very similar to iCommand with the biggest difference being, that it is writtin in C#. The plan is to reuse most of the code from iCommand but make a little more flexibility for the user and of course fix the bugs :)<br /><br />We are hoping the library will be done next week, so we can start programming some NXT's..<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/5255/852299855784364/1600/DSC02901.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger2/5255/852299855784364/320/DSC02901.jpg" border="0" alt="" /></a>Johanhttp://www.blogger.com/profile/12231482255403210978noreply@blogger.com2tag:blogger.com,1999:blog-6982040418585515143.post-48600769119130241562006-09-15T16:47:00.000+02:002006-09-15T17:01:33.404+02:00Five working NXTsWe found out that it was in fact possible to control five NXTs via Bluetooth from one computer.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/5255/852299855784364/1600/DSC02904.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger2/5255/852299855784364/320/DSC02904.jpg" alt="" border="0" /></a><br /><br />It is straight forward in the .NET framework. All you need to do is to open a serialport (COM) to each NXT.<br /><br />Once a serialport is opened, it is possible to send "Direct Commands" to the NXT. That is, you can remote control everything on the NXT. LEGO has published the protocol used for doing this. What you do is to send a number of bytes to the NXT, and it can reply (if wanted).<br /><br />This is the approach iCommand uses.<br /><br />Using this approach, some of the autonomous idea behing our project is undermined, while the NXTs will not run any code, but just be "dumb" remote controlled robots. However, given our situation and having time as a factor as well, this looks like it could be our choice of approach.Andershttp://www.blogger.com/profile/09195369285041182728noreply@blogger.com1tag:blogger.com,1999:blog-6982040418585515143.post-40127672279250840342006-09-08T17:32:00.000+02:002006-09-08T17:50:46.542+02:00.NET tutorials and stable Bluetooth softwareToday we've gone through several of the tutorials related to the Microsoft Robotics Studio. It seems to be the best way to get more acquainted with this .NET approach to controlling NXT robots. It is our impression, so far, that this just might be the framework we will choose for out project. The possibilities are countless and other users have had positive experiences with it.<br /><br />Finally it seems like we've found some more stable software for using bluetooth in windows. It's called Widcomm software stack, and we're currently using version 5.0.1.802, which can be found <a href="http://www.megaupload.com/?d=BJ0NDHW6">here</a> (If you are patient.. very slow).Larshttp://www.blogger.com/profile/07672956125044561551noreply@blogger.com0tag:blogger.com,1999:blog-6982040418585515143.post-43068888344675528822006-09-06T21:32:00.000+02:002006-09-06T21:42:00.154+02:00Computer, Bluetooth and .NETA new computer arrived today. Supposedly a beast. This is the computer we will use to program the NXTs.<br /><br />About the Bluetooth, it is still killing us. Sometimes it works, sometimes it does not. The problem might be, might be, that we in fact do not know what is going on under the hood. Which protocols and how many protocol layers is used? Communication between NXTs works seamlessly, but as soon as Windows is drawn in the picture, something goes wrong.<br /><br />Despite the Bluetooth problems, we had a breakthrough with .NET. Microsoft Robotics Studio together with Visual Studio might do the job for us. Hopefully it has a full API such that we can program and control every bit of the NXTs. We have not yet created a program ourselves that can be downloaded or can control the NXTs, but we have tested a .NET application that did.Andershttp://www.blogger.com/profile/09195369285041182728noreply@blogger.com0tag:blogger.com,1999:blog-6982040418585515143.post-79171788945281918082006-08-31T21:04:00.000+02:002006-08-31T21:14:47.218+02:00EnvironmentsWe have tested the RobotC environment. This required an update of the NXT firmware, and seemed to be a good alternative to the Mindstorms graffical environment. It is based on C, but not fully C compliant yet. Also, there are no Bluetooth functionality, except upload from computer to NXT of program files, which is what we imagine the NXTs will use to communicate with each other. Drawbacks of RobotC is that it might get commercial, and it is not in fact C, just based on C.<br /><br />We could not get the Java-based environment iCommand to work. iCommand might fullfil our demands for a environment, and it would be convenient for us to program in Java, so we will spend some more time getting this environment tested.<br /><br />The most succesfull alternative to the mindstorms development environment is the simple assembly like language called <a href="http://bricxcc.sourceforge.net/nbc/">NBC (Next Byte Codes)</a> which can be compiled and executed to run on a NXT with default firmware. A feature rich editor for the NBC language is <a href="http://bricxcc.sourceforge.net/">Bricxcc</a>.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/5255/852299855784364/1600/nbc.0.jpg"><img style="cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger2/5255/852299855784364/200/nbc.0.jpg" border="0" alt="" /></a><br /><br />The handling of the bluetooth connection in windows is rather annoying at the moment, but we hope to find a more stable solution.<br /><br />Further we have performed small unstructured tests of some of the sensors, and they appear to be ok, but further structured testing will reveal how accurate the sensors in fact are.Andershttp://www.blogger.com/profile/09195369285041182728noreply@blogger.com0tag:blogger.com,1999:blog-6982040418585515143.post-91120549237996494002006-08-29T15:00:00.000+02:002006-08-29T15:09:18.139+02:00The ClawDay 2. We've added the claw to the first NXT robot. Take a look at the awesome design:<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/5255/852299855784364/1600/DSC00618.jpg"><img style="cursor: pointer;" src="http://photos1.blogger.com/blogger2/5255/852299855784364/320/DSC00618.jpg" alt="" border="0" /></a><br /><br />We've also made a simple program in the Lego's commercial Mindstorm studio. Here is a demo:<br /><embed style="width: 400px; height: 326px;" id="VideoPlayback" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docId=2576937949644306140&hl=en"></embed><br /><br />Also, the program was downloaded to The Claw via Bluetooth.<br /><br />Still to be worked out, is Bluetooth communication from The Claw to computer, and between NXTs.Larshttp://www.blogger.com/profile/07672956125044561551noreply@blogger.com3tag:blogger.com,1999:blog-6982040418585515143.post-12123220731035434072006-08-28T17:49:00.000+02:002006-08-28T17:51:25.756+02:00We are the robots...One <a href="http://mindstorms.lego.com/">LEGO Mindstorm NXT</a> arrived. Another four and a powerfull computer to program the animals on, is still to come.<br /><br />Nice toy.<br /><br />We created a small vehicle, with the one <a href="http://mindstorms.lego.com/">NXT</a>. Made a little program on The PowerBook and ran it succesfully on the <a href="http://mindstorms.lego.com/">NXT</a>.<br /><div style="text-align: left;">No Bluetooth yet, though.<br /><br /></div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/5255/852299855784364/1600/NXT.1.0.jpg"><img style="cursor: pointer;" src="http://photos1.blogger.com/blogger2/5255/852299855784364/320/NXT.1.0.jpg" alt="" border="0" /></a>Andershttp://www.blogger.com/profile/09195369285041182728noreply@blogger.com3