Here's a link to the Robotic Brain Stem that was recently completed and upgraded. The Brain Stem handles the nerve sending ability for robotic motor and various motion control functions. It uses a protected interface that communicates between the 5-volt level of the BASIC Stamp and the 3.3-volt level of the Propeller chip. A serial software interface joins processors and enables inter-board communications. This is the next step in filling the big brain.
Adding the Brain Base to the Big Brain
Another step has recently unfolded in the quest to build and fill the Big Brain. Now completed is the first hardware Brain Base. This part of the brain has two Propeller boards interfaced in common.
Fill the Brain project is still open for filling ideas. Robotic Brain Filler will be considered both in hardware and software. As you can see in previous posts, the construction is well under way. What do you want to put into your robotic brain?
Please continue posting. This is very interesting. Don't let the lack of posting discourage you - I just don't have anything relevant to add. You are way ahead of me.
Humanoido, Please continue posting. This is very interesting. Don't let the lack of posting discourage you - I just don't have anything relevant to add. You are way ahead of me.
Thanks Whit, your encouragement and words of wisdom are always appreciated. Thanks to all those who posted comments on filling the brain. It's not too late to add more filler. This fulfillment project has moved into the next phase which is the actual construction of the brain. It's going slow but every week there's something new to show. I should have something new to post soon. Thanks Whit for following along.
A Working Robot Brain Blob! Watch the Brain Guts Grow from a Blob
into Something Bigger and Bigger! (probably
a bigger blob...)
The growing guts of the Brain Blob
now have 5 boards connected.
Stay tuned as this project continues
to grow with added boards/
processors.
The connection of the Brain Stem to the two-boards Brain Base along with the interfacing of one additional Brain Board brings the number of processor boards to five and the number of Brain Cores to 33. This is now a working 33-core brain. The photo shows the first connection made with all boards to achieve the first working brain in this special configuration. The special configuration is a blob.
The Next Brain Blob Addition Update: I have now modified six more Propeller Proto Boards to add 48 more cores to the Brain Blob. I only need to add the interfacing and the solderless breadboards. This will bring up the 33 cores to 81 cores/computers. Not too shabby for some robotical brain computing. Modifications include the power circuits to reduce power loads and soldering in the pin sockets. It's a lot of soldering work and so I've apportioned it across several days. I now wonder if the power LED can be rewired into a port LED but that's another issue.
I didn't say much about the software but now is a good time. Tomorrow is Christmas day and I plan to have a nice holiday break and napkin out some new code for the Brain Blob. This Blobbing software has a purpose, which currently is to keep the cogs as open as possible. I don't want any stuff taking up cogs that would reduce the number of processors. The cogs will be kept clean and open primarily for the Blobbing code.
Master/Slave Concept The Master is the exception in cog usage. It's loaded. This approach takes one master and fills it with TV, I/O, mouse, keyboard, Blobber, and addtl. code. The slaves are kept open for the highest processor density.
Serial Communications is custom with code smaller than Simple Serial (no relation there). No name on this yet, just calling it Blobber software. The push is for the size. Only a few lines of code keep it ultra simple which opens up all the cogs for programming.
Operating System
Will we see an operating system for the Blob? Yes. The system is already developed and will be installed once the maximum hardware density is completed. It will have some very nice surprises.
Languages
Mainly there's two languages used so far, SPIN and PBASIC. PBASIC is embedded in the Brain Stem for motor mobility functions and compatibility while SPIN is for higher level thinking. The BB is open to PASM for enhancements.
Self Learning Algorithm
I would like to begin development of a not too complex self learning code, but isn't this what we all want and are waiting for?
Open Source
Just a note mentioning the open source status of this project. I'm hoping things will spin off into the obex with the MIT licensing for everyone's use. This includes the hardware and software and documentation for further development.
Proto Board Brain Surgery Technique to Reduce Power Consumption
Propeller Proto Board
mod to enable a low
power mode.
You can easily modify your Parallax Propeller Proto Board to reduce its
power draw for longer lasting robotics performance using batteries. The goal
is to reduce the power of twenty boards so they can run portable, a single board
or series of boards set on your robot platform or a Parallax Boe-Bot for example.
The technique works just as well with one board. Follow this link (see the
concluding information on page 2) to see how power reduction is handled. In
the Brain Blob, there are over 20 boards. To eliminate the use of a tether,
Parallax Proto Boards will be modified for power consumption reduction,
bringing it to within battery operation range.
More Assembly Details: Today was the day for putting hot melted solder on pin sockets. For starters, the brain boards each have one pin socket array, dual socket rows, for a total of 20 wire receptacles. Now completed are 25 arrays and 250 solder joints. The socket array has pin estate for clock propagation, parallel loading, serial Rx and Tx, and 8-bit parallel.
I'm really interested in how this project will turn out, keep it up humanoido!
My two cents:
The Brian's Brain cellular automaton (http://en.wikipedia.org/wiki/Brian%27s_Brain) is an interesting brain model. Even though the only action potentials that can be sent are excitatory, and each neuron only has an 8-cell (moore) neighborhood, "waves" of action potentials will grow chaotically from a disturbance in the medium. Some method of creating inhibitory action potentials (perhaps utilizing extra cell states?), as well as input/output methods (easily done by changing certain cell states according to the states of the robot's sensors), may cause interesting behavior. Some sort of inhibitory action potentials are obviously necessary to prevent the automaton from becoming saturated with chaotic activity, which is what Brian's Brain will default to if given semi-random sensor input. (The same thing occurs in BEAM technology, such as in bicore- and microcore- based neural/nervous networks; specialized circuits are often added to prevent this).
Also, I would leave "low-level" behaviors, or behaviors which we can emulate well (eg. the features of the cmucam2) to dedicated hardware, leaving the ANN to perform higher cortical functions that are difficult to emulate with non-biomorphic software.
I'm really interested in how this project will turn out, keep it up humanoido! My two cents:
The Brian's Brain cellular automaton (http://en.wikipedia.org/wiki/Brian%27s_Brain) is an interesting brain model. Even though the only action potentials that can be sent are excitatory, and each neuron only has an 8-cell (moore) neighborhood, "waves" of action potentials will grow chaotically from a disturbance in the medium. Some method of creating inhibitory action potentials (perhaps utilizing extra cell states?), as well as input/output methods (easily done by changing certain cell states according to the states of the robot's sensors), may cause interesting behavior. Some sort of inhibitory action potentials are obviously necessary to prevent the automaton from becoming saturated with chaotic activity, which is what Brian's Brain will default to if given semi-random sensor input. (The same thing occurs in BEAM technology, such as in bicore- and microcore- based neural/nervous networks; specialized circuits are often added to prevent this).
Also, I would leave "low-level" behaviors, or behaviors which we can emulate well (eg. the features of the cmucam2) to dedicated hardware, leaving the ANN to perform higher cortical functions that are difficult to emulate with non-biomorphic software.
Jonlink0, excellent comments and suggestions! I'm also following your thread over here. You will undoubtedly be interested in the brain being developed here as it can serve to run your version of brain software. You mentioned extra cell states and this is something that can be created in mass using a developed algorithm. This brain will also have more processors than any other robotics brain to date, at least from a known hobby perspective, so that's a tip for getting started. Mass processors will be idea for neural net neuron simulations if that's one goal.
I think the big push after the Brain Blob hardware is completed and operational, is software that has a degree of self reasoning power. It doesn't need to be an Einstein but some intelligence greater than a bug would be appreciated. Memory needs to be added, as so far the sum total is reference eeprom at 20 x 32KRAM. Propeller can access PC and the PC has TeraBytes of operating storage. Another new option is to use a server to provide wireless data storage. Web access can provide a knowledge base to work with.
Brain Guts Data Light How to Convert the Power LED into a Data LED
(using the Parallax Propeller Proto Board)
The objective here is to gain a brain data light by rewiring the power light from the disabled power circuit. Unfortunately, it initially did not appear simple as this is a surface mount component along with its supporting resistor and soldering directly to the component ends would prove futile. In fact, even seeing the item or how it was wired looked impossible until a microscope was used. The microscope revealed a whole new world!
Traces appeared from the LED leading to a resistor. The LED took shape. Remarkably the resistor had a tiny number imprinted on it - a remarkable feat. The span of the microscope image revealed a way to connect wires. As seen in the image, while Vss can be picked off the array of multiple holes, the resistor leads to a tiny hole near the power switch by the number two. Simply scrape off the board coating at this point and solder a wirewrap wire, as a standard Parallax jumper connector breadboard wire is too thick for use. Solder this thin wire to a connection point, then adjoin a full size jumper wire and lead it to the solderless breadboard which in turn connects to the appropriate Propeller chip pin.
Microscope image showing LED & resistor combination on a Propeller Proto Board. Note holes near number 2 and Vss. Route 2 to the appropriate Propeller pin to gain a Data LED converted from the original power LED circuit. Pick off Vss and the circuit is complete. Recycling the power LED and resistor pair enables display of various brain computational data and activity using the board's existing components.
Brain Definitions as Applied to the Brain Blob The list of Brain components, sections, corners and
crevices will be categorized, labeled, named &
renamed as this project develops.
Brain Guts - the interior of the brain, operating components, internals, specific wiring, modules, parts, sections, even code can be included
Brain Stem - the section of brain, lowermost nerve center, interfaces motor functions. The Brain Stem includes one Parallax Propeller Proto Board and one BASIC Stamp Board of Education
Brain Base - the bottom part of the brain that connect to the Brain Stem. Includes two Parallax Propeller Proto Boards
Brain Span - the next three Parallax Propeller Proto Boards located above the Brain Base
The Brain Span includes the first three boards located above the Brain Base which is located above the Brain Stem. The top most board of the Brain Span is board number seven. The Brain Span brings the Brain Blob up to a total of seven boards with 49 computing cores.
Parallax Propeller Proto Boards are fitted with tiny solderless breadboards. This enables wiring and rewiring, testing and various evolutionary changes in the circuit design, inclusive of necessary brain rewiring as brain evolution takes place.
Attach breadboards (available from Parallax) by peeling back the paper covering the sticky tape surface. To keep Proto Boards reusable without breadboards, afix some rolled tape as it's more easily removed.
Design: every Proto Board will have one
small solderless breadboard for testing,
wiring and rewiring. Beadboards are best
for designs that undergo an evolutionary
process throughout their life span.
My 2 cents, you do not need a big brain. You need a big network with many specialized processor nodes. The time it takes to perform a particular task and the routes required to perfume the tasks are stored on powerful servers somewhere in the ether. After some time, you'll have data for making well-informed decisions. Robots can share their experiences decreasing their learning curve of their successors.
Open Source Project
Just a reminder - this is the open source brain project. You're welcome to come on in and post your comments, data, information, ideas, thoughts, etc. throughout continuing development or just follow along and watch as we create possibly the biggest and most useful robot Propeller brain in the world.
It would appear that this project is in a hardware construction phase, and yes, it is, however, there's plenty of software coding going on in the background. The biggest challenge is choosing which design to use because there are many perfect designs useful for the project. Maybe we'll just try designs and test as we go along.
My 2 cents, you do not need a big brain. You need a big network with many specialized processor nodes. The time it takes to perform a particular task and the routes required to perfume the tasks are stored on powerful servers somewhere in the ether. After some time, you'll have data for making well-informed decisions. Robots can share their experiences decreasing their learning curve of their successors.
Hi Mike! I had thought about that too, i.e. the brain is a kind of entity capable of carrying out and acting upon information received from some giant server. A brain is still needed in terms of its physical sense with input/output to carry out operations, control pins, and complete actions such as hearing, vision, voice recognition, speech, etc. Robots sharing experiences is a good one!
I believe you should use one specialized processors for vision, one for hearing, one for voice recognition, and one for speech. Abstracting these tasks makes the whole much more extensible and it allows a device to contain only the nodes needed to fulfill a particular task. Plus it would be easier to place the specialized nodes anywhere on the device.
Out of curiosity, why use a full or half duplex bus over say an 8-bit or 16-bit parallel bus? I'd think that the serial bus would bottleneck data transfer. How are you gong to take advantage of the 21 separate EEPROMs to produce 127MB?
Out of curiosity, why use a full or half duplex bus over say an 8-bit or 16-bit parallel bus? I'd think that the serial bus would bottleneck data transfer. How are you gong to take advantage of the 21 separate EEPROMs to produce 127MB?
Mike, the Brain Stem is using a BASIC Stamp which is capable of doing one thing at one time. So for it, full duplex would be meaningless. Half duplex is an ideal match because it's dedicated to motor mobility functions which happen relatively slowly anyway. The Propellers run at full duplex, which do the upper thinking and higher brain data transfers at higher speeds, hence the hybrid terminology. The master can treat 21 EEPROMs across the slaves as one distributed EEPROM equal to the sum of the individual parts.
I believe you should use one specialized processors for vision, one for hearing, one for voice recognition, and one for speech. Abstracting these tasks makes the whole much more extensible and it allows a device to contain only the nodes needed to fulfill a particular task. Plus it would be easier to place the specialized nodes anywhere on the device.
Exactly. Processors can be tasked out to do these specific jobs. Generally in the OBEX we see apps that run in specific cogs. Dedicating cogs/processors to these specific areas of the brain is entirely feasible. The human brain is tasked out in a similar fashion, i.e. a place for vision, motor functions, speech, memory, etc.
No offense, I just disagree with your approach. A statement like
The master can treat 21 EEPROMs across the slaves as one distributed EEPROM equal to the sum of the individual parts.
blows my mind. Why would you put yourself in a situation where you had to share 21 EEPROMS where each EEPROM exists on a separate board with a propriety I2C connected to the processor. I can't wrap my mind around the logic it would take to coordinate such memory access. It seems counter productive.
No offense, I just disagree with your approach. A statement like blows my mind. Why would you put yourself in a situation where you had to share 21 EEPROMS where each EEPROM exists on a separate board with a propriety I2C connected to the processor. I can't wrap my mind around the logic it would take to coordinate such memory access. It seems counter productive.
You are thinking about something else. It's really simple because it's highly specific. The master can assign indexing to each prop board to define its location which gets stored into eeprom. Slaves and Master can access this global eeprom memory storage location to determine who's who and where they're located. These character maps are drawn out and stored in eeprom, then globally accessed. It's also simple to write a routine to pass variables and store them in specific eeproms. Access is by asking the slave for the information. The IC2 connection is transparently local to any requests and of no global concern.
I think you're underestimating the complexity. I see code executing in a COG on every Prop that deals with bus arbitration and some kind of packet protocol. You'll need a way to process and organize the disparate EEPROM data. What kind of bus do you envision? Full-Duplex could be a little tricky. Half-Duplex?
Comments
Another step has recently unfolded in the quest to build and fill the Big Brain. Now completed is the first hardware Brain Base. This part of the brain has two Propeller boards interfaced in common.
Please continue posting. This is very interesting. Don't let the lack of posting discourage you - I just don't have anything relevant to add. You are way ahead of me.
Watch the Brain Guts Grow from a Blob
into Something Bigger and Bigger! (probably
a bigger blob...)
The growing guts of the Brain Blob
now have 5 boards connected.
Stay tuned as this project continues
to grow with added boards/
processors.
The connection of the Brain Stem to the two-boards Brain Base along with the interfacing of one additional Brain Board brings the number of processor boards to five and the number of Brain Cores to 33. This is now a working 33-core brain. The photo shows the first connection made with all boards to achieve the first working brain in this special configuration. The special configuration is a blob.
Update: I have now modified six more Propeller Proto Boards to add 48 more cores to the Brain Blob. I only need to add the interfacing and the solderless breadboards. This will bring up the 33 cores to 81 cores/computers. Not too shabby for some robotical brain computing. Modifications include the power circuits to reduce power loads and soldering in the pin sockets. It's a lot of soldering work and so I've apportioned it across several days. I now wonder if the power LED can be rewired into a port LED but that's another issue.
I didn't say much about the software but now is a good time. Tomorrow is Christmas day and I plan to have a nice holiday break and napkin out some new code for the Brain Blob. This Blobbing software has a purpose, which currently is to keep the cogs as open as possible. I don't want any stuff taking up cogs that would reduce the number of processors. The cogs will be kept clean and open primarily for the Blobbing code.
Master/Slave Concept
The Master is the exception in cog usage. It's loaded. This approach takes one master and fills it with TV, I/O, mouse, keyboard, Blobber, and addtl. code. The slaves are kept open for the highest processor density.
Serial Communications
is custom with code smaller than Simple Serial (no relation there). No name on this yet, just calling it Blobber software. The push is for the size. Only a few lines of code keep it ultra simple which opens up all the cogs for programming.
Operating System
Will we see an operating system for the Blob? Yes. The system is already developed and will be installed once the maximum hardware density is completed. It will have some very nice surprises.
Languages
Mainly there's two languages used so far, SPIN and PBASIC. PBASIC is embedded in the Brain Stem for motor mobility functions and compatibility while SPIN is for higher level thinking. The BB is open to PASM for enhancements.
Self Learning Algorithm
I would like to begin development of a not too complex self learning code, but isn't this what we all want and are waiting for?
Just a note mentioning the open source status of this project. I'm hoping things will spin off into the obex with the MIT licensing for everyone's use. This includes the hardware and software and documentation for further development.
to Reduce Power Consumption
Propeller Proto Board
mod to enable a low
power mode.
You can easily modify your Parallax Propeller Proto Board to reduce its
power draw for longer lasting robotics performance using batteries. The goal
is to reduce the power of twenty boards so they can run portable, a single board
or series of boards set on your robot platform or a Parallax Boe-Bot for example.
The technique works just as well with one board. Follow this link (see the
concluding information on page 2) to see how power reduction is handled. In
the Brain Blob, there are over 20 boards. To eliminate the use of a tether,
Parallax Proto Boards will be modified for power consumption reduction,
bringing it to within battery operation range.
More Assembly Details: Today was the day for putting hot melted solder on pin sockets. For starters, the brain boards each have one pin socket array, dual socket rows, for a total of 20 wire receptacles. Now completed are 25 arrays and 250 solder joints. The socket array has pin estate for clock propagation, parallel loading, serial Rx and Tx, and 8-bit parallel.
Brain Pin In Connector Array
Vdd
Vss
24
25
26
27
28
29
30
31
My two cents:
The Brian's Brain cellular automaton (http://en.wikipedia.org/wiki/Brian%27s_Brain) is an interesting brain model. Even though the only action potentials that can be sent are excitatory, and each neuron only has an 8-cell (moore) neighborhood, "waves" of action potentials will grow chaotically from a disturbance in the medium. Some method of creating inhibitory action potentials (perhaps utilizing extra cell states?), as well as input/output methods (easily done by changing certain cell states according to the states of the robot's sensors), may cause interesting behavior. Some sort of inhibitory action potentials are obviously necessary to prevent the automaton from becoming saturated with chaotic activity, which is what Brian's Brain will default to if given semi-random sensor input. (The same thing occurs in BEAM technology, such as in bicore- and microcore- based neural/nervous networks; specialized circuits are often added to prevent this).
Also, I would leave "low-level" behaviors, or behaviors which we can emulate well (eg. the features of the cmucam2) to dedicated hardware, leaving the ANN to perform higher cortical functions that are difficult to emulate with non-biomorphic software.
How to Convert the Power LED into a Data LED
(using the Parallax Propeller Proto Board)
The objective here is to gain a brain data light by rewiring the power light from the disabled power circuit. Unfortunately, it initially did not appear simple as this is a surface mount component along with its supporting resistor and soldering directly to the component ends would prove futile. In fact, even seeing the item or how it was wired looked impossible until a microscope was used. The microscope revealed a whole new world!
Traces appeared from the LED leading to a resistor. The LED took shape. Remarkably the resistor had a tiny number imprinted on it - a remarkable feat. The span of the microscope image revealed a way to connect wires. As seen in the image, while Vss can be picked off the array of multiple holes, the resistor leads to a tiny hole near the power switch by the number two. Simply scrape off the board coating at this point and solder a wirewrap wire, as a standard Parallax jumper connector breadboard wire is too thick for use. Solder this thin wire to a connection point, then adjoin a full size jumper wire and lead it to the solderless breadboard which in turn connects to the appropriate Propeller chip pin.
Microscope image showing LED & resistor combination on a Propeller Proto Board.
Note holes near number 2 and Vss. Route 2 to the appropriate Propeller pin to gain a
Data LED converted from the original power LED circuit. Pick off Vss and the circuit is complete. Recycling the power LED and resistor pair enables display of various brain computational data and activity using the board's existing components.
The list of Brain components, sections, corners and
crevices will be categorized, labeled, named &
renamed as this project develops.
Brain Guts - the interior of the brain, operating components, internals, specific wiring, modules, parts, sections, even code can be included
Brain Stem - the section of brain, lowermost nerve center, interfaces motor functions. The Brain Stem includes one Parallax Propeller Proto Board and one BASIC Stamp Board of Education
Brain Base - the bottom part of the brain that connect to the Brain Stem. Includes two Parallax Propeller Proto Boards
Brain Span - the next three Parallax Propeller Proto Boards located above the Brain Base
The jumper leads were created for injecting power to the boards for testing and programming.
The Brain Span includes the first three boards located above the Brain Base which is located above the Brain Stem. The top most board of the Brain Span is board number seven. The Brain Span brings the Brain Blob up to a total of seven boards with 49 computing cores.
Seen here, the Brain Span is under construction.
Parallax Propeller Proto Boards are fitted with tiny solderless breadboards. This enables wiring and rewiring, testing and various evolutionary changes in the circuit design, inclusive of necessary brain rewiring as brain evolution takes place.
Attach breadboards (available from Parallax) by peeling back the paper covering the sticky tape surface. To keep Proto Boards reusable without breadboards, afix some rolled tape as it's more easily removed.
Design: every Proto Board will have one
small solderless breadboard for testing,
wiring and rewiring. Beadboards are best
for designs that undergo an evolutionary
process throughout their life span.
Just a reminder - this is the open source brain project. You're welcome to come on in and post your comments, data, information, ideas, thoughts, etc. throughout continuing development or just follow along and watch as we create possibly the biggest and most useful robot Propeller brain in the world.
It would appear that this project is in a hardware construction phase, and yes, it is, however, there's plenty of software coding going on in the background. The biggest challenge is choosing which design to use because there are many perfect designs useful for the project. Maybe we'll just try designs and test as we go along.
Preliminary Specs
21 boards
1 Basic Stamp 2 Module
20 Propeller Chips
20 Parallax Proto Boards
21 EEPROMs
...20x64K+1x2K=130,000 KBYTES
... approx 127MB
1 Board of Education
161 Cores with 80MHz Clock
160 cores at 20 MIPS = 3,200 MIPS
Expands to 1000x
320 Counters
US Serial Communication
Breadboards
External Power Source
1-Data Light per Board
Hybrid 1-Wire Half Duplex and
2-Wire Interface Full Duplex
BUS Design