brake + skid

<~Creatine~>

01-07-2007 22:22:31

I am wondering how can I make a real brake. I get a lot of nice tips from AGEIA forum:
"You can try changing the longitudalTireForceFunction and lateralTireForceFunction of NxWheelShape to make your wheels drift. Pls. refer to our training program on vehicle. In lesson 703, you can create the wheel with slipTFD as longitudalTireForceFunction or lateralTireForceFunction to see the effect."

But it is not really answer for my problem. I want to stop the gears and skid really.


ateral_tire_asymptoteSlip = 2.0f;
lateral_tire_asymptoteValue = 0.02f;
lateral_tire_extremumSlip = 1.0f;
lateral_tire_extremumValue = 0.02f;
lateral_tire_stiffnessFactor = 2500.0f;

longitudal_tire_asymptoteSlip = 2.0f;
longitudal_tire_asymptoteValue = 0.02f;
longitudal_tire_extremumSlip = 1.0f;
longitudal_tire_extremumValue = 0.02f;
longitudal_tire_stiffnessFactor = 50000.0f;

suspension_damper = 50.0f;
suspension_spring = 3500.0f;
suspension_target = 5.0f;
suspension_travel = 10.0f;

setAcceleration(2.0f); //forward


setBrakeTorque(100.0f); Good, but the rotation of wheels does not stop.
setBrakeTorque(300.0f); The car stands on its head almost.

Can raycast gears stop and skid altogether or can't? Has anybody any idea, tips, tricks?

luis

02-07-2007 08:02:39

With the current SDK, the tip from Ageia's forum (modify dynamically the lateralTireForceFunction) is probably the best solution.... but it is not as easy as set a lower stiffness... you have to know the *lateral relative speed* between the tire and the ground and use it to calculate the right stiffness or you will end up making a wrong simulation when the car is not turning or is just resting… etc.
I tried it and i didn't like the effect.

Basically the problem i see is that if you want to have your car sliding you have to set a small value for lateral stiffness but it makes the car slide even at very low speed (like on ice).

Seems that SDK 2.7.1 / 2.7.2 will solve this problem… see:
http://www.ageia.com/developers/sdk_rn.html
* WheelShape: Added contact correlation in default mode and clamped friction mode to reduce low speed drifting.

Toby

02-07-2007 10:18:37

Yep, I try to modify dynamically slid but I am not satisfy to.

Another problem is when car turn at high speed, sometimes fall on top because not lateral slid.

(luis) this release note is for SDK 2.7.1 that is not out and is compatible with nxOgre 0.4 rc3.

Then a good solution is maybe to set dynamically slid coefficient for lateral function only. And a slid coeff when we brake only.

<~Creatine~>

02-07-2007 10:25:25

O.K. I experiment lateral etc. functions and dynamically modify. Thank you for reply. I will announce the good solution then if I developed something. :P

luis

02-07-2007 13:09:02

(luis) this release note is for SDK 2.7.1 that is not out and is compatible with nxOgre 0.4 rc3.
yep, this version isn't out yet, they said that it *will* be public by the end of June.... (and today is July 2!!)
I will announce the good solution then if I developed something.
Yes please ;)

NickM

02-07-2007 16:39:59

I too have tried to come up with realistic feeling tyres using the wheelshape but I'm having the same problems as you guys, I posted on the Ageia forum ages ago but had no reply. I might end up writing my own wheel code rather than keep strugling on with this, but I guess I'll wait for 2.7.2 and see if it helps. Half of my problem I think is that I don't really know whats going on inside the wheelshape calculation wise.

Anyway, if anyone finds a good solution I'm interested in trying it :D

<~Creatine~>

02-07-2007 17:46:49

I set lateral tire dynamically and it is good almost.

void Wheel::render(float)
{
if (mNode)
{
mNode->setPosition( mPose.t.x, mPose.t.y, mPose.t.z );
mNode->setOrientation( toQuaternion(mPose.M) );

gears_desc.stiffnessFactor = 100000 / abs(mWheel->getAxleSpeed());
mWheel->setLateralTireForceFunction(gears_desc);
}
}


Now my primer problem is the brake. Do I try set longitudinal stiffness factor higher value and lateral lower value when it is braking or what? I don't understand it clearly, why can't I stop the gears simply with setBrakeTorque method without adhesive effect.