Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - jon

Pages: [1]
Off Topic / Revised Robot Information
« on: January 02, 2011, 11:18:10 AM »
Hello All!

First, I must apologize, I have uploaded so many pdfs that it's probably almost impossible to find relevant information, so I'll just upload the most important ones here to give a general overview. If you want more info, you can see the pdfs I posted elsewhere.

I thought I might as well post an overview here while I'm at it, reflecting some of the ideas and help I've gotten recently (thanks!)

The purpose: To combine several ALife technologies into a learning robot.
The technologies it is based on are cellular neural networks and genetic algorithms.

A cellular neural network, or a neural network where neurons are only connected to neighboring neurons (in this case where each neuron is a cell in a square lattice, connected to the 8 cells surrounding it) is going to be the control mechanism. The relationship between neighboring neurons/cells can be either disconnected, excitatory, or inhibitory. The state of a neuron can be firing, refractory, or ready.  A neuron fires if the number of excitatory inputs from neighboring firing cells is greater than the number if inhibitory inputs from those firing cells. All connections have a weight of one. Specialized neurons can be set up which are constantly firing, which fire only when activated by sensors, or whose output goes directly to the robot motors. In such a network, if all neurons were connected to all their neighbors with only excitatory connections, and there were no specialized neurons, then the network would emulate the Brian's Brain cellular automaton.

The exact number and type of neurons and number and type of connections is determined by a genetic algorithm. The population is two; one currently being executed in the robot, and one stored in memory. The one being executed is a mutation of the one stored in memory. If the one currently being executed has a higher fitness than the one stored in memory, it replaces the one in memory, otherwise, it is mutated again, and the cycle repeats.

Fitness is determined by the total amount of pain and pleasure received by the robot. In the beginning, pleasure (fitness) will be determined by an on-board accelerometer; the further the robot moves, the higher the pleasure is and the more fit the current neural network is. Once this works, more sensors can be added for light, obstacles, etc... to evolve more complex behaviors.


First (and most important): Software

See ( ) for an easy-to-understand overview. (no math :D)

See ( ) for a similarly simple robot implementation.

See ( ) and ( ) for examples of similar robots.

See ( ) , ( ) , the attached "brainwaves" pdf file and the attached "exampleCNN" jpg picture as well as the overview website above to see the basis for the design of the robot's "brain."

See the attached "brainsim" pdf file for a detailed description on how the human brain is theorized to work.

Biology / CNS papers
« on: December 26, 2010, 09:15:17 AM »
CNS papers

(BTW "perikaryon" in the rotifer paper is an unusual word for soma)

Off Topic / Hello!
« on: December 26, 2010, 08:36:40 AM »

I am a CS/biology double major with some experience in both neuroscience and robotics. By experience I mean making a boebot obstacle-avoiding light-seeking robot and taking a neuroscience class but hey, a little experience is better than nothing.

I've been known to have a complex way of speaking, so just let me know if you don't get what I'm saying, I often use unnecessarily big/esoteric words/jargon.

Off Topic / Artificial Neural Network Robot
« on: December 26, 2010, 01:32:49 AM »
OK, I'm working  on building an irl biomorphic robot based using a cellular automaton simulating a neural network using a genetic algorithm to adjust the weights (design) of the network to facilitate learning. THAT was a mouthful

Here's a cut'n'paste from another forum which does not allow you to post in-progress projects, so here ya go:

Hello all,

This is a robot I've been planning for a while, but before I get started, I would like your input.

Since this is a complex project, it will progress in stages.
The software will initially consist of a 2-neuron braitenberg vehicle, learning optimal network weights through the use of a genetic algorithm. The genetic algorithm will test each neural network in real time by letting it control the robot, taking perhaps up to half an hour per generation as it tests each neural network individually for 5 minutes, evaluating fitness based on easily-defined measurements (such as an accelerometer, for example. see ). No processing will be done outside of the robot, such as on a supervising external computer. Once this basic scaffolding is complete, it should be able to be scaled up to a goal of about 30 neurons and numerous sensors, therefore achieving the same level of intelligence as a rotifer (a pond-dwelling multicellular protozoan). Because of this method of learning, a recurrent neural network is a viable option.

The current hardware I envision is a solarbotics scoutwalker3 base, a sumovore bs2 brainboard add-on, and either the spin stamp or the stamp stack 2p microcontroller ( ) . Although the spin stamp is a faster multicore processor, the ss2p has upgradeable eeprom (necessary for large ANNs) and is in-system programmable.

Here are some questions:

Which is better for an artificial neural network? The stamp stack 2p or the spin stamp?

Is a cellular automaton-based artificial neural network, such as brian's brain, a viable option? Rotifer CNS neurons are often bipolar, so the cellular automaton settings could be restricted down to a von-neumann neighborhood without much loss of realism. Would using a von-neumann neighborhood be less resource-intensive than a moore-neighborhood-based cellular automaton? What other changes to Brian's Brain, if any, would you recommend?

I want to be as realistic as possible since this is a project I am going to see through, so please provide constructive criticism. Thank you!


This was posted in a robotics forum, so I'll explain the non-alife-related jargon:

The spinstamp is a microprocessor based off of the propeller 9-core 32-bit 160mips robotics-oriented processor, programmable in C, Basic, Spin and assembly. See

A link describing the less-powerful bs2pbb is provided. It features more memory and is in-system-programmable, a bonus for an ANN which takes up a lot of memory and could be hooked up as a slave to a better processor, like the propeller. provides the scoutwalker3 robot, which features a 4-neuron ANN and the ability to be hooked up to a parallax microcontroller (robotics processors are called a microcontroller in robojargon.)

After posting this I found an interesting cellular automata program which allows you to create your own CA rules.
 ( ) I was thinking I could use this to make a more advanced version of Brian's brain which more closely simulates an actual neural net.

A big problem with using a CA, though, is: how am I going to adjust "weights"? What will the weights even be in the CA... dynamic rule sets? Any ideas?

Anyway, happy holidays!!!!!

Pages: [1]