Choice of computing hardware for a robotics project

sleepydj

Member
Oct 16, 2003
25
0
0
Hi,

I'm working on a project in which we're building a fully automated robot for a competition. The robot requires image processing, audio processing for navigating, apart from using other sensors such as GPS/compass. The robot also has motors which have to be driven. Now, this entire thing has to run on batteries and the competition rules specify that the robot must have a mass <30kg.

I wanted to use a full motherboard and an AMD Athlon for the computing. The reason for using this is the expansion capability and the familiarity that such a combination offers. However, the power consumption and current draw worries me. I wanted to know, what would the power consumption of just the processor, the motherboard and 256MB RAM would be. I ran a decent system using the nForce board with the onboard graphics and HDD, CDROM on a 300W power supply. Would I be correct in assuming that the three should run <200W or maybe <150W? I see that the 3000+ consumes 74.25W and draws 45Amps. Would Li-ion batteries be able to handle that kind of load?

Also, which chipset should I use? I was planning on using the nForce2 400 without the onboard graphics and instead just plugin a flimsy PCI VGA card to reduce the power consumed by the on-board geforce. This also strikes me, can I boot up a system without a graphics card being present? If so, then I can remove the PCI card to reduce the power consumption and the weight (not much, but still...everything counts). I'm also thinking of using a mini-ATX board. Would there be a difference in the power consumption of full ATX n mini-ATX?

I know the specs are really high, but the thing is that this competition happens every year and well, I'd prefer just one investment in the hardware for a long time, coz i don't see my project moving to 64 bit, well not just yet ;).


OR


At the other end of the spectrum, could I just use a motherboard/processor combination of a laptop? I don't think that should be a problem and it would sort out the issues like power consumption and stuff. However, wouldn't the advantage that was present in the desktop combination (4-6 PCI slots = great degree of upgrade scope in terms of ports, sensors etc.) be wiped out? Also, where can I buy a new mobo n processor (of the laptop, ofcourse)?


Well, that's a lot of questions. I hope you guys can help. And just one last question, do u guys know of any single board computers which offer a decent scope of upgrading and around this much processing power? Thanks


Cheers,
Jimmy
 

Pudgygiant

Senior member
May 13, 2003
784
0
0
Does it need a 3000+? That's a LOT of processing power, and you aren't doing like 3d rendering or anything, are you? And how are you going to do it without a hdd? Ramdisk? Doesn't that draw MORE power than a hdd?

*EDIT
And if you come up a few watts or so short, could you use solar panels to supplement the lithium battery?
 

Lynx516

Senior member
Apr 20, 2003
272
0
0
You proabably dont need anything near that power. A suitable solution would probably be an ARM9+ core or an Xscale. Much smaller, much lower current draw. ALOT more customisable. You said that you want to make an investment into your hardware. Well make it here by develping (to some extent) your own. PCs are not suited for that kind of IO solution. PCs draw typically abotu 150W if you used a normal Li-ion battery from a laptop (around 4000mAh at 15V) . At my sums the system would run for 24mins on 1 Li Battery. Where with my above mensioned Cores you could run it for days on a couple of AAs
 

sleepydj

Member
Oct 16, 2003
25
0
0
Hmm....interesting. Well in response to Pudygiant's queries....i don't think we're gonna use 3d rendering at all. and as for "permenent" memory, we're thinking of putting in a big flash card or something of the sort. The only reason we're not going in for an HDD is because of the weight and the shocks it would be subjected to.

Well with respect to the computing power, the reason i chose so much was because in the past, competitors have used/needed boards with processors running around 800MHz just for the image and audio processing part. Then they have gone ahead and added another microcontroller for the gps, motors etc. Well, what I felt was rather than introducing the complexity of interfacing two boards as well as spending time on programming (learning how to do it is another time consumer) the microcontroller, we could just use a single x86 solution. And well, the only concern was that if we did that, the image and audio processing would take up too much time and the other threads would lag, so I thought that more power was the answer. Well, we could probably get away quite comfortably with a 1.5 giga proc....but u know like i said single investment, so we don't have to spend a couple hundred every other year. And well another thing i realised was that, a 3000+ system wouldn't be running at full power, which means that processor wouldn't be drawing like 70W, mebbe more like 50W (just a guess).

Lynx and Puddygiant, i'll check out the cores that you guys have mentioned. I am going through the VIA site now. But the only question i have right now, is that would these cores be upto par with the work? I guess testing is the only way to determine that. But suppose we go with the VIA, they're available upto the 1GHz mark. Now traditionally, VIA's have tended to be poor performers. So maybe a hypothetical AMD Athlon 600+ or 800+ would still kick its butt, assuming everything else remains constant(mebbe those science classes do help in making cool statements ;)). And like I mentioned, in the past competitors have required 800MHz PIII's.

One more thing, say I'm developing and testing a program on a 2GHz machine. Is there anyway of determining whether it'll work fine on xxxMHz machine (where xxxMHz < 2 GHz), apart from actually taking it and running it on that? Can I say that ok, it needs a yyyMHz machine minimum to run perfectly? How do i do that?

Thanks for the input guys.


Cheers
Jimmy D
 

Lynx516

Senior member
Apr 20, 2003
272
0
0
In responce to your question on how well your program will perform on other computers. The answer is that it isnt easy. The OS can seriously affect performance so can the compiler. Changing in bettween CPU architectures can also impact on performance. So the answer is not very easily. The problems I see with an x86 design are 2 fold. The first is inferfacing with your sencors. Basically you will have to do this through a PCI bus. For graphics processing this could be a problem also you may need to either find a card to accept the inputs or design one (very very hard). If you find a card the interface with your program and through what ever OS you use (for heven's sake dont use windows for this project) might be not very nice.

If I personally was doing this project I woudl split it off into different parts. The image processor, audio processor (both cores can be chosen due to having good vector or other atributes) GPS/compass (navigation) system. Then have a motor controll system. This would seriously reduce your power budget and allow you to produce a very efficient elegant solution. The only problem would be the need for a near competent electroncis engineer.

edit: any chance you could link us to the competition's webby (if it has one) might help in our desisions.
 

Pudgygiant

Senior member
May 13, 2003
784
0
0
Check out the Intel Pentium M's. They were built from the ground up to be a laptop chip, so they use like, no power at all. They run at around 1.5 ghz, but perform with the 2.4m's.
 

blahblah99

Platinum Member
Oct 10, 2000
2,689
0
0
Holy cow... an athlon/p4 will suck up a LOT of power... and considering your robot has to be < 30kg, that's not a lot of juice for operation time.

Couple of questions:

1. What's your budget on the project? Is it minimal, average, or unlimited?
2. How long do you have to finish the project?
3. How extensive is your knowledge of electronics?

The reason I asked is becuase there are several ways to approach this. You can do what you said - pop a full blown computer in there with a customized power supply to run off a battery, pop in a single board computer with a customized power supply, or run a hot doggity DSP processor like the TI's C67 or maybe even an Analog Device Blackfin DSP to do the signal and audio processing and a cheaper microcontroller for interface, logic, and motor control. That'll suck up 1% of the power of an athlon/p4. Of course, it'll also take up the most development time and money, but in the end it will be more robust.

 

igotid24

Junior Member
Oct 8, 2003
5
0
0
a full mobo/proc or even a laptop would be extreme overkill. as mentioned before an ARM processor is the ideal solution, and maybe an OOPic or two depending on how many motors you are running. for a ready to use board with the ARM proc check out Techsol Medallion, It can do everything you need (with the exception of the image recognition, it might be able to but i'm not sure, you might need a dedicated board for that). the one thing that i must stress is that a full computer or even laptop is EXTREME overkill. just the weight that it takes up could defenitely be put to better use, and the power is also a big issue.
 

sleepydj

Member
Oct 16, 2003
25
0
0
Hi,

well the competition link is http://www.auvsi.org/competitions/water.cfm There are links to the other teams' websites from there. We've just started so well, our website is up...but there's no info on it, yet. And well, I didn't mention earlier, the 'robot' is a submarine. :)

In response to Lynx:
NO, we are not going to use windows....100% sure we're using Linux. As for which flavour, that isn't decided much....n well frankly i don't know much about Linux.....the other guys are handling that. I'll learn as we go along. For the image processing we're probably gonna use either a USB cam or frame grabber card with the camera, and then write our software.
And as for the sensors, most of them interface through a serial port. Ya, a gps system won't work underwater, so we'll probably use a digital compass.

In response to blahblah99's queries:
1. What's your budget on the project? Is it minimal, average, or unlimited?
Well, since this is a university project, we do have support from the engineering dept's funds. We have applied for a Cdn$11K this semester. I don't know how much we're gonna get - but it's definetly not that much. Please understand, this budget also goes into stuff like the hull, motors, sensors and other not so obivous things like travelling expenses (the entire team has to get to San Diego for the competition next summer), stationery etc. Yes, we'll also apply for more money next semester, depending on how things turn out.

2. How long do you have to finish the project?
The competition is in the end of July '04. So, we have to have a good thing running by then to stand at least a decent standing, considering the competitiors (MIT, Cornell, etc. who're participating for like their nth time). Then every successive year we can go on improving. The problem this year is that we're starting from scratch so we have to design and build a hull etc and that's gonna take up lots of time.

3. How extensive is your knowledge of electronics?
As for me, you can say that I'm in the third year of Electrical Engineering (undergrad). But I transferred out of India to Canada so, well, I'm in the second year again (long story). So, I have done subjects like analog electronics, digital design, control systems, communications systems (limited to AM, FM and stuff like PCM, PWM etc. - no heavy duty stuff), electrical networks etc. And well, I'm a regular reader of anandtech.com so i learn from whatever it is that they're writing about.

As for the team, we've got a couple of final year computer eng students and a third year computer eng student.

Well, pudgygiant, where can I actually buy a petinum M proc+mobo? Also would it have like additional PCI slots to hook up more devices later on?

I still have to do research on those ARM cores and OOPic's and the others that have been mentioned; unfortunatley my midterm exams are going on so i don't have much time now. They finish on Monday....so i'll get lot's of time after that.

Thanks again guys!

Cheers,
Jimmy
 

blahblah99

Platinum Member
Oct 10, 2000
2,689
0
0
Well, based on your response, I would recommend going the ARM route running a ported linux OS with a C/C++ compiler. That way you could develop the image/video processing and run it on the ARM for the first year so that next year's project team could port that code over into a dedicated DSP processor.

The TI's C67 evaluation kit is only $395. Not a bad deal if you ask me.
 

Peter

Elite Member
Oct 15, 1999
9,640
1
0
You are not going to be happy with anything that uses standard PC components AND expansion cards. This is because standard PC connector types simply aren't ready for the least bit of shock and vibration.

If you can cope with an all-in-one board, this might be feasible. You definitely want to try a VIA EPIA board, or something PC compatible from the various manufacturers of embedded and industrial computers.

Remember, the art in this is to make the most out of the best computer that fits into the machine, not to make the machine large enough to fit the computer you think you need. You're not going to get even half as much computing power as you thought. You're going to need GOOD coding skillz. Real good. When your program runs too slow, noone's going to give you faster hardware - you'll have to think of a more effective or simpler solution.

This is an art almost forgotten. Once you dive into it, it is truly rewarding though. And after you've seen just how fast today's computers actually are, you'll see the "performance" of many standard software packages with a different eye.
 

Cogman

Lifer
Sep 19, 2000
10,286
145
106
My vote goes for a Via Epia. They are small, and use very little power, and they should be just fast enough to perform the tasks you specified. The other option is to wait for the Eden which is even smaller and uses even less power, still starts at 1 ghz. You could use an Amd or Intel CPU but I would figure on using 4 or 5 bateries before you can run for just over an hour.
 

Cogman

Lifer
Sep 19, 2000
10,286
145
106
BTW They say the the Paralell port and Serial ports are the easiest to program for, I would also try a linux OS. Then you get a nice Pendrive, install linux on it, and have the mobo boot to usb drive :D Really remove the need for the big bulky hd.
 

sleepydj

Member
Oct 16, 2003
25
0
0
hi guys, thanks a lot for your posts!! like i said...my midterms end on monday....i'll get more info after that....and be able to carry out a better discussion with u guys.

just one question though.....some of you have recommended in getting application specific boards, e.g. one for image/audio, one for sensors, etc. The thing that strikes me is that more hardware = more chances of failure. True, that the hardware is pretty robust n the chances of it failing are like one in a gazillion. But other areas like soldering,interfacing etc. Also the more varied the hardware that we put in....we have to learn and then implement them - efficiently. We also have to write different codes in different styles/languages;true that many have C/C++ compilers...but it still is more difficult. We would have to write more programs to interface them. I don't have anything against learning new things, but then once again with a variety of systems....troubleshooting also becomes a pain.

Wouldn't it be easier if i just have one board? That's the thought I had when i begun this thread. Ok, mebbe the 3000+ was too high.....then how abt the VIA, or a transmeta board, as some have pointed out? The development process would just mean, writing a bunch of programs and putting them on the board. I know how to interface serial ports, parallel ports, and just found a work around for using USB ports. And nothing beats the familiarity of working with an x86 platform. Hell, I could even put some speaker and have a sub that blasts MP3's!!!:)

Just my thoughts.....please correct me if i'm wrong.

Cheers,
Jimmy
 

Peter

Elite Member
Oct 15, 1999
9,640
1
0
Identify your power and space budgets. Then choose the best possible hardware.
 

Shalmanese

Platinum Member
Sep 29, 2000
2,157
0
0
If you say you need at least 800Mhz P3 type performance, then no ARM is going to fit your bill. Either a Pentium-M or a Via or possibly a transmeta if you can find one.
 

Shalmanese

Platinum Member
Sep 29, 2000
2,157
0
0
That being said, I dont quite see how you could possibly require over 800Mhz just for image processing. Even the robocup robots could survive on far less.
 

Lynx516

Senior member
Apr 20, 2003
272
0
0
By the looks of the task the image processing involved inst that hard and will be picking out high contrast items. This implies a not very syphisticated image processor. Finding the gate will be the hardest part but it can be done by looking for a high contrast area and heading for the center of the mass in the middle. The arrow will be even more ihigh contrast and a bit of thinking will make that one realitvly straight forward once you have a medium resoution image of the area in grayscale.

All this processing could be done quite straight forwardly on anything around 200Mips (probably overkill or a very bad estimate by me on performance needs) as most of it should be sheer flicking through an array every say .25 of a second then adjusting your course accordingly.
 

sciencewhiz

Diamond Member
Jun 30, 2000
5,885
8
81
Originally posted by: Shalmanese
Even the robocup robots could survive on far less.

IIRC, the good robocup robots have their image processing done by a central system. It's not done onboard.
 

blahblah99

Platinum Member
Oct 10, 2000
2,689
0
0
Originally posted by: sleepydj
hi guys, thanks a lot for your posts!! like i said...my midterms end on monday....i'll get more info after that....and be able to carry out a better discussion with u guys.

just one question though.....some of you have recommended in getting application specific boards, e.g. one for image/audio, one for sensors, etc. The thing that strikes me is that more hardware = more chances of failure. True, that the hardware is pretty robust n the chances of it failing are like one in a gazillion. But other areas like soldering,interfacing etc. Also the more varied the hardware that we put in....we have to learn and then implement them - efficiently. We also have to write different codes in different styles/languages;true that many have C/C++ compilers...but it still is more difficult. We would have to write more programs to interface them. I don't have anything against learning new things, but then once again with a variety of systems....troubleshooting also becomes a pain.

Wouldn't it be easier if i just have one board? That's the thought I had when i begun this thread. Ok, mebbe the 3000+ was too high.....then how abt the VIA, or a transmeta board, as some have pointed out? The development process would just mean, writing a bunch of programs and putting them on the board. I know how to interface serial ports, parallel ports, and just found a work around for using USB ports. And nothing beats the familiarity of working with an x86 platform. Hell, I could even put some speaker and have a sub that blasts MP3's!!!:)

Just my thoughts.....please correct me if i'm wrong.

Cheers,
Jimmy


Yes, which is why IF I was doing this project, I would design a custom PCB that housed everything on one board. Sure, it takes some time to design the board, but in the end you have first hand knowledge of how everything is pieced together, so if something goes wrong, you know EXACTLY where to look - whereas if you purchased a single board computer in a pc104 form factor and something isn't working correctly, you will have to sit through pages and pages of text to figure out why it isn't working.

Like I said before, I would use a decent DSP, a microcontroller that's fast enough to interface to the dsp and have room to crunch extra code for other tasks, some extra peripherals like adcs, dacs, a few h-bridges for the motors, and other accompanying components and fit that on a board as small as possible.

As for system design, how fast of a DSP and mcu you need will depend on how fast the robot is going to be moving and responding. 10 updates a second is fast for a robot that's travelling 1mph and slow for one that's travelling 10mph.
 

sleepydj

Member
Oct 16, 2003
25
0
0
Originally posted by: blahblah99

Yes, which is why IF I was doing this project, I would design a custom PCB that housed everything on one board. Sure, it takes some time to design the board, but in the end you have first hand knowledge of how everything is pieced together, so if something goes wrong, you know EXACTLY where to look - whereas if you purchased a single board computer in a pc104 form factor and something isn't working correctly, you will have to sit through pages and pages of text to figure out why it isn't working.

Like I said before, I would use a decent DSP, a microcontroller that's fast enough to interface to the dsp and have room to crunch extra code for other tasks, some extra peripherals like adcs, dacs, a few h-bridges for the motors, and other accompanying components and fit that on a board as small as possible.

As for system design, how fast of a DSP and mcu you need will depend on how fast the robot is going to be moving and responding. 10 updates a second is fast for a robot that's travelling 1mph and slow for one that's travelling 10mph.



Hi,

hmmmm....well, what u are saying does make sense. I will have to talk to my team about that and then get back to you.

Meanwhile......I've dropped the idea of using the 3000+ and mobo. (yeah! )I was thinking right now, along the lines of a VIA or Transmeta. The VIA's should be easily available. The Transmeta Efficeon seems pretty interesting. That coupled with an nVidia nForce 3 Go 120 claims to have a power consumption of about 4W (whether during idling or peak was not specified - which probably means its idling). That seems pretty good. Does anybody have any idea as to where I can get the combination. The processor is not meant directly for the consumer, which probably explains why I couldn't find anything on how to buy one.

Also does anyone know, what the chances are of getting a sponsorship from these companies? I'm assuming not too great though, unless u're like MIT or something.

cheers,
jimmy
 

Shalmanese

Platinum Member
Sep 29, 2000
2,157
0
0
Originally posted by: sciencewhiz
Originally posted by: Shalmanese
Even the robocup robots could survive on far less.

IIRC, the good robocup robots have their image processing done by a central system. It's not done onboard.

Nope, all robocup robots have to be completely autonomous. (This is the medium sized robots, not those ping pong ball ones). In recent year's theyve allowed 802.11 but certainly nothing like a central computer.
 

sleepydj

Member
Oct 16, 2003
25
0
0
Hi,

I was talking to a good friend of mine who also recommended that I go in for a "split-up" system as opposed to a centralized system; along the lines of what Lynx and blahblah99 and others had recommended. So, I guess I should be doing that.

So does something like this sound ok?:

At the top:
Supervisor and Master Control: some ARM processor

At the 'same level':
Image n audio processing: AD Blackfin
Data processing from other sensors: ? (more ARM?)
Motor Control: x nos Atmel TinyAVR

So, the supervisor/master controller would be the one which interpets the data from the Blackfin and the other processor for the sensors. It then decides what to do and accordingly drives the motor controllers. Obivously, there is more hardware than this, but this is just the arch of how processors will be configured

Alright, I know I should be actually doing this on my own, but just for starters, can anyone say, with what bus I can connect them? I know that Atmel's have the I2C.

Also, what skills will I need to program the blackfin? I was recommended www.dspguide.com , but that's huge! Will I need all/quite a bit of that??!!!

With regards, to how fast the robot will move, I guess it's gonna be somewhere between the 3KMPH to 5KMPH. This is just a based on performances of other teams. How fast ours will go, i have no clue yet. So, I guess, the update frequency can be chosen with the 5KMPH mark in mind with some head room and then suitably modified later on.

Thanks again.

cheers
Jimmy