Commit 21e555a9 authored by András Wippelhauser's avatar András Wippelhauser
Browse files

Improvements during drafting session #7

parent 6917e60e
Loading
Loading
Loading
Loading
+70 −69
Original line number Diff line number Diff line
@@ -32,9 +32,9 @@ PODAM ::= SEQUENCE {
 *
 * @field basicContainer: The location and type of the message sender ITS-S
 *
 * @field detections: The list of detected spots.
 * @field detections: The list of detected spaces.
 *
 * @field intentIndication: The spot that the ego vehicle intends to occupy
 * @field intentIndication: The space that the ego vehicle intends to occupy
 *
 * @category:
 * @revision: Created in V2.1.1
@@ -42,12 +42,13 @@ PODAM ::= SEQUENCE {
PodasParameters ::= SEQUENCE {
    basicContainer      BasicContainer,
    -- Idea: introduce management container
    detections          ParkingSpotDetectionDatabase OPTIONAL,
    intentIndication    ParkingSpotIntentIndication OPTIONAL
    detections          ParkingSpaceDetections OPTIONAL,
    intentIndication    ParkingSpaceIntentIndication OPTIONAL,
    ...
}

/**
 * This DE describes the level of the parking spot in case of multilevel parking facilities
 * This DE describes the level of the parking space in case of multilevel parking facilities. TODO: this concept needs to be refined.
 *
 * @unit: 1 Level in case there are entire levels and 2 in case of shifter levels
 * @category:
@@ -56,43 +57,43 @@ PodasParameters ::= SEQUENCE {
LevelInformation ::= INTEGER(-40..87)

/**
 * This DF indicates the spot intended to be allocated by the ego vehicle
 * This DF indicates the space intended to be allocated by the ego vehicle
 *
 * @field spotId: The identifier of the parking spot. Unique for each sender.
 * @field spaceId: The identifier of the parking space. Unique for each sender.
 *
 * @field reporter: The station id of the reporter of the parkicular spot.
 * @field reporter: The station id of the reporter of the parkicular space.
 *
 * @field estimatedArrivalTime: The estimated time of arrival to the parking spot.
 * @field estimatedArrivalTime: The estimated time of arrival to the parking space.
 *
 * @category:
 * @revision: Created in V2.1.1
*/
ParkingSpotIntentIndication ::= SEQUENCE {
    spotId                  Identifier2B,
ParkingSpaceIntentIndication ::= SEQUENCE {
    spaceId                  Identifier2B,
    reporter                StationId,
    estimatedArrivalTime    TimestampIts OPTIONAL
}

/**
 * This DF describes the list of spot detections
 * This DF describes the list of space detections
 *
 * @category:
 * @revision: Created in V2.1.1
*/
ParkingSpotDetectionDatabase ::= SEQUENCE (SIZE(1..32, ...)) OF ParkingSpotDetection
ParkingSpaceDetections ::= SEQUENCE (SIZE(1..32, ...)) OF ParkingSpaceDetection

/**
 * This DF describes parking spot detection parameters
 * This DF describes parking space detection parameters
 *
 * @field spotId: The identifier of the parking spot. Shall be unique when combined with source
 * @field spaceId: The identifier of the parking space. Shall be unique when combined with source
 *
 * @field source: The stationId of the sender vehicle.
 * @field source: The stationId of the sender vehicle. Shall only be filled if the sender is not the detector.
 *
 * @field orientation: The orientation of the parking spot.
 * @field orientation: The orientation of the parking space.
 *
 * @field levelInformation: The level of the parking spot in a parking facility.
 * @field levelInformation: The level of the parking space in a parking facility.
 *
 * @field location: The location description of the parking spot.
 * @field location: The location description of the parking space.
 *
 * @field detectionTime: The end time of detection. (e.g., when the detector vehicle passed by)
 *
@@ -101,49 +102,49 @@ ParkingSpotDetectionDatabase ::= SEQUENCE (SIZE(1..32, ...)) OF ParkingSpotDetec
 * @category:
 * @revision: Created in V2.1.1
*/
ParkingSpotDetection ::= SEQUENCE {
    spotId Identifier2B,
ParkingSpaceDetection ::= SEQUENCE {
    spaceId Identifier2B,
    source  StationId OPTIONAL,
    orientation Wgs84Angle OPTIONAL,
    levelInformation LevelInformation OPTIONAL,
    location ParkingSpotDetectionLocation,
    location ParkingSpaceDetectionLocation,
    detectionTime TimestampIts,
    detectionMethod ParkingSpotDetectionMethod,
    detectionMethod ParkingSpaceDetectionMethod,
    ...
}

/**
 * This DF represents the location of parking spot
 * This DF represents the location of parking space
 * 
 * @field individualSpot: The location information of an individual spot
 * @field individualSpace: The location information of an individual space
 * 
 * @field subsequentSpots: The location information of subsequent spots
 * @field subsequentSpaces: The location information of subsequent spaces
 * 
 * @category:
 * @revision: Created in V2.1.1
 */
ParkingSpotDetectionLocation ::= CHOICE {
    individualSpot	IndividualParkingSpot,
    subsequentSpots	SubsequentParkingSpotSegments,
ParkingSpaceDetectionLocation ::= CHOICE {
    individualSpace	IndividualParkingSpace,
    subsequentSpaces	SubsequentParkingSpaceSegments,
    ...
}

/**
 * This DF represents the location of an individual parking spot
 * This DF represents the location of an individual parking space
 * 
 * @field position: The position of the individual spot relative to the reference position.
 * @field position: The position of the individual space relative to the reference position.
 * 
 * @field entrySpace: The distance between two objects blocking the spot from the side. In case of parallel parking
 * spots, the direction is measured in parallell to the direction of the parking spot. Otherwise the distance is 
 * measured perpendicular to the direction of the parking spot.
 * @field entrySpace: The distance between two objects blocking the space from the side. In case of parallel parking
 * spaces, the direction is measured in parallell to the direction of the parking space. Otherwise the distance is
 * measured perpendicular to the direction of the parking space.
 *
 * @note: With this approach, the vehicle driver can easily decide if the vehicle fits in the parking spot considering
 * @note: With this approach, the vehicle driver can easily decide if the vehicle fits in the parking space considering
 * the current occupation.
 *
 * @field spotWidth: The width of a parking spot. This field indicates the length between 
 * @field spaceWidth: The width of a parking space. This field indicates the length between
 * the center of the width markings, if there are any.
 *
 * @field spotLength: The length of a parking spot. This field indicates the length between 
 * @field spaceLength: The length of a parking space. This field indicates the length between
 * the center of the length markings, if there are any.
 *
 * @field externalLinks: Represents links to external systems, e.g., to electric vehicle charging stations.
@@ -151,11 +152,11 @@ ParkingSpotDetectionLocation ::= CHOICE {
 * @category:
 * @revision: Created in V2.1.1
 */
IndividualParkingSpot ::= SEQUENCE {
IndividualParkingSpace ::= SEQUENCE {
    position DeltaPosition,
    entrySpace StandardLength1B OPTIONAL,
    spotWidth StandardLength1B OPTIONAL,
    spotLength StandardLength1B OPTIONAL,
    spaceWidth StandardLength1B OPTIONAL,
    spaceLength StandardLength1B OPTIONAL,
    externalLinks ExternalLinks OPTIONAL,
    ...
}
@@ -163,7 +164,7 @@ IndividualParkingSpot ::= SEQUENCE {
/**
 * This DF represents external ids
 * 
 * @field evId: Identifier of the electric charing spot. -> Reference to ISO standard
 * @field evId: Identifier of the electric charing space. -> Reference to ISO standard
 * 
 * @field parkingSpaceId: The identifier of the parking space, as defined in the ParkingSpaceBasic data frame.
 *
@@ -185,12 +186,12 @@ ExternalLinks ::= SEQUENCE {
EvId ::= INTEGER(0..4294967295) -- TODO: figure out real evids

/**
 * This DE indicates the method that was used to detect a parking spot
 * 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 spot,
 * - 2 - `leavingVehicle`       - A remote vehicle left the particular parking spot,
 * - 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
@@ -199,7 +200,7 @@ EvId ::= INTEGER(0..4294967295) -- TODO: figure out real evids
 * @category:
 * @revision: V2.1.1
 */
ParkingSpotDetectionMethod ::= BIT STRING {
ParkingSpaceDetectionMethod ::= BIT STRING {
    sensor                  (0),
    leavingEgo              (1),
    leavingVehicle          (2),
@@ -207,29 +208,29 @@ ParkingSpotDetectionMethod ::= BIT STRING {
} (SIZE(4,...))

/**
 * This DF describes a list of subsequent parking spots
 * This DF describes a list of subsequent parking spaces
 *
 * @category:
 * @revision: Created in V2.1.1
*/
SubsequentParkingSpotSegments ::= SEQUENCE SIZE(1..16) OF SubsequentParkingSpotSegment
SubsequentParkingSpaceSegments ::= SEQUENCE SIZE(1..16) OF SubsequentParkingSpaceSegment

/**
 * This DF represents subsequent parking spots
 * This DF represents subsequent parking spaces
 *
 * @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 
 * the path points should not be filled.
 *
 * @field spotsOnTheLeft: The list of parking spot segments on the left of the vehicle.
 * @field spacesOnTheLeft: The list of parking space segments on the left of the vehicle.
 *
 * @field spotsOnTheRight: The list of parking spot segments on the right of the vehicle.
 * @field spacesOnTheRight: The list of parking space segments on the right of the vehicle.
 *
 * @field spotWidth: The width of a parking spot. This field indicates the length between 
 * @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 spotLength: The length of a parking spot. This field indicates the length between 
 * @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 externalLinks: Represents links to external systems, e.g., to electric vehicle charging stations.
@@ -239,48 +240,48 @@ SubsequentParkingSpotSegments ::= SEQUENCE SIZE(1..16) OF SubsequentParkingSpotS
 * @category:
 * @revision: Created in V2.1.1
 */
SubsequentParkingSpotSegment ::= SEQUENCE {
SubsequentParkingSpaceSegment ::= SEQUENCE {
    path Path,
    spotsOnTheLeft ParkingSpotSegmentDetections OPTIONAL,
    spotsOnTheRight ParkingSpotSegmentDetections OPTIONAL,
    spotWidth StandardLength1B OPTIONAL,
    spotLength StandardLength1B OPTIONAL,
    spacesOnTheLeft ParkingSpaceSegmentDetections OPTIONAL,
    spacesOnTheRight ParkingSpaceSegmentDetections OPTIONAL,
    spaceWidth StandardLength1B OPTIONAL,
    spaceLength StandardLength1B OPTIONAL,
    externalLinks ExternalLinks OPTIONAL,
    ...
}
((WITH COMPONENTS {..., spotsOnTheLeft PRESENT}) | 
 (WITH COMPONENTS {..., spotsOnTheRight PRESENT}))
((WITH COMPONENTS {..., spacesOnTheLeft PRESENT}) |
 (WITH COMPONENTS {..., spacesOnTheRight PRESENT}))

/**
 * This DF describes a list of subsequent parking spot segments
 * This DF describes a list of subsequent parking space segments
 *
 * @category:
 * @revision: Created in V2.1.1
*/
ParkingSpotSegmentDetections ::= SEQUENCE SIZE(1..32, ...) OF ParkingSpotSegmentDetection
ParkingSpaceSegmentDetections ::= SEQUENCE SIZE(1..32, ...) OF ParkingSpaceSegmentDetection

/**
 * This DF represents a parking spot segment
 * This DF represents a parking space segment
 *
 * @field distanceFromLastPoint: The starting point of the segment relative to the previous point.
 * The distance is measured on the path of the detector vehicle. If the first point is not the same
 * as the starting point of the path, a spot shall be added with status unknown. If the last point is
 * not the same as the terminating point of the path, a spot shall be added with status unknown.
 * as the starting point of the path, a space shall be added with status unknown. If the last point is
 * not the same as the terminating point of the path, a space shall be added with status unknown.
 *
 * @field status: The status of the parking spot.
 * @field status: The status of the parking space.
 *
 * @field timeDelta: The time between the detectionTime and the detection of the current spot
 * @note: D where X is detectionTime and Y is the detection of the current spot:
 * @field timeDelta: The time between the detectionTime and the detection of the current space
 * @note: D where X is detectionTime and Y is the detection of the current space:
 * ------Y---------X------>
 *       |<---D--->|
 *
 * @field offsetToPath: Distance between the path of the vehicle and the closest position of 
 * the parking spot to the path.
 * the parking space to the path.
 *
 * @category:
 * @revision: Created in V2.1.1
 */
ParkingSpotSegmentDetection ::= SEQUENCE {
ParkingSpaceSegmentDetection ::= SEQUENCE {
    distanceFromLastPoint   StandardLength12b,
    status                  ParkingSpaceStatus,
    timeDelta               DeltaTimeTenthOfSecond,