Introduction
Overview
Overview
The ASAM OpenCRG format provides a common format for describing road surfaces. The data in an OpenCRG file usually describes road elevation. OpenCRG file can be used for both synthetic or real road surfaces. The main purpose of OpenCRG is to provide a road surface description that can be fed into simulations and to make these road surface descriptions exchangeable.
Motivation
OpenCRG comprises open file formats and open source tools for the detailed description, creation and evaluation of road surfaces. As basic functionality OpenCRG describes the geometry of the road surface based on a reference line and a height grid (which can also be used for other scalar data). It is intended for vehicle dynamics, tire, vibration and driving simulations. For these purposes the OpenCRG project provides the following features: ASCII and binary file formats with clear-text headers, an open source C-API for data handling and evaluation and open source MATLAB® API for data manipulation and generation and a library of sample data.
OpenCRG is to be understood as a complementary standard to OpenDRIVE. While OpenDRIVE files are describing road networks with respect to all data belonging to the road environment, OpenCRG describes the road surface in detail. OpenDRIVE allows the referencing to OpenCRG files.
Conventions
Naming conventions
In this document, the following conventions apply:
data types are given according to IEEE 754 standard.
Units
Unless stated otherwise, all numeric values within this specification are in SI units, for example:
-
position/distance in [m]
-
angles in [rad]
Geographic positions are stated in the unit defined by the spatial coordinate system, for example, in accordance with WGS 84 – EPSG 4326.
Modal verbs
To ensure compliance with the OpenCRG standard, users must be able to distinguish between mandatory requirements, recommendations, permissions, as well as possibilities, capabilities, obligations and necessities.
The following rules for using modal verbs apply:
| Provision | Verbal form |
|---|---|
Requirement |
shall |
Recommendation |
should |
Permission |
may |
Possibility and capability |
can |
Obligation and necessity |
must |
Typographic conventions
This documentation uses the following typographical conventions:
| Mark-up | Definition |
|---|---|
|
This format is used for code elements, such as technical names of classes and attributes, as well as attribute values. |
|
This format is used for excerpts of code that serve as an example for implementation. |
Terms |
This format is used to introduce glossary terms, new terms and to emphasize terms. |
|
This format is used for calculations and mathematical elements. |
Normative and non-normative statements and deliverables
This specification uses a standard information structure. The following rules apply regarding normativity of sections:
-
Statements expressed as requirements, permissions, or prohibitions according to the use of modal verbs, as defined in Modal verbs, are normative.
-
Keywords of OpenCRG data structures in "Keyword" sections are normative.
-
Content descriptions of OpenCRG data structures in "Contents" sections are normative.
-
Rules for OpenCRG data structures in "Rules" sections are normative.
-
The OpenCRG toolsuite and its use are non-normative.
-
Examples and use case descriptions are non-normative.
Deliverables of OpenCRG
The following deliverables are provided for OpenCRG:
User guide |
The User Guides help to get started with the OpenCRG APIs and how OpenCRG can be applied |
Sample OpenCRG files |
These demo files are explanatory examples |
C-API including demo files and test scripts |
The C-API is capable of reading and evaluating OpenCRG Files |
MATLAB library including demo files and test scripts |
The Matlab API can create, manipulate, visualize and validate OpenCRG Files |