back

SimHub ShakeIt loaded slip/grip

tire haptics for slip/grip

Haptics here are about driver aids, rather than immersion.

SimHub considers imported ShakeIt profiles as duplicates NOT based on name;
enter No to have an imported profile considered unique.
I contemplate only 8 haptic transducers and 8 haptic signals, 4 of which are tire slip.
Fifth:  engine rumble on dead pedal, where left foot is braced except when declutching.

One reason for writing SimHub plugins instead of Custom Serial profiles is because
C# software engineering is relatively painless using Visual Studio and GitHub Desktop;
copying and pasting C# procedures among files and repositories is quite manageable,
while swapping ShakeIt effects among profiles is exasperating.

SimHub ShakeIt updates now have JavaScript formulae being less expensive.
Run once javascript code section supports precalculation and encourages modularity.

SimHub ShakeIt Slip/Grip haptic discussion

SimHub's ShakeIt CUSTOM effect Forced frequency enhancement
enables independent volume and frequency control.
ShakeIt property values e.g. from proxyS are limited to 0-100 range.
Early warning by haptics helps compensate for poor reflexes,
with audible higher frequencies (approx 800Hz) tire squeal for slip onset warning.
Lacking real life experience with formula cars,
and with (too?) many years since driving dedicated sports racers,
this feedback may lack credibility for drivers of those vehicles with treadless tires.
If both audible or tactile onset are too soon, then reducing proxyS Gain may help.
Otherwise, if tactile gets too strong too soon, consider increasing noisy Gamma.

SimHub Automatic calibration may not work well for WHEELS SLIP in AMS2.

My claim:  tire slip/grip ratio is more useful feedback than slip alone.
This ratio usefully modulates haptic frequency, but also mutes output when ratio is small.
While discussing with @RangeyRover about a SimHub plugin for longitudinal acceleration
it struck me that the key to loss of control is when grip stops increasing with tire slip;
that ratio was simple and seemingly good enough.

Grip and Load

SimHub provides slip, but more elusive is grip, the ratio of combined
  lateral and longitudinal acceleration (surge + sway) to tire load,
  where tire load is available from only few sims,
  while many provide suspension deflection telemetry.
Heave is one component of tire load, with pitch and yaw changes affecting its distribution.

  • correlating suspension deflection to tire load wants per-car calibration
  • correlating suspension deflection to heave, pitch and yaw wants multiple regression
  • OxyScope and Loaded plugins address this.

Haptics generation

IMO, tire haptic frequency should decrease with increasing slip/grip.
Luckily, puck haptics feel stronger as frequencies drop from around 150 to 30Hz;
vibration above 150Hz is mostly audible, as in real life.

To break up forced frequency pure tones, add rand() amount proportional to frequency,
e.g. frequency + Math.rand()*frequency/3
Minimum Hz >= 30Hz feels best for Dayton pucks.
60Hz is too high for strongest sensations from pucks under thighs.
Max Hz > 800Hz is preferred for approximating tire squeal heard with initial slip
in BMWs driven for most recent > 5 years of track days.
For tuning, one could create *tweak* custom effect property values,
  to be tweaked during playback, then modify *noisy* and *output*
  to calculate min and max Hz from those *tweak* property values.

2D grip (acceleration) modulated by load

Tire load values are wanted for slip/grip haptic intensity as well as grip estimation.
IMO, lateral and longitudinal components should be combined as traction circle values
  for both slip and grip.
GlobalAccelerationG turns out to be just rescaled absolute AccelerationSurge,
not what is wanted in ratio with 2D slip.
Approximate integration confirms that positive heave acceleration is upward.
In theory, maximum negative heave should be -1G.
For slip/grip ratio, estimated grip values want square root of
  sum of squares of suitably scaled Surge and Yaw accelerations.
That 2D accel (estimated grip) value wants to be scaled by (1 + Heave) G's:
  • no grip when Heave = -1G   // vehicle in free fall
  • unity grip when Heave = 0
  • increased grip when Heave > 0.
Thus:  a fixed amount of slip becomes more concerning as estimated grip decreases,
      risking loss of control...

Shift haptic

Originally a one-off, not something I expected to use.
Based on speed/rpm ratio, gated by property from SimHub ShakeIt SHIFT effect.
Forced frequency based on rpm...   forced freq seemed constant,
except for 4 corner effect;   a bug?   -> fixed!

For longitudinal slip and discounting gear shifts,
changes to GameData.Speed / GameData.Rpms pretty well approximates longitudinal slip
without needing to know wheel rps. Sorting gear changes from other longitudinal slip
uses logic based on SimHub's Gear Shift effect.
This is doomed for cars with torque converters or continuously variable transmissions.

Coding Methodology

  1. ponder
  2. code
  3. test
  4. debug, loop to 1
  5. document, reviewing code and finding more bugs, loop to 1
  6. publish to GitHub
  7. collect feedback, loop to 1.

Wheel lock and force feedback vs tire lockup

Wheel lock usually means the amount of available steering rotation
or how abruptly resistance increases at rotation limits.
With increasing slip, steering force feedback should decrease.
For example, when losing steering control on ice, force feedback basically disappeared.
I do not recall feeling much tire judder thru steering while cornering on track.
On the other hand, locking up brakes could often create dramatic tire judder.
Similarly for too hard acceleration with limited slip differential on patchy damp pavement.

other driving school instructors complained that my driving scared their students,
but never crashed and was rarely passed when tracks were wet.
My only high speed spins have been on snow and ice,
having done a little ice racing in Canada with CASC during college.
Being my own mechanic and usually driving to/from events discouraged overexuberance.
My sports racer had more grip than I ever got comfortable exploiting.
Nearly all my most recent track experience was in trailing arm BMWs, with plenty of oversteer.
A couple of spins during autocross were too brief to sort.

In theory, spins happen when tires are well beyond peak grip,
while most judder occurs while tires are near peak grip.
With no off-road racing experience, I lack bases for judging haptics for e.g. EAWRC23.
I suppose that aggressive use of hand brake affects things.

Spin to me implies loss of yaw control, with tires past peak grip.
Lock for tires means tire rotation stopped, usually because of excessive braking.
On track, much slip is lateral, associated with change in direction, yaw times speed.
Substantial (lateral) slip is possible with wheel speed equal to vehicle speed.
Except when coasting, driving tires must slip slightly to generate force for maintaining speed.

simulation

On track, one must learn to filter overwhelming amounts of stimuli.
In sims, lack of G force stimuli is only partly compensated by harness tensioning,
but I rarely miss real world risks, noise, windshield glare and expenses.

I am no athlete; it took me multiple weekends on each track to usefully remember corners
and skid pad sessions to sort car balance before having brain to spare
for noticing what feedback was reliable and helpful for improving driving.
Some other track junkies shared noticing how slowly and poorly I drove first sessions,
despite being in the advanced driver group, then gradually improved over weekends.
Car setup and practice were my compensations for lack of confidence and talent.

To improve steering feedback, I changed physical steering in real cars
(smaller rims, faster ratios, less assist and more caster).
That is one example of how sim tires are unrealistic
by offering better feedback than most real cars in my experience.
In fact, my direct drive wheel base can deliver more feedback than I comfortably use,
which is a key motivation for my haptics to offload information from the wheel.

I suppose that experience helps imagine what physics can subvert sim telemetry for feedbacks,
but some of these feedbacks are more useful than realistic.
While impressed (but not surprised) by how fast some can be with only G27 or G29,
because talent and practice, I want all the aids that I can gather...

Enhancements?

  • User interface for adjusting formulae "constants"
  • separately loadable profile parameters - car / sim specific
  • better understanding Automatic calibration
maintained by blekenbleu