From RoboWiki
Jump to: navigation, search

<multilang> @en 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
  • ...

Towards speeding up simulation and using correct mass distribution

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)

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 methof:

  • some extra memory required and precomputation time


<references/> @sk Issues.../sk </multilang>

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