views:

1459

answers:

8

I would like to learn how to write software for controlling robots.

Is Lego MindStorms a good choice for this? Are there better alternatives?

I'd prefer MindStorms, but after reading a couple of articles I get the impression that Lego has stopped research and development of MindStorms.

What are your suggestions?

+2  A: 

I can't give you a good side-by-side comparison vs other robotics kits (I know MS has one), but I've spent a lot of time with mindstorms (to the point where I gave a user group presentation) and I think that it makes the programming enjoyable and teaches you the basics of sensors, input and output that you'd need to know with any kit.

It gives you the foundation and makes it fun which is a great way to start. There are probably more sophisticated alternatives though...

Bryant Hankins
+6  A: 

I own the first release the the Lego MindStorms robotics kit, and I can not praise it enough. It's easy to get started with, and the possibilities are endless. Not only is it fun constructing things, it's a joy bringing them to life. It challenges you as an engineer and as a software developer. It makes you truly appreciate and understand the fragility of robotics research and development.

The new NXT set is out as well. Largely developed by user feedback, it is the best Lego robotics kit yet.

Tricon
Thanks for the info. I think I will buy the NXT set.
Arnold Zokas
I have owned the NXT since it's release and I think it is an excellent way to get started in robotics. You can work on hardware or software. It allows you to quickly prototype ideas.
Louis Davis
+3  A: 

I coached a First Lego League team for a couple of years and we used the NXT robots. The team consisted of 6th, 7th and 8th graders and they were readily able to learn learn the graphical programming environment and to develop some pretty sophisticated programs with it. As coaches we guided them in good software practices (requirements, design, modularity, documentation, testing etc.) but the kids did the work and they learned a lot. The standard NXT software is basically a stripped down version of LabView and it's reasonably easy to use but a bit buggy. That was a good feature for the kids though - they learned the hard way to save their work often because the software can and does crash while you're editing.

If you want to have a blast playing with robots and especially if you want to involve kids too, this is a great environment for it. But the standard software is a graphical programming language so you're wiring up and configuring function blocks not writing code and some people don't consider that "real" software. It all depends on what you want to learn. We only used the standard NXT software with the kids because of FLL contest rules.If you prefer using procedural languages the NXT is still a great platform for learning but you'd need to switch to an alternative development environment like one of these.

JayMcClellan
I am thinking of using Microsoft's Robotics Studio
Arnold Zokas
+7  A: 

You don't indicate if you are more interested in the hardware or software aspects of robotics. If you are primarly interested in software and don't want to spend money on hardware, you should consider a simulation environment.

Think of things like flight simulators or game programs. You can "fly" a plane without having to buy one. You can also learn alot in the process.

Microsoft's Robotics Studio has a version you can download for free which allows you to simulate the Lego Mindstorms as well as write programs for it. If you are a student you can get the full version for free as well.

Of course if you want to spend the money there is nothing quite like the real thing and I am sure you will have a lot of fun with it.

I just learned that LabView can also be used to program Lego Mindstorms. Take a a look at: http://www.ni.com/academic/mindstorms/ They have a version of LabView for students with deeply discounted pricing.

JonnyBoats
I am interested in both hardware and software aspects.
Arnold Zokas
A: 

If you're just starting out, the most important thing will be the support community behind whatever kit you choose. MindStorms is very popular and I'm sure you'll have no problem finding answers to the (many) questions you will have as you work with it.

MadCoder
+1  A: 

I don't know what kind of software you're interested in using, but MATLAB actually has a LEGO MINDSTORMS NXT Toolkit. It's been discussed on some of the MathWorks blogs, and there are some demos posted on the MathWorks File Exchange (here's one).

gnovice
A: 

Yes, Lego Mindstorms is great, but don't use the default LabView G language interface to do your programming.

Use something more advanced like LeJos.

Tian Bo
+1  A: 

Assuming you choose the Lego path, for Mindstorms I'd definitely recommend NQC.

NQC is a programming language that you can use to program the Lego Mindstorms robots, and I found it much easier than dragging nodes around in a WYSIWYG-style environment (which is how the bundled software and LabView-based version worked).

I haven't had any experience with the NXT robot, but if NQC sounds interesting, there's an equivalent for the NXT: NBC/NXC.

Steve

Steve Harrison