Evolving shapes/en
Contents
Literature & Links
Mark Ebner - Evolutionary design [1]
Kenny Erleben - Multibody dynamics [2]
BREVE Simulator - Breve Documentation [3]
ParadisEO - ParadisEO Documentation - slides [4]
Funes, Pollack - Computer Evolution of Buildable Objects [5]
Piyush Kumar - Triangle++ - Delaunay triangulation code [6]
wikipedia - Delaunay triangulation [7]
Parallel Computing Section
Introduction to PVM programming
PVM short description - [8]
ParadisEO is using either MPI (LAM-MPI) or PVM.
LAM-MPI is mostly for UNIX platforms - difficult to install on Windows. PVM should run everywhere.
New MPI implementation - OPEN MPI
Evolutionary algorithms
Eiben's Evolutionary Computing Hitchhiker's guide to Evolutionary Algorithms
Genotype - in slovak lang.: reprezentacia subjektu evolucie (jedinca) vo forme vhodnej na operatory krizenia, mutacie, na evaluaciu fitness a na ine ?
ODE examples and comments
Open Dynamics Engine
Newton Dynamics
Red point = point (1, 0, 0) - along x-axis
Blue point = point (0, 1, 0) - along y-axis
Z-axis goes up
WARNING: use only float (not double) with TriMesh
First version of air particles flying through propeller
Tuned version of particles flying through propeller with source code: source 2
- Friction set to 0, dInfinity value is causing unrealistic and strange behaviour
- Density of particles is just approximatelly 4 times smaller than that of propeller
- Size of particles is big (10 times bigger than thickness of blade of propeller)
To be able to use complex rotation for next TriMesh example, a study of Quaternions is inevitable.
Applications of Quaternions
Same example as above but with Triangular Mesh representation - at the moment very simple - source 3
- For 2 consecutive simple rotation, 2 conversion from simple rotational matrix to quaternion was used, followed by quaternion multiplication and conversion back to complex rotational matrix
- Geom of blades is represented by 0-thin triangle, but with defined mass (based on the volume of blade with 0.001-thickness
- Blades are visible only from the 'front' - from the side of impacting particles
Rotor with complex TriMesh blades - source 4
- Missing lines in Triangular Mesh is just visualization bug
Simulation without graphical output - source 6
- Total number of particles: 1000
- Particle size: 0.000 001
- Tiangle side length (in TriMesh): 0.05
- Density of rotor: 1.0
- Density of particle: 10 000 000.0
- Initial force: 0.000 1
- Time step: 0.01
Running time:
Machine | Debug time | Optimized time |
---|---|---|
1.6GHz Linux | 13.42s | 13.02s |
2x2.16GHz WinXP | 43.68s | 7.77s |
Angular velocity of rotor after last step of simulation: 1.20865
IMPORTANT: Particle size >= TimeStep x Particle Velocity, otherwise particle can fly through TriMesh, as it is "jumping" in steps along its trajectory, it is not continuous flight. Therefore it is not feasible to use too tiny particles, as it would require step size too small or velocity too small, or both, in any case the simulation would be terribly slow.
Code for random generator initialization:
#include <ctime> time_t tim; dRandSetSeet ((unsigned long) time (&tim));
--- --- --- --- --- RoboWiki: (c) 2006 Robotika.sk --- --- --- --- ---