One of the most important tools for testing the control software of autonomous robots is simulation.
The Multi-Robot-Simulation-Framework (MuRoSimF) provides an easy way to generate interactive simulations for the motion and sensing capabilities of wheeled, biped and multi-legged robots.
Unlike most existing robot simulation packages MuRoSimF is not limited to predefined simulation algorithms (e.g. for dynamics or sensor simulation).
Instead of this it provides a flexible and modular way to combine simulation models of the robots and simulation algorithms.
By this it is possible to generate simulations which are scalable in their level of physical accuracy, level of detail and computational complexity, thus enabling the user to create simulations which are adequate to a given task.
Using MuRoSimF several simulations for mobile robots including wheeled, biped and fourlegged devices have been created.
MuRoSimF provides a range of exchangeable algorithms for motion simulation (kinematic, simplified dynamics, full multy-body-system dynamics), collision detection and sensor simulation (including cameras, laser range finders and inertial sensors).
More modules, e.g. for detailed simulation of servo motors can be added to the framework easily.
MuRoSimF enables the testing of whole teams of robots.
Up to 10 humanoid robots (21 DOF), each equipped with one camera (20 FPS) were simulated in real-time on a standard laptop computer using the kinematical motion simulation.
Further information on the details of MuRoSimF can be found in the publications section of this page.
An overview can be obtained from the MuRoSimF-poster of the 2007 RoboCup Symposium.
Content of this page
Modules currently available within MuRoSimF
Videos created with MuRoSimF based simulations
Modules of MuRoSimF
MuRoSimF provides the transparent exchange of simulation algorithms thus enabling the creation of simulations which are adequate to a given task.
In the following sections some of the algorithms provided currently are presented.
The differente modules for motion simulation are used to calculate a robot's motion within the environment as well as the motion of the robot's single limbs relative to the robot's base.
Three modes for efficient motion simulation are provided:
- Kinematic motion simulation is provided for biped robots.
When moving, the direct kinematic is calculated with the additional constraint, that the standing foot stays where it is.
The decision on which foot is the standing foot is made by evaluating the current posture of the robot.
- A simplified dynamics simulation uses direct kinematics to calculate the relative motion of the robot's joints and sums up all resulting external forces (like contact forces or gravitation) at the robot's center of mass.
The motion of the center of mass then is calculated using dynamics equations.
- The simulation of the robot's multy-body-systems (MBS) dynamics calculates the motion of the robot's base considering given accelerations of the joints.
As MuRoSimF allows the transparent exchange of simulation algorithms, full MBS dynamics considering the forces exerted by each servo can be added to the simulation if an even higher level of accuracy is required.
The performance of the kinesmatical and the simplified dynamics simulation can be compared in a video (divx).
In this video the standig foot in the kinematical simulation is marked red.
The simplified dynamics simulation yields results which are comparable, but not identic, to the motions of a real robot.
This can be seen by videos of a real robot getting up and a simulated robot performing the same motion.
Collision Detection and -Handling
To allow for interaction of the simulated robots with the environment and each other, modules for collision detection and handling are provided.
Currently collision detection is based on primitve shapes like sphere, box, cylinder and plane.
For a more realistic simulation other shapes (including meshes) can be added transparently without affecting other modules.
To speed up collision detection it is possible to use an additional bounding volume hierarchy for each simulated robot.
By this the number of collision tests per simulation time-step can be reduced greatly.
Experiments have shown a reduction to less then 10% compared to testing each body against each other.
The high performance of the collision detection can be seen in a video (divx): the collision of 10 humanoid robots and one wheeled robot (altogether 209 distinct bodies) could be simulated in real-time with 500 fps for motion simulation (simplified dynamics) and collision detection.
Collision handling is based on a soft collision model (that is, one that allows to penetrate colliding bodies slightly).
This model is used to calculate the forces resulting from each collision.
MuRoSimF provides several modules for sensor simulation.
These include cameras, laser-range-finders and inertial sensors.
The simulation of the camera images is based on OpenGL-rendering.
In an additional post-processing step for the simulated images it is possible to simulate the distortion caused by the camera's lense.
Simulation of scalar sensors (including inertial sensors) is based on a sub-framework which allows the transparent reuse and recombination of several algorithms.
These algorithms include the generation of a sensor's (physical) input value, the sensor's output value (which may be distorted due to noise, saturation or other effects) and the AD-converters value (which may suffer from saturation and a limited resolution).
Some of the videos linked here have been referenced in the text above, too.
Recent Videos (10/2007)
- Interactive testing of the behavior for the slalom-challenge from the RoboCup Humanoid League (divx).
- Video of the real robot getting up(divx) and the same motion in the simulation (divx).
- Comparison of kinematic (left robot) and simplified dynamics simulation of humanoid robot walking motions (divx).
- Performace-Test of collision detection: The collision of 10 humanoid robots and one wheeled robot (altogether 209 distinct bodies) could be simulated in real-time with 500 fps for motion simulation (simplified dynamics) and collision detection (divx).
- Simulation of robot falling down and getting up again (divx).
- Simulation of two robots playing penalty-kick (divx).