AnimatLab includes contact sensors, but they only provide a binary sensor reading on whether the sensor is contacting something else in the environment.
The sense of touch is much more sophisticated than just knowing if a contact has
occurred in some large volume. Skin contains numerous small receptors that
can detect a variety of stimuli, including pressure. Each these receptors detects pressure stimuli within a surrounding field which is called the
receptive field of that sensory neuron. Typically, the receptive fields from adjacent sensory neurons overlap.
At first this may seem odd and you may be asking Wouldn't that confuse your brain because you would be getting a touch signal at multiple
locations instead of isolated to a point? In fact, as in so many other cases, nature has produced a beautiful and efficient design that
is not entirely obvious at first glance. In fact, having overlapping receptive fields like this helps improve the resolution that can be
achieved compared to just having single isolated sensory areas. The reason this is true is that the sensory network for skin uses lateral
inhibition to enhance the contrast of the sensory signal.
The network in figure 1 does not use lateral inhibition and you can see that after the secondary relay station the signal is so
diffused that it is almost useless, but the network in part B does use lateral inhibition. After the second relay this
firing rate peak at the origin of the stimulus, along with inhibition of the neighboring neurons, thus enhancing the contrast
of this signal and making it easier to discriminate two nearby touch stimuli.
Another way that touch sensors are different from the basic contact sensors is that they are sensitive to the amount of pressure.
A contact sensor will always signal 1 no matter how much force is being applied, but touch sensors can be
configured to produce different firing frequencies depending on the amount of pressure being exerted.
So pressure sensors are responsive to both the distance of the applied force from the center of a receptive field,
and the magnitude of the force. This means that a strong force applied at the edge of a receptive field can produce
the same firing frequency in a sensory neuron as a small force applied near the center of the field. Its the response
of all of the neurons interacting that allows the brain to decode where the force was applied and the relative strength.
When you select the Receptive Fields mode button on the command toolbar of the
biomechanical editor it switches into receptive field mode.
This means that when you select an object its surface is covered with green dots. These are the centers of the receptive fields.
You can select a receptive field by clicking on it with the mouse, or selecting its vertex in the drop-down list in the receptive
fields toolbar. When a field is selected a red circular gradient is drawn around it. This shows which field is selected, and also
shows you the size of the field. You can change the size of the field by using the field gain function. Their is a tab for the field
gain on the receptive fields toolbar. You can change the number of receptive fields using the receptive field distance entry box.
This determines how far away the centers of the receptive fields are located. If you decrease this number then the field centers
are recalculated and new green centers are added to the surface. If you change this value while you already have vertex-neuron pairs,
then the neurons will be paired with the closest matching new vertex. This is because if you change the size of the object, or of the
field distance it will cause the vertices to be recalculated. This can mean that some vertices may
disappear or move. The vertex-neuron
pair will still exist, but the vertex the neuron is associated with may shift in this case.
This gain is responsible for converting a force that is applied anywhere on the surface of the object, into a perceived force
for an individual receptive field. It defines a bell shaped scaling factor that depends on the distance from the center of the
field. The further away the force is from the center of this field, the less of the force that will be
perceived for that field.
The amplitude of the gain will usually be left at 1. This means that a force applied at the center of the field will perceive
all of that force. If you raise the amplitude above 1, then you will be amplifying the force signal, while lowering it will attenuate
the signal. Most of the time you will be changing the width of the gain. This controls the radius of the sensory field, and along with
the receptive field distance, determines the amount of overlap between receptive fields. When you change the width, the size of the
color gradient on the surface of the object changes as well.
Another major property of the receptive field is the current gain. When a force is applied to the body it will first determine how far
away it is from the center of receptive field. The force value will be multiplied by a scaling factor determined by the gain function.
If the force is applied directly over the center of the field then the gain factor will be 1 and all of that force will be
and used in the current gain. The further away the force is from the center of that field the more of a reduction of the magnitude
of the force that is perceived for use in the current gain.
The current gain determines how much current is injected into any neurons associated with that receptive field. It converts
perceived force to current. So if a force of 10 Newton's is perceived then in this case it will inject 10 na of current into any
neurons associated with this receptive field. Remember that perceived force is the actual force scaled by the distance from the
center of that field. So even if a force of 10 Newton's is actually being applied, if that force is located far away from the
receptive field it may not perceive any force at all. This allows the receptive field to be sensitive to both the distance
of the force from the center of the field, and the magnitude of the force that is applied. Also, you can control
how much each receptive field overlaps by controlling the field distance and size.
For touch sensations to be transduced into neural firing you must associate a receptive field with one or more neurons.
This is a many-to-many relationship. You can have one receptive field stimulate one hundred neurons, or a hundred receptive
fields map to one neuron, or as will be more common, one receptive field can stimulate one sensory neuron.
you configure this by clicking on a receptive field to select it, and then you select a neuron from the drop-down list and hit add.
This adds a new neuron-vertex pair to the list. You can also remove a selected pair, or clear all pairs. Once you add a pair
this means that any current generated for that receptive field will be injected into that sensory neuron.
The major problem with the touch system is that the physics engine is always trying to minimize the number of
contact points between objects interacting in the virtual world. If tried to have forces for every point of contact it would be enormously expensive computationally.
So what does that mean for us. Unfortuanetly, it is a large problem. Lets say you set a cup down on the palm of your hand.
When this happens ALL of the sensory neurons underneath the cup would detect contacts and the pressure of the cup.
The lateral inhibition network would then be used to detect the edge of the cup, and you could use that to try and recognize
the type of object sitting on your hand. In the virtual world, though, when you set a cup on some skin it will usually generate
at most 4 contacts and no more. So all of the sensory neurons inside the area and most of them along the edge will not be stimulated.
This will have large, and unfortuante consequences for trying to use touch sensory information for shape recognition and for determining
the area that is being touched. We have plans to address this issue, but they are still in the pipeline.
This project was supported by: