views:

287

answers:

8

Ok so i've been interested in robotics for a while and had a project in mind. Building a small remote controlled vehicle-robot/ unmanned vehicle-robot. Hopefully with the ability to read in data from sensory devices(gps,thermometer etc) and write the data to some kind of device. The idea(s) had been on the backburner for a while until i just read the following article.

So my question is this. Where should I begin. I have absolutely no experience in this at all other than a few google searches and my project idea. I would like to play around with programming the micro controller boards. I know some java .net languages and some C.

Any help on where to begin?

How do you design the robot, what steps do you go through from start to finish.

Thanks.

+2  A: 

Microsoft have Robotocs Developer Studio.

Vokinneberg
+2  A: 

Robocode is a robotics simulation game, but it's a good place for a Java developer to start.

I can also recommend the books Linux Robotics: Programming Smarter Robots and Robot Builder's Bonanza for really good start-to-finish guides on building and programming robots.

Myke Predko also has a good book called Programming Robot Controllers.

Bill the Lizard
+2  A: 

Little setup to install, but this should offer you a lot of insight into what you want to learn, and offer genuine practice to reading robotic senors, interacting with their environments, etc.

http://playerstage.sourceforge.net/

They offer a Java Framework (separate from the official supported Framework), that has it's own Sun Java documentation.

http://sourceforge.net/projects/java-player/files/

Scott
+8  A: 

If you are interested in the programming side you can start with something like Lego MINDSTORMS. If you are more interested in the electronics side you may want to check out some of the kits on Parallax and The Robot Store.

You will find a mix of languages and platforms so really pick your favorite languages and find something in your price range. Robotics can be very fun (and very time consuming.)

BTW, you can make a pretty cool robot with just an RC car and a BASIC Stamp. And if you have a parallel port on your computer you can interface your computer to the RC car for even more power.

Matthew Whited
Wasn't overly fond of the Parallax kits. They aren't very flexible as far as the Robot itself (as opposed the the programming).
Joel
Some of them may not be very flexible, but they are good learning tools.
Matthew Whited
What I like with Lego Mindstorms is that its simple (drag and drop basics and ability to add other languages like Java), cheaply expandable outside of the basic kit (just a basic lego set), and fun to use.
TheLQ
+4  A: 

Lego Mindstorms is a surprisingly robust system, and lets you focus more on what you'd actually like to accomplish. There are systems which will let you program in something other than the visual language that comes with the kit, which I preferred.

Or you can get a starter kit from VEX, which will include either a PIC or a Cortex microcontroller, along with a programming system. The VEX kit is like an Erector set with brains and motors. :-)

Joel
I've used vex, and its a horrible system to program against.
TheLQ
+5  A: 

The Arduino is a very popular platform among hobbyists. It's basically a programmable board with several inputs and outputs. I highly recommend starting out with it for its ease of use and large support community.

Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments

Several people have made tutorials on building robots with an Arduino as the controller. This one is pretty cool.

advait
+1  A: 

Given that you want a remote controlled vehicle capable of moving around, you will obviously need some kind of motors. I going to assume it will have differential drive locomotion since that's the simplest to build and very easy to control.

The simplest option is to get a pair of continuous hobby servos. They're cheap ($10 and up) and simple to drive through PWM (the duty cycle controls the velocity). If you want to step it up a bit you can get a pair of DC motors and encoders. You will need additional circuitry to drive them, but you can buy that ready made.

If you don't want it to be tethered you will need batteries and some kind of radio on board as well. If you're okay with not doing everything from scratch WiFi is the simplest solution in my opinion since you don't need any extra equipment on the computer you're using; it does tend to limit your "computer" and software options though (you'll want to run e.g. Linux on it).

You'll want an MCU/board that has:

  • PWM, for driving your servos/motors
  • A/D if you have analog sensors
  • A bunch of digital I/Os for whatnot
  • Built-in WiFi or a way to interface your WiFi card (USB, mini-PCI)
  • SPI/I2C and UARTs for various peripherals

Having USB host signals has the added advantage that it's easy to hook up cheap cameras.

Something like the Roboard fits the bill (they also sell a mini-PCI wifi card). It packs plenty of computing power (and unlike many of the simpler boards, it has an FPU!), has plenty of connectivity options, including USB, and comes with a user space library to control the peripherals. (Disclaimer: I haven't tested it myself.)

It's not the cheapest hardware you can get, but it should have room to grow in if you want to try the more computing intensive parts of robotics (like SLAM, computer vision and motion planning). On the up side, you don't have to build a programmer/debugger for it.

If you'd rather start out simple, getting a cheaper board like the Arduino that someone already mentioned might be a better option. Using a simulator is also good to test out the software aspects before investing in hardware.

Where to start on the software side depends on what you're interested in.

Staffan
I should also add that C++ is quite dominant in the (academic) robotics community, so you may or may not want to get a bit more acquainted with it.
Staffan