Best "Brain" module?

Hi Dudes
I was wondering, whats the best module to use as the brain for my robot, i have seen the OOPIC stuff, but looks like that has restricted memory
for real big "brain" type programs
anyone care to offer their opinion on what unit is best and has most memory capability (preferably with a C like cross compiler) for the brain and io units for a robot, or is separation a good move (obviously with enough cash this would be good, multiple redundant io controllers, parrallel brain etc.) I am on a small budget and just want to build a little robot companion with high programable intelligence and all the gadgets (speech recog, sonar, passive ir, camera, gps capability etc.)
the stuff at totalrobots.com looks very good but I was wondering about any good/better alternatives...
regards Paul.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

We get this question often here. And the responses usually make a listing of all the standard sorts of micros in use in robotics. Dennis likes OOPIC, Jay likes JavaStamp (or is it Jstamp?), Brian like AVR, Earl like IsoPod(TM), a host of guys like Basic Stamps or their follow on clones. Occasionally we hear from someone who likes BrainStems. And a few folks like the ITX Mini.
If you want a brain with a big memory, you probably want the ITX Mini. Lots of memory. Familiar PC features. C++ development. But it has no useful robotic interfaces to speak of. So while it is a big "brain" it is a poor controller. So while this is possibly the best answer to your particular phrasing of the question, its not necessarily the best choice for good robotics. Curious dilemma, isn't it?
--
Randy M. Dumse
www.newmicros.com
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On Sat, 06 Dec 2003 10:52:19 -0600, Randy M. Dumse wrote:

yeah.... space the final frontier...
start at the beginning I guess, get some controller experience nano-itx might be out by the time I've done that....
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

ahhh... at the risk of belaboring the point... I'm trying to point out your interest in a microcontroller with a large memory space is probably tantamount to picking a microcontroller which is inappropriate for robotics.
Just now in the progressively growing development of micros, we are finally getting some micros with really large memory spaces. For instance, the MMC2114 has 256K bytes of Flash and 32K bytes of static RAM with a 32 bit processor. We sell a board with this processor on it, but I don't promote it much for robotics: http://www.newmicros.com/cgi-bin/store/order.cgiform=prod_detail&part=NMIN-2114&id=Ur6tgHFR8Eqgjw517m5lCeBr001L5fpm
We plan shortly to have an ARM processor based board with 128KB Flash and 64KB RAM, as well.
However, when you ask about the best brain for robotics... memory size is almost certainly not the best criteria to use. Often the better measure by far is the peripheral features included.
Imagine a new human born baby with a 50 kilo brain. Same number of arms, same number of legs, all normal strength. Suitable for survival? or freak? Such a creature wouldn't be likely to survive. The size of its brain is not a measure of its suitability. It's brain is too big for its body to drag around. And what good will all that extra brain be, if there are no outlets for its application?
Most of our complex human brains are taken up with language, communications, visual processing and abstract thinking. The part that runs the underlying machine, the lymbic brain iirc, is rather small by comparison, but widely connected to the mechanical sub-systems.
There's a lesson to be learned here by comparison.
--
Randy M. Dumse
www.newmicros.com
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On Sun, 07 Dec 2003 13:48:52 -0600, Randy M. Dumse wrote:
Yeah, thanks, If you read some of my other posts on this thread, I have come to the conclusion its a many moduled problem...
the control module and the decision making / long term memory / brain module being two main ones
in my opinion, memory is very important to an "intelligent" system to perform informed/learnt decision making (and having plenty of space for video capture...) others have other opinions no doubt it is some combination.
I reckon controller plus nano-itx is what I require.
as I said, space... its a trade off. In a heavyweight securitybot I think a mini-itx plus controller would be OK. I havent got space in the house for a heavyweight so I need to start making tradeoffs. I understand that.
The simplicity of writing familiar windows (PC BIOS) based code is attractive, raher than having to learn a new system and also have to make program sacrifices due to memory/storage shortage problems so I think controller plus nano-itx (hopefully there will be an rs232 header on the production boards...) seems a good option to me, just need to play some with controller options first.
Your example about brain size and survival is at one extreme of the scale where at the other end you have the dinosaur with huge body small brain and the neanderthal with smallish body largeish brain.. which survived in the closest to original state? (OK... cro magnon blahblahblah missing link blahblahblah, but you get my point I hope)
Survival.... well obviously in the bot world thats how much power-time you have, versus how much strength/armour/avoidance skill/ and offensive weaponry you carry. In a close to powerpoint docking station environment for a companion/securitybot I think you will get enough powertime for survival strategies. For a real military field robot, you (or I...) might want to think again about power requirements....
Personally I reckon big brain capacity small size (nano-itx) (high brain density I guess) will help any "real" robot "survive" with minimum programming effort for myself.
Also I am not building a robot to "survive" in any challenge, but rather to be the bees knees toy, if I want a tune playing, the robot can wireless network link into wherever and play whatever.... etc.
but your point about mini-itx being a poor controller was already accepted by myself, and after lots of input from the helpful people here, yourself included, I think the first hurdle I need to jump is which controller....
a cheap one....
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Video is extremely far removed from vision. Only a few systems come close to bridging the gap. And yes, they tend to use PC sized systems to process the data. Evolution springs to mind.

attractive, raher than having to learn a new system and also have

I hear this being your main driving concern.
I think you may be trivializing how much programming can be done in a give piece of memory. True, a meg isn't much memory anymore in a PC sized system, and the OOPIC and Basic Stamps often run into memory walls, but newer systems with larger memories, 32K, 64K or 128K take a very great deal of programming to fill up.
For instance, I've been doing robot interfaces on our IsoPod(TM) for a year and a half. Just in the past couple months, I've finally gotten enough program requirements to completely utilize the whole processors speed (2 CH PID, Odometry, Navigation, Ultrasonic Sonar ranging, Several Sharp sensors, AND half a dozen motion profiled RC Servos). But to date, I've never hit the top of the 64KB Flash memory available, even with the IsoMax(TM) language /operating system taking up a major part of the space.

I used survival, but what I most wanted to convey was suitability.

There you go. Suitable hardware for suitable tasks.
--
Randy M. Dumse
www.newmicros.com
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Randy M. Dumse wrote:

The problem isn't always programming space, but variable storage. For example, how big a neural network can a ServoPod support?
I'm in the process of designing a neural network that will have 25 processing elements in the first layer, each connected to over 100 inputs. That's a *lot* of weigths. And this will only be the first iteration of the design.
Eventually this layer will be expanded and networked to other such maps with various feedback.
This is one of the reasons I like hardware with a *lot* of RAM. -- D. Jay Newman http://enerd.ws/robots /
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
I have to imagine that the IsoPodX would do what you need, but it comes down to whether you want to get into microcontrollers, microcomputers, or both. If you are getting into high speed image processing, you may want something with a PCI bus to handle DMA coprocessors or some such.
What are the memory requirements of the ANN you are designing? What specificly are the inputs? What are the speed requirements?
If you plan on having a vision based system, then you are prolly talking over the capabilities of the IsoPod, at least for any significant amount of pixels.
If you are playing with 100 inputs on an ANN, need significan speed, and the inputs need to be pre-processed, you are likely talking about a microcomputer.
Mike

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Oh, I don't know. NN aren't so much my thing. I favor the State Machine approach to things. So I don't know how much RAM per node, etc., NN's take.
Anyway the ServoPod(TM) has 8KB (4K x 16) of Data Ram.
The IsoPodX(TM) has 64Kx16 Program Ram & 64Kx16 Data Ram -or- 32Kx16 Program Flash + 32Kx16 Program Ram & 64Kx16 Data Ram according to our web page. So I guess that's 128KBytes you could work with.
--
Randy M. Dumse
www.newmicros.com
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Randy M. Dumse wrote:

State machines and reactive programming do pretty similar things.
And I like them for the basics of robotic behavior.
However, for something a bit closer to cognition, I like neural networks.

A single artificial neuron can eat this much RAM for breakfast. I would estimate a more normal artificial neuron would use about 1/2 KB of RAM.

I hadn't heard of the IsoPodX. I'll have to look into it. I've always liked Forth. Around 20 years ago I implemented varients of Forth on several different machines.
I think I'm going with a a PC based architecture. I will either do this directly or by WiFi link, depending on the size of my budget. -- D. Jay Newman http://enerd.ws/robots /
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On Tue, 09 Dec 2003 09:54:13 -0600, Randy M. Dumse wrote:

Sure, the conversion of video into usable/processable data = big jobs (but very interesting work...) my idea was more video capture of suitable events for human viewing which requires ports and memory/storage

well why waste valuable time....

no, given a good command set, a lot can be done with small memory (RISC more program memory required for a task...)
but there is no denying that 1hr video footage (bitage?) at 720x576 at high/good quality compression = more memory than any controler can provide... (let alone 10hrs video footage...)

absolutely, horses for courses...
my lack of knowledge is with controllers and their command sets and features, wish i had enough cash to get one of each and compare them all myself...
anyway, thanks for info dude.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Englander wrote:

I'm curious as to how you arrive at this assumption.
The Mini-ITX platform is available now.
The Nano-ITX platform isn't. Also, the nano-itx has now additional features, though it is *said* to require less power than the Mini-ITX.
The Mini-ITX is around 7" by 7", which should fit on any bot that would fit in a house.
This is the direction I'm tending towards. I'm also planning on designing a USB I/O board (I got my eval board yesterday so I can start experimenting with it).
USB is important, because it doesn't look like the Nano-ITX platform will have serial ports. Also USB is *much* faster than the traditional serial ports. -- D. Jay Newman http://enerd.ws/robots /
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On Tue, 09 Dec 2003 23:43:55 +0000, D. Jay Newman wrote:

well... I'm still at concept - no commitment stage
A program needs to be optimised to fit in small storage space - you have to do more work.
mini-itx - yes cool, but 7x7 (18x18) quite big in small house when you think wheelbase must be about that for stable platform. (plenty of objects to negotiate, so small size = fits in smaller passageway)
Any controller only based solution requires more effort to provide a complex solution. (and also no really useful consumer i/o ports (pci and USB)
mini-itx (slightly too big for my idea, though maybe not) and nano-itx provide all the useful ports (sound, video, usb, rs232 (hopefully on some nano-itx) lan) and I know how to program windows (and linux a bit)
ok.. survival.... whats your budget... whats the track....
in my world... survival....
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Englander wrote:

Yes. However, the Nano-ITX and Mini-ITX have the same storage capacities.

I am planning on about a 12"-20" width, which fits in the smallest place needed. You can build a fairly simple bot with a 12" wheel-base which will fit pretty much everything you need.

I think they've dropped the rs232 on the Nano-ITX boards.

I'm working on the budget. The board I'll eventually use depends on what my budget is when I get get the funds. :)
For now I'm using my JStick and some auxiliary stuff, including a WiFi link to my Linux or Windows box. -- D. Jay Newman
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On Tue, 09 Dec 2003 23:43:55 +0000, D. Jay Newman wrote:

Be interested in the usb board (assume you mean usb to rs232 interface for connection to controller ports)
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Englander wrote:

Nah. There are already all sorts of converters that do that.
I want a real I/O board optimized for my use which will do what I need.
My first board planned is something that connects a JStamp to multiple small imagers, combines the data, and then sends it over to the main computer via USB. I'm hoping to be able to support about 10 16x16 imagers. -- D. Jay Newman http://enerd.ws/robots /
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
16x16 imager huh?
Sounds like an agilent optical mouse chip.
Mike

for
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
dan michaels wrote:

Ayup, I've read it. However Agilent's datasheets are quite good. -- D. Jay Newman http://enerd.ws/robots /
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Blueeyedpop wrote:

Ayup. Actually the one I'm using has 18x18 for some strange reason. I figure I can attach 8 of them to a single JStamp. -- D. Jay Newman http://enerd.ws/robots /
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.