Vibrating wheels

Hi all,



I finally separated my wheels and made them independent dynamic objects. Also my hull is no longer a bounding box, but a trimesh (a low poly mesh: 76 triangles).







Wheels are connected to the hull through a joint and I added a RotationalAxis which allows them to spin. No suspension.



I have a few problems now, on which I would like some advice:


  1. When I land, and the aircraft is standing on ground, wheels are vibrating. I noticed that if I increase the hull mass, wheels go through the ground (does a heavy mass allow an object to "crush" others?)


  2. After take off, wheels keep spinning. This produces a "gyroscopic" effect that hampers my airplane roll and pitch movement. Wheels should not affect my plane manouvers, do you know how I can achieve this?


  3. When landing, the first contact weels make with the ground makes the plane get almost stuck and yaw forward. It is like friction is too strong. I was thinking this could be due to the lack of suspension, but anyway my airplane then should just bounce upwards… ??? I am clueless here :(.


  4. The triangle accuracy physics on the hull is yielding some weird artifacts on collisions between airplanes and on some walls. The mesh may contain some triangle duplicates, but I observed behaviour is anyway quite fuzzy.



    I think points 1 and 4 could perhaps be due to the big numerical difference between airplane vertex coordinates (small) and walls and objects (very large) in Indoor Battles (???).



    Any advice, or even fast comment, will probably enlight me and allow me to take a direction forward. Thanks!



    (I am also thinking of leaving the airplane as a simple dynamic entity but anyway I need wheels for ground vehicles so I prefer to solve this now).
  1. caused by simulation inaccuracy with high forces - you can circumvent it by using lower masses/forces or by increasing simulation accuracy.
  2. avoid the constant spinning e.g. with FrictionCallback; lower the wheel mass
  3. ideas: accelerate the wheels before landing; use suspension; null friction before first contact, raise friction slowly (using contact callback)
  4. no idea, sorry

#4 - You can separate the hull into 3 different dynamic physics nodes (center cilinder, wings and tail), conected by stiff joints and use bounding collision for them.



From ODE manual:

Always use masses and sizes around 1 (ONE)


That means you should limit yor masses to something between 0.5f and 2 or 2.5f in my opinion...

Respecting collission and "vibration", might it be the problem that my models (wheels in this case) are, in absolute coordinates, 0.06 units big?



Also, I have played with PhysicsSpace.setAccuracy() but I can't get to understand it. If I modify it my simulation behaves differently, but more than that, with "0.1" it crashes (some ODE crashes and a NPE for a null vector retrieved from a linear velocity…???). Values belos 0.01 make the simulation run too fast, but no improvement on the wheels vibration.



I can see ODE allows certain amount of penetration or certain amount of freedom for joints, because wheels are anchored in relation to the plane, but they still vibrate without making the hull vibrate.



I will keep playing with it, and post. However I am a bit afraid since I might be using values too small?



Grrr.