Commit 722ad9d1 authored by perezed's avatar perezed
Browse files

- PCVM latest status

parent fa357370
Loading
Loading
Loading
Loading
Loading
+0 −89
Original line number Diff line number Diff line
<<<<<<< HEAD
AVP-Commons-PDU-Descriptions {
  itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103882) avpCommons (5) major-version-1 (1) minor-version-1(1)
}

DEFINITIONS AUTOMATIC TAGS ::= BEGIN  -- AVP-specific common data elements

UInt8 ::= INTEGER (0..255)
Int16 ::= INTEGER (-32768..32767)
Int20 ::= INTEGER (-524288..524287)
UInt16 ::= INTEGER (0..65535)
UInt32 ::= INTEGER (0..4294967295)

RollingCounter ::= UInt16

OEMSpecificData ::= UInt16

WaypointIndex ::= UInt16

Pose ::= SEQUENCE { -- Projected to the ground, elevation not considered
                    -- x and y are cartesian coordinates
  x Centimetre,
  y Centimetre,     -- The reference point of the vehicle is in the center of the rear axle
  psi Psi           -- Attitude of the vehicle relative to the x axis.
                    -- Angle between the longitudinal axis of the vehicle and the 
                    -- x (North) axis of the reference coordinate system
}

Psi ::= INTEGER {
    xDirection  (0) -- 0.0001 radian
} (0..62831)        -- Counter-clockwise
                    -- Option: the range and enumerated values can be fine-tuned

--                                    UNIT     FACTOR
CentimetrePerSecond ::= Int16   -- [cm/s] Option: the range and enumerated values can be fine-tuned
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

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.
}

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
}

SafetyViolationsEnum ::= ENUMERATED {
  no-violation(0),
  no-driving-permission-received(1),
  last-driving-permission-too-old(2),
  crc-violation-clock-sync-response(3),
  crc-violation-driving-permission(4),
  expiration-time-violation(5),
  driving-direction-mismatch(6),
  velocity-violation(7),
  curvature-min-violation(8),
  curvature-max-violation(9),
  clocks-not-synchronized(10),
  expiration-time-too-high(11),
  monitoring(12)
}

SessionMissionID ::= IA5String (SIZE(17..32)) -- Session ID response, also suitable to carry VIN for special use cases!

ParkingControlE2EProtection ::= SEQUENCE { -- AUTOSAR Profile 4 e2e protection
  length UInt16,
  rollingCounter UInt16,  
  dataID UInt32,
  crc32 UInt32                        -- Cyclic redundency check, hamming distance >= 6
}

END
=======
AVP-Commons-PDU-Descriptions {
  itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103882) avpCommons (5) major-version-1 (1) minor-version-1(1)
}
@@ -171,4 +83,3 @@ ParkingControlE2EProtection ::= SEQUENCE { -- AUTOSAR Profile 4 e2e protection
}

END
>>>>>>> remotes/origin/WI-001958
+174 −59
Original line number Diff line number Diff line
@@ -24,26 +24,57 @@ PCVM ::= SEQUENCE {
  pcvm Pcvm
}

/**
  * 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.  
  *
  * 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.
  */
Pcvm ::= SEQUENCE {
  msgGenerationTime  TimestampIts OPTIONAL,
  sessionID SessionMissionID,										-- 32 character ID   				
  missionID SessionMissionID OPTIONAL,           					-- optional missionID 32 character ID
  rollingCounterFromPcim RollingCounter,     						-- Rolling counter of last received PCIM
  vehicleState VehicleState,                 						-- Relevant vehicle information.
  vidResponse VidResponse OPTIONAL, 								-- The current vehicle identification stat
  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.
  vehicleDebug VehicleDebug OPTIONAL,        						-- Optional debug information.
  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
  sessionID SessionMissionID,												
  missionID SessionMissionID OPTIONAL,           					
  rollingCounterFromPcim RollingCounter,     						
  vehicleState VehicleState,                 						
  vidResponse VidResponse OPTIONAL, 								
  safetyTimeSyncResponse SafetyTimeSyncResponse OPTIONAL,			
  safeVehicleTypeConfirmation SafeVehicleTypeConfirmation OPTIONAL,	
  vehicleError VehicleError OPTIONAL,        						
  vehicleDebug VehicleDebug OPTIONAL,        				
  vehicleSafetyFeedback VehicleSafetyFeedback OPTIONAL, 			
  vehicleProperties VehicleProperties OPTIONAL,         			
  oemSpecific OEMSpecificData OPTIONAL, 							
  ...                                                           
}

VehicleState ::= SEQUENCE {
  vehicleStateGenerationTime  TimestampIts OPTIONAL,  -- checks on the Data Freshness on receive side 
  operationMode VehicleOperationModeEnum,             -- The current operation mode or state of the vehicle.
  operationMode OperationModeEnum,                    -- The current operation mode or state of the vehicle.
  gearSelected GearEnum,                              -- Direction in which the vehicle is currently driving or about to drive.
  currentVelocity CentimetrePerSecond,                -- Current vehicle velocity. Negative when driving backwards.
  currentCurvature HighResCurvature,                  -- Current vehicle curvature.
@@ -74,12 +105,24 @@ VehicleDebug ::= SEQUENCE { -- Optional information from the vehic

VehicleSafetyFeedback ::= SEQUENCE (SIZE(1..5)) OF VehicleSafetyFeedbackContainer   -- up to 5 VehicleSafetyFeedback containers for 20 ms monitoring, logging and debugging

/**
  * 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.  
  *
  * It includes the following components: 
  *
  * @field remainingTimeToDrive: Represents the time which the vehicle is allowed to keep driving until brakes must be engaged. Signed value.
  *                                           
  * @field drivingAllowed: True if the vehicle is currently allowed to drive, false if a safety stop happened.
  *
  * @field safetyViolations: Represents a list of violations which currently lead to stopping the vehicle.
  *
  * @field currentVehicleSafetyClockTime: Represents the time when safety component created this container
  */
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 SafetyViolationsContainer, -- List of violations which currently lead to stopping the vehicle.
  currentVehicleSafetyClockTime TimestampIts  -- Time when safety component created this container
  remainingTimeToDrive Millisecond16,         -- Option: CPM's relative time unit could be used if -1500..1500 is enough                                     
  drivingAllowed BOOLEAN,                     
  safetyViolations SafetyViolationsContainer, 
  currentVehicleSafetyClockTime TimestampIts  
}

SafetyViolationsContainer ::= SEQUENCE (SIZE(0..5)) OF SafetyViolationsEnum -- up to 5 safety violations can be reported per cycle
@@ -96,62 +139,134 @@ SafeVehicleTypeConfirmation ::= SEQUENCE {
  checksum UInt32                   	-- See safety checksum calculation
}

/**
  * 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.  
  *
  * It includes the following components: 
  *
  * @field basicVehicleClass: It shares the vehicle class information to the RVO. 
  *
  * @field vehicleLength: Represents the overall vehicle length in (cm).
  *
  * @field vehicleWheelbase: Represents the wheelbase value (cm).
  *
  * @field vehicleRearOverhang: Represents the rear overhang value (cm). 
  *
  * @field vehicleWidth: Represents the overall vehicle width value (cm).  
  *
  * @field vehicleTireWidth: Represents a rough vehicle mass value imported fom the CDD.
  *
  * @field vehicleTrackWidth: Represents the specified width of tires value (cm). 
  *
  * @field vehicleMass: Represents a rough vehicle mass value imported fom the CDD.
  *
  * @field vehicleSpeedLimit: Represents the limit value of the vehicle speed according to the use case, unit in (cm/s).   
  *
  * @field vehicleCuvatureLimit: Represents the maximum curvature for left and right turning (assumed symmetrical).
  *
  * @field vehicleMaxAngularSteeringRate: Represents maximum steering rate for automated operation (rate of road wheel angle).
  */
VehicleProperties ::= SEQUENCE {
  basicVehicleClass BasicVehicleClassEnum,
  vehicleLength  Centimetre,  --  
  vehicleWheelbase  Centimetre,  -- 
  vehicleRearOverhang  Centimetre,  -- 
  vehicleWidth  Centimetre,  -- 
  vehicleTireWidth  Centimetre,  -- 
  vehicleTrackWidth Centimetre,  --
  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)
  vehicleSpeedLimit  CentimetrePerSecond, 
  vehicleCuvatureLimit  HighResCurvature,   	
  vehicleMaxAngularSteeringRate RadPerSecond,  
  ...
}

-- ******************** PCVM specific ENUMs ***************************

VehicleOperationModeEnum ::= ENUMERATED {
/**
  * This DE saves this state for logging purposes and forwards its content to the backend.
  *
  * The value shall be set to:
  * - 0 - `unknown(0),
  * - 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,
  * - 4 - `terminating(4)`   		  - The vehicle left automated mode and is terminating related functions,
  * - 5 - `suspend (5)` 				  - The vehicle is in a critical error state and requires external operator intervention,
  * - 6 - `temp-error (6)`        - The vehicle is in a non-critical error state and is initiating a deceleration into stop and hold, prior to suspend,
  * - 7 - `human-in-control (7)`  - Manual control of the vehicle has been taken over ,
  * - 8 - `station-hold (8)`		  - The external mfg./customer environment interlocks have taken over and is holding the vehicle from marshalling.
  */
OperationModeEnum ::= 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 
  initializing      (1),  		
  prepared          (2),      	
  driving           (3),       		
  terminating       (4),   		
  suspend           (5), 				
  temp-error        (6),           
  human-in-control  (7), 		
  station-hold      (8),		    
  ...
}

/**
  * This DE saves this state for logging purposes and forwards its content to the backend.
  *
  * The value shall be set to:
  * - 0 - `unspecified`        		- Any kind of error that is not specified otherwise. Infrastructure aborts the mission,
  * - 1 - `pathNotDriveable`  		- 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,
  * - 2 - `onboardVehicleFault` 	- Failure during vehicle onboarding,
  * - 3 - `communicationFault`		- vehicle internal comms fault,
  * - 4 - `vehicleEgressFault`	  - Failure during vehicle AVP egress or shutdown process.
*/
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
  communication-fault (3),		-- vehicle internal comms fault
  vehicle-egress-fault (4),		-- Failure during vehicle AVP egress or shutdown process
  unspecified         (0),        		
  pathNotDriveable    (1),  		
  onboardVehicleFault (2), 	
  communicationFault  (3),	
  vehicleEgressFault  (4),		
  ...
}

/**
  * This data element specified a generic vehicle class that the RVO has to cope with.
  *
  * The value shall be set to:
  * - 0 - `none`                    - Not known or unavailable category,
  * - 1 - `unknown`                 - Does not fit any other category,
  * - 2 - `special`                 - Special use,
  * - 3 - `moto`                    - Motorcycle,
  * - 4 - `car`                     - Passenger car,
  * - 5 - `carOther`                - Four tire single units,
  * - 6 - `bus`                     - Buses,
  * - 7 - `axleCnt2`                - Two axle, six tire single units,
  * - 8 - `axleCnt3`                - Three axle, single units,
  * - 9 - `axleCnt4`                - Four or more axle, single unit,
  * - 10 - `axleCnt4Trailer`        - Four or less axle, single trailer,
  * - 11 - `axleCnt5Trailer`        - Five or less axle, single trailer,
  * - 12 - `axleCnt6Trailer`        - Six or more axle, single trailer,
  * - 13 - `axleCnt5MultiTrailer`   - Five or less axle, multi-trailer,
  * - 14 - `axleCnt6MultiTrailer`   - Six axle, multi-trailer,
  * - 15 - `axleCnt7MultiTrailer`   - Seven or more axle, multi-trailer.
*/
BasicVehicleClassEnum ::= ENUMERATED {
  none (0), -- Not Equipped, Not known or unavailable
  unknown (1), -- Does not fit any other category
  special (2), -- Special use
  moto (3), -- Motorcycle
  car (4), -- Passenger car
  carOther (5), -- Four tire single units
  bus (6), -- Buses
  axleCnt2 (7), -- Two axle, six tire single units
  axleCnt3 (8), -- Three axle, single units
  axleCnt4 (9), -- Four or more axle, single unit
  axleCnt4Trailer (10), -- Four or less axle, single trailer
  axleCnt5Trailer (11), -- Five or less axle, single trailer
  axleCnt6Trailer (12), -- Six or more axle, single trailer
  axleCnt5MultiTrailer (13), -- Five or less axle, multi-trailer
  axleCnt6MultiTrailer (14), -- Six axle, multi-trailer
  axleCnt7MultiTrailer (15), -- Seven or more axle, multi-trailer
  none                  (0), 
  unknown               (1), 
  special               (2), 
  moto                  (3),
  car                   (4),
  carOther              (5), 
  bus                   (6), 
  axleCnt2              (7), 
  axleCnt3              (8), 
  axleCnt4              (9), 
  axleCnt4Trailer       (10), 
  axleCnt5Trailer       (11), 
  axleCnt6Trailer       (12), 
  axleCnt5MultiTrailer  (13), 
  axleCnt6MultiTrailer  (14), 
  axleCnt7MultiTrailer  (15), 
  ...
}