Shop OBEX P1 Docs P2 Docs Learn Events
Fill the Big Brain - Page 2 — Parallax Forums

Fill the Big Brain

2456759

Comments

  • HumanoidoHumanoido Posts: 5,770
    edited 2010-12-21 00:52
    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.
    150 x 87 - 5K
  • HumanoidoHumanoido Posts: 5,770
    edited 2010-12-21 01:04
    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.
    166 x 119 - 7K
  • HumanoidoHumanoido Posts: 5,770
    edited 2010-12-21 01:15
    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?
    192 x 700 - 18K
  • WhitWhit Posts: 4,191
    edited 2010-12-23 07:00
    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.
  • HumanoidoHumanoido Posts: 5,770
    edited 2010-12-24 08:38
    Whit wrote: »
    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.
  • HumanoidoHumanoido Posts: 5,770
    edited 2010-12-24 08:46
    A Working Robot Brain Blob!
    Watch the Brain Guts Grow from a Blob
    into Something Bigger and Bigger! (probably
    a bigger blob...)

    attachment.php?attachmentid=76621&d=1293210359
    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.
    224 x 171 - 48K
    bb.jpg 48.3K
  • HumanoidoHumanoido Posts: 5,770
    edited 2010-12-24 09:44
    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.
  • HumanoidoHumanoido Posts: 5,770
    edited 2010-12-24 10:00
    Brain Blob Software (Blobber Code)

    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?
  • HumanoidoHumanoido Posts: 5,770
    edited 2010-12-24 10:15
    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.
  • HumanoidoHumanoido Posts: 5,770
    edited 2010-12-25 00:42
    Proto Board Brain Surgery Technique
    to Reduce Power Consumption


    attachment.php?attachmentid=76645&stc=1&thumb=1&d=1293275447
    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.
    630 x 518 - 62K
    leg.jpg 61.6K
  • HumanoidoHumanoido Posts: 5,770
    edited 2010-12-25 02:51
    Soldering Brain Pins

    attachment.php?attachmentid=76644&d=1293274713
    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
    394 x 271 - 23K
  • jonlink0jonlink0 Posts: 11
    edited 2010-12-25 13:46
    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.
  • HumanoidoHumanoido Posts: 5,770
    edited 2010-12-26 23:32
    jonlink0 wrote: »
    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.
  • HumanoidoHumanoido Posts: 5,770
    edited 2010-12-27 03:54
    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.
  • HumanoidoHumanoido Posts: 5,770
    edited 2010-12-27 04:28
    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.

    attachment.php?attachmentid=76689&d=1293452432
    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.
    584 x 387 - 249K
  • HumanoidoHumanoido Posts: 5,770
    edited 2010-12-27 04:50
    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
  • HumanoidoHumanoido Posts: 5,770
    edited 2010-12-27 04:56
    Jumper Leads

    The jumper leads were created for injecting power to the boards for testing and programming.

    attachment.php?attachmentid=76691&d=1293454552
    294 x 224 - 21K
  • HumanoidoHumanoido Posts: 5,770
    edited 2010-12-27 05:25
    Brain Span Construction

    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.

    attachment.php?attachmentid=76692&d=1293456048
    Seen here, the Brain Span is under construction.
    339 x 453 - 48K
  • HumanoidoHumanoido Posts: 5,770
    edited 2010-12-27 06:03
    Brain Blobatory Breadboard Retrofit

    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.

    attachment.php?attachmentid=76696&d=1293458605
    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.
    280 x 133 - 12K
  • Mike GMike G Posts: 2,702
    edited 2010-12-27 06:09
    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.
  • HumanoidoHumanoido Posts: 5,770
    edited 2010-12-27 06:14
    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.
  • HumanoidoHumanoido Posts: 5,770
    edited 2010-12-27 06:19
    Mike G wrote: »
    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!
  • Mike GMike G Posts: 2,702
    edited 2010-12-27 06:31
    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.
  • HumanoidoHumanoido Posts: 5,770
    edited 2010-12-27 06:40
    Brain Blob Preliminary Specs

    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
  • Mike GMike G Posts: 2,702
    edited 2010-12-27 07:36
    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?
  • HumanoidoHumanoido Posts: 5,770
    edited 2010-12-27 09:54
    Mike G wrote: »
    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.
  • HumanoidoHumanoido Posts: 5,770
    edited 2010-12-27 09:59
    Mike G wrote: »
    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.
  • Mike GMike G Posts: 2,702
    edited 2010-12-27 10:53
    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.
  • HumanoidoHumanoido Posts: 5,770
    edited 2010-12-27 12:33
    Mike G wrote: »
    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.
  • Mike GMike G Posts: 2,702
    edited 2010-12-27 16:11
    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?
This discussion has been closed.