PDA

View Full Version : Discussion of Microprocessors



Firestorm65
02-02-2009, 12:49 AM
So what microprocessors are best for an embedded control system (not necessarily including piloting)? I have heard a little about arduino and that's about it. I am inclined to think the atom chipset might be a more powerful solution, but I don't know a lot about EE and CS. So I was hoping for some suggestions. I will put a list of what we discuss on this post too if people would find that helpful.

Thanks in advance.

DresnerRobotics
02-02-2009, 12:54 AM
A lot of it is going to depend upon what you're comfortable coding in. What languages are you proficient in?

I'm using a Basic Atom in one mech (basic), and a Gumstix in the other (linux w/ C)

Firestorm65
02-02-2009, 01:06 AM
I am completely proficient in MATLAB, Basic, and NQC. It wouldn't be a stretch for me to pick up most codes and I am not limited to merely my own limited capacities :) .

Also, is the basic Atom the same as Intel's atom?

ScuD
02-02-2009, 01:52 AM
First off, there's a huge difference between a microprocessor (intel Atom) and a microcontroller (Basic Atom).

For the sake of simplicity, let's say a microprocessor is what's inside a computer, which is basically no more than an ALU (arithmetic and logical unit) and an instruction decoder. All it does is decode an instruction, execute it, and fetches the next instruction.
It needs RAM, a BIOS (ROM), and you'll probably want some input/output to get it to do anything usefull, like a keyboard, mouse, and screen.

A microcontroller can be viewed as a computer-on-a-chip, once again, for the sake of simplicity.
The ALU is now slammed with RAM, ROM, input/output and a lot of peripherals on the same chip.

What this means is, you can use a single chip to control a robot, communicate with your cellphone, read GPS data, etc etc etc.

That being said, there's a practically infinite amount of microcontrollers out there.
Microchip, one of the bigger microcontroller suppliers, has a few hundred (if not thousand) of their own.

Biggest differences in microcontroller world are the sizes of the databus.
8-bit, 16-bit, 32-bit controllers. The bigger you go, the more they're capable of working with large computations.

For example, an 8-bit microcontroller has a hard time calculating 1245.4 * 1457.2, while for a 32-bit controller this could easily be only one instruction.

Controllers are usually based on a 'core', meaning there's a bunch of different ones, each with the same 'core' microprocessor, but with a variety of ram/rom/peripherals.

The most popular cores today are 8052 (8-bit), AVR(8-bit), PIC(8 to 32-bit, though the cores vary along the series), and ARM(32-bit)


I can go on and on with this story, but the point was, uhm.. I don't remember :veryhappy:

Anyway, there's a lot of choices, but as a complete beginner I would advise to start somewhere simple, other people will most likely give you better advice on this, since I only use "back to basics" controllers and have no experience with something like a Basic Stamp.

Firestorm65
02-02-2009, 06:26 AM
So which is better for a mech? If I want to do all of the balance and visual tracking algorithms onboard, wouldn't the microprocessor have more potential? Intel Atom runs at 1.6 Ghz; how fast do microcontrollers run? Also, wouldn'y a full OS like linux be easier to program and communicate with? I honestly don't know.

robologist
02-02-2009, 06:48 AM
As has been said : microcontrollers have peripherals that are not available on microprocessors. Specific tasks are best handled on one device or the other.

For balance, this would be best done in a microcontroller, as it has more direct access to reading the PWM or analog signal from an accelerometer and gyro sensors, so to be able to quickly (in real time) provide a reactive drive to the motors actually balancing the robot.

For visual tracking, a microprocessor more easily handles the processor intensive video analysis.

Microcontrollers can run anywhere from 4 MHz to 80 or more MHz, not typically in the GHz range.

Microprocessors don't have ADC inputs, timer inputs, PWM outputs, SPI interfaces, or even basic digital IO to read the state on one pin, like microcontrollers can. Therse things can be hacked on to a microprocessor, but usually that involves some sort of microcontroller helping out, and typically the OS for the microprocessor gets in the way of the real time responses needed to these signals.

lnxfergy
02-02-2009, 07:17 AM
If you want to do onboard visual tracking, you are probably gonna need something fairly powerful - since I'm assuming you want to use a webcam == processor needs to be a USB host. There aren't that many embedded processors with true USB host ability out there. I believe that the USB host requirement rules out the gumstix boards.

Walking robots have light payloads, that camera, your guns, etc are gonna add up fast, so your processor has to be lightweight, and low power, since more power equals more batteries equals more wieght. Additionally, you only have so large of an area to mount the thing, so something like a mini-ITX is out based on size (even if we forgive power req's).

Since we ruled that our board has to be low power, lightweight, small, and have a USB host -- I think we are squarly at Pico ITX as one of our view options. It might also be possible to use something like the blackfin + camera combo here: http://www.trossenrobotics.com/surveyor-srv-1-blackfin-camera.aspx

If you go the PicoITX route.. you'll still need something to control the robot, and that means a micro, such as the Arduino or Axon, or anything else that has real ADC and PWM.

Quite frankly, if you don't know the difference between a Basic Atom and an Intel Atom, I'd skip the visual tracking req's right now, and get SOMETHING working using and AVR or a PIC. If you can't drive around, it doesn't matter if your mech has visual tracking.

-Fergs

jes1510
02-02-2009, 08:13 AM
Fergs give good advice here. My recommendation is to use a microcontroller and get the thing walking. Use a laptop to control it and receive the video wirelessly. This is the scheme that most people (with a few exceptions) will be using.

The key and the hardest part is to get it walking and working under your control.

Firestorm65
02-02-2009, 08:21 AM
I'm not the EE guy on my team, so excuse the possibly naive questions. My knowledge is pretty sparse outside of CS; I happen to be an AE major.

So a pico-itx allows for atom, but I could see as large as mini (~6"x6") with an E5200 if placed intelligently. Even without visual recognition, it seems like a microprocessor would allow more intelligent gaits, as well as "run" or "walk" modes. A 30g battery could power the processor for for twice as long as the machine is expected to run (15 min), so it doesn't seem outrageously heavy, especially with stronger servos.

So assuming I get it to fit, can a microprocessor control everything onboard? Would it need a microcontroller just to talk to the motors?

DresnerRobotics
02-02-2009, 08:43 AM
I'm not the EE guy on my team, so excuse the possibly naive questions. My knowledge is pretty sparse outside of CS; I happen to be an AE major.

So a pico-itx allows for atom, but I could see as large as mini (~6"x6") with an E5200 if placed intelligently. Even without visual recognition, it seems like a microprocessor would allow more intelligent gaits, as well as "run" or "walk" modes. A 30g battery could power the processor for for twice as long as the machine is expected to run (15 min), so it doesn't seem outrageously heavy, especially with stronger servos.

So assuming I get it to fit, can a microprocessor control everything onboard? Would it need a microcontroller just to talk to the motors?


No problem, we all start somewhere :)

Problem you're going to run into with anything aside from a pico is going to be power requirements. The pico-ITX boards generally have pretty low power consumption, especially the 500mhz ULV version. Mini's have a considerable jump in power draw, so much that it's really not feasible for a walker given the extra batteries you would need to get it to run for even 15 minutes.

You also have payload to consider. Believe me, I tried to see if I could fit a 500mhz pico on a biped using standard type servos, and once you start adding the supporting peripherals together it adds up QUICK! I abandoned the plan and went with a microcontroller for the main 'brain'. To put it bluntly, you'll need a minimum of $2400 worth of servos (12x RX-28s, for a biped), not to mention a good cost on machining your own brackets for them, to feasibly consider using a pico onboard.

You'll also still need some sort of 'bridgeware' such as a microcontroller or other interface to control your hardware. As stated above me, computers don't come with the hardware interfaces that microcontrollers do. You have no way of controlling servos, reading sensors, or even controlling your bot without a considerable lag without external supporting devices to handle that interface for you. And those extra devices mean even more weight, and even more power consumption.

Firestorm65
02-02-2009, 11:29 AM
What payload could the lynxmotion scout with 5645's hold? What if 5990TG's were used? 5995TG's? 12 for legs + 1 for waist + 1-3 for weapons @ $120 = ~$2000, assuming I would need the HT servos beyond just the legs. Personally, I would think 5 DoF, and use faster, less powerful servos for aiming (~$80) would be more practical. That is $1500. I don't see how you got $2500. Even 12 RX-28s are $1800. I don't know exactly how much I have to work with yet, but I am aware this project is near $1000 just to move, double or more to be competitive.

ScuD
02-02-2009, 11:32 AM
There's microcontrollers out there that run an OS, mostly Linux.
Gumstix is an example of these, the advantage is low power, low weight, built in peripherals.
Look for ARM9 or ARM11 based boards.

Don't expect the same power as you'd get from a desktop PC, but as Tyb explained above, in building a bot, it's all about compromises.

Firestorm65
02-02-2009, 11:46 AM
I guess I feel inclined to lean to MP's because I know how to program them one I set up the connections. So which MCs have built-in wifi-g and at least 500Mhz?

DresnerRobotics
02-02-2009, 12:42 PM
What payload could the lynxmotion scout with 5645's hold? What if 5990TG's were used? 5995TG's? 12 for legs + 1 for waist + 1-3 for weapons @ $120 = ~$2000, assuming I would need the HT servos beyond just the legs. Personally, I would think 5 DoF, and use faster, less powerful servos for aiming (~$80) would be more practical. That is $1500. I don't see how you got $2500. Even 12 RX-28s are $1800. I don't know exactly how much I have to work with yet, but I am aware this project is near $1000 just to move, double or more to be competitive.


5645s are pretty much the bare minimum for a scout, you're going to be lucky to carry a camera, weapons, and a microcontroller (I know, because I'm attempting to do exactly that on my 2nd bot, and I'm not very optimistic its going to work). 5990s would be more ideal, you're still going to be pushing it to carry an onboard PC.

Good luck turning turning with a high payload using only 5DOF. That 6th DOF for hip rotation is going to save you a lot of headache.

I came up with $2400 pretty simply: $200 RX-28s x 12 = $2400.

Microcontrollers generally only go up to about 80mhz, anything more powerful than that you should probably look at the Gumstix. up to 600mhz, 128megs of ram, ultra low power consumption and wifi capable with expansion boards.

Firestorm65
02-02-2009, 03:02 PM
Yes, after talking to some more knowledgeable people, 6DoF it is. Has anyone considered an MiD solution? Designed to handle wi-fi and low power consumption, plus an advanced processor all in a tiny package; seems too good to be true...
Also $1800 was 10x, not 12, my bad. 12x is <$2200.

DresnerRobotics
02-02-2009, 03:17 PM
Where are you finding them for $180? Curious.

Firestorm65
02-02-2009, 03:32 PM
Right on this site :/ http://www.trossenrobotics.com/dynamixel-rx-28-robot-actuator.aspx $182.40 each for orders of 10-25. And I know I need at least 12 w/o spares.

ScuD
02-02-2009, 03:36 PM
Has anyone considered an MiD solution?

The new Sidekick is pretty compact once you tear off all the unneccessary stuff (lcd, buttons, battery) it's two pcb's stacked one on top of the other, connected with a flex. I estimate about 2x2" at a height of about 1/4".

Firmware's written by Danger, should support java.

DresnerRobotics
02-02-2009, 03:38 PM
HAR, foiled by my own site. Wasn't even thinking quantity pricing, sorry :p


Right on this site :/ http://www.trossenrobotics.com/dynamixel-rx-28-robot-actuator.aspx $182.40 each for orders of 10-25. And I know I need at least 12 w/o spares.

Firestorm65
02-02-2009, 03:45 PM
Anyone know of qualcom solutions not in a cell phone? They have 800mhz processors...

science_geek
02-02-2009, 04:30 PM
im just throughing this out there, there is this chip called a propellor from parallax, it is an octocore(thats right 8) controller/processor, that runs 80Mhz and 20 Mips per cog for a total of 160 Mips, it can handle powering a servo signal line with little hardware(a simple resistor will do) it has about 30 io's so it can handle 15 servos and still have 15 inputs/outputs left for sensor feedback, it cant do image processing although people have/are trying, the cmucam3 has been worked in with it for "SIMPLE" image tracking, i have used it with tons of peripherals, im not sure if it will run a usb communication, but there is a lot of people that have posted codes to run many things, also there is someone who shows how to cut down a development board to use with it, i can run it with a 500 mah lithium ion battery for about 2 days straight without power problems if i set up the peripherals for low power operations

for those of you who hate the propellor (i dont know why you would) dont shoot down this idea, i think it would be good for a mech

Adrenalynn
02-02-2009, 09:35 PM
It has no USB host. And can't even get near to processing video.

Otherwise a good suggestion!

The "right" way to do it, of course, is with FPGAs. Everything for everyone. You'll just spend the rest of your life learning to program 'em... ;)

Quantum
02-02-2009, 10:58 PM
Not sure exactly what processing video means.
http://forums.parallax.com/forums/default.aspx?f=25&p=001&m=131097
He's been working on it for awhile and I can't find his other post where it tracked a ball rolling on the table.
I think they took that down. Proabably another product in the works.

Adrenalynn
02-03-2009, 12:19 AM
Not sure exactly what processing video means.


Ok - so now how about feeding it at least fifteen high-res frames/sec and having it do object recognition, orientation, pathfinding, and placemarking, whilst simultaneously doing wavefront propagation for visual SLAM? ;)

It's a cute MCU in several ways (a tad limited in others), but you couldn't fit enough of them onto Godzilla's back to do the kinda work you can do with modern computing horsepower...

ScuD
02-03-2009, 01:41 AM
Anyone know of qualcom solutions not in a cell phone? They have 800mhz processors...

That Sidekick I told you about is based on a QC7225 chipset.

Qualcomm isn't too happy about giving away information, so you'd be in pain trying to get hold of any datasheets.You can look in to development tools, but then there's this huge board with lots of things you don't need.

Oh, and you can only run QC firmware for the most part. Of which you get no information. Nada. Zip.
Unless there's already an OS of some sort on it, and you can just write an application that integrates into it.

But as I said before, look into ARM controllers.
QC chipsets are nothing more than an ARM11 and ARM9 core in a single package with a little extra hardware (modem, video processor etc)

Adrenalynn
02-03-2009, 10:27 AM
Actually, I've worked extensively with BREW and the Qualcom chipsets. You just need to fork out the dollars and they'll be your best friend.

ScuD
02-03-2009, 02:53 PM
Guess it's based on a person-to-person view then.
My former company had about 90% of it's products based on QC chipsets, with a build of about 4 million pc/month, and still we were given no information about the primary bootloader at all.

Getting a to-the-point answer on a simple service request also took about 4 months, after which they told us it was a 'known issue and we should just use this and this firmware update'.

No frustration at all there! :genmad:

Adrenalynn
02-03-2009, 03:04 PM
Maybe they knew you the way we know you... ;) :tongue:

Seriously, though, and you guys were licensed BREW developers?

No0bert
02-03-2009, 06:21 PM
If you like BASIC, then your best bet (as well as my favorite, and first MCU) would be Picaxe Microcontrollers. Be sure to start with the Picaxe 28x1 Development Board (AXE020)

ScuD
02-04-2009, 05:29 AM
Maybe they knew you the way we know you... ;) :tongue:

Seriously, though, and you guys were licensed BREW developers?

Since I have no idea how to interpret that, I demand more input! :veryhappy:

Yep, last I checked we were.

Promagic
02-04-2009, 10:43 AM
What about the Basic stamp "BS2p24"? Basic Stamps are programmed in pbasic and the instructions per second is about 4,000 for the "Green" BS2 and 12,000 for the "yellow" BS2p24 which I am planning to use. I'm not planning any video tracking.

BS2p24 (http://www.parallax.com/Store/Microcontrollers/BASICStampModules/tabid/134/ProductID/7/List/1/Default.aspx?SortField=ProductName,ProductName) Basic Stamp: http://www.parallax.com/Store/Microcontrollers/BASICStampModules/tabid/134/ProductID/7/List/1/Default.aspx?SortField=ProductName,ProductName

BS2 Basic Stamp: http://www.parallax.com/Store/Microcontrollers/BASICStampModules/tabid/134/ProductID/1/List/1/Default.aspx?SortField=ProductName,ProductName

Adrenalynn
02-04-2009, 11:02 AM
You're not planning on doing anything more than bumping into stuff, turning, and running off in the other direction, right?

MIPS actually stands for "Meaningless Indecies of Performing Speed" ;) - but - we have been talking about how many million or billion instructions per second micros run in this thread, and you pop-up with things running in the low thousands. Not really a good comparison.

Also be aware that to my knowledge, you're not going to get hardware interrupts off of those stamps, or PWM. You're looking at 38 bytes of RAM with 128 bytes of scratchpad. We're talking about processors with kilobytes, megabytes, gigabytes. Your max program size is 8 x 2KB. Just don't plan on doing anything realtime or that requires any real processing. They're just toy processors - fine for toys with toy behavior.

ScuD
02-04-2009, 11:16 AM
I like to think of the basic stamp as a paraplegic PIC :p

Firestorm65
02-04-2009, 11:18 AM
would a chip like the ion be capable of video recognition? Is that is it's only task that is.

Adrenalynn
02-04-2009, 11:37 AM
would a chip like the ion be capable of video recognition? Is that is it's only task that is.

What chip are you referring to now?



I like to think of the basic stamp as a paraplegic PIC :p

In this case, it's a Scenix (or whatever they're calling themselves these days) SX chip. It's not even a 1 instruction/cycle RISC... (20Mhz core but only about 2k instructions) At least the PIC CAN be a real MCU when its not running drainbamaged code. ;)

Firestorm65
02-04-2009, 12:34 PM
NVidia's Ion chip (pairs with the Intel Atom).

DresnerRobotics
02-04-2009, 12:40 PM
Considering it hasn't reached the public yet, it'd be pretty hard to give you an accurate answer. But if its a modern enough PC processor, I'd assume it would be capable of processing at least some form of machine vision.

Firestorm65
02-04-2009, 01:27 PM
I could have sworn it was released already. Oh well, getting ahead of myself again.

Adrenalynn
02-04-2009, 04:15 PM
Oh - I understand. Yes. That core is intended for intensive math tasks. Of course, the level of capability is always open for negotiation. The big advantage is that it will take advantage of the new open standards in parallel processing (or DX11 if you're so inclined)

billyzelsnack
02-08-2009, 03:56 PM
The new nVidia stuff is super exciting to me. Doing vision work in CUDA/OpenCL really is going to step up what you can do onboard by a couple orders of magnitude.

sarendt
02-28-2011, 03:56 AM
Was reading through the back log of threads and found this one. Its a bit dated at about two years ago for the last post, but I was wondering if anyone has any updates? I know folks are discussing the fitpc a bunch now, how does it compare to the gumstix? has the processing power vs. power consumption changed much?

Cheers,
Scott

DresnerRobotics
02-28-2011, 08:22 AM
I know folks are discussing the fitpc a bunch now, how does it compare to the gumstix? has the processing power vs. power consumption changed much?

Cheers,
Scott


Totally different beasts. The fitPC is a full-PC class SBC, can run Windows, has expansion slots, etc. Tons of horsepower for its size, moderate-low power consumption. You can plug in a hard drive and a USB CD-ROM and just install an OS, and you're ready to go.

The Gumstix is a barebones Arm based SBC. Requires decent linux knowledge and general Technical knowledge to get it compiling. Minimal CPU horsepower, but next to nothing in power consumption. Runs embedded builds of linux/*nix.

sarendt
03-01-2011, 01:01 AM
The fitPC is a full-PC class SBC, can run Windows, has expansion slots, etc. Tons of horsepower for its size, moderate-low power consumption. You can plug in a hard drive and a USB CD-ROM and just install an OS, and you're ready to go.So the idea I get from this statement is that it is 'easier' to get up and running with the fitPC then the gumstix. I don't know that running windows is an advantage for a bot of any type, seems like a lot of extra code/power that wouldn't be used for most bot's? As I am still a novices in all this I'm just guessing so please correct me if I'm wrong.

A few quick searches gave me this data:

____________Power _____________ Weight __________CPU/RAM
Fit PC 2 ____ 6W min @ 12 V __________370 g______ Intel Atom, 2GHz, 1-2GB Ram

Gumstix _____1W @ 4 V ______________4.3 g ______ TI OMAP 3503, 600 Mhz, 256 MB Ram

To summarize the Gumstix is less robust and would take a bit more effort to get started with, but you would pay for the horse power of the fitPC with its added weight and higher power requirements (which would also add weight).

So, from a goal orientated point of view, can you grey beards answer the questions: what would be the difference in the type of project these would be used for? For example: I am assuming the FitPC is still to heavy for most biped's unless you have a very high budget for servo's?

Cheers,
Scott

tician
03-01-2011, 01:55 AM
In general, a full fitPC may be a bit much for a smaller biped, although the DarwinOP is using an Atom Z530 at last glance (http://darwin-op.springnote.com/pages/6861909) (intended for Mobile Internet Devices (i.e. mini-tablets and overkill smart phones) with a TDP of 2 Watts).

In my very very limited experience, the Gumstix seems to have a somewhat steep learning curve and requires additional boards/modules to be relatively useful. The Beagle Board uses the same processor as the Gumstix (Beagle Board xM uses an upgraded processor), but is mostly ready out of the box. The fitPC is an x86 mini-ITX motherboard (think nettop/netbook) in a very nice case ready for any simple windows or linux install just as if it were a full-scale PC.

Personally, I hope to one day stuff an AMD Zacate mini-ITX board (SQUEE!! IT'S FINALLY HERE!! (http://www.newegg.com/Product/Product.aspx?Item=N82E16813131698)) into a full-scale replica of either T3-M4 or a Dalek. Some day soon I will achieve my dream of a mobile media and web server that can defend itself from physical intruders and flee to safety from nature (frickin' thunderstorms and tornadoes, curse thee!). Also get me stuff from the fridge. Maybe even try to teach it to cook without burning the house down. Microwave meals at the least.

EDIT
Nooooo...they start shipping 4-8 cores within the year. Guess the ten year old laptop with the second failing wifi card needs to be replaced far more urgently than the five year old PC. Hello Lenovo.

sarendt
03-01-2011, 04:35 AM
(SQUEE!! IT'S FINALLY HERE!! (http://www.newegg.com/Product/Product.aspx?Item=N82E16813131698)) - Your enthusiasm is Awesome!

Cheers,
scott

DresnerRobotics
03-01-2011, 09:35 AM
So, from a goal orientated point of view, can you grey beards answer the questions: what would be the difference in the type of project these would be used for? For example: I am assuming the FitPC is still to heavy for most biped's unless you have a very high budget for servo's?

Cheers,
Scott

Actually, Billy Zelsnack built a very impressive Robocup entry using a Bioloid humanoid with a complete FitPC2 in a backpack configuration.

I'd say the biggest reason for choosing one over the other would be processing power. If you don't need onboard vision processing and have linux/embedded PC experience, the Gumstix/Beagleboard is a pretty solid choice. If you're a beginner and/or need more than that and/or wanted to run a full OS, the FitPC is great and easy to use.

SK.
03-03-2011, 01:50 AM
Speaking from RoboCup experience, as a rule of thumb I'd say RX-servo bots cope with FitPC2 pretty well, while AX-servo bots (e.g. Bioloid) have more problems with every bit of additional weight and thus a as lightweight solution as possible is desirable here.

One can cramp in quite some computation on FitPC2, we have complete vision, state estimation, world modeling and behavior control running at 30Hz on our robots.

Is there a easy way to post these YouTube videos only as links by the way? I think it can be kinda annoying to have them in the post as it happens by default.

YouTube - Onboard View of Bruno Scoring a Goal
YouTube - 3/4 RoboCup 2010 Humanoid KidSize Final, Robot Luise World Model View

billyzelsnack
03-04-2011, 09:40 AM
SK is correct about weight. A recent post to the robocup mailing list was dogging on the Bioloid based entries being too easy or something, but in actuality it is more difficult because literally every gram counts.

I've switched my robot away from the fit-pc2 and now use the guts out of a 3" Infocast. The size and weight savings are significant, but I do lose a lot of processing power. However now that I've switched away from general purpose OpenCV to custom vision code it has not been a problem.

sarendt
03-05-2011, 12:56 AM
I'd say RX-servo bots cope with FitPC2 pretty well, while AX-servo bots (e.g. Bioloid) have more problems

What is the reason for that, is it as simple as the RX servo's just have a higher load capacity? Or is there something more to it?

Cheers,
Scott

SK.
03-05-2011, 04:27 AM
Essentially yes, RX servos just have much higher torque, so larger, higher performing robots can be built with them. The larger the robot is, the smaller the added weight percentage (and thus impact on motion etc.) of a FitPC2 is.