Robotsystem of the Robot Group Leipzig: /scratch.local/georg/lpzrobots-0.3/ode_robots/ Directory Reference

- Main Page
- Namespaces
- Classes
- Files
- Directories
- Examples

- Search for |

# ode_robots Directory Reference

The ode_robots directory provides all the stuff necessary for simulations with the physics engine ODE (http://ode.org). More...

## Directories
directory | agents
directory | motors
| Additional motors complementing the offer of ODE.

directory | obstacles
| Obstacles in our simulations are different kinds of boundaries, so called arenas or playgrounds.

directory | ode_patches
| Patches for ODE and drawstuff from the Leipzig Robot Group.

directory | osg
| The osg directory provides the osg primitves of which robots and obstacles are assembled and further helpful things dealing with the visualization in OSG.

directory | robots
| The robots of our simuated worlds "live" in this directory.

directory | sensors
| All sensors should be placed in this folder.

directory | simulations
| The simulations directory contains the different simulations originated from our work on the selforganization issue.

directory | textures
| The textures directory contains the different textures used in the simulations.

directory | utils
## Files
file | odeconfig.cpp
file | odeconfig.h [code]
file | ode_robots/README
| This file is used for the doxygen documentation.

file | simulation.cpp
file | simulation.h [code]

## Detailed Description

The ode_robots directory provides all the stuff necessary for simulations with the physics engine ODE (http://ode.org).

Simulation Environment

The class lpzrobots::OdeConfig holds the configurable parameters of the simulation environment like lpzrobots::OdeConfig::gravity, lpzrobots::OdeConfig::simStepSize, lpzrobots::OdeConfig::realTimeFactor and so on.
In the class lpzrobots::Simulation you find the functions to overload like lpzrobots::Simulation::start and lpzrobots::Simulation::end which have to be overloaded by all simulations. Addionally you can overload functions like lpzrobots::Simulation::config for configuration pusposes, lpzrobots::Simulation::command to react on keystrokes, and some more.

Simulation objects and more

The things inside the simulation environment (and some additional stuff) is inside the following subdirectories

- simulations : ready to use simulations
- agents: structure to build a "complete" agent (consisting of a controller, a robot and the wiring in between), different wirings
- robots: our robots,creatures, vehicles or whatever you would like to call them are in this directory
- osg primitives: many classes for the osg and ode integration. It provides Primitives and Joints of which robots and obstacles can be assembled, and further helpful things to deal with OSG
- motors: a few additional motors (PID servos)
- senors: up to now an infrared-sensor and a sensorbank is available
- obstacles: passive obstacles like different kinds of playgrounds, a sphere and usage of terrains
- utils: all the little things that make life easier
- ode_patches: our patches for ODE 0.5 and drawstuff which are not used anymore
- textures: our textures used in the simulations and a program for calculating heigtmaps

How to Start Your Own Simulation

To start a new project copy one of the "template" directories in the simulations folder. Please note that you have to delete the CVS dirctory inside your copy before you add it to the cvs repository. Or just use the createNewSimulation.sh script in the simulations directory:
`$> ./createNewSimulation.sh template_dir newsimname`
where `template_dir` is the template directory you wish to copy and `newsimname` is the name of the new simulation you wish to create.

Now you can adjust the simulation as needed. A simple make (and maybe a make depend before the make) in the simulation directory should be enough. In case your simulation code consists of other files than main.cpp, please add them to FILES in the Makefile in the simulation directory.

If you insert a new file to the simulation framework, such as a new obstacle, robot or similar you DON'T need to do anything. Every *.cpp file in the directories specified in Makefile.conf is compiled and included in the library libode_robots.a. In case you add a new directory with source files, which should be included in the lib, then add it to Makefile.conf.