Commit a0454ce7 authored by Jasja Tijink's avatar Jasja Tijink
Browse files

Replace ETSI-ITS-CDD.asn

parent 3b835518
Loading
Loading
Loading
Loading
+394 −33
Original line number Diff line number Diff line
/** draft 002 of the CCD module for TS 102 894-2 V2.2.1 integrating:
/** draft 003 of the CCD module for TS 102 894-2 V2.2.1 integrating:
- ITSWG1(23)062003	 Update VAM parameters definitions in ITS Common Data Dictionary
- ITSWG1(23)063016	 CPM ASN.1 format (CDD+CPS)
- ITSWG1(23)063017	 Generalize the opening angles of the radial shape options
- ITSWG1(23)063018   Generalize the orientation of the DF Shape
- ITSWG1(23)063012   CDD extension to enable Road Configuration Container in DENMs
- ITSWG1(23)000078   CDD extension to enable Road Configuration Container in DENMs with JTI changes
- ITSWG1(23)063001r2 Extend LaneInformation to cover more scenarios
*/

--! @options: no-fields-header
@@ -1768,15 +1771,21 @@ Iso3833VehicleType ::= INTEGER {
 * - `0` if the position is on the inner hard shoulder, i.e. the hard should adjacent to the rightmost lane,
 * - `n` (`n > 0` and `n < 14`), if the position is on the n-th driving lane counted from the rightmost lane to the leftmost lane of a specific traffic direction,
 * - `14` if the position is on the outer hard shoulder, i.e. the hard should adjacent to leftmost lane (if present).

 *
 *  @note: in practice this means that the position is counted from "inside" to "outside" no matter which traffic practice is used.
 *
 * If the carriageway allows only traffic in one direction (e.g. in case of dual or multiple carriageway roads), the position is counted from the physical border of the carriageway. 
 * If the carriageway allows traffic in both directions and there is no physical delimitation between traffic directions (e.g. on a single carrriageway road), 
 * the position is counted from the legal (i.e. optical) separation between traffic directions (horizontal marking). 

 *
 * If not indicated otherwise (by lane markings or traffic signs), the legal separation on carriageways allowing traffic on both directions is identified as follows:
 * - If the total number of lanes N is even, the lanes are divided evenly between the traffic directions starting from the outside of the carriageway on both sides and the 
 *   imaginary separation between traffic directions is on the border between the even number of lanes N/2.
 * - If the total number of lanes N is odd, the lanes are divided evenly between traffic direction starting from the outside of the carriageway on both sides. 
 *   The remaining middle lane is assigned to both traffic directions as innermost lane.
 *
 * @category: Road topology information
 * @revision: Description revised in V2.1.1
 * @revision: Description of the legal separation of carriageways added in V2.2.1
*/
LanePosition ::= INTEGER {
    offTheRoad           (-1), 
@@ -1811,10 +1820,11 @@ LanePosition ::= INTEGER {
 * - 19	- `verge`              - Lane representing the verge, i.e. a narrow strip of grass or plants and sometimes also trees located between 
                                 the road surface edge and the boundary of a road,
 * - 20	`minimumRiskManoeuvre` - Lane dedicated to automated vehicles making a minimum risk manoeuvre.
 * - 21	`exclusiveCycleLane`   - Lane dedicated exclusively for bicycles and similar that is phyisically separated from the vehicle-traffic lanes, e.g. by a verge,
 * - values 21 to 30             reserved for future use. 
 *
 * @category: Road topology information
 * @revision: Created in V2.1.1
 * @revision: Created in V2.1.1, value 21 assigned in V2.2.1
*/
LaneType::= INTEGER{
	traffic              (0),
@@ -1838,6 +1848,7 @@ LaneType::= INTEGER{
	emergency            (18),
	verge                (19),
	minimumRiskManoeuvre (20),
    exclusiveCycleLane   (21),
	unknown              (31)
}(0..31)

@@ -2769,6 +2780,47 @@ SensorType ::= INTEGER {
    itsAggregation    (13)
} (0..31)

/** 
 * This DE indicates the type of sensor(s).
 * The corresponding bit shall be set to 1 under the following conditions:
 * 
 * - 0  `undefined`         - in case the sensor type is undefined. 
 * - 1  `radar`             - in case the sensor is a radar,
 * - 2  `lidar`             - in case the sensor is a lidar,
 * - 3  `monovideo`         - in case the sensor is mono video,
 * - 4  `stereovision`      - in case the sensor is stereo vision,
 * - 5  `nightvision`       - in case the sensor is night vision,
 * - 6  `ultrasonic`        - in case the sensor is ultrasonic,
 * - 7  `pmd`               - in case the sensor is photonic mixing device,
 * - 8  `inductionLoop`     - in case the sensor is an induction loop,
 * - 9  `sphericalCamera`   - in case the sensor is a spherical camera,
 * - 10 `uwb`               - in case the sensor is ultra wide band,
 * - 11 `acoustic`          - in case the sensor is acoustic,
 * - 12 `localAggregation`  - in case the information is provided by a system that aggregates information from different local sensors. Aggregation may include fusion,
 * - 13 `itsAggregation`    - in case the information is provided by a system that aggregates information from other received ITS messages.
 * - 14-15                  - are reserved for future usage.
 * 
 * @note: If all bits are set to 0, then no sensor type is used
 *
 * @category: Sensing Information
 * @revision: created in V2.2.1
*/
SensorTypes ::= BIT STRING {
    undefined       (0),
    radar           (1),
    lidar           (2),
    monovideo       (3),
    stereovision    (4),
    nightvision     (5),
    ultrasonic      (6),
    pmd             (7),
    fusion          (8), 
    inductionloop   (9),
    sphericalCamera (10),
    itssaggregation (11), 
	uwb             (12)
} (SIZE (16,... ))

/**
 * This DE represents a sequence number.
 * 
@@ -2905,6 +2957,31 @@ SpeedValue ::= INTEGER {
    unavailable (16383)
} (0..16383)

/** 
 * This DE indicates the type of stored information.
 *
 * The corresponding bit shall be set to 1 under the following conditions:
 * 
 * - `0` undefined        - in case the stored information type is undefined. 
 * - `1` staticDb         - in case the stored information type is a static database.
 * - `2` dynamicDb        - in case the stored information type is a dynamic database
 * - `3` realTimeDb       - in case the stored information type is a real time updated database.
 * - `4` map              - in case the stored information type is a road topology map.
 * - Bits 5 to 7          - are reserved for future use
 *
 * @note: If all bits are set to 0, then no stored information type is used
 *
 * @category: Basic Information
 * @revision: created in V2.2.1
*/
StoredInformationType::= BIT STRING {
    undefined       (0),
    staticDb	    (1),    
    dynamicDb   	(2),
    realTimeDb  	(3),
    map		    	(4)	
} (SIZE (1..168,... )) 

/** 
 * This DE represents the value of a velocity component in a defined coordinate system.
 *
@@ -3217,6 +3294,16 @@ Temperature ::= INTEGER {
 */
TimestampIts ::= INTEGER (0..4398046511103)

/** 
 * This DE indicates an ordinal number that represents the position of a component in the list @ref Traces (values 1..7 for instances 1..7 respectively) or @ref TracesExtended (values 8..14 for instances 1..7 respectively). 
 *
 * @category: Road topology information
 * @revision: Created in V2.2.1
*/
TraceId ::= INTEGER {
    noTrace (0)
} (0..14)

/**
 * This DE represents the value of the sub cause codes of the @ref CauseCode `trafficCondition`. 
 * 
@@ -4241,6 +4328,14 @@ BasicContainer ::= SEQUENCE {
	...
}

/** 
 * This DF provides information about the configuration of a road section in terms of lanes using a list of @ref LanePositionAndType .
 *
 * @category: Road topology information
 * @revision: Created in V2.2.1
*/
BasicLaneConfiguration::= SEQUENCE(SIZE(1..16,...)) OF LanePositionAndType 

/** 
 * This DF represents a general Data Frame to describe an angle component along with a confidence value in a cartesian coordinate system.
 *
@@ -4888,30 +4983,62 @@ EventZone::= EventHistory
    (WITH COMPONENT (WITH COMPONENTS {..., eventDeltaTime ABSENT})))

/** 
 * This DF indicates a transversal position in relation to the different lanes of the road. 
 * It is an extension of DE_LanePosition to cover locations (sidewalks, bicycle paths), where Vehicle ITS-S would normally not be present. 
 * This DF indicates a geographical position.
 *
 * The following options are available:
 * It shall include the following components: 
 *
 * @field trafficLanePosition: a position on a traffic lane. 
 * @field latitude: the latitude of the geographical position.
 *
 * @field nonTrafficLanePosition: a position on a lane which is not a traffic lane.
 * @field longitude: the longitude of the geographical position.
 *
 * @field trafficIslandPosition: a position on a traffic island
 * @field altitude: the altitude of the geographical position with default value unavailable.
 *
 * @field mapPosition: a position on a lane identified in a MAPEM.
*/ 
GeoPosition::= SEQUENCE{
	latitude   Latitude,
	longitude  Longitude,
    altitude   AltitudeValue DEFAULT unavailable
}

/**
 * This DF represents the top-level DF to represent a lane position. A lane position is a transversal position on the carriageway at a specific longitudinal position, in resolution of lanes of the carriageway.
 *
 * @note: This DF is the most general way to represent a lane position: it provides a complete set of information regarding a transversal (dimensionless) position on the carriageway at a specific 
 * reference position, i.e. it provides different options and synonyms to represent the lane at which the reference position (the point) is located. A confidence is used to describe the probability 
 * that the object is located in the provided lane. The dimension of the object or extension of an area are not considered: See @ref OccupiedLanesWithConfidence for describing the occupation of lanes, 
 * where the dimensions of an object or the extension of an area is considered.
 *
 * It shall include the following components: 
 *
 * @field lanePositionBased: lane position information for a defined reference position.
 * 
 * @field mapBased: optional lane position information described in the context of a MAPEM as specified in ETSI TS 103 301 [15]. 
 * If present, it shall describe the same reference position using the lane identification in the MAPEM. This component can be used only if a MAPEM is available for the reference position 
 * (e.g. on an intersection): In this case it is used as a synonym to the mandatory component lanePositionBased. 
 * 
 * @field confidence: confidence information for expressing the probability that the object is located at the indicated lane.  
 * If the value of the component lanePositionBased is generated directly from the absolute reference position and reference topology information, 
 * no sensor shall be indicated in the component usedDetectionInformation of the @ref MetaInformation.
 *
 * @category: Road Topology information
 * @revision: created in V2.1.1
 * @revision: newly created in V2.2.1. The previous DF GeneralizedLanePosition is now renamed to @ref LanePositionOptions. 
 */
GeneralizedLanePosition::= CHOICE {
    trafficLanePosition       LanePosition,
    nonTrafficLanePosition    LanePositionAndType,
    trafficIslandPosition     TrafficIslandPosition,
    mapPosition               MapPosition,
GeneralizedLanePosition ::= SEQUENCE {
    lanePositionBased     LanePositionOptions,
    mapBased              MapPosition OPTIONAL,
    confidence            MetaInformation,
    ... 
}

/**
 * This DF represents set of up to `4` @ref GeneralizedLanePosition.
 * Multiple entries can be used to describe several lane positions with the associated confidence, in cases where the reference position cannot be mapped to a single lane.
 *
 * @category: Road Topology information
 * @revision: Created in V2.2.1
 */
GeneralizedLanePositions ::= SEQUENCE (SIZE(1..4)) OF GeneralizedLanePosition

/**
 * This DF represents the Heading in a WGS84 co-ordinates system.
 * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE.
@@ -5106,20 +5233,74 @@ ItsPduHeader ::= SEQUENCE {
}

/**
 * This DF indicates a transversal position in resolution of lanes and the associated lane type.
 * This DF indicates a transversal position in resolution of lanes and other associated details.
 *
 * It shall include the following components: 
 * 
 * @field transversalPosition: the transversal position.
 * 
 * @field laneType: the type of the lane identified in the component transversalPosition.
 * @field laneType: the type of the lane identified in the component transversalPosition. By default set to `traffic`.
 *
 * @field direction: the traffic direction for the lane position relative to a defined reference direction. By default set to `sameDirection`, i.e. following the reference direction.
 *
 * @field laneWidth: the width of the lane, optional.
 *
 * @category Road topology information
 * @revision: Created in V2.1.1
 * @revision: direction and laneWidth added in V2.2.1
 */
LanePositionAndType::= SEQUENCE {
    transversalPosition    LanePosition,
    laneType               LaneType,
    laneType               LaneType DEFAULT traffic,
    direction              Direction DEFAULT sameDirection,
    laneWidth              LaneWidth OPTIONAL,
    ...
}

/**
 * This DF represents a set of options to describe a lane position and is the second level DF to represent a lane position. The top-level DFs are @ref GeneralizedLanePosition or @ref OccupiedLanesWithConfidence. 
 * A lane position is a transversal position on the carriageway at a specific longitudinal position, in resolution of lanes of the carriageway.
 *
 * The following options are available:
 *
 * @field simplelanePosition: a single lane position without any additional context information.
 *
 * @field simpleLaneType: a lane type, to be used when the lane position is unknown but the type of lane is known. This can be used in scenarios where a certain confidence about the used lane type is given 
 * but no or limited knowledge about the absolute lane number is available. For example, a cyclist on a cycle-lane or vehicles on a specific lane that is unique for the part of the road (e.g. a bus lane).
 * 
 * @field detailedlanePosition: a single lane position with additional lane details.
 * 
 * @field lanePositionWithLateralDetails: a single lane position with additional details and the lateral position within the lane.
 *
 * @field trafficIslandPosition: a position on a traffic island, i.e. between two lanes. 
 *
 * @category: Road Topology information
 * @revision: Created in V2.2.1 from the DF GeneralizedLanePosition of V2.1.1. 
 */
LanePositionOptions ::= CHOICE {
    simplelanePosition                   LanePosition,
    simpleLaneType                       LaneType,
    detailedlanePosition                 LanePositionAndType,
    lanePositionWithLateralDetails       LanePositionWithLateralDetails,
    trafficIslandPosition                TrafficIslandPosition,
    ...
}

/**
 * This DF is a third-level DF that represents a lane position and is an extended version of @ref LanePositionAndType that adds the distances to the left and right lane border.
 *
 * It shall additionally include the following components: 
 *
 * @field distanceToLeftBorder: the distance of the transversal position to the left lane border. The real value shall be rounded to the next lower encoding-value.
 *
 * @field distanceToRightBorder: the distance of the transversal position to the right lane border. The real value shall be rounded to the next lower encoding-value.
 * 
 * @category: Road Topology information
 * @revision: Created in V2.2.1
 */
LanePositionWithLateralDetails ::= SEQUENCE {
    COMPONENTS OF               LanePositionAndType,
    distanceToLeftBorder        StandardLength9b,
    distanceToRightBorder       StandardLength9b,
    ...
}

@@ -5215,6 +5396,56 @@ LowerTriangularPositiveSemidefiniteMatrix ::= SEQUENCE{
*/
LowerTriangularPositiveSemidefiniteMatrixColumns ::= SEQUENCE SIZE (1..13,...) OF CorrelationColumn

/** 
 * This DF provides information about the configuration of a road section in terms of MAPEM lanes or connections using a list of @ref MapemExtractedElementReference. 

 * @category: Road topology information
 * @revision: Created in V2.2.1
*/
MapemConfiguration::= SEQUENCE(SIZE(1..16,...)) OF MapemElementReference

/** 
 * This DF provides references to an element described in a MAPEM according to ETSI TS 103 301 [i.15], such as a lane or connection at a specific intersection or road segment. 
 * 
 * It shall include the following components: 
 * 
 * @field mapReference: the optional reference to a MAPEM that describes the intersection or road segment. It is absent if the MAPEM topology is known from the context.
 * 
 * @field laneIds: the optional list of the identifiers of the lanes to be referenced. 
 * 
 * @field connectionIds: the optional list of the identifiers of the connections to be referenced. 
 *
 * @category: Road topology information
 * @revision: Created in V2.2.1
*/

MapemElementReference::= SEQUENCE {
  mapReference      MapReference OPTIONAL,
  laneIds           MapemLaneList  OPTIONAL,
  connectionIds	    MapemConnectionList  OPTIONAL,		
  ...
} 
((WITH COMPONENTS {..., laneIds PRESENT}) |
 (WITH COMPONENTS {..., connectionIds PRESENT }))

/** 
 * This DF provides references to MAPEM lanes using a list of @ref Identifier1B.
 *
 * @category: Road topology information
 * @revision: Created in 2.2.1
*/
MapemLaneList ::=  SEQUENCE (SIZE(1..8,...)) OF Identifier1B


/** 
 * This DF provides references to MAPEM connections using a list of @ref Identifier1B.
 * Note: connections are  allowed “maneuvers” (e.g. an ingress / egress relation) on an intersection.
 *
 * @category: Road topology information
 * @revision: Created in ?2.2.1
*/
MapemConnectionList ::=  SEQUENCE (SIZE(1..8,...)) OF Identifier1B

/**
 * This DF indicates a position on a topology description transmitted in a MAPEM according to ETSI TS 103 301 [15].
 *
@@ -5296,6 +5527,27 @@ MessageSegmentationInfo ::= SEQUENCE {
    thisMsgNo   OrdinalNumber3b
    }

/** 
 * This DF provides information about the source of and confidence in information.
 *
 * It shall include the following components: 
 * 
 * @field usedDetectionInformation: the type of sensor(s) that is used to provide the detection information.
 * 
 * @field usedStoredInformation: the type of source of the stored information 
 *
 * @field confidenceValue: an optional confidence value associated to the information. 
 * 
 * @category: Basic information
 * @revision: Created in V2.2.1
*/
MetaInformation::=SEQUENCE{		
  usedDetectionInformation   SensorTypes, 
  usedStoredInformation      StoredInformationType,
  confidenceValue            ConfidenceLevel OPTIONAL,
  ...
}

/**
 * This DF shall contain a list of @ref MitigationPerTechnologyClass.
 *
@@ -5404,6 +5656,38 @@ ObjectDimension ::= SEQUENCE {
    confidence    ObjectDimensionConfidence
}

/**
 * This DF represents a set of lanes which are partially or fully occupied by an object or event. 
 *
 * @note: In contrast to @ref GeneralizedLanePosition, the dimension of the object or event area (width and length) is taken into account to determine the occupancy, 
 * i.e. this DF describes the lanes which are blocked by an object or event and not the position of the object / event itself. A confidence is used to describe the 
 * probability that exactly all the provided lanes are occupied. 
 *
 * It shall include the following components: 
 *
 * @field lanePositionBased: a set of up to `4` lanes that are partially or fully occupied by an object or event, ordered by increasing value of @ref LanePosition. 
 * Lanes that are partially occupied can be described using the component lanePositionWithLateralDetails of @ref  Options, with the following constraints: 
 * The distance to lane borders which are covered by the object / event shall be set to 0. Only the distances to the leftmost and/or rightmost border which are not covered by 
 * the object / event shall be provided with values > 0. Those values shall be added to the respective instances of @ref LanePositionOptions, i.e. the first entry shall contain the component distanceToLeftBorder > 0 , 
 * and/or the last entry shall contain the component distanceToRightBorder > 0; the respective other components of these entries shall be set to 0.
 * 
 * @field mapBased: optional lane information described in the context of a MAPEM as specified in ETSI TS 103 301 [15]. 
 * If present, it shall describe the same lane(s) as listed in the component lanePositionBased, but using the lane identification of the MAPEM. This component can be used only if a 
 * MAPEM is available for the reference position (e.g. on an intersection): In this case it is used as a synonym to the mandatory component lanePositionBased. 
 *
 * @field confidence: mandatory confidence information for expressing the probability that all the provided lanes are occupied. It also provides information on how the lane 
 * information were generated. If none of the sensors were used, the lane information is assumed to be derived directly from the absolute reference position and the related dimension.
 *
 * @category: Road Topology information
 * @revision: Created in V2.2.1
 */
OccupiedLanesWithConfidence::= SEQUENCE {
    lanePositionBased     SEQUENCE (SIZE(1..4)) OF LanePositionOptions,
    mapBased              SEQUENCE (SIZE(1..4)) OF MapPosition  OPTIONAL,
    confidence            MetaInformation,
    ... 
}

/**
 * This DF represents a path with a set of path points.
 * It shall contain up to `40` @ref PathPoint. 
@@ -5921,6 +6205,75 @@ ReferencePositionWithConfidence ::= SEQUENCE {
 */
RestrictedTypes ::= SEQUENCE (SIZE(1..3, ...)) OF StationType

/** 
 * This DF provides configuration information about a road section.
 *
 * It shall include the following components: 
 *
 * @field roadSectionDefinition: the topological definition of the road section.
 * 
 * @field roadType: the optional type of road on which the section is located.
 * 
 * @field laneConfiguration: the optional configuration of the road section in terms of basic information per lane.
 *
 * @field mapemConfiguration: the optional configuration of the road section in terms of MAPEM lanes or connections.
 *
 * @category: Road topology information
 * @revision: Created in V2.2.1
*/

RoadConfigurationSection ::= SEQUENCE {
  roadSectionDefinition  RoadSectionDefinition,
  roadType               RoadType OPTIONAL, 
  laneConfiguration      LanePositionAndType OPTIONAL,
  mapemConfiguration     MapemConfiguration OPTIONAL,
  ...
} 
  ((WITH COMPONENTS {..., laneConfiguration PRESENT}) |
   (WITH COMPONENTS {..., mapemConfiguration PRESENT})) 

/**
 * This DF shall contain a list of @ref RoadConfigurationSection.
 * 
 * @category: Road Topology information
 * @revision: Created in V2.2.1
 */
RoadConfigurationSectionList::=  SEQUENCE (SIZE(1..8,...))  OF RoadConfigurationSection

/** 
 * This DF provides the basic topological definition of a road section.
 *
 * It shall include the following components: 
 * 
 * @field startingPointSection: the position of the starting point of the section. 
 * 
 * @field lengthOfSection: the optional length of the section along the road profile (i.e. including curves).
 * 
 * @field endingPointSection: the optional position of the ending point of the section. 
 * If this component is absent, the ending position is implicitly defined by other means, e.g. the starting point of the next RoadConfigurationSection, or the section’s length.
 *
 * @field connectedTraces: the identifier(s) of the trace(s) having one or an ordered subset of waypoints located upstream of the RoadConfigurationSection’ starting point. 
 * 
 * @field includedTraces: the identifier(s) of the trace(s) that covers (either with all its length or with a part of it) a RoadConfigurationSection. 
 *
 * @field isEventZoneIncluded: indicates, if set to TRUE, that the eventZone (either with all its length or with a part of it) covers a RoadConfigurationSection. 
 * 
 * @field isEventZoneConnected: indicates, if set to TRUE, that the eventZone has one or an ordered subset of waypoints located upstream of the RoadConfigurationSection’ starting point.
 *
 * @category: Road topology information
 * @revision: Created in V2.2.1
*/
RoadSectionDefinition::= SEQUENCE {
  startingPointSection      GeoPosition,
  lengthOfSection	  	    StandardLength2B OPTIONAL,
  endingPointSection       	GeoPosition OPTIONAL, 
  connectedTraces		    TraceReferences,	
  includedTraces          	TraceReferences,
  isEventZoneIncluded       BOOLEAN,  
  isEventZoneConnected      BOOLEAN,
  ...
}  

/**
 * This DF represents a unique id for a road segment
 *
@@ -6080,6 +6433,14 @@ SteeringWheelAngle ::= SEQUENCE {
    steeringWheelAngleConfidence    SteeringWheelAngleConfidence
}

/** 
 * This DF represents a list of references to the components of a @ref Traces or @ref TracesExtended DF using the @ref TraceId. 
 *
 * @category: Road topology information
 * @revision: Created in V2.2.1
*/
TraceReferences ::= SEQUENCE (SIZE(1..14)) OF TraceId

/**
 * This DF represents one or more paths using @ref Path.
 *