A number of different car definitions are provided. The car can be selected with -c <car> or --car=<car>, where <car> is one of the following
The car definition goes inside a car
tag. You can assign a
name to the car with the name
attribute.
<car name="GT"> ... </car>
The sections below show how the various subsystems are defined.
The driver's point-of-view is set with the position
tag. You
may use whatever units you like, as long as you're consistent.
See Units. The horizontal field-of-view is set with the
field-width
tag. The vertical field-of-view is calculated
automatically from the current window geometry.
<view> <position>[ 1.3, 1.0, 0.8 ]</position> <field-width>60.0</field-width> </view>
The maximum steering angle is set with the max-angle
tag. The
exponent
detemines how linear the steering response is. A
higher number makes the steering less sensitive at small angles.
<steering> <max-angle>10.0</max-angle> <exponent>3.0</exponent> </steering>
The drivetrain section defines the engine, clutch, transmission and differential.
<drivetrain> <engine> ... </engine> <clutch> ... </clutch> <transmission> ... </transmission> <differential> ... </differential> </drivetrain>
The subsections of the drivetrain are described below.
<engine> <position>[ 1.5, 1.0, 0.2 ]</position> <mass>200.0</mass> <max-power>3.0e5</max-power> <peak-engine-rpm>8000.0</peak-engine-rpm> <rpm-limit>10000.0</rpm-limit> <inertia>0.10</inertia> <idle>0.05</idle> <start-rpm>1000</start-rpm> <stall-rpm>500</stall-rpm> <fuel-consumption>0.0001</fuel-consumption> <sound> <file>engine.wav</file> <pitch>0.01</pitch> <volume>0.8</volume> <throttle-volume-factor>1.0</throttle-volume-factor> <engine-speed-volume-factor>0.001</engine-speed-volume-factor> </sound> </engine>
The position
and mass
parameters affect the weight
distribution of the car. The torque curve is calculated from
max-power
and peak-engine-rpm
using a polynomial
expression given in Motor Vehicle Dynamics, Genta (1997), where
peak-engine-rpm
is the engine speed at which the maximum power
output (max-power
) is achieved. A rev limit can be set with
rpm-limit
. The rotational inertia of the moving parts is
inertia
. idle
is the throttle position at idle.
Starting the engine initially sets the engine speed to
start-rpm
. Letting the engine speed drop below
stall-rpm
makes the engine stall. The rate of fuel
consumption is set with fuel-consumption
.
The engine sound is set in the sound
section. file
is
the name of a WAV file in the data/sounds directory.
throttle-volume-factor
and engine-speed-volume-factor
determine how the loudness of the sound changes.
<clutch> <sliding>0.5</sliding> <radius>0.25</radius> <area>0.2</area> <max-pressure>1.0e4</max-pressure> </clutch>
The torque on the clutch is found by dividing the clutch pressure by
the value in the area
tag and multiplying by the radius
and sliding
(friction) parameters.
The gear ratios can be defined in two different ways inside the
transmission
tag. The ratios can be defined individually as in
the example below. The first number inside the brackets is the gear
(-1 is reverse), and the second is the clutch speed divided by the
driveshaft speed.
<transmission> <gear-ratio>[ -1, -2.69 ]</gear-ratio> <gear-ratio>[ 1, 2.53 ]</gear-ratio> <gear-ratio>[ 2, 1.71 ]</gear-ratio> <gear-ratio>[ 3, 1.42 ]</gear-ratio> <gear-ratio>[ 4, 1.19 ]</gear-ratio> <gear-ratio>[ 5, 1.04 ]</gear-ratio> <shift-delay>0.2</shift-delay> </transmission>
Alternatively, the number of gears and the highest and lowest ratios can be specified. The other gears will be calculate such that the reciprocals of the ratios are equally spaced.
<transmission> <forward-gears>5</forward-gears> <first-ratio>3.21</first-ratio> <last-ratio>1.10</last-ratio> <shift-delay>0.2</shift-delay> </transmission>
The shift-delay
tag tells how long it takes to change gears.
For a paddle-shifter, like a modern Formula One car,
shift-delay
can be set to zero.
The fuel tank's position, the current volume of fuel and the density
of the fuel affect the car's weight distribution. The capacity
tag sets the maximum volume of fuel that the tank can hold. The
initial volume is set with the volume
tag. The density of the
fuel is set with fuel-density
.
<fuel-tank> <position>[ 1.00, 1.00, 0.25 ]</position> <capacity>100.0</capacity> <volume>100.0</volume> <fuel-density>0.8</fuel-density> </fuel-tank>
The wheel
section contains information about the suspension,
tire, and brakes as well as the wheel itself. The side
and
end
attributes tell where the wheel is located. The values of
these attributes are important.
The steered
tag tells that the wheel responds to steering
input. The driven
tag tells that torque from the engine is
applied to the wheel. Only two wheels may have a steered
tag,
and only two may have a driven
tag.
<wheel side="right" end="front"> <steered/> <driven/> <position>[ 3.0, 0.05, -0.1 ]</position> <mass>30.0</mass> <restitution>0.1</restitution> <suspension> ... </suspension> <tire> ... </tire> <brakes> ... </brakes> <wheel>
Values set in one wheel section are persistent; if you want the same value for another wheel, you do not need set it.
The suspension, tire, and brakes sections are described below.
<suspension> <position>[ 3.0, 0.35, -0.1 ]</position> <hinge>[ 2.0, 0.35, 0.3 ]</hinge> <spring-constant>22000.0</spring-constant> <bounce>2000.0</bounce> <rebound>2000.0</rebound> <travel>0.4</travel> <max-compression-velocity>10.0</max-compression-velocity> <camber>-2.0</camber> <caster>5.0</caster> <toe>-2.0</toe> </suspension>
The hinge
is the center of the wheel's path as the suspension
moves. The location of the hinge is determined by suspension
geometry, and may be outside of the car itself. Currently, this
parameter has no effect of performance. It may be used in the future
for configuring anti-dive and anti-squat suspension geometries.
bounce
and rebound
are the damping coefficients for
compression and expansion of the suspension, respectively. If the
speed at which the suspension is compressed, or expanded exceeds the
value in max-compression-velocity
, the dampers “lock up.”
Wheel alignment is set with the camber
, caster
, and
toe
tags. All angles are in degrees.
The longitudinal
, transverse
, and aligning
section each contain a vector of “magic formula” coefficients as
presented in Motor Vehicle Dynamics, Genta (1997). The two
elements of rolling-resistance
are the constant and
velocity-squared terms, respectively.
<tire> <friction> <longitudinal> [ 1.65, 0.0, 1690.0, 0.0, 229.0, 0.0, 0.0, 0.0, -10.0, 0.0, 0.0 ] </longitudinal> <transverse> [ 1.80, 0.0, 1690.0, 800.0, 6.03, 0.0, -0.359, 1.0, 0.0, -6.11e-3, -3.22e-2, 0.0, 0.0, 0.0, 0.0 ] </transverse> <aligning> [ 2.07, -6.49, -21.9, 0.416, -21.3, 2.94e-2, 0.0, -1.20, 5.23, -14.8, 0.0, 0.0, -3.74e-3, 3.89e-2, 0.0, 0.0, 0.639, 1.69 ] </aligning> </friction> <radius>0.310</radius> <rolling-resistance>[ 1.3e-2, 6.5e-6 ]</rolling-resistance> <rotational-inertia>10.0</rotational-inertia> </tire>
<brakes> <friction>0.8</friction> <max-pressure>2.0e6</max-pressure> <front-bias>0.55</front-bias> <radius>0.2</radius> <area>0.01</area> </brakes>
front-bias
is the fraction of braking pressure applied to the
front brakes.
Particles affect the mass distribution of the car.
<particle> <position>[ 2.0, 1.0, 0.5 ]</position> <mass>100.0</mass> </particle>
Contact points are particles that participate in collisions. The
material specified in the material
tag (either “metal” or
“rubber”) determines the sound made when contact is detected. The
coefficients of friction and restitution are set with the
friction
and restitution
tags, respectively.
<contact-point> <mass>40.0</mass> <position>[ 0.0, 0.0, 0.0 ]</position> <material>metal</material> <friction>0.5</friction> <restitution>0.1</restitution> </contact-point>
The aerodynamic properties of the car are determined by the
drag
and wing
sections. The frontal area and
coefficient of drag, set it frontal-area
and
drag-coefficient
, are used to calculate the drag force.
<drag> <position>[ 2.0, 1.0, 0.25 ]</position> <frontal-area>2.0</frontal-area> <drag-coefficient>0.3</drag-coefficient> </drag>
Downforce can be added with wings. The amount of downforce is
determined by the value in the lift-coefficient
tag. If the
lift coefficient is positive, upforce is generated. This is usually
undesirable for cars. The efficiency
determines how much drag
is added as downforce increases. The surface-area
is the
surface area of the wing. This value is also used in the drag
calculation.
<wing> <position>[ 0.0, 0.9, 0.5 ]</position> <frontal-area>0.2</frontal-area> <drag-coefficient>0.0</drag-coefficient> <surface-area>0.5</surface-area> <lift-coefficient>-4.0</lift-coefficient> <efficiency>0.95</efficiency> </wing>