Commit 4d416d2d authored by András Wippelhauser's avatar András Wippelhauser
Browse files

Improvements during drafting session #9

parent 9da98bb0
Loading
Loading
Loading
Loading
+135 −72
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ BEGIN

IMPORTS 

BasicContainer, ItsPduHeader, Identifier2B, ParkingSpaceStatus, StandardLength12b, TimestampIts, StationId, Wgs84Angle, DeltaPosition, Path, DeltaTimeTenthOfSecond, StandardLength1B
BasicContainer, ItsPduHeader, Identifier2B, ParkingSpaceStatus, StandardLength12b, TimestampIts, StationId, Wgs84Angle, DeltaPosition, Path, DeltaTimeTenthOfSecond, StandardLength1B, GeoPosition, ParkingReservationType, ParkingAreaArrangementType, ParkingOccupancyInfo, ParkingSpaceBasic, DeltaPositions
FROM ETSI-ITS-CDD {
    itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) 102894 cdd (2) major-version-4 (4) minor-version-2 (2)
}
@@ -30,8 +30,6 @@ PODAM ::= SEQUENCE {
/**
 * This DF indicates the parameters necessary for the PODAM
 *
 * @field basicContainer: The location and type of the message sender ITS-S
 *
 * @field detections: The list of detected spaces.
 *
 * @field intentIndication: The space that the ego vehicle intends to occupy
@@ -49,10 +47,34 @@ PodasParameters ::= SEQUENCE {
/**
 * This DF describes the list of space detections
 *
 * @field individualParkingSpaces: The list of individual parking spaces detected
 *
 * @field segmentsOfParkingSpaces: The list of parking spaces detected in a segment-based way
 *
 * @category:
 * @revision: Created in V2.1.1
*/
ParkingSpaceDetections ::= SEQUENCE {
    individualParkingSpaces IndividualParkingSpaces,
    segmentsOfParkingSpaces ParkingSpaceSegments,
    ...
}

/**
 * The DF shall contain a list of DF @ref IndividualParkingSpace.
 *
 * @category:
 * @revision: Created in V2.1.1
*/
IndividualParkingSpaces ::= SEQUENCE (SIZE (0..31)) OF IndividualParkingSpace

/**
 * The DF shall contain a list of DF @ref ParkingSpaceSegment.
 *
 * @category:
 * @revision: Created in V2.1.1
*/
ParkingSpaceDetections ::= SEQUENCE (SIZE(1..32, ...)) OF ParkingSpaceDetection
ParkingSpaceSegments ::= SEQUENCE (SIZE (0..31)) OF ParkingSpaceSegment

/**
 * This DF indicates the space intended to be allocated by the ego vehicle
@@ -73,36 +95,17 @@ ParkingSpaceIntentIndication ::= SEQUENCE {
}

/**
 * This DF describes parking space detection parameters
 *
 * @field spaceId: The identifier of the parking space. Shall be unique when combined with source
 * This DF represents the location of an individual parking space
 * 
 * @field source: The stationId of the sender vehicle. Shall only be filled if the sender is not the detector.
 * @field metaData: The field contains meta data about the individual parking space.
 * 
 * @field levelInformation: The level of the parking space in a parking facility.
 * @field position: The position of the individual space.
 * 
 * @field location: The location description of the parking space.
 * @field arrangementType: The arrangement of the parking space. It is optional to fill this field.
 *
 * @field detectionTime: The end time of detection. (e.g., when the detector vehicle passed by)
 * @field occupancyRule: The occupancy rule of the parking space. It is optional to fill this field.
 *
 * @field detectionMethod: The used inputs for the detection.
 *
 * @category:
 * @revision: Created in V2.1.1
*/
ParkingSpaceDetection ::= CHOICE {
    individualSpace IndividualParkingSpace,
    segmentOfParkingSpaces SegmentOfParkingSpaces,
    ...
}


/**
 * This DF represents the location of an individual parking space
 * 
 * @field position: The position of the individual space.
 * 
 * @field orientation: The orientation of the parking space.
 * @field reservationType: The reservation type of the parking space. If it is not filled, than the value is not known. If it is filled with length 0, than no restriction applies.
 *
 * @field observedWidth: The observed width of the physical space available for parking measured perpendicular
 * to the anticipated orientation of the parking vehicle.
@@ -116,7 +119,7 @@ ParkingSpaceDetection ::= CHOICE {
 * @field nominalLength: The length of a parking space. This field indicates the length between
 * the center of the length markings, if there are any.
 *
 * @field externalMessageIds: Represents links to external systems, e.g., to electric vehicle charging stations.
 * @field externalParkingSpaceIds: Represents links to external systems, e.g., to electric vehicle charging stations.
 *
 * @category:
 * @revision: Created in V2.1.1
@@ -126,19 +129,32 @@ IndividualParkingSpace ::= SEQUENCE {
    position GeoPosition,
    arrangementType ParkingAreaArrangementType OPTIONAL,
    occupancyRule ParkingOccupancyInfo OPTIONAL,
    reservationType SEQUENCE (SIZE(1..4,...)) OF ParkingReservationType OPTIONAL,
    reservationType SEQUENCE (SIZE(0..3,...)) OF ParkingReservationType OPTIONAL,
    observedWidth StandardLength1BWithConfidence OPTIONAL,
    nominalWidth StandardLength1BWithConfidence OPTIONAL,
    nominalLength StandardLength1BWithConfidence OPTIONAL,
    -- TODO: add depth in an unambiguous way
    externalMessageIds ExternalMessageIdentifiers OPTIONAL,
    externalParkingSpaceIds ExternalParkingSpaceIdentifiers OPTIONAL,
    ...
}

/**
 * This DF describes parking space detection parameters
 *
 * @field detectionId: The identifier of the detection. Shall be unique when combined with source
 *
 * @field source: The stationId of the sender vehicle. Shall only be filled if the sender is not the detector.
 *
 * @field location: The location description of the parking space.
 *
 * @field detectionStartTime: The end time of detection. (e.g., when the detector vehicle passed by)
 *
 * @category:
 * @revision: Created in V2.1.1
*/
ParkingSpaceDetectionMetaData ::= SEQUENCE {
    detectionId Identifier2B,
    source  StationId OPTIONAL,
    detectionMethod ParkingSpaceDetectionMethod,
    detectionStartTime TimestampIts,
    ...
}
@@ -146,6 +162,10 @@ ParkingSpaceDetectionMetaData ::= SEQUENCE {
/**
 * This DF represents subsequent parking spaces
 *
 * @field metaData: The field contains meta data about the individual parking space.
 * 
 * @field detectionReferencePosition: The reference position related to the detection segment.
 * 
 * @field path: The path of the ego vehicle. A new point shall be added each time the heading of the
 * vehicle changes more then X degrees, the closest distance between the current position and line calculated
 * from the last two path points exceeds Y meters, or the or the detection segment is ended. The pathDeltaTime in 
@@ -155,25 +175,20 @@ ParkingSpaceDetectionMetaData ::= SEQUENCE {
 *
 * @field spacesOnTheRight: The list of parking space segments on the right of the vehicle.
 *
 * @field spaceWidth: The width of a parking space. This field indicates the length between
 * the center of the width markings, if there are any. The data field is relevant for the whole segment.
 *
 * @field spaceLength: The length of a parking space. This field indicates the length between
 * the center of the length markings, if there are any. The data field is relevant for the whole segment.
 *
 * @field externalMessageIds: Represents links to external systems, e.g., to electric vehicle charging stations.
 * @field externalParkingSpaceIds: Represents links to external systems, e.g., to electric vehicle charging stations.
 *
 * @note: The entrySpace can be calculated from the subsequent distances and in the right or left distances 
 * and the orientation information.
 * @category:
 * @revision: Created in V2.1.1
 */
SegmentOfParkingSpaces ::= SEQUENCE {
ParkingSpaceSegment ::= SEQUENCE {
    metaData ParkingSpaceDetectionMetaData,
    detectionReferencePosition GeoPosition,
    path Path,
    spacesOnTheLeft ParkingSegments OPTIONAL,
    spacesOnTheRight ParkingSegments OPTIONAL,
    externalMessageIds ExternalMessageIdentifiers OPTIONAL,
    externalParkingSpaceIds ExternalParkingSpaceIdentifiers OPTIONAL,
    ...
}
((WITH COMPONENTS {..., spacesOnTheLeft PRESENT}) |
@@ -190,34 +205,12 @@ SegmentOfParkingSpaces ::= SEQUENCE {
 * @category:
 * @revision: Created in V2.1.1
 */
ExternalMessageIdentifiers ::= SEQUENCE {
ExternalParkingSpaceIdentifiers ::= SEQUENCE {
    evId            EvId OPTIONAL,
    parkingSpaceId  Identifier2B OPTIONAL,
    ...
}

/**
 * This DE indicates the method that was used to detect a parking space
 *
 * The corresponding bit shall be set to 1 under the following conditions:
 * - 0 - `sensor`               - A sensor (radar, camera, lidar, ultrasound, etc.) was used,
 * - 1 - `leavingEgo`           - Ego left the particular parking space,
 * - 2 - `leavingVehicle`       - A remote vehicle left the particular parking space,
 * - 3 - `staticMapInformation` - At least some information was received from a static map,
 *
 * Otherwise (for example when the corresponding system is not available due to non equipped system
 * or information is unavailable), the corresponding bit shall be set to 0.
 *
 * @category:
 * @revision: V2.1.1
 */
ParkingSpaceDetectionMethod ::= BIT STRING {
    sensor                  (0),
    leavingEgo              (1),
    leavingVehicle          (2),
    staticMapInformation    (3)
} (SIZE(4,...))

/**
 * This DF describes a list of subsequent parking space segments
 *
@@ -244,6 +237,16 @@ ParkingSegments ::= SEQUENCE SIZE(1..32, ...) OF ParkingSegment
 * @field offsetToPath: Distance between the path of the vehicle and the closest position of 
 * the parking space to the path.
 *
 * @field arrangementType: The arrangement of the parking space. It is optional to fill this field.
 *
 * @field occupancyRule: The occupancy rule of the parking space. It is optional to fill this field.
 *
 * @field nominalSpaceWidth: The nominal width of the parking space. (e.g., marked by the lane markings)
 *
 * @field nominalSpaceLength: The nominal length of the parking space. (e.g., marked by the lane markings)
 *
 * @field reservationType: The reservation type of the parking space. If it is not filled, than the value is not known. If it is filled with length 0, than no restriction applies.
 *
 * @category:
 * @revision: Created in V2.1.1
 */
@@ -252,11 +255,11 @@ ParkingSegment ::= SEQUENCE {
    status                  ParkingSpaceStatus,
    timeDelta               DeltaTimeTenthOfSecond,
    offsetToPath            StandardLength1B OPTIONAL,
    orientation ParkingAreaArrangementType OPTIONAL,
    arrangementType ParkingAreaArrangementType OPTIONAL,
    occupancyRule ParkingOccupancyInfo OPTIONAL,
    nominalSpaceWidth StandardLength1B OPTIONAL,
    nominalSpaceLength StandardLength1B OPTIONAL,
    reservationType SEQUENCE (SIZE(1..4,...)) OF ParkingReservationType OPTIONAL,
    reservationType SEQUENCE (SIZE(0..3,...)) OF ParkingReservationType OPTIONAL, -- 0 means that there is no restriction, optional null means that it is not known
    ...
}

@@ -270,18 +273,79 @@ ParkingSegment ::= SEQUENCE {
 */
EvId ::= INTEGER(0..4294967295) -- TODO: figure out real evids -> its is Identifier2b in CDD parking

/**
* This DE represents a standard length with an associated confidence level
*
* @field length: The value of the length.
*
* @field confidence: The confidence level with 95% level.
* @category:
* @revision: Created in V2.1.1
*/
StandardLength1BWithConfidence ::= SEQUENCE {
    length StandardLength1B,
    confidence StandardLength1BConfidence
}

/**
* This DE represents the 95% confidence level.
*
* @unit: 0.1 metre
* @category:
* @revision: Created in V2.1.1
*/
StandardLength1BConfidence ::= INTEGER {
    oneDecimeter (1),
    unavailable (15)
} (0..15)

-- An alternative to IndividualParkingSpace
ParkingSpaceDetailed ::= SEQUENCE{

/**
 * This DF provides detailed information about the parking capabilities and availabilities of a single parking space. 
 * 
 * It is an extension of @ref ParkingSpaceBasic and it shall additionally include the following additional components: 
 *
 * @field arrangementType: the optional arrangement of the parking space w.r.t. other spaces.
 * This is component, if present, overrides the common arrangementType defined in the @ref ParkingArea.
 *
 * @field boundary: the optional physical boundary of the parking space as a polygon w.r.t. the location of the parking space.
 *
 * @field orientation: the optional orientation of the parking space.
 * This is component, if present, overrides the common orientation defined in the @ref ParkingArea.
 *
 * @field occupancyRule: the occupancy rule applicable to the parking space.
 *
 * @field chargingStationId: the optional identitfier of a charging station that serves the parking space.
 *
 * @field accessViaLane: the optional identifier of a lane that provides access to the parking space.
 *
 * @field accessViaParkingSpaces: the optional identifier(s) of a parking spaces that provide access to the parking space.
 * 
 * @field reservationType: the optional parking reservation type(s) associated to the parking space.
 * This is component, if present, overrides the common reservationType defined in the @ref ParkingArea.
 * 
 * @field metaData: The field contains meta data about the individual parking space.
 *
 * @field observedWidth: The observed width of the physical space available for parking measured perpendicular
 * to the anticipated orientation of the parking vehicle.
 *
 * @note: With this approach, the vehicle driver can easily decide if the vehicle fits in the parking space considering
 * the current occupation.
 *
 * @field nominalWidth: The width of a parking space. This field indicates the length between
 * the center of the width markings, if there are any.
 *
 * @field nominalLength: The length of a parking space. This field indicates the length between
 * the center of the length markings, if there are any.
 *
 * @field source: The stationId of the sender vehicle. Shall only be filled if the sender is not the detector.
 *

 * @category: Road Topology information
 * @revision: Created in V2.3.1 
*/
Updated-ParkingSpaceDetailed ::= SEQUENCE{
   COMPONENTS OF            ParkingSpaceBasic,
   arrangementType          ParkingAreaArrangementType OPTIONAL,
   boundary                 DeltaPositions OPTIONAL,
@@ -292,12 +356,11 @@ ParkingSpaceDetailed ::= SEQUENCE{
   accessViaParkingSpaces   SEQUENCE (SIZE(0..7)) OF Identifier2B OPTIONAL,	
   reservationType          SEQUENCE (SIZE(1..4,...)) OF ParkingReservationType OPTIONAL,			
   ...,
    metaData ParkingSpaceDetectionMetaData,
    observedWidth StandardLength1BWithConfidence OPTIONAL,
    nominalWidth StandardLength1BWithConfidence OPTIONAL,
    nominalLength StandardLength1BWithConfidence OPTIONAL,
    source  StationId OPTIONAL,
    detectionMethod ParkingSpaceDetectionMethod,
    detectionStartTime TimestampIts,
    source  StationId OPTIONAL
}

END