A biomechanical organism is essentially a
structure that also has a
neural network. In addition to being able to build a body plan you can also create a
neural network control system using
the neural network editor. You can open the
biomechanical and
neural network editors by double-clicking the appropriate nodes beneath the organism node. These nodes are shown in
figure 1.
|
Figure 1. How to open the editors for the organism. |
you can have as many organisms as you want in your simulation. However, usually what you will want is a population of individual organisms. For example, if you want to look at emergent behavior in
an ant colony then you will probably want 100 individual ants, but you do not necessarily want to have to build 100 ants over and over again. AnimatLab has a couple of features that can help with this.
First, you can make a clone of an existing organism. This makes a complete duplicate of the organism at that time. From that point on the two organisms are different though. Changes to one will not
be carried over into the other one. So you could use this to make 100 clones of your ant once you got it to a place you wanted. However, if you then decided you wanted to change something like
rebuilding part of the neural controller you would have to do this for
all 100 clones. A way around this is to use Copies. When you make a copy of an organism it serves as the base template.
The only configuration files are the ones for the original object. When the simulation is run it simply loads those files in for each copy and changes certain key properties like the location
and name of the organism. Now if you make 100 copies you can make changes to the original template organism and all of the copies have the same changes. This will only work though if you really
do want all of the ants to have the exact same neural network and body plan. This might be a problem if you wanted different castes of ants, like workers, fighters, queen, nurse, etc.., where each
of these was slightly different. In this case your best bet would be to create templates for each caste type, and then make copies of the caste templates.
If you have parts that are close together in a structure, especially if they are coupled directly by a joint, can become over-constrained or interfere with each other. In the most basic
case where you have two rigid bodies that are connected by a joint, the joint applies constraints on the movement of the two parts, but if the parts are close together there may
be additional collision constraints applied as well. This causes that joint to be over-constrained and can make it become unstable. To get around this problem all body parts that are
directly connected by a joint have the collision detection between those two parts disabled. If another part hits one of them then the collision is still detected, it is only if those
two parts attempt to collide that the collision is ignored. This way only the joint constraints are applied.
Another situation where collisions can cause problems is when you have a part inside of another part. For example, to build a simulation of a grasshopper leg it is necessary to have a
small movable part inside the femur of each rear leg. These two parts are not directly coupled by a joint, and so their collisions are not automatically disabled. What do you do in this
situation? As soon as the simulation starts it will essentially blow up because you have parts inside of other parts so the physics engine will try and push them apart against their joint
constraints causing a big mess. To get around this problem AnimatLab provides the ability to disable collisions between any two parts within an organism. When the organism is selected
click on the Collision Exclusion property to open the Collision Exclusion dialog shown in figure 2. Then select the two parts you want to exclude in the drop downs and hit the add button.
To remove an exclusion pair select that pair and hit the remove button. When you are done hit the ok button, or to ignore your changes hit the cancel button.
|
Figure 2. Collision Exclusion Dialog. |
Adding Biomechanical Organisms
The easiest way to add an organism is to hit the Add Organism button,
, on the toolbar. In addition, you can also right-click on the Structures node
of the project workspace tree to show the pop-up menu. You can then select the same add items in the pop-up menu. You can remove any organism by selecting it in the project workspace and then
hit the Remove from Workspace button,
, in the toolbar
Organism Properties
X Location of this organism.
Default value: 0 cm
Acceptable range: Any value
Y Location of this organism.
Default value: 0 cm
Acceptable range: Any value
Z Location of this organism.
Default value: 0 cm
Acceptable range: Any value
A read-only property that tells the filename for the neural network editor.
A read-only property that tells the filename for the body plan editor.
Opens the collision exclusion dialog. See the section on
Collision Exclusions.
Opens the microcontroller dialog. This area is still under development. It will be used to allow AnimatLab to be a general control framework for robotic systems.
The name of this organism.
Default value: Organims_?
Acceptable range: Any string