vehicles SEQUENCE (SIZE(1..32)) OF VehicleContainer -- Max. 32 vehicles at a time based on size of VehicleContainerSeq options.
vehicles SEQUENCE (SIZE(1..32)) OF VehicleContainer, -- Max. 32 vehicles at a time based on size of VehicleContainerSeq options.
... -- extension marker
}
VehicleContainer ::= SEQUENCE {
currentSessionID SessionMissionID,
currentMissionID SessionMissionID, -- 6 character ID
currentSessionID SessionMissionID, -- up to 32 character ID
currentMissionID SessionMissionID OPTIONAL,-- optional missionID 32 character ID
-- Option: smaller data size might be sufficient
rollingCounterFromPcvm RollingCounter, -- PCVM Rolling counter signal paired with serverTimeAtPcvm
vehicleIdentification VidRequest OPTIONAL, -- for generating a blinking pattern for the direction indicator lights
@@ -39,7 +40,8 @@ VehicleContainer ::= SEQUENCE {
driveCommand DriveCommand, -- Contains commands for the automated drive.
detectedVehiclePose DetectedVehiclePose OPTIONAL, -- Contains the most recent pose of the vehicle in the fixed infrastructure coordinate system.
controlInterface ControlInterface, -- Specifies which interface is used to control the vehicle.
oemSpecific OEMSpecificData OPTIONAL -- OEM specific 16 bit container for special purposes.
oemSpecific OEMSpecificData OPTIONAL, -- OEM specific 16 bit container for special purposes.
...
}
VidRequest ::= CHOICE { -- We proposed a change here: now we are flexible with identification technologies
@@ -75,7 +77,7 @@ DriveCommand ::= SEQUENCE {
terminateReason TerminateReasonEnum, -- If action equals terminate, indicates whether a terminate is requested because the vehicle reached the destination or because of an error.
-- Option: terminateReason is mandatory. It only encodes terminate if the drive command is terminate
-- Possible resolution: rename to health status, or use CHOICE in driveCommand and use this as a property of terminate drive command
selectGear GearEnum, -- Requested gear (in line with the driving direction request), incl. request for neutral gear.
selectGear GearEnum OPTIONAL, -- Requested gear (in line with the driving direction request), incl. request for neutral gear.
directionIndicator VehicleDirIndicatorEnum, -- The currently requested direction indicator.
-- Option: Using CDD's ExteriorLights can be considered as well. It would support multiple light request commands.
emergencyStopRequest EmergencyStopEnum OPTIONAL -- Signal for triggering an emergency stop or brake prefill.
safetyTimeSyncResponse SafetyTimeSyncResponse OPTIONAL, -- Functional Safety related container
safeVehicleTypeConfirmation SafeVehicleTypeConfirmation OPTIONAL, -- Functional Safety related container
vehicleError VehicleError OPTIONAL, -- Optional error information. Depending on the given error, the infrastructure either tries to resolve the issue or aborts the mission.
oemSpecific OEMSpecificData OPTIONAL -- OEM specific 16 bit container for special purposes.
vehicleSafetyFeedback VehicleSafetyFeedback OPTIONAL, -- Relevant safety information from vehicle
oemSpecific OEMSpecificData OPTIONAL, -- OEM specific 16 bit container for special purposes.
... -- extension marker
}
VehicleState ::= SEQUENCE {
@@ -44,10 +46,6 @@ VehicleState ::= SEQUENCE {
secureStandstill BOOLEAN, -- 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 WaypointIndex OPTIONAL, -- Index of last WayPoint that has been received from infrastucture. 0 if not applicable.
localizedPose Pose OPTIONAL -- The current vehicle pose estimated by the vehicle. (Usually close to the pose estimated by the GMS, prediction by the vehicle)
-- Option: Discussion point:
-- Pose interpretation should be clarified.
-- It could include a timestamp.
-- Relative or absolute position: should be decided (both could be an option).
}
VehicleError ::= SEQUENCE {
@@ -61,19 +59,25 @@ VehCodeEnum ::= ENUMERATED {
path-not-driveable(1) -- The vehicle can’t follow the given waypoints, based on the given DetectedVehiclePose. Infrastructure tries to plan a different path or aborts the mission otherwise.
}
VehicleDebug ::= SEQUENCE (SIZE(1..5)) OF DebugContainer -- up to 5 debug containers for 20 ms debugging
VehicleDebug ::= SEQUENCE { -- Optional information from the vehicle that might help debugging and analysis
requestedVelocity CentimetrePerSecond, -- The currently requested velocity sent to the vehicle. Negative when driving backwards.
requestedCurvature HighResCurvature, -- The currently requested curvature sent to the vehicle.
powertrainActive BOOLEAN -- True if the power train is active, e.g. the engine is running/e-motor ready.
}
DebugContainer ::= SEQUENCE { -- Option: this container is a matter of discussion. If it is never used, we could remove it. Waiting for contribution.
VehicleSafetyFeedback ::= SEQUENCE (SIZE(1..5)) OF VehicleSafetyFeedbackContainer -- up to 5 VehicleSafetyFeedback containers for 20 ms monitoring, logging and debugging
VehicleSafetyFeedbackContainer ::= SEQUENCE {
remainingTimeToDrive Millisecond16, -- The time which the vehicle is allowed to keep driving until brakes must be engaged. Signed value.
-- Option: CPM's relative time unit could be used if -1500..1500 is enough
drivingAllowed BOOLEAN, -- True if the vehicle is currently allowed to drive, false if a safety stop happened.
safetyViolations SafetyViolationsEnum, -- List of violations which currently lead to stopping the vehicle.
-- Option: Currently this is an enum, only 1 error is reported at a time
requestedVelocity CentimetrePerSecond, -- The currently requested velocity sent to the vehicle. Negative when driving backwards.
requestedCurvature HighResCurvature, -- The currently requested curvature sent to the vehicle.
powertrainActive BOOLEAN -- True if the power train is active, e.g. the engine is running/e-motor ready.
safetyViolations SafetyViolationsContainer, -- List of violations which currently lead to stopping the vehicle.
currentVehicleSafetyClockTime TimestampIts -- Time when safety component created this container
}
SafetyViolationsContainer ::= SEQUENCE (SIZE(0..5)) OF SafetyViolationsEnum -- up to 5 safety violations can be reported per cycle
SafetyTimeSyncResponse ::= SEQUENCE {
challenge UInt16, -- Challenge received in the SafetyTimeSyncRequest message
currentVehicleSafetyClockTime TimestampIts, -- Time of the Vehicle Safety Clock when SafetyTimeSyncRequest was received