Robotics
category: code [glöplog]
Hi,
Me and a few colleagues would like to start working on robots and i would like to know if some of you guys had experience on that and could give us some hints to start, particularly what kind of kits would be good to start with ? etc..
I have read many good things about Arduino platforms, which seems to be well documented, with a programming language which looks like C, anyone heared of those ? :)
Any advice would be appreciated :D
thanks
Me and a few colleagues would like to start working on robots and i would like to know if some of you guys had experience on that and could give us some hints to start, particularly what kind of kits would be good to start with ? etc..
I have read many good things about Arduino platforms, which seems to be well documented, with a programming language which looks like C, anyone heared of those ? :)
Any advice would be appreciated :D
thanks
Start playing with a P.C. parallel port until you need more hardware.
Arduino is good for realtime...
Arduino is good for realtime...
Arduino is the best way to start. You don't need to loose time with soldering and making PCBs and dealing with all the bugs you can get, but you can start playing with sensors and servos, and also communicating with the computer (via serial port). There are a lot of examples and documentation online and it's not really expensive (I think you can have some wires, an arduino and a breadboard for less than 50$, and then buy the motors or sensors you want to play with).
The problem with Arduino is that you will reach it's limit after a few time, but then you already have some experience and you can start playing with micro controllers from Microchip or Atmel.
Also, if you wan't to do something bigger, now you can have a raspberry or beaglebone (thought I've had some bad experiences with this one) or something like this, this boards give you enough power to do more heavy computation stuff, maybe even work with a webcam. But you've more problems to use the ports directly as IO.
Or maybe you could even buy a kit like bioloid or nao robot, but they are really expensive.
What would you like to do or what do you have in mind?
The problem with Arduino is that you will reach it's limit after a few time, but then you already have some experience and you can start playing with micro controllers from Microchip or Atmel.
Also, if you wan't to do something bigger, now you can have a raspberry or beaglebone (thought I've had some bad experiences with this one) or something like this, this boards give you enough power to do more heavy computation stuff, maybe even work with a webcam. But you've more problems to use the ports directly as IO.
Or maybe you could even buy a kit like bioloid or nao robot, but they are really expensive.
What would you like to do or what do you have in mind?
I'm no expert, but wouldn't Lego Mindstorms be a good, inexpensive way to begin?
by computations. make use time on the best algorithms you can possibly get for those particular robots. if you have to burn it to ROM to save power then do that. lightweight stuff is good.
Quote:
by thomb:
I'm no expert, but wouldn't Lego Mindstorms be a good, inexpensive way to begin?
They're at least $150 for a base kit, and there are various other sensors you can buy. LEGO does have some stuff like pneumatics and such, but in the end you're limited by what you can interface with LEGO.
However, there are various languages that have sprung up that can be compiled / run on the controlling bricks, at least one of which is quite C like.
You have some nice modular robotics kits
* Bioloid : actually worked with it, nice & cheap hardware. Coupled with a BeagleBoard, it was full of win. The software part, had to write my own.
* Molecubes : this is begging to be a demo-plateform ^^
* Bioloid : actually worked with it, nice & cheap hardware. Coupled with a BeagleBoard, it was full of win. The software part, had to write my own.
* Molecubes : this is begging to be a demo-plateform ^^
Quote:
but in the end you're limited by what you can interface with LEGO.
Doesn't look that limiting from some of the YouTube videos I've seen.
On the other hand, I used to work with a guy who made robots from garbage. That's pretty damn cheap.
Legos are pretty neat if you already have a bunch lying around and you want to experiment with a variety of different mechanisms. You can get extra sensors and accessories for Mindstorms at HiTechnic for example. The whole solution is pretty expensive though.
Personally I'm into giving brains to RC vehicles - they make for fun robot platforms, and they're as cheap (or as powerful and expensive) as you like. Moreover you get to tinker with lower-level things (how to talk to sensors, motor controllers, etc...) The DIY Drones community is a great one to be part of in this domain...
In terms of brains, the Arduino platform is a really nice place to start because of the galaxy of things built around it. You can get shields for pretty much anything these days, and they make everything really easy to get first results with. There are a ton of projects being built on these, and there are awesome communities out there if you want to share ideas. If you end up needing more processing power you can keep your overall architecture and can go for ARM-based Arduino compatible boards such as an Arduino Due or a [http://leaflabs.com/devices/]Maple[/url]. You can even go nuts with Arduino-compatible Embedded Linux platforms such as this one for example.
Just my two cents!
Personally I'm into giving brains to RC vehicles - they make for fun robot platforms, and they're as cheap (or as powerful and expensive) as you like. Moreover you get to tinker with lower-level things (how to talk to sensors, motor controllers, etc...) The DIY Drones community is a great one to be part of in this domain...
In terms of brains, the Arduino platform is a really nice place to start because of the galaxy of things built around it. You can get shields for pretty much anything these days, and they make everything really easy to get first results with. There are a ton of projects being built on these, and there are awesome communities out there if you want to share ideas. If you end up needing more processing power you can keep your overall architecture and can go for ARM-based Arduino compatible boards such as an Arduino Due or a [http://leaflabs.com/devices/]Maple[/url]. You can even go nuts with Arduino-compatible Embedded Linux platforms such as this one for example.
Just my two cents!
controlling from a windows pc. serial is probably easier than parallel as the host can be controlled easily via a terminal just via plain english commands and is much easier client side as windows doesn't allow parallel port access without a driver, and even then its not as simple as it sounds due to extended codes and PNP. if the windows PC doesn't have a serial port usb ones are pretty cheap.
I have worked with the Arduino a few times. For reading and programming Bluetooth transiever and to work with accelerometers and gyroscopes. I think its a great, easy and cheap platform to start out with. As it also has serial communication to pc its easy to track bugs etc.
I know a hackerspace that might be helpful in this regard as it is full of roboticists, and recommend you subscribe to and post to discuss@artisansasylum.com with this question.
http://www.i-programmer.info/news/91-hardware/5885-the-official-arduino-robot.html
Just showed up ... From the article it won't be available everywhere until early July, though. Might be what you were looking for?
Just showed up ... From the article it won't be available everywhere until early July, though. Might be what you were looking for?
thanks everyone for your advices/comments, it seems that the arduino is indeed a good platform to start out with.
we would like to begin making simple robots, control arms, lcd's and all those kind of things for the moment, and i will see once i get more comfortable with.. electronics i think :) (which i didn't study since.. 15/20 years at school ? :p)
i saw the lego minstorms aswell but i was afraid of the flexibility (ability to communicate with other platforms/materials) while i saw that the arduino could easily communicate with strawberry pi & so on, however, it seems limited aswell when doing bigger things, but at the moment, we just need to "train" on all the basic concepts, and particularly all electronic stuff.
i'm not worried at all regarding the programming or even the cost of components
i'm currently on a trip for work but i will look closer at all your links and messages in a few days
thanks again :)
we would like to begin making simple robots, control arms, lcd's and all those kind of things for the moment, and i will see once i get more comfortable with.. electronics i think :) (which i didn't study since.. 15/20 years at school ? :p)
i saw the lego minstorms aswell but i was afraid of the flexibility (ability to communicate with other platforms/materials) while i saw that the arduino could easily communicate with strawberry pi & so on, however, it seems limited aswell when doing bigger things, but at the moment, we just need to "train" on all the basic concepts, and particularly all electronic stuff.
i'm not worried at all regarding the programming or even the cost of components
i'm currently on a trip for work but i will look closer at all your links and messages in a few days
thanks again :)
@cxnull : mmh this pcDuino board seems pretty cool, it would avoid having to buy an aduino + a raspberry pi for example, that's a good idea, i will look at it.
@ epsilon: thanks mate.
is there a huge difference between the arduino uno and the mega one ? i see the mega has extended memory and slots, but is it worth trying ? i mean, are we fastly "limited" with the Uno version ?
basically, i would like to grab motors and pieces from old hardware, and now with all the 3d printers available, i suppose we can easily make some more complex things.
@AMcBain : it seems good yup, i'm looking forward to it !
@metoikos : thanks a lot i will drop them a mail tonight ;)
i see you guys talking about bioloid kits aswell, what is the main difference between all those kits ? flexiibility and the shields/modules/pieces we can buy for them afterwards ?
thanks
@ epsilon: thanks mate.
is there a huge difference between the arduino uno and the mega one ? i see the mega has extended memory and slots, but is it worth trying ? i mean, are we fastly "limited" with the Uno version ?
basically, i would like to grab motors and pieces from old hardware, and now with all the 3d printers available, i suppose we can easily make some more complex things.
@AMcBain : it seems good yup, i'm looking forward to it !
@metoikos : thanks a lot i will drop them a mail tonight ;)
i see you guys talking about bioloid kits aswell, what is the main difference between all those kits ? flexiibility and the shields/modules/pieces we can buy for them afterwards ?
thanks
the Uno has enough IO pins for making pretty decent hobby robots, then you can go with daughter boards, multiplex pins, etc.
A common architecture actually is to have an ARM-based board do the heavy lifting, and use an AVR-based board (such as an Arduino) for doing the low-level communication (generating driving signals, communicating to I2C, SPI or Serial devices, etc...). The current Mindstorms work this way. If you get limited by just an Arduino you can pick up a beefier microcontroller and implement such an architecture using your Arduino with it.
What I'm currently working on has a Maple doing the "complex" computations and an Arduino interfacing with hardware. The Maple also interfaces to an XBee shield for radio communication with my PC. The compatibility was achieved by replacing Serial.xxx in the Arduino code by Serial2.xxx in the Maple code...
The PCDuino looks sexy as hell but I'm not getting it until somebody releases the adapter needed for being mechanically compatible with the Arduino shield form-factor.
Don't get me wrong, there are other things out there, but the Arduino community has gotten so vast that there is support and ideas floating around for pretty much anything you can think of...
Also to answer your other question in your OP, if you're really beginning into electronics and microcontrollers you should check out the SparkFun Inventor's Kit or equivalent, it really walks you through the basics of how to hook up sensors and outputs and interact with them in code.
A common architecture actually is to have an ARM-based board do the heavy lifting, and use an AVR-based board (such as an Arduino) for doing the low-level communication (generating driving signals, communicating to I2C, SPI or Serial devices, etc...). The current Mindstorms work this way. If you get limited by just an Arduino you can pick up a beefier microcontroller and implement such an architecture using your Arduino with it.
What I'm currently working on has a Maple doing the "complex" computations and an Arduino interfacing with hardware. The Maple also interfaces to an XBee shield for radio communication with my PC. The compatibility was achieved by replacing Serial.xxx in the Arduino code by Serial2.xxx in the Maple code...
The PCDuino looks sexy as hell but I'm not getting it until somebody releases the adapter needed for being mechanically compatible with the Arduino shield form-factor.
Don't get me wrong, there are other things out there, but the Arduino community has gotten so vast that there is support and ideas floating around for pretty much anything you can think of...
Also to answer your other question in your OP, if you're really beginning into electronics and microcontrollers you should check out the SparkFun Inventor's Kit or equivalent, it really walks you through the basics of how to hook up sensors and outputs and interact with them in code.
just wanted to say that avr freaks don't like the arduino crowd that much, appearantly. don't know why, but i feel more comfortable with the bare metal, too.
Quote:
They're at least $150 for a base kit, and there are various other sensors you can buy. LEGO does have some stuff like pneumatics and such, but in the end you're limited by what you can interface with LEGO.
However, there are various languages that have sprung up that can be compiled / run on the controlling bricks, at least one of which is quite C like.
ironically that language is called Not Quite C, but i think it only supports the older mindstorm control bricks.
Im actually thinking about getting a EV3 once its released. It seems neat.
@vectory : I can easily imagine that they are disappointed that now there are a bunch of hipsters running around creating flashing clothes and tweeting flower pots and they don't quite seem like such geniuses anymore... (I'm VOLUNTARILY overly cynical here).
@wysiwtf : Yeah, the EV3 is looking pretty sexy, I might finally get seduced and shell out the cash when it comes out... I'm really liking the embedded linux tutorial platform it's going to be, even though I still regret that there are so little IO ports (even though they can be multiplexed).
Someone (HiTechnic ?) needs to create a GPIO board that interfaces with this thing
@wysiwtf : Yeah, the EV3 is looking pretty sexy, I might finally get seduced and shell out the cash when it comes out... I'm really liking the embedded linux tutorial platform it's going to be, even though I still regret that there are so little IO ports (even though they can be multiplexed).
Someone (HiTechnic ?) needs to create a GPIO board that interfaces with this thing
About Bioloids (I played with them for a while)
* It's a kit made of cleverly designed step-by-step engines, that can be linked together to form various robots. 4 legs, 6 legs, 3 legs, wheels, arms, endless fun !
* The engines are actually an engine of good quality, with reductor gears. For the cheaper, stock engine, the reductors are made of plastic, not good on heavy load : typically, feet of an humanoid. Higher quality engines are available for Bioloid kit, with bulkier & stronger hardware.
* Even better, the engi
* It's a kit made of cleverly designed step-by-step engines, that can be linked together to form various robots. 4 legs, 6 legs, 3 legs, wheels, arms, endless fun !
* The engines are actually an engine of good quality, with reductor gears. For the cheaper, stock engine, the reductors are made of plastic, not good on heavy load : typically, feet of an humanoid. Higher quality engines are available for Bioloid kit, with bulkier & stronger hardware.
* Even better, the engi
(sorry, chinese intertubes are clogged)
About Bioloids (I played with them for a while)
* It's a kit made of cleverly designed step-by-step engines, that can be linked together to form various robots. 4 legs, 6 legs, 3 legs, wheels, arms, endless fun !
* The engines are actually an engine of good quality, with reductor gears. For the cheaper, stock engine, the reductors are made of plastic, not good on heavy load : typically, feet of an humanoid. Higher quality engines are available for Bioloid kit, with bulkier & stronger hardware.
* Even better, the engines all have there individual AVR ATMega microcontroller ! Each engines are connected on a common bus, to form a network. You can then send a command to one node of the network, it will be dispatched to the proper engines. The set of commands is far enough to play, you can even use engine feedback. The banddwith of the bus starts to be a problem beyond 32 engines connected ie. slow control loop.
* To issue commands to the engines network, Robotis (manufacturer of Bioloids) give a punny AVR ATMega128 with a shitty firmware. The firmware can just play pre-recorded sequences of poses, which fun for kids but the true nerd will find it unrelevent to his/her interest.
* So you will probably to have to fiddle to talk directly with the engine network without the shitty Robotis controller in the middle. What I did is to use a BeagleBoard to talk directly to the engine network. The BeagleBoard was beefy enough to include serious control algorithms and a web server. Also plugged a a USB Wifi dongle. Walking robot controlled by Wifi, with the low-level control embedded and high-level controlled to a PC (like, navigation and image processing)
About Bioloids (I played with them for a while)
* It's a kit made of cleverly designed step-by-step engines, that can be linked together to form various robots. 4 legs, 6 legs, 3 legs, wheels, arms, endless fun !
* The engines are actually an engine of good quality, with reductor gears. For the cheaper, stock engine, the reductors are made of plastic, not good on heavy load : typically, feet of an humanoid. Higher quality engines are available for Bioloid kit, with bulkier & stronger hardware.
* Even better, the engines all have there individual AVR ATMega microcontroller ! Each engines are connected on a common bus, to form a network. You can then send a command to one node of the network, it will be dispatched to the proper engines. The set of commands is far enough to play, you can even use engine feedback. The banddwith of the bus starts to be a problem beyond 32 engines connected ie. slow control loop.
* To issue commands to the engines network, Robotis (manufacturer of Bioloids) give a punny AVR ATMega128 with a shitty firmware. The firmware can just play pre-recorded sequences of poses, which fun for kids but the true nerd will find it unrelevent to his/her interest.
* So you will probably to have to fiddle to talk directly with the engine network without the shitty Robotis controller in the middle. What I did is to use a BeagleBoard to talk directly to the engine network. The BeagleBoard was beefy enough to include serious control algorithms and a web server. Also plugged a a USB Wifi dongle. Walking robot controlled by Wifi, with the low-level control embedded and high-level controlled to a PC (like, navigation and image processing)