Simu V3

This document describes Simu V3, which is currently under development. First we give a short account of how simuv3 came to be. Then we describe a set of optional features that are already partially implemented in simuv3. Finally we explain why the stated goals for simuv3 are not so easy to achieve.

Backgroud

The original goal of Simu V3 was to go from calculation of forces in a limited 2D environment to a full 3D calculation. The stated goal is to create a truly free simulation environment for TORCS. One of the most notable problems with simuv2 is the inappropriate calculation of forces when the road surface is not flat and the car is not parallel to the track. Because of this reason, simuv2 limited the possible inclination of cars in the game. Removing such restrictions was the first goal of simuv3

There were other reasons for simuv3's existence, such as improving aerodynamics, adding things such as tyre wear and temperature, more realistic suspension and finally bugfixes. All those things could have been done with simuv2 as it were, and indeed, those parts of simuv3 which are bugfixes rather than feature additions and which do not require a full 3D calculation find their way back into simuv2.

Model changes

Due to bugfixes and model changes in simuv3, a new car package for use specifically with simuv3 is supplied. This consists only of the .xml files - the changes are limited only to details that are impacted by the bugfixes. get simuv3 car package Note that the package is not stable yet.

The details.

There is a user-option system that is partially developed, and which should probably be used to complement the 'skill-level' setting.

Aerodynamics

When the car is driving in a straight line, the aerodynamics are exactly the same as in simuv2. However, as it starts to slip or its angle of attack changes (such as during jumps), there are subtle variations of the airflow on the wings. This can cause the car to 'hover' over the ground when jumping at high speed. Furthermore, the transition into slipstreaming is smooth and it does not affect the car in front as much. In addition, slipstreaming reduces downforce substantially. Finally, since the simuv2 downforce is around 4 times greater than one in a real car, simuv3 optionally reduces this to a more normal amount.

Wheels, suspension

In simuv2 the camber angles increase traction directly, up to some limit. In simuv3, camber angles do not increase traction, but they shift the point of contact further away from the car's axis of rotation. Thus you can use camber angles in the same way to reduce understeer as in simuv2. Alternative types of suspension will have an effect on this.

Tyres have an operating temperature range in which they have better performance. They also suffer wear, but are automatically changed at the pits.

Wheel forces are calculated explicitly for the interface between the tyre and the track.

Car movement

In simuv3 the car uses a 'conservation of angular momentum' principle rather than 'conservation of each angular velocity'. Because the car's moments of inertia are quite different for each axis, this makes the car's freefall rotation quite unstable (i.e. like that of a falling coin).

Engine, drivetrain

The engine/drivertrain conserves angular momentum in between gear shifts and when using the clutch. This means you can spin the wheels by using the clutch even in underpowered cars.

The problems

In general there are a lot of tradeoffs between realism, ease of playing, game speed, stability, and ease of programming AI. The aim in general is to offer realism for the essential parts and offer some options for the rest: i.e. correct calculation of car movement given the forces that act on it, but a very simple model for the traction of the wheels.

One of the biggest problems is that most of these changes result in a reduction in overall traction. This has to be compensated for somewhat. Even so, enabling all the other simuv3 options would require totally different settings for all cars and problably different settings for hyperparameters of robots.

Another problem is that, as soon as you drop the assumption that the car is parallel to the track, there is constantly a 'collision' between the side of the tyres and the track, if you consider the tyres to be 'hard', while reaction forces perpendicular to the bottom of the tyre just pass on to the suspension, which is 'soft' and easier to simulate. If the tyre is also to be considered a spring then we will have great problems with stability. A detailed, stable simulation for this will be quite slow. We hope to experiment with some approximations in the future, but in general contact forces are very hard to compute properly at an acceptable speed.. and this still seems to be a research topic in the modelling community.

The 3D collisions in general have a lot of problems. Currently, though, they are stable in some sense and they at least appear correct most of the time.