Our main objective in this project was to investigate the abilities of a simple neural network to control arm movements.


Our main objective in this project was to investigate the abilities of a simple neural network to control arm movements. A neural network was chosen for this task because inside our brain, motor cortex networks control voluntary movements. In our research we hope to find a true model for solving the human motion problem.


We acquired extensive knowledge about handling neural networks.

In both projects, We used a simulator that models the behavior of a neural network containing about 135 neural cells. We consider our framework to be a Liquid State Machine, which does not require convergence to a stable state. Instead it practically has an infinite number of states. Our LSM is equipped with a closed loop dopamine feedback mechanism, which enables to apply the learning process to the Neural Microcircuit and improves the results obtained by the LSM.

The network’s inputs consist of patterns represented by time dependant spikes. The information about past inputs is stored in the networks response, and it is sufficient in order for the system to recognize a certain output as a response to a specific input. This is done by a memory-less readout, containing artificial neurons.


Our final results show the following system capabilities:

1. We created an arm model
2. We were able to create life-like arm movements
3. We tested different input coding, in addition to several networks and readouts
4. It is too early in the research for the arm to generate entire movements on it’s own


Some background about the way our neural network works:

The Learning Process in our Neural Network:
The network contains a reservoir of neural cells, each connected to many other cells by synapses. The synapse strength or weight is dynamic. Changing the synaptic weight will eventually bring the system to learn how to recognize specific patterns. The learning is executed in a closed loop feedback system.



The Input:
The input of the system is the x,y coordinates of the arm end point, at the beginning and the end of the movement. We tested different methods to code the input into the input neurons of the system. The readout decodes the information flowing out of the network into torques of movement, The movement path is then calculated by formulas, bringing it to a minimum in energy consuming and maximilyzing it’s smoothness. Finally, the system’s input and output are compared to find the error.

Dopamine Feedback
a mathematical function that depends on the error determines how much dopamine will be added to the system.In neural networks dopamine is used the change the strength of the synapse.



Information Flow in the Network
A number of input channels (n) are connected into n input neurons, which are then connected to the network neurons. The system’s output is the information about each of the network neurons, and at what times did they fire an action potential. The output is then processed by the readout. The readout learns to assign an output to a certain input, thus we get a separation function to distinguish between different inputs.



Project overview:

The project was divided into three main objectives, each required: planning ahead and setting our objective,
construction of the actual system and integrating all of the segments together.
These are the stages of our advancement:

  1. Modeling a simple arm configuration, and making its movement life-like
  2. Translating spatial input into “neuron language”
  3. Merging our neural network control system into the arm system


1. Modeling A Simple Arm Configuration , And Making Its Movement Life-Like:


We used a simple two-joint arm model to simulate the human arm. The model contains the masses, lengths and joint angles. We also assumed the movement is conducted on a horizontal plane – so that no gravitational torques are added. A Jacobean matrix converts x and y into ø1 and ø2 for any time t. the data is then put into differential movement equation, calculating the torques needed to create such a motion. The result is a vector of location change over time. Finally, for the system to evolve using the feedback mechanism, we calculate the error between the optimal and the calculated energy consuming and minimum jerks.


In order for our research to be as life-like as possible, we used studies that show the properties of human movements. It appears that every movement the human body conducts follow some rules:

  • MINIMUM JERK: jerk is the rate of acceleration change. Minimizing it makes our movement smooth
  • minimum energy consuming

These rules can be expressed empirically by the equations:


This type of movement has some identifying characteristics:

  • The tip always moves in a straight line
  • The velocity profile over time is bell-shaped
  • The torques operating on each segment of the arm have a typical shape, resembling a sinusoidal wave (for different end points, the torques amplitude changes)



2Translating Spatial Input Into” Neuron Language”:

We experimented with several methods to convert the input data into appropriate neuron input:


We concluded spatial coding is the most effective way. This method is sufficiently rich in information. It also resembles the way true biological networks operate. (middle graph): We coded the torque into 80 input neuron. Each neuron marks a different intensity of torque needed. At the right graph we can see a spatial coding method, in which the higher the amplitude is, the more neurons fire.

3. Merging Our Neural Network Control System Into The Arm System :

We searched for the optimal network to perform our task. We quickly realized a simple 135 neuron network won’t do. We upgraded into a network of 720 neurons in an array of 3*3*80.


Randomly connected network gave the above result- which was insufficient.

So we created a “wired-network” :


This time, every group of neurons represents a different intensity of input. Specific input neurons are connected into different areas in the network- like different cortexes in the brain. The results were satisfying:


The output created our required torques image. But no learning ability appeared. So another method of connecting stronger-input neurons into more neurons in the network gave the following result:


Summing the number of neurons that fired in time t give us the torques needed to generate a specific arm movement.