Commit 6364d3de authored by András Wippelhauser's avatar András Wippelhauser
Browse files

Editorial changes rev.1

parent 2dec5dd4
Loading
Loading
Loading
Loading

AUTOSARProfile4.asn

0 → 100644
+22 −0
Original line number Diff line number Diff line
AUTOSAR-PDU-Descriptions {
  itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103882) autosar (2) major-version-1 (1) minor-version-1(1)
}

DEFINITIONS AUTOMATIC TAGS ::= BEGIN  -- AUTOSAR data elements

IMPORTS

UInt16, UInt32
FROM 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)
}
;

AUTOSARProfile4 ::= SEQUENCE {
    length UInt16,                       -- Autosar Profile4 CRC32
    rollingCounter UInt16,  
    dataID UInt32,
    crc32 UInt32                        -- Cyclic redundency check, hamming distance >= 6
}

END
 No newline at end of file

AVP_Commons.asn

0 → 100644
+84 −0
Original line number Diff line number Diff line
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

OEMSpecificContainer ::= SEQUENCE {
    ...
    -- Option: this is a discussion point, how we can implement this in ASN.1 the best way
}

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

VehicleAuthorizationEnum ::= 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(2..34))  -- Session ID response, also suitable to carry VIN for special use cases!
                                              -- The data size and the datatype should be reviewed.
                                              -- Waiting for contribution.

END
+74 −75
Original line number Diff line number Diff line
PcimModule DEFINITIONS AUTOMATIC TAGS ::= BEGIN  -- Park Control Infrastucture Message
PCIM-PDU-Descriptions {
  itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103882) pcim (6) major-version-1 (1) minor-version-1(1)
}

DEFINITIONS AUTOMATIC TAGS ::= BEGIN  -- Park Control Infrastucture Message

IMPORTS

AUTOSARProfile4
FROM AUTOSAR-PDU-Descriptions {
  itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103882) autosar (2) major-version-1 (1) minor-version-1(1)
}

RollingCounter, CentimetrePerSecond, HighResCurvature, GearEnum, WaypointIndex, Pose
FROM 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)
}

ItsPduHeader, TimestampIts, LongitudinalAccelerationValue
FROM ETSI-ITS-CDD {
  itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) 102894 cdd (2) major-version-3 (3) minor-version-1 (1)
}

;

PCIM ::= SEQUENCE {
  header ItsPduHeader,
@@ -6,18 +29,16 @@ PCIM ::= SEQUENCE {
}

Pcim ::= SEQUENCE {
  length UInt16,                                       -- Autosar Profile4 CRC32
  rollingCounter UInt16,        
  dataID UInt32,                                       -- Identifier of infrastructure operator
  crc32 UInt32,                                        -- Cyclic redundency check, hamming distance >= 6 
  autosar AUTOSARProfile4,                             -- Mandatory AUTOSAR container
  vehicles SEQUENCE (SIZE(1..32)) OF VehicleContainer  -- Max. 32 vehicles at a time based on size of VehicleContainerSeq options.
}

VehicleContainer ::= SEQUENCE {
  currentSessionID IA5String (SIZE(17)),                 -- 17 character ID
  currentMissionID IA5String (SIZE(6)),                  -- 6 character ID
  rollingCounterFromPcvm UInt16,                         -- PCVM Rolling counter signal paired with serverTimeAtPcvm
  vehicleIdentification VehicleIdentification OPTIONAL,  -- for generating a blinking pattern for the direction indicator lights
  currentSessionID SessionMissionID,
  currentMissionID SessionMissionID,                 -- 6 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
  drivingPermission DrivingPermission OPTIONAL,      -- Defines the bounds within which the vehicle is allowed to drive.
  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.
@@ -25,30 +46,45 @@ VehicleContainer ::= SEQUENCE {
  oemSpecific UInt16 OPTIONAL                        -- OEM specific 16 bit container for special purposes.
}

VehicleIdentification ::= SEQUENCE {
  seed UInt64,                               -- Seed for calculating codes for flashing indicator lights  .
  codeLength UInt8,                          -- Value that indicated how many bits (8 - 20) from the seed shall be used for blinking. 
VidRequest ::= SEQUENCE {    -- We proposed a change here: now we are flexible with identification technologies
  vehicleIdentification VehicleIdentificationTechnology,
  authorizationState AuthorizationStateEnum  -- current authorization request status
                                             -- For now, we kept the authorization state technology-agnostic.
}

VehicleIdentificationTechnology ::= CHOICE {
  blinking Blinking,
  ...
}

BlinkingSeed ::= INTEGER(0..18446744073709551615)

Blinking ::= SEQUENCE {
  seed BlinkingSeed,                         -- Seed for calculating codes for flashing indicator lights  .
  codeLength UInt8                           -- Value that indicated how many bits (8 - 20) from the seed shall be used for blinking. 
}

DrivingPermission ::= SEQUENCE {
  expirationTime Millisecond42,  -- ETSI format from 1.1.2004 onwards.
  velocityMax MetrePerSecond16,  -- Maximum allowed vehicle velocity.
  curvatureMin PerMetre16,       -- Right curvature bounds.
  curvatureMax PerMetre16        -- Left curvature bounds.
  expirationTime TimestampIts,      -- ETSI format from 1.1.2004 onwards.
  velocityMax CentimetrePerSecond,  -- Maximum allowed vehicle velocity.
  curvatureMin HighResCurvature,    -- Right curvature bounds.
  curvatureMax HighResCurvature     -- Left curvature bounds.
}

DriveCommand ::= SEQUENCE {
  driveCommandAction DriveCommandActionEnum,   -- Current driving command.
  terminateReason TerminateReasonEnum,         -- If action equals terminate, indicates whether a terminate is requested because the vehicle reached the destination or because of an error.
  selectGear SelectGearEnum,                   -- Allowed driving direction, incl. request for neutral gear.
                                               -- 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.
  directionIndicator VehicleDirIndicatorEnum,  -- The currently requested direction indicator.
  emergencyStop EmergencyStopEnum              -- Signal for triggering an emergency stop or brake prefill.
                                               -- Option: Using CDD's ExteriorLights can be considered as well. It would support multiple light request commands.
  emergencyStopRequest EmergencyStopEnum       -- Signal for triggering an emergency stop or brake prefill.
}

DetectedVehiclePose ::= SEQUENCE {
  detectedPose Pose,
  poseMeasurementTime Millisecond42  -- Measurement time of given vehicle pose (ETSI format from 1.1.2004 onwards).
  poseMeasurementTime TimestampIts
}

ControlInterface ::= CHOICE {
@@ -60,19 +96,19 @@ ControlInterface ::= CHOICE {
PathSnippet ::= SEQUENCE (SIZE(0..5)) OF WayPoint

WayPoint ::= SEQUENCE {
  index UInt16,               -- Index of 0 means that the WayPoint is not valid/not treated on vehicle side.
  index WaypointIndex,              -- Index of 0 means that the WayPoint is not valid/not treated on vehicle side.
  wayPointPose Pose,
  velocity MetrePerSecond16,  -- Signed velocity value. Positive: drive forwards / Negative: reverse.
  curvature PerMetre16        -- Signed curvature value.
  velocity CentimetrePerSecond,     -- Signed velocity value. Positive: drive forwards / Negative: reverse.
  curvature HighResCurvature        -- Signed curvature value.
}

DirectControl ::= SEQUENCE {
  velocityReq MetrePerSecond16,  -- Signed velocity value. Positive: drive forwards / Negative: reverse.
  curvatureReq PerMetre16        -- Signed curvature value.
  velocityReq CentimetrePerSecond,  -- Signed velocity value. Positive: drive forwards / Negative: reverse.
  curvatureReq HighResCurvature     -- Signed curvature value.
}

TrajectoryControl ::= SEQUENCE {
  timeReference Millisecond42,
  timeReference TimestampIts,
  controlTrajectory ControlTrajectory,
  stateTrajectory StateTrajectory OPTIONAL
}  
@@ -80,43 +116,22 @@ TrajectoryControl ::= SEQUENCE {
ControlTrajectory ::= SEQUENCE (SIZE(0..50)) OF ControlPoint

ControlPoint ::= SEQUENCE {
  curvature PerMetre16,        -- Signed curvature value.
  acceleration MetrePerSqSec8  -- Signed acceleration value. 
  curvature HighResCurvature,                 -- Signed curvature value.
  acceleration LongitudinalAccelerationValue  -- Signed acceleration value.
                                              -- To be discussed in the members groups
}

StateTrajectory ::= SEQUENCE (SIZE(0..50)) OF StatePoint

StatePoint ::= SEQUENCE {
  statePose Pose,
  velocity MetrePerSecond16  -- Vehicle speed
  velocity CentimetrePerSecond  -- Vehicle speed
}
  
Pose ::= SEQUENCE {
  x Metre20,    -- x coordinate in infrastructure coordinate system.
  y Metre20,    -- y coordinate in infrastructure coordinate system.
  psi Radian16  -- Heading angle in infrastructure coordinate system.
}
  
-- *************** DATA DICTONARY ************************************
Int8  ::= INTEGER (-128..127)
UInt8 ::= INTEGER (0..255)
Int16 ::= INTEGER (-32768..32767)
Int20 ::= INTEGER (-524288..524287)
UInt16 ::= INTEGER (0..65535)       
UInt32 ::= INTEGER (0..4294967295)
UInt42 ::= INTEGER (0..4398046511103)     
UInt64 ::= INTEGER (0..18446744073709551615)

--                            UNIT     FACTOR
MetrePerSecond16::= Int16  -- [m/s]    0.01
MetrePerSqSec8 ::= Int8    -- [m/s^2]  0.1        Range: from -12,8 to 12,7 m/s^2
Metre20 ::= Int20          -- [m]      0.01
PerMetre16 ::= Int16       -- [1/m]    0.00001
Radian16 ::= UInt16        -- [1]      0.0001     Range: from 0 to 2*pi
Millisecond42 ::= UInt42   -- [ms]     1          Range for TimestampIts ::= INTEGER {utcStartOf2004(0), oneMillisecAfterUTCStartOf2004(1)} (0..4398046511103). Leap seconds are counted, unlike Unix-time
-- *************** PCIM-SPECIFIC DATA DICTONARY ************************************

DriveCommandActionEnum ::= ENUMERATED {
  standby(0),     -- The vehicle shall stay in standby and wait for further instructions
  unknown(0),     -- No command given by the RVO.
  initialize(1),  -- The vehicle shall initialize and prepare for a driving job
  drive(2),       -- The vehicle shall actively drive and follow the path
  terminate(3)    -- The vehicle shall disable all interfaces and shutdown as soon as possible
@@ -144,13 +159,6 @@ VehicleDirIndicatorEnum ::= ENUMERATED {
  dir-indicator-unknown(4)  -- Direction indicator state is unknown
}

SelectGearEnum ::= ENUMERATED {
  neutral(0),    -- N: Vehicle shall engage N
  forwards(1),   -- D: Vehicle shall drive forwards
  backwards(2),  -- R: Vehicle shall drive backwards
  park(3)        -- P: Vehicle shall engage P
}

AuthorizationStateEnum ::= ENUMERATED {
  undefined(0),            -- Default value
  prepared(1),             -- Camera is ready to detect the code. Background model is available.
@@ -159,13 +167,4 @@ AuthorizationStateEnum ::= ENUMERATED {
  new-code(4)              -- If the first attempt failed, a new code must be generated
}

-- Temp definition of ItsPduHeader. To be replaced by importing ITS-Container.asn
ItsPduHeader ::= SEQUENCE {
  protocolVersion INTEGER (0..255),
  messageID INTEGER{ denm(1), cam(2), poi(3), spatem(4), mapem(5), ivim(6), ev-rsr(7), tistpgtransaction(8), srem(9), ssem(10), evcsn(11), saem(12), rtcmem(13), pcim(15), pcvm(16) } (0..255),
  stationID StationID
}

StationID ::= INTEGER(0..4294967295)

END
 No newline at end of file
+51 −94

File changed.

Preview size limit exceeded, changes collapsed.