Hello everyone! I am currently working on my own, simple car chassis which is going great. However, I have encountered an issue where the vehicle’s mass affects the top speed.
For example, if I have two different cars with different mass and I set both of them to have a top speed of 200 SPS, the lighter one will go over the set top speed, while the other car won’t be able to reach it.
I use cylindrical constraints and set the AngularVelocity to the top speed. My question is, is there a way to fix this/a formula that I should use?
You can have their speeds be the same by multiplying their speed vector by their mass to normalize them in a sense
carA.Force = carAForce * carA:GetMass()
carB.Force = carBForce * carB:GetMass()
Alright so I found a solution. So the reason why the car wasn’t reaching its set top speed was because the AngularVelocity of a CylindricalConstraint is the target angular velocity of the motor in radians per second. Here’s how I did it.
The first thing I did was calculate the circumference of the wheel, which would be
2 * math.pi * car.Wheel.Size.X/2 -- Size.X is the wheel diameter, so that divided by 2 would be the radius.
Now that I know the circumference of the wheel, I now need to see how many revolutions are needed per second to reach the target speed.
topSpeed / (2 * math.pi * car.Wheel.Size.X/2)
Now that I know how many revolutions are needed, I can just multiply that by
2 * math.pi because 360 degrees (one circle) is equal to
2 * math.pi radians.