Search
Login
  • Register
AnimatLab AnimatLab Menu
  • Getting Started
  • Home
  • Community
    • Forum
    • Animat Warehouse
    • Wiki
    • Contributers
      • David Cofer
  • Download
    • AnimatLab 2.0
    • AnimatLab Windows SDK
    • AnimatLab Linux SDK
      • SDK on an NVIDIA Jetson TK1
    • AnimatLab 1.0
  • Store
  • Help
    • Documentation
      • Project Workspace
        • Environment
        • Organism
        • Structure
        • Simulation
        • Playback Speed
      • Neural Network Editor
        • Neural Simulation Plug-ins
        • Node Properties
        • Link Properties
        • Relabel
        • Relabel Selected
        • Select By Type
      • Biomechanical Editor
        • Biomechanical Body Parts
        • Food Sources
        • Joints
        • Receptive Fields
        • Material Types
        • Bullet Physics Engine
      • Robotics
        • Robot Interfaces
        • Robot IO Controllers
          • Dynamixel USB
          • Firmata
            • Arbotix Firmata
          • XBee Commander
          • Remote Control
        • Remote Controls
          • XBee Commander
          • AnimatSerial
      • Simulator
      • Data Tools
        • Line Chart
        • Scripted Simulation Window
      • Stimuli
        • Neural Stimuli
        • Mechanical Stimuli
        • General Stimuli
      • References
    • Tutorials
      • Using AnimatLab
        • AnimatLab Scripting
        • Biomechanical Editor
        • Line Charts
        • Neural Network Editor
        • Relabeling Items
        • User Interface V2
        • User Interface V1
      • Examples
        • Belly Flopper
        • Crayfish
        • Eating Frog
        • Hexapod Robot
        • Human Stretch Reflex
        • Limb Stiffness
        • Locust
        • Predator-Prey
        • Stretch Reflex
        • Touch Receptors
      • Body Parts
        • Hinge
        • Motorized Joints
        • Muscle
        • Spring
        • Stretch Receptor
        • Meshes
        • Constraint Relaxation
      • Data Tools
        • Line Charts
        • Scripted Simulation Window
      • Mechanical Tests
        • Balancing Forces
        • Pendulum
        • Springs
      • Neural Networks
        • Bistable Firing Rate Neuron
        • Classical Conditioning
        • Compartmental Model
        • Coordination
        • Endogenous Bursters
        • Electrical Synapses
        • Firing Rate Gated Synapse
        • Firing Rate Modulatory Synapse
        • Firing Rate Normal Synapse
        • Integrate And Fire Neurons
        • Lateral Inhibition
        • Long-Term Potentiation
        • Network Oscillators
        • Non-Spiking Chemical Synapses
        • Normal Firing Rate Neuron
        • Property Control
        • Random Firing Rate Neuron
        • Spiking Chemical Synapses
        • Voltage Dependent Synapses
      • Sensory Systems
        • Contact Sensors
        • Eating
        • Joint Angle
        • Odor Tracking
        • Touch Receptive Fields
      • Stimuli
        • Adding Current Stimuli
        • Enabler Stimulus
        • Force Stimulus
        • Motor Velocity
        • Position Clamp
        • Property Control
      • SDK
        • AnimatLab Scripting
        • Neural Module
        • Physics Module
        • Program Modules
        • SDK Basics
      • Robotics
        • Robot Arm Tutorials
          • Robot Arm Description
          • Robot Arm Simulation Setup
          • Robot Arm Control Part 1
          • Robot Arm Control Part 2
          • Robot Arm Position and Velocity Control
          • Robot Arm Joystick Control
        • PhantomX Hexapod Tutorials
          • PhantomX Hexapod Preview
    • SDK Help
HelpDocumentationProject WorkspaceOrganism
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.

Collision Exclusion

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
X Location of this organism.
Default value: 0 cm
Acceptable range: Any value

Y
Y Location of this organism.
Default value: 0 cm
Acceptable range: Any value

Z
Z Location of this organism.
Default value: 0 cm
Acceptable range: Any value

neural network editor
A read-only property that tells the filename for the neural network editor.

Body Plan
A read-only property that tells the filename for the body plan editor.

Collision Exclusion
Opens the collision exclusion dialog. See the section on Collision Exclusions.

Microcontrollers
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.

Name
The name of this organism.
Default value: Organims_?
Acceptable range: Any string
If you like AnimatLab and find it useful, then please donate in order to help support it. Thanks for your support!
  • Environment
    Allows the user to configure the environment of a virtual world of AnimatLab
  • Organism
    Describes biomechanical organsims in the biomechanical and neuromechanical simulations in AnimatLab
  • Structure
    Describes structures in the biomechanical and neuromechanical simulations in AnimatLab
  • Simulation
    Biomechanical and neural network simulations in AnimatLab.
  • Playback Speed
    Control the playback of biomechanical and neuromechanical simulations in AnimatLab



This project was supported by:


National Science Foundation

exploratory grant (GM065762)


Terms Of Use | Privacy Statement
Copyright 2011 by NeuroRobotic Technologies LLC
Open Source ASP.NET CMS by DNN