Software:AnimatLab

From HandWiki
AnimatLab
Developer(s)David W. Cofer
Gennady Cymbalyuk
James Reid
Ying Zhu
William J. Heitler
Donald H. Edwards
Stable release
2.1.5 / October 5, 2016; 7 years ago (2016-10-05)[1]
Written inC++, VB.NET
Operating systemWindows
TypeNeuromechanics
Websitewww.animatlab.com

AnimatLab is an open-source[citation needed] neuromechanical simulation tool that allows authors to easily build and test biomechanical models and the neural networks that control them to produce behaviors. Users can construct neural models of varied level of details, 3D mechanical models of triangle meshes, and use muscles, motors, receptive fields, stretch sensors and other transducers to interface the two systems. Experiments can be run in which various stimuli are applied and data is recorded, making it a useful tool for computational neuroscience. The software can also be used to model biomimetic robotic systems.

Motivation

Neuromechanical simulation enables investigators to explore the dynamic relationships between the brain, the body and the world in ways that are difficult or impossible through experiment alone. This is done by producing biologically realistic models of the neural networks that controls behavior, while also simulating the physics that controls the environment in which an animal is situated. Interactions with the simulated world can then be fed back to the virtual nervous system using models of sensory systems. This provides feedback similar to what the real animal would encounter, and makes it possible to close the sensory-motor feedback loop to study the dynamic relationship between nervous function and behavior. This relationship is crucial to understanding how nervous systems work.[2]

History

The application was initially developed at Georgia State University under NSF grant #0641326.[3] Version 1 of AnimatLab was released in 2010. Work has continued on the application and a second version was released in June 2013.

Functionality

AnimatLab allows users to develop models of varied levels of details due to the types of models available. Neurons may be simple firing rate models, integrate-and-fire models, or Hodgkin–Huxley models. Plugins for other neuron models can be written and used. Hill-type muscles, motors, or servos can be used to actuate joints. Adapters between neurons and actuators are used to generate forces. Adapters between mechanical components (joints, body segments, muscles, etc.) provide feedback to the control system. Stimuli, such as voltage clamps, current clamps, and velocity clamps (for joints) can be added to design experiments. Data can be recorded from different component of the system, and viewed in graphs or exported as a comma separated values file for easy analysis along with a GUI for interaction.

Neural modeling

A variety of biological neuron models are available for use. The Hodgkin–Huxley model, both single- and multi-compartment integrate-and-fire models, and various abstracted firing-rate models are available.[4] This is a relevant feature because the purpose of one's model and its complexity decide which features of neural behavior are important to simulate.[5]

Network construction is graphical, with neurons dragged and dropped into a network and synapses drawn between them. When a synapse is drawn, the user specifies what type to use. Both spiking and non-spiking chemical synapses, as well as electrical synapses, are available. Both short-term (through facilitation) and long term (Hebbian) learning mechanisms are available, greatly increasing the capability of the nervous systems constructed.

Rigid body modeling

Body segments are modeled as rigid bodies drawn as triangle meshes with uniform mass density.[4] Meshes can be selected from a set of primitives (cube, ellipsoid, cone, etc.) or imported from third-party software such as Maya or Blender. Physics are simulated with the Vortex engine. Users can specify separate collision and graphical meshes for a rigid body, greatly reducing simulation time. In addition, material properties and the interaction between materials can be specified, allowing different restitution, coefficient of friction, etc. within the simulation.

Muscle modeling

A Hill-type muscle model modified according to Shadmehr and Wise[6] can be used for actuation. Muscles are controlled by placing a voltage-tension adapter between a motor neuron and a muscle. Muscles also have stiffness and damping properties, as well as length-tension relationships that govern their behavior. Muscles can are placed to act on muscle attachment bodies in the mechanical simulation, which then apply the muscle tension force to the other bodies in the simulation.

Sensory modeling

Adapters may be placed to convert rigid body measurements to neural activity, much like how voltage-tension adapters are used to activate muscles. These may be joint angles or velocities, rigid body forces or accelerations, or behavioral states (e.g. hunger).

In addition to these scalar inputs, contact fields may be specified on rigid bodies, which then provide pressure feedback to the system. This functionality has been used for skin-like sensing [4] and to detect leg loading in walking structures.[7]

Stimulus types

Stimuli can be applied to mechanical and neural objects in simulation for experimentation. These include current and voltage clamps, as well as velocity clamps for joints between rigid bodies.

Graph types

Data can be output in the form of line graphs and two-dimensional surfaces. Line graphs are useful for most data types, including neural and synaptic output, as well as body and muscle dynamics. Surface plots are useful for outputting activation on contact fields. Both of these can be output as comma separated values files, allowing the user to use other software such as Matlab or Excel for quantitative analysis.

Research performed with AnimatLab

Many academic projects have used AnimatLab to build neuromechanical models and explore behavior. These include:

  • Shaking of a wet cat paw[8][9]
  • Locust jump and flight control [10][11][12]
  • Crayfish walking[13]
  • Cockroach walking and turning[7]

References

  1. "AnimatLab > Download". http://animatlab.com/Download. 
  2. Chiel, H. J.; Beer, R. D. (1997). "The brain has a body: adaptive behavior emerges from interactions of nervous system, body and environment" (in en). Trends in Neurosciences 20 (12): 553–7. doi:10.1016/s0166-2236(97)01149-1. PMID 9416664. https://www.sciencedirect.com/science/article/abs/pii/S0166223697011491. 
  3. "National Science Foundation Awards" (in en). 2010-01-28. https://www.nsf.gov/awardsearch/showAward?AWD_ID=0641326&HistoricalAwards=false. 
  4. 4.0 4.1 4.2 Cofer, D. W.; Cymbalyuk, G.; Reid, J.; Zhu, Y.; Heitler, W.; Edwards, D.H. (2010). "AnimatLab: A 3-D graphics environment for neuromechanical simulations" (in en). Journal of Neuroscience Methods 187 (2): 280–288. doi:10.1016/j.jneumeth.2010.01.005. PMID 20074588. https://www.sciencedirect.com/science/article/abs/pii/S0165027010000087. 
  5. Izhikevich, E. M. (2004). "Which model to use for cortical spiking neurons" (in en). IEEE Transactions on Neural Networks 15 (5): 1063–70. doi:10.1109/TNN.2004.832719. PMID 15484883. https://ieeexplore.ieee.org/document/1333071. 
  6. Shadmehr, Reza; Wise, Steven P. (28 Oct 2004) (in en), Computational neurobiology of reaching and pointing: a foundation for motor learning, Cambridge, Massachusetts: MIT Press, http://mitpress.mit.edu/books/computational-neurobiology-reaching-and-pointing 
  7. 7.0 7.1 Szczecinski, N. S. Massively distributed neuromorphic control for legged robots modeled after insect stepping. Master's Thesis. Case Western Reserve University, 2013.
  8. Klishko A., Cofer D. W., Edwards D. H., Prilutsky B. Extremely high paw acceleration during paw shake in the cat: a mechanism revealed by computer simulations. AbstrAm Phys Soc Meeting A38.00007; 2008a.
  9. Klishko A., Prilutsky B., Cofer D. W., Cymbalyuk G., Edwards D. H. Interaction of CPG, spinal reflexes and hindlimb properties in cat paw shake: a computer simulation study. Neuroscience Meeting Planner Online, Program No. 375.12. Society for Neuroscience; 2008b.
  10. Cofer, D. W. (2009). Neuromechanical Analysis of the Locust Jump (Ph.D. dissertation). Available from digital archive database. (Article No. 1056)
  11. Cofer, D. W.; Cymbalyuk, G.; Heitler, W. J.; Edwards, D.H.. "Neuromechanical simulation of the locust jump". J Exp Biol 2010 (213): 1060–1068. doi:10.1242/jeb.034678. PMC 2837733. https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2837733/. 
  12. Cofer, D. W.; Cymbalyuk, G.; Heitler, W. J.; Edwards, D. H. (2010). "Control of tumbling during the locust jump" (in en). J Exp Biol 213 (19): 3378–87. doi:10.1242/jeb.046367. PMID 20833932. PMC 2936971. https://journals.biologists.com/jeb/article/213/19/3378/9773/Control-of-tumbling-during-the-locust-jump. 
  13. Rinehart M. D., Belanger J. H. Biologically realistic limb coordination during multi-legged walking in the absence of central connections between legs. In: Society for Neuroscience Annual Meeting; 2009.

External links