TODO.../en
From RoboWiki
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
- 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 - Project selected triangle into xz plane - <math>\triangle</math> ABC
- Calculate coordinates of centre of gravity X of <math>\triangle</math> ABC
- Choose 1 triangle out of <math>\triangle</math> ABX, <math>\triangle</math> AXC, <math>\triangle</math> XBC
- Calculate another centre of gravity of selected triangle
- Repeat 3 previous steps until distance from center of gravity to nearest vertex is less than some epsilon
- The final point - translate back to 3D and to relative coordinates of the whole body - rotor
Centre of Mass of blade
- Calculate coordinates of centre of gravity and area of each triangle
- Repeat until only 1 point - center of gravity of all triangles remains in set
- 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/>
--- --- --- --- --- RoboWiki: (c) 2006 Robotika.sk --- --- --- --- ---