Upgrading from 2.81 to 2.82 resulting in instability.

Post Reply
LEgregius
Posts: 26
Joined: Tue Oct 14, 2008 1:34 am

Upgrading from 2.81 to 2.82 resulting in instability.

Post by LEgregius »

I'm looking for some suggestions of what to try...

I'm working on a mature driving simulation that has been using bullet since much earlier versions. It used 2.79 in its most recent last release. The vehicles in this simulation use spheres as wheels that a jointed using a combination of revolute and 6dof joints with springs to the main sprung mass. The dampers are implemented using a substep callback. The wheels don't actually rotate, they just slide along the bvh triangle mesh terrain. It uses a custom tire model, so friction is turned off except at low velocities to help it sit still better at a stop.

It all functioned stably until I upgraded it to 2.82. Now there is a a high-frequency, low amplitude oscillation that occurs in the wheels. I can graph the load on the wheels, and it looks like almost like a sign wave. This make the vehicles shake enough to cause simulator sickness. It also seems to happen more in some parts of the terrain than in others. In some places, it completely smooths out. It does not seem to have anything to do with triangle size, though.

I rolled back to 2.81, and the problem went away. I see there are changes to the Sequential Impulse solver between the two, though most seem more related to code structure than mathematics. I'm using these solver flags:

SOLVER_USE_WARMSTARTING | SOLVER_USE_2_FRICTION_DIRECTIONS | SOLVER_FRICTION_SEPARATE | SOLVER_RANDMIZE_ORDER | SOLVER_ENABLE_FRICTION_DIRECTION_CACHING | SOLVER_SIMD | SOLVER_INTERLEAVE_CONTACT_AND_FRICTION_CONSTRAINTS | SOLVER_ALLOW_ZERO_LENGTH_FRICTION_DIRECTIONS;

However, I've tried removing all of them, and it doesn't change this particular oscillation at all.
SilentSpartan
Posts: 2
Joined: Tue Jan 14, 2014 10:38 am

Re: Upgrading from 2.81 to 2.82 resulting in instability.

Post by SilentSpartan »

Try to set m_fixContactNormalDirection(0) in constructors of btGjkPairDetector.
LEgregius
Posts: 26
Joined: Tue Oct 14, 2008 1:34 am

Re: Upgrading from 2.81 to 2.82 resulting in instability.

Post by LEgregius »

I did see that when I was diffing, but I hadn't tried it. Unfortunately, it didn't work. I appreciate the help.
Post Reply