Skip to content

Latest commit

 

History

History
 
 

model_structure

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

3D Model Structure

Usage of 3D models in simulation-based development and testing of automated driving requires compliance with certain quality criteria. Scalable integration of the models within the heterogeneous applications of distributed simulation frameworks further requires usage of a common exchange format and standardization of node structures, transforms and coordinate frames. Standardization thus allows the harmonization of 3D model usage in simulation, animation and rendering, but also enables the shared use of the same models (e.g. residing in central repositories) across different applications.

Within the following paragraphs, a specification for vehicle models is drafted. Proposals concerning further model categories (e.g. other traffic participants, buildings, road infrastructure, environment) will be added in the future. Examples are provided in the objects subdirectory.

Examples

Examples are provided in the objects subdirectory.

Road Networks

The structure of 3D models representing road networks should reflect coordinate frames, structure and naming of the ASAM OpenDRIVE specification. Comprehensive information on this standard can be found on the corresponding ASAM OpenDRIVE project website. As an example, for OpenDRIVE 1.7, the required information can be obtained from the ASAM OpenDRIVE 1.7 User Guide.

Vehicles

1. Introduction

The following specification describes properties and a proposed model structure for 3D vehicle models in real-time simulation usage. Models incorporating specific equipment configurations may be extended by switchable nodes (not specified here) to represent these.

2. General

Models shall be provided in the Khronos glTF 2.0 file format. Their creation process shall comply with the requirements defined in chapter 3. While all models shall incorporate both interior and exterior, the engine compartment and other non-visible parts and cavities shall not be modeled. Joints and gaps (comprising grills, vents, ducts, etc.) shall be backfilled to prevent light bleeding. For the same reason, the models’ underbodies and wheel-arches shall be modeled closed.

Anticipating the quality requirements for model creation defined in chapter 3.1, here, some major requirements for the corresponding meshes are outlined:

  • Manual optimization (if required)
  • Consistent normals
  • Clean, optimized UV layout
  • Tile-able textures
  • Homogeneous distribution of vertices
  • No gaps or holes

Model node structure shall comply with the structure presented in chapter 3.2. For external animation, the following transforms shall be implemented (see chapter 3.3):

  • Wheels: Kinematical animation of steering, rolling, camber and suspension deflection
  • Doors: Kinematical animation of opening/closing
  • Trunk lid: Kinematical animation of opening/closing
  • Lights: Positioning of external light sources
  • Indicators: Positioning of external light sources
  • Number plates: Positioning of number plate geometries/textures
  • Sensors: Positioning of external sensor models
  • Steering wheel: Kinematical animation of the steering movement
  • Driver’s view: Positioning of external camera models in the driver’s eyepoint

3. Model Creation

3.1 Quality Requirements

The following quality requirements were designed to meet the requirements of real-time simulation. This implies traffic simulation (of up to 100 vehicles) at interactive frame rates (60Hz) on COTS (commercial off-the-shelf) hardware. In a balance of power, the quality of the scene shall be granted in a way that, from a camera distance of half a meter, no visual artifacts shall be observable at the model surfaces for a FullHD (1920 x 1080 px) rendering. In addition, the following recommendations concerning model quality requirements exist:

Table 1: Quality requirements
RequirementRecommendation
File Format 3D ModelglTF 2.0
File Size 3D Model< 100 Mb (including textures)
Polygon Count< 500.000k
PBR SupportMetallic-Roughness
File Format TexturesPNG, JPG
Texture Resolution2048 x 2048 px
SceneRight-handed coordinate frame:
+X pointing rightwards
+Y pointing upwards
-Z pointing forward from the origin
(asset “front” oriented in +Z direction)

3.2 Model Structure

The model node hierarchy shall be consistent in structure and naming. Thus, within the model creation process, the following principles shall be obeyed:

Parametrization of manufacturer, type, and release:

  • $Type: Manufacturer_Type
  • $Release: Release

Consistent, hierarchical structure:

  • 1st level (top Level): Floor, separation of interior and exterior
  • 2nd level: Separation of static/dynamic content
  • 3rd level: Static and dynamic assemblies
  • 4th level: Component classification based on dynamic behavior (e.g. brake caliper/wheel)

Uniform nomenclature:

  • Snake_Case with capital letters at the beginning of each word
  • Group prefix (Grp)
  • Localization suffix
    • Front-Left (FL)
    • Front-Right (FR)
    • Side-Left (SL)
    • Side-Right (SR)
    • Back-Left (BL)
    • Back-Right (BR)
    • Back-Center (BC)
    • Front (F)
    • Back (B)

Based on the given requirements, the following model structure shall be used (transforms are indicated by T):  

$Type_$Release (T)					
|-------Floor								
|-------Grp_Exterior			
| 	|-------Grp_Exterior_Static		
| 	|-------Grp_Exterior_Dynamic		
| 		|-------Grp_Wheel_FL (T)	
| 		| 	|-------Grp_Wheel_FL_Steering
| 		| 	|-------Grp_Wheel_FL_Steering_Rotating (T)
| 		|-------Grp_Wheel_FR (T)	
| 		| 	|-------Grp_Wheel_FR_Steering
| 		| 	|-------Grp_Wheel_FR_Steering_Rotating (T)
| 		|-------Grp_Wheel_BL (T)	
| 		| 	|-------Grp_Wheel_BL_Steering
| 		| 	|-------Grp_Wheel_BL_Steering_Rotating (T)
| 		|-------Grp_Wheel_BR (T)	
| 		| 	|-------Grp_Wheel_BR_Steering
| 		| 	|-------Grp_Wheel_BR_Steering_Rotating (T)
| 		|-------Grp_Door_FL (T)	
| 		|-------Grp_Door_FR (T)
| 		|-------Grp_Door_BL (T)	
| 		|-------Grp_Door_BR (T)	
| 		|-------Grp_Trunk_Lid (T)
| 		|-------Grp_Light_Low_Beam_FL (T)	
| 		|-------Grp_Light_Low_Beam_FR (T)	
| 		|-------Grp_Light_High_Beam_FL (T)	
| 		|-------Grp_Light_High_Beam_FR (T)	
| 		|-------Grp_Light_Park_FL (T)	
| 		|-------Grp_Light_Park_FR (T)	
| 		|-------Grp_Light_Park_BL (T)	
| 		|-------Grp_Light_Park_BR (T)	
| 		|-------Grp_Light_Tail_BL (T)	
| 		|-------Grp_Light_Tail_BR (T)	
| 		|-------Grp_Light_Brake_BL (T)	
| 		|-------Grp_Light_Brake_BC (T)	
| 		|-------Grp_Light_Brake_BR (T)	
| 		|-------Grp_Light_Reverse_BL (T)	
| 		|-------Grp_Light_Reverse_BR (T)	
| 		|-------Grp_Light_Fog_BL (T)	
| 		|-------Grp_Light_Fog_BR (T)	
| 		|-------Grp_Indicator_FL (T)	
| 		|-------Grp_Indicator_FR (T)	
| 		|-------Grp_Indicator_SL (T)	
| 		|-------Grp_Indicator_SR (T)	
| 		|-------Grp_Indicator_BL (T)	
| 		|-------Grp_Indicator_BR (T)	
| 		|-------Grp_Number_Plate_F (T)	
| 		|-------Grp_Number_Plate_B (T)
| 		|-------Grp_Convertible_Top
| 		|-------Grp_Sensors (T)
|-------Grp_Interior			
 	|-------Grp_Interior_Static		
 	|-------Grp_Interior_Dynamic		
 		|-------Grp_Steering_Wheel (T)
 		|-------Grp_Rear_Backrest
 		|-------Grp_Eyepoint_Female (T)	
 		|-------Grp_Eyepoint_Male (T)	

3.3 Transforms and Coordinate Frames

The model structure incorporates assembly-specific transforms which are used for kinematical animation of components (e.g. animation of wheels, doors, lids, steering wheel, etc.) and the positioning of external content (e.g. light sources, number plates, cameras etc.). Those transforms implement local coordinate frames.

All transforms are defined in the (global) reference coordinate frame of the model which acts as transform to the assembly $Type_$Release. The origin of this coordinate frame coincides with the origin of the vehicles’ construction coordinate frame:

Table 2: Reference coordinate frame
Reference coordinate frame
Origin (ORef)Geometric center of the front axle
x-axis (xRef)Collinear with the vehicle longitudinal axis, pointing backwards
y-axis (yRef)Horizontally right-pointing (towards the passenger side)
z-axis (zRef)Perpendicular to the xy-plane, pointing upwards

Reference coordinate frame
Figure 1: Reference coordinate frame

3.3.1 Wheels

For wheel animation (assemblies Grp_Wheel_), transforms are provided by the model structure. Those implement the following coordinate frame each:

Table 3: Wheel coordinate frame
Wheel coordinate frame
Origin (OWheel)Geometric center of the wheel
x-axis (xWheel)Collinear with the vehicle longitudinal axis, pointing forwards
y-axis (yWheel)Completes the right-handed coordinate system
z-axis (zWheel)Perpendicular to the x-axis, pointing vertically upwards

Wheel coordinate frame
Figure 2: Wheel coordinate frame

As depicted, wheel rolling corresponds to a rotation around the y-axis (Ry) while steering is implemented by a rotation around the z-axis (Rz). Wheel camber is defined by a rotation around the x-axis (Rx). Finally, suspension deflection is represented by a translation along the z-axis (Tz). The corresponding neutral positions are defined as follows:

Table 4: Wheel neutral position
Wheel neutral position
Rx=0Camber at neutral load conditions
Ry=0Rim logos horizontal, readable
Rz=0Straight running
Tz=0Suspension deflection at neutral load conditions

3.3.2 Doors

For door animation (assemblies Grp_Door_), transforms are provided by the model structure. Those implement the following coordinate frames:

Table 5: Door coordinate frame
Door coordinate frame
Origin (ODoor)Geometric center of the virtual hinge axis
x-axis (xDoor)Perpendicular to the z-axis, pointing forwards
y-axis (yDoor)Completes the right-handed coordinate system
z-axis (zDoor)Concentric and coaxial to the virtual hinge axis, pointing upwards

Door coordinate frame
Figure 3: Door coordinate frame

Here, the virtual hinge axis is the axis that allows the animation of the closing and opening of a door with a single rotation. It coincides with the z-axis (zDoor) of the door coordinate frame. For closing and opening the door in a rotation around the z-axis (Rz), the following neutral position is defined:

Table 6: Door neutral position
Wheel neutral position
Rz=0Door closed

3.3.3 Trunk Lid

For trunk lid animation (assembly Grp_Trunk_Lid), a transform is provided by the model structure. It implements the following coordinate frame:

Table 7: Trunk lid coordinate frame
Trunk lid coordinate frame
Origin (OTrunk_Lid)Geometric center of the virtual hinge axis
x-axis (xTrunk_Lid)Completes the right-handed coordinate system
y-axis (yTrunk_Lid)Concentric and coaxial to the virtual hinge axis, pointing rightwards (towards the passenger side)
z-axis (zTrunk_Lid)Perpendicular to the y-axis, pointing upwards

Trunk lid coordinate frame
Figure 4: Trunk lid coordinate frame

Here, the virtual hinge axis is the axis that allows the animation of the closing and opening of the trunk lid with a single rotation. It coincides with the y-axis (yTrunk_Lid) of the trunk lid coordinate frame. For closing and opening the trunk lid in a rotation around the y-axis (Ry), the following neutral position is defined:

Table 8: Trunk lid neutral position
Trunk lid neutral position
Ry=0Trunk lid closed

3.3.4 Lights

For light animation (assemblies Grp_Light_), i.e. positioning of corresponding light sources, transforms are provided by the model structure. Those implement the following coordinate frames:

Table 9: Light coordinate frame
Light coordinate frame
Origin (OLight)Geometric center of the last emitter/reflector along the optical path
x-axis (xLight)Concentric and coaxial to the primary light propagation direction
y-axis (yLight)Completes the right-handed coordinate system
z-axis (zLight)Perpendicular to the x-axis, pointing upwards

Light coordinate frame
Figure 5: Light coordinate frame

3.3.5 Indicators

For indicator animation (assemblies Grp_Indicator_), i.e. positioning of corresponding light sources, transforms are provided by the model structure. Those implement the following coordinate frames:

Table 10: Indicator coordinate frame
Indicator coordinate frame
Origin (OIndicator)Geometric center of the last emitter/reflector along the optical path
x-axis (xIndicator)Concentric and coaxial to the primary light propagation direction
y-axis (yIndicator)Completes the right-handed coordinate system
z-axis (zIndicator)Perpendicular to the x-axis, pointing upwards

Indicator coordinate frame
Figure 6: Indicator coordinate frame

3.3.6 Number Plates

For number plate animation (assemblies Grp_Number_Plate_), i.e. positioning of corresponding textures, transforms are provided by the model structure. Those implement the following coordinate frames:

Table 11: Number plate coordinate frame
Number plate coordinate frame
Origin (ONumber_Plate)Geometric center of the number plate
x-axis (xNumber_Plate)Concentric and coaxial to the surface normal of the number plate
y-axis (yNumber_Plate)Completes the right-handed coordinate system
z-axis (zNumber_Plate)Perpendicular to the x-axis, pointing upwards

Number plate coordinate frame
Figure 7: Number plate coordinate frame

3.3.7 Convertible Tops

For convertible top animation (including soft-tops, assembly Grp_Convertible_Top), no specific transform is provided by the model structure. Instead, convertible tops are positioned in the reference coordinate frame. A convertible top assembly shall comprise 10 discrete states (animation frames) of the opening process. For soft-tops, these steps shall incorporate corresponding cloth representation. At the first, default state, the convertible top is closed. The last, tenth animation step always represents the fully opened convertible top. Eight uniformly distributed intermediate steps animate the opening or closing process.

3.3.8 Sensors

For positioning and simulation of sensors (assemblies Grp_Sensors), a transform is provided by the model structure. Following ISO 8855:2011, it implements the following coordinate frame:

Table 12: Sensor coordinate frame
Sensor coordinate frame
Origin (OSensor)Geometric center of the rear axle, fixed in the sprung mass of the vehicle at neutral load condition
x-axis (xSensor)Collinear with the vehicle longitudinal axis, pointing forwards
y-axis (ySensor)Completes the right-handed coordinate system
z-axis (zSensor)Perpendicular to the x-axis, pointing upwards

Sensor coordinate frame
Figure 8: Sensor coordinate frame

3.3.9 Steering Wheel

For steering wheel animation (assembly Grp_Steering_Wheel), a transform is provided by the model structure. It implements the following coordinate frame:

Table 13: Steering wheel coordinate frame
Steering wheel coordinate frame
Origin (OSteering_Wheel)Intersection of steering axle and the plane defined by the steering wheel rim
x-axis (xSteering_Wheel)Concentric and coaxial to the steering axle, pointing away from the driver
y-axis (ySteering_Wheel)Completes the right-handed coordinate system
z-axis (zSteering_Wheel)Perpendicular to the x-axis, pointing upwards

Steering wheel coordinate frame
Figure 9: Steering wheel coordinate frame

As depicted, steering movement corresponds to a rotation around the x-axis (Rx). The following neutral position is defined:

Table 14: Steering wheel neutral position
Steering wheel neutral position
Rx=0Straight running

3.3.10 Backseat

For animation of the foldable backrest of the backseat (assembly Grp_Rear_Backrest), no specific transform is provided by the model structure. Instead, the backrest is referenced in the reference coordinate frame. A backrest assembly shall comprise 2 discrete states (animation frames) of the folding process. At the first, default state, the backrest is in upright position. The second state always represents the fully folded backrest.

3.3.11 Driver’s View

To represent the driver’s view (the so-called eyepoint) of a 95-percent female and a 95-percent male (assemblies Grp_Eyepoint_), transforms are provided by the model structure. They implement the following coordinate frames:

Table 15: Eyepoint coordinate frame
Eyepoint coordinate frame
Origin (OEyepoint)Geometric center of the driver’s head
x-axis (xEyepoint)Collinear with the vehicle longitudinal axis, pointing forwards
y-axis (yEyepoint)Completes the right-handed coordinate system
z-axis (zEyepoint)Perpendicular to the x-axis, pointing upwards