# TODO...

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

<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
• ...

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 - [itex]\triangle[/itex] ABC
3. Calculate coordinates of centre of gravity X of [itex]\triangle[/itex] ABC
4. Choose 1 triangle out of [itex]\triangle[/itex] ABX, [itex]\triangle[/itex] AXC, [itex]\triangle[/itex] 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

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

• 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

• some extra memory required and precomputation time

## Notes

<references/>

@sk TODO.../sk </multilang>

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