Difference between revisions of "TODO.../en"

From RoboWiki
Jump to: navigation, search
 
Line 21: Line 21:
  
  
<h2>Towards speeding up simulation and using correct mass distribution</h2>
+
<h2>Towards speeding up simulation and using correct mass distribution - <strong>OBSOLETE!</strong></h2>
 
''Particles are not flying, just 'hitting' the blades of propeller<br/>''
 
''Particles are not flying, just 'hitting' the blades of propeller<br/>''
 
''Precalculating all needed information before simulation''
 
''Precalculating all needed information before simulation''

Latest revision as of 18:47, 27 January 2007

TODO

  • Add friction into Propeller joint - force against momentum
  • Replace SetMassBox with SetMassSphere with position in correct centre of mass of blade and with radius proportional to area of all triangles multiplied by thickness or blade - constant 0.01
  • Use triangulation function from openCV
  • Install OpenCV on WinXP
  • Start particles only in 2 quadrants - not good... change back or use other model
  • Other model: create particles in place of collision (see below)
  • Genom:height of vertices (float string) - enabled/disabled vertices (bitstring)
  • Make EO alg for rotor shape evolution
  • Make ParadisEO alg for rotor shape evolution
  • Test PradisEO alg on at least 2 nodes with pvm
  • ...

Rays are useful for things like visibility testing, determining the path of projectiles or light rays, and for object placement.


Towards speeding up simulation and using correct mass distribution - OBSOLETE!

Particles are not flying, just 'hitting' the blades of propeller
Precalculating all needed information before simulation


Random particle creation point

  1. Select random triangle from the 3Mesh - proportionally to its size of in-xz-plane-projected area
    probability of selecting particular triangle can be precalculated before simulation loop starts
  2. Project selected triangle into xz plane - <math>\triangle</math> ABC
  3. Calculate coordinates of centre of gravity X of <math>\triangle</math> ABC
  4. Choose 1 triangle out of <math>\triangle</math> ABX, <math>\triangle</math> AXC, <math>\triangle</math> XBC
  5. Calculate another centre of gravity of selected triangle
  6. Repeat 3 previous steps until distance from center of gravity to nearest vertex is less than some epsilon
  7. The final point - translate back to 3D and to relative coordinates of the whole body - rotor

Centre of Mass of blade

  1. Calculate coordinates of centre of gravity and area of each triangle
  2. Repeat until only 1 point - center of gravity of all triangles remains in set
  3. Take 2 triangles (centers of gravity) and calculate their composite center of gravity and respective force (in area units)

Summary
Before simulation starts, create following structures and fill it with information

  • Area of projection of each triangle
  • Centre of gravity of each triangle
  • Recursively all centres of gravity of all mini-triangles - Estimated count of points = 3depth of recursion x (count of Δ)
  • anything else?

In every simulation step, with roullete wheel /or SUS/<ref>SUS</ref> select one or more triangles and then select random integers from [0, 3depth of recursion) and create sphere objects in that point with velocity vector [0.0, SPEED, 0.0].

After each step destroy all particles

Advantages of above method:

  • Particles are used only for collisions, so they don't live outside of collision
  • Particles don't hit edges of triangles
  • Particles are not hit by blade "from the back", thus blade is not slowed down by unwanted collisions
  • Mass distribution in blade participates in shape evaluation (together with momentum and added joint friction)
  • Overall speed up

Disadvantages of above method:

  • some extra memory required and precomputation time

Notes

<references/>



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