Which robotic kit to buy?

6
5

I would like to try some of the stuff we learnt in this course on some real robotic kit. I can see there are a lot of experienced folks on this forum. Any advice? I think Sebastian mentioned Lego Mindstorms once. Can we implement some of the stuff we learnt on that kit? Thank you.

asked 04 Apr '12, 01:06

V.%20Shivakumar's gravatar image

V. Shivakumar
108246
accept rate: 0%

retagged 04 Apr '12, 13:21

bcontins's gravatar image

bcontins
2.8k41136


14 Answers:

12next »

Lego mindstorms would be a great choice but eventually it will fall short w/o extra components.. it helps you with the actuators but not with the sensing, though. With it you build a robot fast and the maintenance is minimal. Many universities use Lego mindsotrms for their robotic classes, including CMU. Some people use them to build fast prototypes for serious projects. You can use it for experiments with PID control because the kit has a line tracking sensor that allows you to follow lines painted on the ground. However, this is as far as the packaged version will take you.

The sensors in the kit are not good to simulate those of an autonomous car. The only remote sensor the kit has is a sonar, which is good to measure distances but bad to measure bearing. In comparison, Stanley and Junior use lidars and stereo. Lidars have good accuracy in both distance and bearing; however, they are expensive, big and heavy. The other option is stereo. You could add cameras to the robot and then use openCV to process the images. Still, the cameras give you images, not (distance, bearing) pairs so you'll have to analyze the images to get that information.

I think that if you want to play with a robotic kit, lego mindstorms would be perfect. However, you will outgrow it pretty fast. If you want to simulate Sebastian's cars with the lego kit, you need to address its main downside: data acquisition. You can start getting a couple of inexpensive USB cameras, familiarize yourself with openCV, get a basic computer vision book (a practical one is Trucco and Verri) and figure out how to get the sensor data you need. If you have problens accesing or analyzing the data with the lego computer, you can run lego mindstorms from linux (thanks for the correction, Emil), i.e, use the lego kit to build a platform for a laptop, connect the cameras to it and then use the laptop as your master computer and the mindstorm one as the slave.

This will be inexpensive and you will progress relatively fast.

link

answered 04 Apr '12, 03:48

Goldsong's gravatar image

Goldsong
19.6k29112104

edited 04 Apr '12, 04:52

1

Just a short addition to this very good answer:

I think it's not possible to get the Lego Mindstorms to run Linux, it's just possible to run it from Linux (as well as Windows and Mac). The problem is one of computational power, which does not allow the Lego NXT to run any high level tasks. Processing camera images will also be more than it can handle. However, there is the possibility to remote control it from a computer or maybe even a phone via bluetooth, such that computational power should no longer be a limitation.

I'm currently working with my very old Lego Cybermaster controlling it from Python and it's doing just fine.

(04 Apr '12, 04:38) Emil Emil's gravatar image

I have been playing around with my Lego NXT for this course and connected to it by Python from my N900 mobile phone via bluetooth. The advantage of using something like the N900 compared to a laptop is its weight. You can easily integrate it into the your lego model. The N900 that it has a lot more computational power than the nxt, and it also adds a couple of sensors that can be used: the camera, and the acceleration sensors.

But any small computer should can be used for speaking to the NXT. Once I get a http://www.raspberrypi.org/ , then it should work just as well with a web camera and a bluetooth dongle.

Right now I'm trying to learn how to use gstreamer to do video processing on the N900. Once I have managed to do that that I will try to use the resulting features as input to a PID controller, for steering my NXT car.

(04 Apr '12, 11:29) Dov Grobgeld-1 Dov%20Grobgeld-1's gravatar image

Several thoughts:

First, ask yourself several questions, including:

  1. Do you want to built the mechanical elements from parts, or buy a
    pre-built chassis?
  2. Do you want to run the processing on a laptop or greater processing
    power machine, and send commands via radio, or do all the processing
    on-board?
  3. Indoor and/or outdoor? Speed?

There are a number of wheeled and track-based chassis with drive motors you can buy if you don't want to put your own together. See DFRobot, Let's Make Robots, LynxMotion, and Pololu for starting points, but there are many more vendors/stores. Another option is to modify an R/C car. It turns out that higher end hobby R/C cars (as opposed to low-priced toy cars) use standard servo type outputs for steering and from their Electronic Motor Controller. You can insert a micro-controller such as an Arduino into the middle of the path for steering and throttle control, using standard servo control libraries. I've got links to useful information in my blog article.

You can do a lot of what was in the course with a micro-controller such as an Arduino or similar one, including PID control and Kalman filtering. And there are a lot of Arduino libraries to support interfacing with sensors. But I'm not sure how well a particle filter with 1000's of points would work, or matrix math for SLAM, or image processing. For that, you may want a micro-controller on board with a radio link to a larger processor (unless you're building a large enough robot to have such a processor directly on-board).

Indoor versus outdoor and speed affects the desired sensors (e.g., GPS is typically blocked indoors)and slower vehicles may get boring pretty fast if you're trying to cover a wide outdoor area.

Hope this helps!

link

answered 04 Apr '12, 12:59

Mike%20McGurrin's gravatar image

Mike McGurrin
475239

Hack a Roomba! http://hackingroomba.com/

link

answered 04 Apr '12, 04:59

Ashpool's gravatar image

Ashpool
677

Haha this is nice.

(04 Apr '12, 05:38) Andreas Mayr Andreas%20Mayr's gravatar image

My intuition tells me that a bumper (as the case with Roomba) can be a very simple yet effective sensor if combined with distance and orientation measurement (although unsuitable for a self driving car ;-)).

(04 Apr '12, 05:59) Ashpool Ashpool's gravatar image

I personally prefer mbed (mbed.org)

  • You can program it online, comparable to the Udacity simulator.
  • It can run python (python-on-a-chip)
  • In the cookbook are quite some robotics examples.
link

answered 04 Apr '12, 04:30

Gerrit%20Polder's gravatar image

Gerrit Polder
2952311

Arduino is a great choice. It's programming language is quite similar to C and you can learn a lot about electronics and actual robotics while working with it.
There are several tutorials online, and make magazine even published "Make: Arduino bots and Gadgets", O'Reilly, ISBN: 978-1-449-38971-0 (don't know how good the book is, haven't had a chance to read it).

Other options are:

Beaglebone
Raspberry pie (not available at the time)
Pandaboard

link

answered 04 Apr '12, 10:07

Tiago%20Ferreira's gravatar image

Tiago Ferreira
4191621

edited 04 Apr '12, 15:33

I agree that it is a good idea to start with Lego. When you will outgrow it you can try Ardunio, for example. It is quit cheap with big range of sensors.

link

answered 04 Apr '12, 04:16

AlexGF's gravatar image

AlexGF
116158

Taking this course has caused a lot of ideas coming to my mind about possible robot implementations. My current favourite is this:

A fast mini-robot that hunts insects like spiders or ants in the room it is placed in. It would have to map the room first. Then it would be patrolling a few times per day, check the corners the space under the furniture, look for insects and if it finds one it tries to kill the insect by squashing it. Just dreaming... :-)

But if anyone can tell me about an affordable robotic platform that can perform such things technically, the please tell me. :-D

link

answered 04 Apr '12, 04:28

Andreas%20Mayr's gravatar image

Andreas Mayr
7903818

I´ll try it with arduino. My boss lent me a lego mindstorm, but i find it more "blackbox", than arduino, and a lot of expensive!! Here, in spain, it cost around 300 euros with basics sensors, instead 20 euros that costs arduino (without any kind of sensors). I think arduino is less "toy", less "blackbox", but you have to have some lessons in electronics... Maybe you have to build your owns circuit to plug some sensors, leds... It will be challenging! Not only programming the robot, but choosing and making your own circuits, with leds, sensors, motors, servos... Even, building the skeleton of the robot! Waw, it´s exciting!!! But it´s just an opinion...

link

answered 04 Apr '12, 07:40

Miguel%20%C3%81ngel%20Carpacho%20Barredo's gravatar image

Miguel Ángel...
164

turtlebot. http://www.ros.org/wiki/Robots/TurtleBot
ros is a very fast growing thing for robotic.
and a wonderful framework.

link

answered 04 Apr '12, 10:55

mmyself's gravatar image

mmyself
4614

If you´re not afraid of some soldering and don´t mind having a robot that has a fixed steering angle, I recomend getting a cheap RC toy car and hacking its remote control. I did it 3 years ago and the results were very interesting. I bought a nice USB interface board called Phidgets InterfaceKit 8/8/8 that has 8 digital outputs and connected 4 outputs to the 4 directional switches of the remote (ou maybe use relays it the remote uses more than 5V). Later on I added my own phone as a wireless onboard camera, and made the car chase another RC autonomously. I used Java then but now they´ve made a Python API for the phidgets module.

link

answered 04 Apr '12, 14:30

Rodrigo%20Moreira%20de%20Barros's gravatar image

Rodrigo More...
223310

Your answer
Question text:

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "Title")
  • image?![alt text](/path/img.jpg "Title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Tags:

×5,188
×80
×43
×6
×6

Asked: 04 Apr '12, 01:06

Seen: 1,107 times

Last updated: 22 Dec '12, 01:14