This DE describes vehicle turning curve with the following information:
```
Value = 1 / Radius * 100000
```
wherein radius is the vehicle turning curve radius in metres.
Positive values indicate a turning curve to the left hand side of the driver.
It corresponds to the vehicle coordinate system as defined in ISO 8855 [[21]](#references).
The value shall be set to:
-`-32767` for values smaller than -32767,
-`n` (`n > -32767` and `n < 0`) for negative values equal to or less than `n`, and greater than `(n-1)`,
-`0` when the vehicle is moving straight,
-`n` (`n > 0` and `n < 32767`) for positive values equal to or less than `n`, and greater than `(n-1)`,
-`32767`, for values greater than 1021,
-`-32768`, if the information is not available.
Values:
***outOfRangeNegative** (-32767)<br>
***straight** (0)<br>
***outOfRangePositive** (32767)<br>
***unavailable** (-32768)<br>
**Unit:** _1 over 100 000 metres_
>>>
NOTE: The present DE is limited to vehicle types as defined in ISO 8855 [[21]](#references).
>>>
```asn1
HighResCurvature ::= INTEGER {
outOfRangeNegative (-32767),
straight (0),
outOfRangePositive (32767),
unavailable (-32768)
} (-32768..32767)
```
### <a name="RadPerSecond"></a>RadPerSecond
This DE represents the rotational speed of a steering wheel movement
The value shall be set to:
-`-32 766` to indicate that the rotational speed is equal to or greater than 3.2766 [rad/s] to the right,
-`n` (`n > -32 766` and `n ≤ 0`) to indicate that the rotation is clockwise (i.e. to the right) and is equal to or less than n x 0,01 rad/s,
and greater than (n-1) x 0,01 rad/s,
-`n` (`n > 0` and `n < 32 766`) to indicate that the rotation is anti-clockwise (i.e. to the left) and is equal to or less than n x 0,01 rad/s,
and greater than (n-1) x 0,01 rad/s,
-`32 766` to indicate that the rotational speed is greater than 3.2765 rad/second to the left,
-`32 767` to indicate that the information is not available.
@unit:0.0001 [rad/s].
Values:
***negativeOutOfRange** (-32766)<br>
***positiveOutOfRange** (32766)<br>
***unavailable** (-32767)<br>
```asn1
RadPerSecond ::= INTEGER {
negativeOutOfRange (-32766),
positiveOutOfRange (32766),
unavailable (-32767)
} (-32767..32766)
```
### <a name="Millisecond16"></a>Millisecond16
This DE represents a signed time value, size 2 Bytes.
**Unit:** _0,001 s (1 ms)_
```asn1
CentimetrePerSecond ::= Int16
Centimetre ::= Int20
HighResCurvature ::= Int16
Millisecond16 ::= Int16
RadPerSecond ::= Int16
```
### <a name="GearEnum"></a>GearEnum
Data element GearEnum optionally describes the desired or actual driving direction of the vehicle in alignment with the signed value of the vehicle speed .
* _header_ of type [**ItsPduHeader**](ETSI-ITS-CDD.md#ItsPduHeader)<br>
The header of the PCIM PDU.
* _e2eProtection_ of type [**ParkingControlE2EProtection**](AVP-Commons-PDU-Descriptions.md#ParkingControlE2EProtection)<br>
A mandatory container for E2E Protection by Autosar Profile 4.
* _pcvm_ of type [**Pcvm**](#Pcvm)<br>
* pcim<br>
The payload of the PCVM PDU.
```asn1
PCVM ::= SEQUENCE {
header ItsPduHeader,
@@ -23,45 +33,44 @@ This type represents the optional container added to the PCVM message mainly as
It includes the following components:
@ field msgGenerationTime
@ field sessionID: Represents a 32 character session ID.
@ field missionID: Represents a 32 character mission ID.
@ field rollingCounterFromPcim: Represents the rolling counter of last received PCIM.
@ field vehicleState: Relevant vehicle state information.
@ field vidResponse: Represents the current vehicle identification status.
@ field safetyTimeSyncResponse: Represents a functional safety time related container.
@ field safeVehicleTypeConfirmation: Represents a functional safety related container.
@ field vehicleError: Error information. Depending on the given error, the infrastructure either tries to resolve the issue or aborts the mission.
@ field vehicleDebug: Represents optional debug information.
@ field vehicleSafetyFeedback: Represents relevant safety information from vehicle.
@ field vehicleProperties: Represents vehicle-specific data elements as feedback from vehicle to external system.
@ field oemSpecific. Represents an OEM specific 16 bit field for special purposes.
* _msgGenerationTime_ of type [**TimestampIts**](ETSI-ITS-CDD.md#TimestampIts) OPTIONAL<br>
* _sessionID_ of type [**SessionMissionID**](AVP-Commons-PDU-Descriptions.md#SessionMissionID)<br>
Represents a 32 character session ID.
* _missionID_ of type [**SessionMissionID**](AVP-Commons-PDU-Descriptions.md#SessionMissionID) OPTIONAL<br>
Represents a 32 character mission ID.
* _rollingCounterFromPcim_ of type [**RollingCounter**](AVP-Commons-PDU-Descriptions.md#RollingCounter)<br>
Represents the rolling counter of last received PCIM.
* _vehicleState_ of type [**VehicleState**](#VehicleState)<br>
Relevant vehicle state information.
* _vidResponse_ of type [**VidResponse**](#VidResponse) OPTIONAL<br>
Represents the current vehicle identification status.
* _safetyTimeSyncResponse_ of type [**SafetyTimeSyncResponse**](#SafetyTimeSyncResponse) OPTIONAL<br>
Represents a functional safety time related container.
* _safeVehicleTypeConfirmation_ of type [**SafeVehicleTypeConfirmation**](#SafeVehicleTypeConfirmation) OPTIONAL<br>
Represents a functional safety related container.
* _vehicleError_ of type [**VehicleError**](#VehicleError) OPTIONAL<br>
Error information. Depending on the given error, the infrastructure either tries to resolve the issue or aborts the mission.
* _vehicleDebug_ of type [**VehicleDebug**](#VehicleDebug) OPTIONAL<br>
Represents optional debug information.
* _vehicleSafetyFeedback_ of type [**VehicleSafetyFeedback**](#VehicleSafetyFeedback) OPTIONAL<br>
Represents relevant safety information from vehicle.
* _vehicleProperties_ of type [**VehicleProperties**](#VehicleProperties) OPTIONAL<br>
Represents vehicle-specific data elements as feedback from vehicle to external system.
* _oemSpecific_ of type [**OEMSpecificData**](AVP-Commons-PDU-Descriptions.md#OEMSpecificData) OPTIONAL<br>
. Represents an OEM specific 16 bit field for special purposes.
```asn1
Pcvm ::= SEQUENCE {
msgGenerationTime TimestampIts OPTIONAL,
@@ -82,21 +91,40 @@ Pcvm ::= SEQUENCE {
```
### <a name="VehicleState"></a>VehicleState
This type represents the container theat carries signals about the actual status of the vehicleâs condition with reference to the driving task. This return signals from the vehicle is usable in the RVO system for correction and refinement of the vehicle motion control VMC.
It includes the following components:
* _vehicleStateGenerationTime_ of type [**TimestampIts**](ETSI-ITS-CDD.md#TimestampIts) OPTIONAL<br>
Checks on the data freshness on receive side.
* _operationMode_ of type [**OperationModeEnum**](#OperationModeEnum)<br>
The current operation mode or state of the vehicle.
* _gearSelected_ of type [**GearEnum**](AVP-Commons-PDU-Descriptions.md#GearEnum)<br>
* _currentVelocity_ of type [**CentimetrePerSecond**](AVP-Commons-PDU-Descriptions.md#CentimetrePerSecond)<br>
Direction in which the vehicle is currently driving or about to drive.
* _currentVelocity_ of type [**VelocityComponentValue**](ETSI-ITS-CDD.md#VelocityComponentValue)<br>
Current vehicle velocity. Negative when driving backwards.
* _currentCurvature_ of type [**HighResCurvature**](AVP-Commons-PDU-Descriptions.md#HighResCurvature)<br>
Current vehicle curvature.
* _secureStandstill_ of type **BOOLEAN**<br>
True if the vehicle is currently in secure standstill (i.e. standstill and secured against rolling, even when vehicle is powered down and even on ramps).
* _idxLastWayPoint_ of type [**WaypointIndex**](AVP-Commons-PDU-Descriptions.md#WaypointIndex) OPTIONAL<br>
Index of last WayPoint that has been received from infrastucture. 0 if not applicable.
* _localizedPose_ of type [**Pose**](AVP-Commons-PDU-Descriptions.md#Pose) OPTIONAL<br>
The current vehicle pose estimated by the vehicle. (Usually close to the pose estimated by the GMS, prediction by the vehicle)
```asn1
VehicleState ::= SEQUENCE {
vehicleStateGenerationTime TimestampIts OPTIONAL,
operationMode OperationModeEnum,
gearSelected GearEnum,
currentVelocity CentimetrePerSecond,
currentVelocity VelocityComponentValue,
currentCurvature HighResCurvature,
secureStandstill BOOLEAN,
idxLastWayPoint WaypointIndex OPTIONAL,
@@ -105,9 +133,16 @@ VehicleState ::= SEQUENCE {
```
### <a name="VidResponse"></a>VidResponse
This type represents the optional container supporting a key exchange process that allows the two participants to agree on a secret seed. Note: It is assumed that the communication between the participants is authenticated (payloads are signed). The proposed key exchange is for safety only. It does not contribute to security.
It includes the following components:
* _vidVehicleState_ of type [**VidVehicleStateEnum**](AVP-Commons-PDU-Descriptions.md#VidVehicleStateEnum)<br>
The current vehicle identification state.
* _vidVehiclePublicKey_ of type [**UInt64**](AVP-Commons-PDU-Descriptions.md#UInt64)<br>
Public Key used by vehicle to derive vehicle identification secret.
This type represents the optional container supporting the calculation of the ITS timestamp given in the expirationTime data element from the DrivingPermission container in the PCIM message.
It includes the following components:
* _challenge_ of type [**UInt16**](AVP-Commons-PDU-Descriptions.md#UInt16)<br>
Challenge received in the SafetyTimeSyncRequest message.
* _vehicleSafetyClockReceiveTimestamp_ of type [**TimestampIts**](ETSI-ITS-CDD.md#TimestampIts)<br>
Time of the Vehicle Safety Clock when SafetyTimeSyncRequest arrived in the vehicle.
* _vehicleSafetyClockTransmitTimestamp_ of type [**TimestampIts**](ETSI-ITS-CDD.md#TimestampIts)<br>
Time of the Vehicle Safety Clock when this response left for the RV.
* _checksum_ of type [**UInt32**](AVP-Commons-PDU-Descriptions.md#UInt32)<br>
This type represents the optional container supporting a safe confirmation by the Subject Vehicle.
It includes the following components:
* _vehicleType_ of type [**IA5String**](#IA5String)(SIZE(1..32))<br>
Vehicle type identifier.
* _checksum_ of type [**UInt32**](AVP-Commons-PDU-Descriptions.md#UInt32)<br>
Safety checksum calculation.
```asn1
SafeVehicleTypeConfirmation ::= SEQUENCE {
vehicleType IA5String (SIZE(1..32)),
checksum UInt32
}
```
### <a name="VehicleError"></a>VehicleError
This type represents the optional container data carrier and is added to the PCVM message in case an error appears during VMC of the vehicle.
It includes the following components:
* _time_ of type [**TimestampIts**](ETSI-ITS-CDD.md#TimestampIts)<br>
Timestamp when the error occurred.
* _vehCode_ of type [**VehCodeEnum**](#VehCodeEnum)<br>
Depending on the given error, the infrastructure either tries to resolve the issue or aborts the mission, saves this message for logging and forwards its content to the backend.
* _customCode_ of type [**UInt8**](AVP-Commons-PDU-Descriptions.md#UInt8)<br>
Customer specific error code. The infrastructure won't further interpret this value.
* _description_ of type [**Description**](AVP-Commons-PDU-Descriptions.md#Description) OPTIONAL<br>
optional description of the error with further details.
```asn1
VehicleError ::= SEQUENCE {
time TimestampIts,
@@ -131,14 +221,23 @@ VehicleError ::= SEQUENCE {
```
### <a name="VehicleDebug"></a>VehicleDebug
This type represents the optional container added to the PCVM message mainly for development purposes. It is used during VMC of the vehicle.
It includes the following components:
* _--_ of type [**Optional**](#Optional) information from the vehicle that might help debugging and analysis<br>
* _requestedVelocity_ of type [**CentimetrePerSecond**](AVP-Commons-PDU-Descriptions.md#CentimetrePerSecond)<br>
* _requestedVelocity_ of type [**VelocityComponentValue**](ETSI-ITS-CDD.md#VelocityComponentValue)<br>
The currently requested velocity sent to the vehicle. Negative when driving backwards.
* _requestedCurvature_ of type [**HighResCurvature**](AVP-Commons-PDU-Descriptions.md#HighResCurvature)<br>
The currently requested curvature sent to the vehicle.
* _powertrainActive_ of type **BOOLEAN**<br>
True if the power train is active, e.g. the engine is running/e-motor ready.
This type represents the optional container added to the PCVM message mainly as a surrogate for missing static vehicle data that RVO will possibly need.
@@ -236,7 +309,7 @@ This type represents the optional container added to the PCVM message mainly as
* _vehicleMass_ of type [**VehicleMass**](ETSI-ITS-CDD.md#VehicleMass)<br>
Represents a rough vehicle mass value imported fom the CDD.
* _vehicleSpeedLimit_ of type [**CentimetrePerSecond**](AVP-Commons-PDU-Descriptions.md#CentimetrePerSecond)<br>
* _vehicleSpeedLimit_ of type [**VelocityComponentValue**](ETSI-ITS-CDD.md#VelocityComponentValue)<br>
Represents the limit value of the vehicle speed according to the use case, unit in (cm/s).
* _vehicleCuvatureLimit_ of type [**HighResCurvature**](AVP-Commons-PDU-Descriptions.md#HighResCurvature)<br>
This DE saves this state for logging purposes and forwards its content to the backend.
The value shall be set to:
- 0 - `unknown(0),
- 0 - `unknown(0)` - The vehicle operation mode is not defined,
- 1 - `initializing(1)` - The vehicle is preparing for the mission, but hasnât entered automted mode yet,
- 2 - `prepared(2)` - The vehicle is in automted mode, but currently doesnât follow one of the control interfaces (waypoints, direct control, ...),
- 3 - `driving(3)` - The vehicle is in automted mode and actively follows one of the control interfaces (waypoints, direct control, ...). It hasnât reached the end of the given path yet. Also applies if the vehicle stopped temporarily,