Evolving shapes/en

From RoboWiki
Revision as of 21:56, 22 January 2007 by Juraj (talk | contribs)
Jump to: navigation, search

CVS repository:

TODO...

Issues...


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

EO implementation description

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
Vzduch.JPG


Tuned version of particles flying through propeller with source code: source 2
Rotor2.jpg

Notes:
  • 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
Rotor3.JPG

Notes:
  • 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
Rotor4.JPG

Notes:
  • Missing lines in Triangular Mesh is just visualization bug

Simulation without graphical output - source 6

Parameters:
  • 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:

MachineDebug timeOptimized time
1.6GHz Linux13.42s13.02s
2x2.16GHz WinXP43.68s7.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));



--- --- --- English: Evolving shapes/en/en Slovensky: Evolving shapes/en/sk --- --- ---
--- --- --- --- --- RoboWiki: (c) 2006 Robotika.sk --- --- --- --- ---