The following warnings occurred: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Warning [2] Undefined array key "lockoutexpiry" - Line: 94 - File: global.php PHP 8.1.31 (Linux)
|
Some cars roll over very easily - Printable Version +- Forums (https://www.vdrift.net/Forum) +-- Forum: Community (https://www.vdrift.net/Forum/forumdisplay.php?fid=3) +--- Forum: Bugs (https://www.vdrift.net/Forum/forumdisplay.php?fid=7) +--- Thread: Some cars roll over very easily (/showthread.php?tid=1401) |
Some cars roll over very easily - thelusiv - 12-16-2010 For instance, drive the MC on Paul Ricard '88 and take the first turn at speed. You will probably end up with the car on its side, or if you try really hard, on its top. Other cars are much harder to roll, but I have successfully rolled the XS taking some corners very fast, which I don't think should happen. Could this be an issue related to some car data being behind the current format? Or a physics bug? Perhaps it has something to do with tire lateral forces? - fudje - 12-17-2010 This is at least somewhat attributable to many cars having too high a centre of gravity; Including the MC (which has far too much body roll, too). Actually, the MC is not the best example, because it has so many problems anyway. There was however a code update that made it suddenly much worse. I'm working through revisions now to try and find out which one, but seeing as I have to wade also through several different data revisions it's taking a while (I knew I should have mirrored data into a git tree also - fudje - 12-17-2010 After careful bisection of the tree, I believe the revision in question is r2930, "minor suspension/tire simulation refactoring, move abs/tcs into 60Hz zone" - thelusiv - 12-17-2010 Here's the worksheet I used to figure out how to setup the weights for the XS [1]. I haven't updated this in a long time so it's not anything impressive. I think it was based on something Joe made up originally. Basically I figured out where I thought the CG should be by looking at the model, and using the weight distribution specs, then played with the numbers in this spreadsheet until the resulting CG was near what I wanted. [1] https://spreadsheets.google.com/ccc?key=0ArqYNJ558ikSdDEwVFJQY3N2N1BBeG1icXRqTlB3WWc&hl=en&authkey=CLCg-9YN - thelusiv - 12-17-2010 This seems relevant: http://vdrift.net/Forum/viewtopic.php?t=1321 - NaN - 12-17-2010 Quote:successfully rolled the XS taking some corners very fastOn Paul Ricard '88? Which corner? - thelusiv - 12-17-2010 I've been trying to make a replay, but now I can't reproduce it. It was on the big sweeper, probably in 3rd gear. It's possible that the car went two wheels off and that's what caused the rollover. - NaN - 12-17-2010 The current suspension implementation. 1. Take new velocity(linear, angular) from bullet. 2. Calculate the force to reach this velocity (v1 - v0) / (m * dt). This is the external force: collision, gravity. 3. Run 10 sub steps (60Hz*10) driveline/suspension/tire simulation. Suspension: 1. Cast rays from current wheel position along car down vector(offset is wheel radius * 2). 2. Use ray cast results as wheel displacement(displacement relative to wheel position). 3. Calculate normal force limit. The max force exerted by the surface to keep the car from penetrating it(along contact normal). Means reduce car velocity at contact point along surface normal to zero. 4. Get suspension force limit by projecting normal force limit onto suspension vector(car down vector). 5. Get suspension velocity by projection of the normal velocity. 6. Get displacement by proj.. ->This is wrong as the displacement is along the suspension vector already. 7. Update suspension, get suspension force. 8. Add anti roll force to suspension force(depending on new wheel positions). 9. Get normal force by inverse projection. 10. Add suspension geometry force(perpendicular to suspension). This is a bit voodoo. Should be solved by using distance constraint for the geometry. I think I should setup a simulation validation car, create a test track. The origins of the issue: One day I figured out that the tire forces were applied at wheel center and not at tire contact point. Fixing it has caused the cars to start to roll. An easy fix would be to go back to the previous tire force at wheel center model. - NaN - 12-17-2010 I remember why I've been projecting the displacement. The idea was to try to simulate a rigid shape wheel being displaced along surface normal from wheel ray data. You can observe the issue in the latest trunk, non projected displacement will cause car drifting/wheel oscillations while having the car lying on the side. I need to finish the suspension rewrite in the suspension branch to fix this bugs the right way. |