@@ -35,27 +35,23 @@ CentimetrePerSecond ::= Int16 -- [cm/s] Option: the range and enumerated value
Centimetre ::= Int20 -- [cm] Option: the range and enumerated values can be fine-tuned
HighResCurvature ::= Int16 -- [1/m] 0.00001 Option: CAM's curvature was not precise enough
Millisecond16 ::= Int16 -- [ms] 1 Option: CPM's relative time might not precise enough
RadPerSecond ::= Int16 -- [rad/s] 0.0001
GearEnum ::= ENUMERATED {
neutral(0), -- N: Neutral / Driving direction is unknown
forwards(1), -- D: Vehicle is driving forwards
backwards(2), -- R: Vehicle is driving backwards
park(3) -- P: Vehicle is in secure standstill, e.g. in PARK gear
}
VehicleOperationModeEnum ::= ENUMERATED {
unknown(0),
initializing(1), -- The vehicle is preparing for the mission, but hasn’t entered automted mode yet.
prepared(2), -- The vehicle is in automted mode, but currently doesn’t follow one of the control interfaces (waypoints, direct control, ...).
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.
terminating(4) -- The vehicle left automated mode and is terminating related functions.
park(0), -- P: Vehicle is in secure standstill, e.g. in PARK gear
backwards(1), -- R: Vehicle is driving backwards
neutral(2), -- N: Neutral / Driving direction is unknown
forwards(3), -- D: Vehicle is driving forwards
unknown (4) -- Do not use as a command: Unknown or faulted gear state from vehicle
}
VidVehicleStateEnum ::= ENUMERATED {
vehicle-undefined(0), -- Default value
vehicle-ready(1), -- Vehicle is ready to get flashing code
vehicle-flashing-completed(2), -- Flashing is finished
vehicle-authorized(3) -- Vehicle identification was successful and vehicle has switched its state
vehicle-lightflashing-inprogress (2), -- Vehicle flashing in progress
vehicle-lightflashing-completed(3), -- Flashing is finished
vehicle-lightflashing-failed (4), -- indicating vehicle can’t flash because of vehicle error
vehicle-authorized(5) -- Vehicle identification was successful and vehicle has switched its state
safetyTimeSyncResponse SafetyTimeSyncResponse OPTIONAL, -- Functional Safety related container
@@ -33,11 +35,13 @@ Pcvm ::= SEQUENCE {
vehicleError VehicleError OPTIONAL, -- Optional error information. Depending on the given error, the infrastructure either tries to resolve the issue or aborts the mission.
vehicleSafetyFeedback VehicleSafetyFeedback OPTIONAL, -- Relevant safety information from vehicle
vehicleProperties VehicleProperties OPTIONAL, -- Addition of vehicle-specific data elements as feedback from vehicle to external system
oemSpecific OEMSpecificData OPTIONAL, -- OEM specific 16 bit container for special purposes.
... -- extension marker
}
VehicleState ::= SEQUENCE {
vehicleStateGenerationTime TimestampIts OPTIONAL, -- checks on the Data Freshness on receive side
operationMode VehicleOperationModeEnum, -- The current operation mode or state of the vehicle.
vehicleAutorizationState VidVehicleStateEnum, -- The current authorization/vehicle identification state
gearSelected GearEnum, -- Direction in which the vehicle is currently driving or about to drive.
@@ -51,13 +55,10 @@ VehicleState ::= SEQUENCE {
VehicleError ::= SEQUENCE {
time TimestampIts, -- Timestamp when the error occurred.
vehCode VehCodeEnum, -- 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 UInt8 -- Customer specific error code. The infrastructure won't further interpret this value.
customCode UInt8, -- Customer specific error code. The infrastructure won't further interpret this value.
description Description OPTIONAL -- optional description of the error with further details
}
VehCodeEnum ::= ENUMERATED {
unspecified(0), -- Any kind of error that is not specified otherwise. Infrastructure aborts the mission.
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 { -- 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.
vehicleType IA5String (SIZE(32)), -- vehicle type identifier
vehicleType IA5String (SIZE(1..32)), -- vehicle type identifier
checksum UInt32 -- See safety checksum calculation
}
VehicleProperties ::= SEQUENCE {
basicVehicleClass BasicVehicleClassEnum,
vehicleLength Centimetre, --
vehicleWheelbase Centimetre, --
vehicleRearOverhang Centimetre, --
vehicleWidth Centimetre, --
vehicleTireWidth Centimetre, --
vehicleTrackWidth Centimetre, --
vehicleMass VehicleMass,
vehicleSpeedLimit CentimetrePerSecond, --
vehicleCuvatureLimit HighResCurvature, -- max. curvature for left and right turning (assumed symmetrical)
vehicleMaxAngularSteeringRate RadPerSecond, -- max steering rate for automated operation (rate of road wheel angle)
...
}
-- ******************** PCVM specific ENUMs ***************************
VehicleOperationModeEnum ::= ENUMERATED {
unknown(0),
initializing(1), -- The vehicle is preparing for the mission, but hasn’t entered automted mode yet.
prepared(2), -- The vehicle is in automted mode, but currently doesn’t follow one of the control interfaces (waypoints, direct control, ...).
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.
terminating(4), -- The vehicle left automated mode and is terminating related functions.
suspend (5), -- The vehicle is in a critical error state and requires external operator intervention
temp-error (6), -- The vehicle is in a non-critical error state and is initiating a deceleration into stop and hold, prior to suspend
human-in-control (7), -- Manual control of the vehicle has been taken over
station-hold (8), -- The external mfg./customer environment interlocks have taken over and is holding the vehicle from marshalling
...
}
VehCodeEnum ::= ENUMERATED {
unspecified(0), -- Any kind of error that is not specified otherwise. Infrastructure aborts the mission.
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.
onboard-vehicle-fault (2), -- fauld during vehicle onboarding