Home Curriculum Vitae Research Service Teaching Faculty Pages
Research - Simulation
This page has been translated into Serbo-Croatian by Jovana Milutinovich. The translation may be found here: http://science.webhostinggeeks.com/stranice-za-istrazivanje hosted by http://webhostinggeeks.com/. It has also been translated into French, by Kate Bondareva. That translation may be found here: http://www.autoteiledirekt.de/science/recherche-simulation

If you did not arrive at this page from the simulation research page, you may want to return to it briefly to understand the context for this page. The current page briefly describes our simulation system, sets out the conditions under which you may use it, and gives instructions and links for downloading the program, demonstration files, documentation, and papers relating to the program.

The software we have developed actually consists of two parts: an interpreter for our scripting language, Config++, and a library of C++ classes that allow you to simulate a walking device, animate or inanimate.

Config++ is a scripting language that combines elements of Rapid Application Development (RAD) tools, JavaBeans, and hierarchical data definition languages. It is intended to serve as an embedded front-end for C++ applications; it addresses the difficulties that existing scripting languages have in dealing with hierarchical and highly interconnected components. In particular, Config++ can be used as an embedded interpreter capable of providing end-users with a flexible and uniform interface for customizing and manipulating specific applications. Hence, the Config++ interpreter can be included as part of an application and can provide a macro language for end-users of the application.

Two papers have been published that describe the software and its application to studies of robotic or animal control systems for walking. Scroll down to the end of this page to see the abstracts and links for downloading the papers as pdf files. These can be read by the Adobe Acrobat reader. You can also read more about scripting languages and our approach to them by following this link. This information is also in the documentation that comes with the downloadable file.

The software is being made available to the research community for non-commercial use. No support for the use of either the language or the Biobot classes is offered.

The Biorobotic Simulation Program

Included with the Config++ interpreter is the Biobot library, a collection of C++ classes for simulating the dynamics of multi-segment robotic devices. The classes were written primarily to aid in the design and evaluation of animal or robotic control algorithms and have been "wrapped" for use with the Config++ language so that they can be assembled and reused as desired.. Note that these classes perform dynamics simulation, meaning that objects have mass and inertia and react to applied forces, rather than kinematic simulation, which simulations trajectories but not forces.

Only a fairly narrow class of robots or animals - those that consist of segments linked together at revolute joints - are supported. There is no support for wheeled, or flying, pogo stick, or similar robots, nor for flying, swimming, or crawling animals. Contact resolution is limited to point contact between segment endpoints and a surface mesh. Within this narrow scope however, one can design arbitrary robots with various numbers of joints and segments (bipeds, quadrupeds, hexapods, etc.).

The physical parameters of a walking object to be simulated -- the size, construction, and placement of its legs and body, and the number, location, and properties of sensors and actuators (including spiking sensory neurons and simple neuromuscular models in biological simulations) are specified in separate configuration files accessed by the simulation during initialization. In this way, the system can be made to emulate a wide variety of articulated robots or arthropod animals.

Like the simulation system itself, the code for controllers that regulate the operation of the simulated body may be written in C++, but controllers interface with the simulation in such a way that users need no knowledge of the simulation code. A user can assemble and attach multiple controllers to a single robot and vary the properties of the controller input and output in order to simulate transmission delays, different sampling rates, and noise. Furthermore, controllers can influence the simulation from the level of trajectory planning to that of detailed control of individual muscles.

Simulation and Robotics Research

To run this program you need a PC with a 486 processor or better (speed of execution is the only consideration), running a version of Linux that supports ELF binaries. You also need to have X Windows installed. The precompiled program, the demos, the documentation, and the source code together will require approximately 12 Mb of free space on your hard drive.

If you wish to compile and run the source code you will also need to have the following packages installed: the FLTK user interface library (http://www.fltk.org), the Mesa graphics library (http://www.mesa3d.org), and GCC version 2.9 or greater (http://gcc.gnu.org). Compiling the source code requires approximately 20 Mb of free space.

The downloadable file contains everything you need to run the software. It is zipped and tarred. When you unzip and untar the file, you will have a main directory configpp/ and four subdirectories with the following contents:

configpp/bin - contains the compiled, executable program
configpp/demos - contains configuration files for demonstration experiments
configpp/doc - contains documentation
configpp/src - contains the source code

In addition to the compiled program itself and the source code for it, you will receive seven demonstration files that illustrate various features of the software, documentation, and pdf copies of two published papers that describe the software and its application to robotics in greater detail. The documentation briefly describes scripting languages and our particular application, the classes and variables in our software (especially the robotic simulation classes), how to add to the program, instructions for compiling the source code, and a guide to the demonstration files that are included.

Download Software

Follow this link to download the software. The file you download will have been tarred and zipped. After you have downloaded it, move the file to a directory where you want the program files to reside. From the command line, type gunzip [filename.tar.gz -- no spaces]. This should leave you with [filename.tar]. From the command line again type tar -xf [filename.tar -- again, no spaces]. This should leave you with a new directory named configpp/ in which all of the package files have been placed.

The README.txt file in that directory repeats the information about the subdirectories given previously. Further instructions for running the software are in the /configpp/doc subdirectory.

Please note that the authors of the program provide the software for non-commercial, research purposes only and as is. We make no claims as to utility or accuracy. A more complete disclaimer and license is provided with the downloaded documentation. By using the software you acknowledge that you accept the terms of the disclaimer and license.

Relevant Publications
Click on the highlighted authors' names to view the full text of the paper as an Adobe PDF document.

Reichler, J.A., and Delcomyn, F., 1998, Control algorithms for biologically inspired robots: A simulation testbed. In, R. Zobel and D. Moeller, eds, Simulation--Past, Present and Future. 12th European Simulation Multiconference, pp. 437-442.
ABSTRACT:  This paper introduces a dynamics simulator designed to aid the development of control algorithms for biologically inspired robots. We describe the simulator and a two-tier framework for control code interfacing that allows control code to be written in a standard object-oriented language (C++), but encapsulates such code to produce modular, reusable, distributed controllers with parameterizable input-output transmission properties such as delay, sampling rate, and noise.
Reichler, J.A., and Delcomyn, F., 2000, A dynamics simulator and controller testbed for biologically inspired walking robots. Int. J. Robotics Res. 19, 42-58.
ABSTRACT:  Dynamics simulation can play a critical role in the engineering of robotic control code, and there exists a variety of strategies both for building physical models and for interacting with these models. This paper presents an approach to dynamics simulation and controller interfacing for legged robots and contrasts it to existing approaches. We describe dynamics algorithms and contact resolution strategies for multi-body articulated mobile robots based on the Decoupled Tree-Structure approach, and present a novel scripting language that provides a unified framework for control code interfacing, user-interface design, and data analysis. Special emphasis is placed on facilitating the rapid integration of control algorithms written in a standard object-oriented language (C++), the production of modular, distributed, reusable controllers, and the use of parameterized signal transmission properties such as delay, sampling rate, and noise.

Copyright © 1999-2013 F. Delcomyn